[llvm-bugs] [Bug 35199] New: unreachable in DWARFObject.h:30

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Nov 3 14:57:51 PDT 2017


https://bugs.llvm.org/show_bug.cgi?id=35199

            Bug ID: 35199
           Summary: unreachable in DWARFObject.h:30
           Product: lld
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: ELF
          Assignee: unassignedbugs at nondot.org
          Reporter: llvm at inglorion.net
                CC: llvm-bugs at lists.llvm.org

Since r317305, lld has been crashing with "unreachable" in DWARFObject.h:30
when linking libc++.so for the Chromium project
(https://bugs.chromium.org/p/chromium/issues/detail?id=781406).

Here is a backtrace of a failing link:
[49/49] SOLINK ./libc++.so
FAILED: libc++.so libc++.so.TOC
python "../../build/toolchain/gcc_solink_wrapper.py" --readelf="readelf"
--nm="nm" --sofile="./libc++.so" --tocfile="./libc++.so.TOC"
--output="./libc++.so"  -- ../../../../clang/bin/clang++ -shared
-Wl,--fatal-warnings -fPIC -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro
-Wl,-z,defs -Wl,--no-as-needed -lpthread -Wl,--as-needed -fuse-ld=lld
-Wl,--icf=all -m64 -Wl,--gdb-index -nostdlib++
--sysroot=../../build/linux/debian_jessie_amd64-sysroot
-L../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu
-Wl,-rpath-link=../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu
-L../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu
-Wl,-rpath-link=../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu
-Werror -Wl,-u_sanitizer_options_link_helper -o "./libc++.so"
-Wl,-soname="libc++.so" @"./libc++.so.rsp"
unimplemented
UNREACHABLE executed at
/home/inglorion/llvm/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h:30!
#0 0x0000000000e63cbf llvm::sys::PrintStackTrace(llvm::raw_ostream&)
/home/inglorion/llvm/llvm/lib/Support/Unix/Signals.inc:398:13
#1 0x0000000000e63fb6 bool __gnu_cxx::operator!=<std::pair<void (*)(void*),
void*>*, std::vector<std::pair<void (*)(void*), void*>,
std::allocator<std::pair<void (*)(void*), void*> > >
>(__gnu_cxx::__normal_iterator<std::pair<void (*)(void*), void*>*,
std::vector<std::pair<void (*)(void*), void*>, std::allocator<std::pair<void
(*)(void*), void*> > > > const&, __gnu_cxx::__normal_iterator<std::pair<void
(*)(void*), void*>*, std::vector<std::pair<void (*)(void*), void*>,
std::allocator<std::pair<void (*)(void*), void*> > > > const&)
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_iterator.h:825:27
#2 0x0000000000e63fb6 llvm::sys::RunSignalHandlers()
/home/inglorion/llvm/llvm/lib/Support/Signals.cpp:49:0
#3 0x0000000000e63fb6 SignalHandler(int)
/home/inglorion/llvm/llvm/lib/Support/Unix/Signals.inc:242:0
#4 0x00007fd4accaa330 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x10330)
#5 0x00007fd4ab899c37 gsignal
/build/eglibc-SvCtMH/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0
#6 0x00007fd4ab89d028 abort
/build/eglibc-SvCtMH/eglibc-2.19/stdlib/abort.c:91:0
#7 0x0000000000e18469
(/home/inglorion/chromium/src/out/repro/../../../../clang/bin/ld.lld+0xe18469)
#8 0x0000000000f02fd9
(/home/inglorion/chromium/src/out/repro/../../../../clang/bin/ld.lld+0xf02fd9)
#9 0x000000000107bcac
llvm::DWARFContext::getDWOContext(llvm::StringRef)::$_5::operator()() const
/home/inglorion/llvm/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:930:24
#10 0x000000000107bcac llvm::DWARFContext::getDWOContext(llvm::StringRef)
/home/inglorion/llvm/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp:925:0
#11 0x000000000109b8c9 std::__shared_ptr<llvm::DWARFContext,
(__gnu_cxx::_Lock_policy)2>::operator bool() const
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/shared_ptr_base.h:923:16
#12 0x000000000109b8c9 llvm::DWARFUnit::parseDWO()
/home/inglorion/llvm/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp:293:0
#13 0x000000000109bbbb
llvm::DWARFUnit::collectAddressRanges(std::vector<llvm::DWARFAddressRange,
std::allocator<llvm::DWARFAddressRange> >&)
/home/inglorion/llvm/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp:335:21
#14 0x0000000000f7e1b1 readAddressAreas(llvm::DWARFContext&,
lld::elf::InputSection*)
/home/inglorion/llvm/lld/ELF/SyntheticSections.cpp:1937:50
#15 0x0000000000f7f205 lld::elf::GdbIndexSection*
lld::elf::createGdbIndex<llvm::object::ELFType<(llvm::support::endianness)1,
true> >()::{lambda(unsigned long)#1}::operator()(unsigned long) const
/home/inglorion/llvm/lld/ELF/SyntheticSections.cpp:2029:5
#16 0x0000000000ed4b0a std::function<void (unsigned long)>::operator()(unsigned
long) const
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/functional:2471:14
#17 0x0000000000ed4b0a void
llvm::parallel::for_each_n<llvm::parallel::parallel_execution_policy, unsigned
long, std::function<void (unsigned long)>
>(llvm::parallel::parallel_execution_policy, unsigned long, unsigned long,
std::function<void (unsigned long)>)
/home/inglorion/llvm/llvm/include/llvm/Support/Parallel.h:218:0
#18 0x0000000000ed4b0a lld::parallelForEachN(unsigned long, unsigned long,
std::function<void (unsigned long)>)
/home/inglorion/llvm/lld/include/lld/Common/Threads.h:79:0
#19 0x0000000000f5b446 std::_Function_base::~_Function_base()
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/functional:2029:11
#20 0x0000000000f5b446 lld::elf::GdbIndexSection*
lld::elf::createGdbIndex<llvm::object::ELFType<(llvm::support::endianness)1,
true> >() /home/inglorion/llvm/lld/ELF/SyntheticSections.cpp:2023:0
#21 0x0000000000fac192 (anonymous
namespace)::Writer<llvm::object::ELFType<(llvm::support::endianness)1, true>
>::createSyntheticSections() /home/inglorion/llvm/lld/ELF/Writer.cpp:357:19
#22 0x0000000000fac192 (anonymous
namespace)::Writer<llvm::object::ELFType<(llvm::support::endianness)1, true>
>::run() /home/inglorion/llvm/lld/ELF/Writer.cpp:162:0
#23 0x0000000000faabc2 std::_Vector_base<lld::elf::PhdrEntry*,
std::allocator<lld::elf::PhdrEntry*> >::~_Vector_base()
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_vector.h:160:37
#24 0x0000000000faabc2 std::vector<lld::elf::PhdrEntry*,
std::allocator<lld::elf::PhdrEntry*> >::~vector()
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_vector.h:416:0
#25 0x0000000000faabc2 (anonymous
namespace)::Writer<llvm::object::ELFType<(llvm::support::endianness)1, true>
>::~Writer() /home/inglorion/llvm/lld/ELF/Writer.cpp:39:0
#26 0x0000000000faabc2 void
lld::elf::writeResult<llvm::object::ELFType<(llvm::support::endianness)1, true>
>() /home/inglorion/llvm/lld/ELF/Writer.cpp:131:0
#27 0x0000000000ec844b void
lld::elf::LinkerDriver::link<llvm::object::ELFType<(llvm::support::endianness)1,
true> >(llvm::opt::InputArgList&)
/home/inglorion/llvm/lld/ELF/Driver.cpp:1146:1
#28 0x0000000000ec1da6 lld::elf::LinkerDriver::main(llvm::ArrayRef<char
const*>, bool) /home/inglorion/llvm/lld/ELF/Driver.cpp:407:5
#29 0x0000000000ec0c9b lld::elf::link(llvm::ArrayRef<char const*>, bool,
llvm::raw_ostream&) /home/inglorion/llvm/lld/ELF/Driver.cpp:96:3
#30 0x0000000000e1735a main /home/inglorion/llvm/lld/tools/lld/lld.cpp:116:13
#31 0x00007fd4ab884f45 __libc_start_main
/build/eglibc-SvCtMH/eglibc-2.19/csu/libc-start.c:321:0
#32 0x0000000000e17029 _start
(/home/inglorion/chromium/src/out/repro/../../../../clang/bin/ld.lld+0xe17029)
Stack dump:
0.      Program arguments:
/home/inglorion/chromium/src/out/repro/../../../../clang/bin/ld.lld
--sysroot=../../build/linux/debian_jessie_amd64-sysroot -z relro
--hash-style=gnu --eh-frame-hdr -m elf_x86_64 -shared -o ./libc++.so
../../build/linux/debian_jessie_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o
../../build/linux/debian_jessie_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o
-L../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu
-L../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu
-L../../build/linux/debian_jessie_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/4.8
-L../../build/linux/debian_jessie_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu
-L../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu
-L../../build/linux/debian_jessie_amd64-sysroot/lib/../lib64
-L../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu
-L../../build/linux/debian_jessie_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/4.8/../../..
-L../../build/linux/debian_jessie_amd64-sysroot/lib
-L../../build/linux/debian_jessie_amd64-sysroot/usr/lib --fatal-warnings -z
noexecstack -z now -z relro -z defs --no-as-needed -lpthread --as-needed
--icf=all --gdb-index
-rpath-link=../../build/linux/debian_jessie_amd64-sysroot/lib/x86_64-linux-gnu
-rpath-link=../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu
-u_sanitizer_options_link_helper -soname=libc++.so --whole-archive
obj/buildtools/third_party/libc++/libc++/algorithm.o
obj/buildtools/third_party/libc++/libc++/any.o
obj/buildtools/third_party/libc++/libc++/bind.o
obj/buildtools/third_party/libc++/libc++/chrono.o
obj/buildtools/third_party/libc++/libc++/condition_variable.o
obj/buildtools/third_party/libc++/libc++/debug.o
obj/buildtools/third_party/libc++/libc++/exception.o
obj/buildtools/third_party/libc++/libc++/functional.o
obj/buildtools/third_party/libc++/libc++/future.o
obj/buildtools/third_party/libc++/libc++/hash.o
obj/buildtools/third_party/libc++/libc++/ios.o
obj/buildtools/third_party/libc++/libc++/iostream.o
obj/buildtools/third_party/libc++/libc++/locale.o
obj/buildtools/third_party/libc++/libc++/memory.o
obj/buildtools/third_party/libc++/libc++/mutex.o
obj/buildtools/third_party/libc++/libc++/new.o
obj/buildtools/third_party/libc++/libc++/optional.o
obj/buildtools/third_party/libc++/libc++/random.o
obj/buildtools/third_party/libc++/libc++/regex.o
obj/buildtools/third_party/libc++/libc++/shared_mutex.o
obj/buildtools/third_party/libc++/libc++/stdexcept.o
obj/buildtools/third_party/libc++/libc++/string.o
obj/buildtools/third_party/libc++/libc++/strstream.o
obj/buildtools/third_party/libc++/libc++/system_error.o
obj/buildtools/third_party/libc++/libc++/thread.o
obj/buildtools/third_party/libc++/libc++/typeinfo.o
obj/buildtools/third_party/libc++/libc++/utility.o
obj/buildtools/third_party/libc++/libc++/valarray.o
obj/buildtools/third_party/libc++/libc++/variant.o
obj/buildtools/third_party/libc++/libc++/vector.o
obj/buildtools/third_party/libc++abi/libc++abi/abort_message.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_aux_runtime.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_default_handlers.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_demangle.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_exception.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_exception_storage.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_guard.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_handlers.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_personality.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_unexpected.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_vector.o
obj/buildtools/third_party/libc++abi/libc++abi/cxa_virtual.o
obj/buildtools/third_party/libc++abi/libc++abi/fallback_malloc.o
obj/buildtools/third_party/libc++abi/libc++abi/private_typeinfo.o
obj/buildtools/third_party/libc++abi/libc++abi/stdlib_exception.o
obj/buildtools/third_party/libc++abi/libc++abi/stdlib_stdexcept.o obj/build
clang-6.0: error: unable to execute command: Aborted (core dumped)
clang-6.0: error: linker command failed due to signal (use -v to see
invocation)
ninja: build stopped: subcommand failed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20171103/fc52616a/attachment-0001.html>


More information about the llvm-bugs mailing list