Open awilfox opened 4 months ago
In Release mode, there is an additional case that does not trigger under Debug with assertions on. Unfortunately, since I can't seem to trigger it in Debug, all I can provide is the backtrace from the signal handler.
FAIL: LLVM :: tools/dsymutil/X86/eh_frame.test (46487 of 52993)
******************** TEST 'LLVM :: tools/dsymutil/X86/eh_frame.test' FAILED ********************
Exit Code: 139
Command Output (stdout):
--
Verifying /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.tmp.dSYM/Contents/Resources/DWARF/eh_frame.out: file format Mach-O 64-bit x86-64
Verifying .debug_abbrev...
Verifying .debug_info Unit Header Chain...
Verifying .debug_types Unit Header Chain...
Verifying non-dwo Units...
Verifying unit: 1 / 1, "eh_frame.cpp"
Verifying dwo Units...
Verifying .apple_names...
Verifying .apple_types...
Verifying .apple_namespaces...
Verifying .apple_objc...
No errors.
--
Command Output (stderr):
--
RUN: at line 16: /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/dsymutil -oso-prepend-path /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.out -o /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.tmp.dSYM
+ /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/dsymutil -oso-prepend-path /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.out -o /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.tmp.dSYM
warning: /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.o: timestamp mismatch between object file (2024-06-15 12:21:32.000000000) and debug map (2021-01-11 17:48:25.000000000)
warning: /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.o: timestamp mismatch between object file (2024-06-15 12:21:32.000000000) and debug map (2021-01-11 17:48:25.000000000)
RUN: at line 17: /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfdump --verify /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.tmp.dSYM
+ /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfdump --verify /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.tmp.dSYM
RUN: at line 18: /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-otool -s __TEXT __eh_frame /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.out | /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/eh_frame.test
+ /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-otool -s __TEXT __eh_frame /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.out
+ /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/eh_frame.test
RUN: at line 19: /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-otool -s __TEXT __eh_frame /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.tmp.dSYM/Contents/Resources/DWARF/eh_frame.out | /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/eh_frame.test
+ /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-otool -s __TEXT __eh_frame /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.tmp.dSYM/Contents/Resources/DWARF/eh_frame.out
+ /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/eh_frame.test
RUN: at line 21: /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/dsymutil --linker parallel -oso-prepend-path /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.out -o /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.tmp.dSYM
+ /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/dsymutil --linker parallel -oso-prepend-path /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.out -o /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.tmp.dSYM
warning: /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.o: timestamp mismatch between object file (2024-06-15 12:21:32.000000000) and debug map (2021-01-11 17:48:25.000000000)
warning: /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.o: timestamp mismatch between object file (2024-06-15 12:21:32.000000000) and debug map (2021-01-11 17:48:25.000000000)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
#0 0x00003fff88517e10 llvm::sys::RunSignalHandlers() /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/Support/Signals.cpp:104:22
#1 0x00003fff88517e10 SignalHandler(int) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/Support/Unix/Signals.inc:403:31
#2 0x00003fff90862444 (+0x444)
#3 0x00003fff84430d90
#4 0x00003fff897163c0 llvm::dwarf_linker::parallel::CompileUnit::find(unsigned int, llvm::ArrayRef<llvm::dwarf::Attribute>) const /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.h:508:16
#5 0x00003fff897163c0 llvm::dwarf_linker::parallel::CompileUnit::createTypeDIEandCloneAttributes(llvm::DWARFDebugInfoEntry const*, llvm::dwarf_linker::parallel::DIEGenerator&, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*>>*, llvm::dwarf_linker::parallel::TypeUnit*) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1488:31
#6 0x00003fff89716e10 llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*>>*, unsigned long, std::optional<long>, std::optional<long>, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit*) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1322:24
#7 0x00003fff89716eb8 llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*>>*, unsigned long, std::optional<long>, std::optional<long>, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit*) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1342:7
#8 0x00003fff89723858 llvm::dwarf_linker::parallel::DwarfUnit::setOutUnitDIE(llvm::DIE*) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerUnit.h:80:5
#9 0x00003fff89723858 llvm::dwarf_linker::parallel::CompileUnit::cloneAndEmit(std::optional<std::reference_wrapper<llvm::Triple const>>, llvm::dwarf_linker::parallel::TypeUnit*) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.cpp:1249:16
#10 0x00003fff89742c5c operator() /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp:675:63
#11 0x00003fff89742c5c callback_fn<llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::linkSingleCompileUnit(llvm::dwarf_linker::parallel::CompileUnit&, llvm::dwarf_linker::parallel::TypeUnit*, llvm::dwarf_linker::parallel::CompileUnit::Stage)::<lambda()> > /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:40
#12 0x00003fff89742c5c llvm::function_ref<llvm::Expected<bool> ()>::operator()() const /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:62
#13 0x00003fff89742c5c llvm::dwarf_linker::finiteLoop(llvm::function_ref<llvm::Expected<bool> ()>, unsigned long) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/DWARFLinker/Utils.h:30:55
#14 0x00003fff89742c5c llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::linkSingleCompileUnit(llvm::dwarf_linker::parallel::CompileUnit&, llvm::dwarf_linker::parallel::TypeUnit*, llvm::dwarf_linker::parallel::CompileUnit::Stage) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp:704:8
#15 0x00003fff884373e4 llvm::function_ref<void (unsigned long)>::operator()(unsigned long) const /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:12
#16 0x00003fff884373e4 llvm::parallelFor(unsigned long, unsigned long, llvm::function_ref<void (unsigned long)>) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/Support/Parallel.cpp:256:7
#17 0x00003fff8973f7ec parallelForEach<std::unique_ptr<llvm::dwarf_linker::parallel::CompileUnit>*, llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::link(llvm::dwarf_linker::parallel::TypeUnit*)::<lambda(std::unique_ptr<llvm::dwarf_linker::parallel::CompileUnit>&)> > /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/Support/Parallel.h:234:14
#18 0x00003fff8973f7ec parallelForEach<llvm::SmallVector<std::unique_ptr<llvm::dwarf_linker::parallel::CompileUnit> >&, llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::link(llvm::dwarf_linker::parallel::TypeUnit*)::<lambda(std::unique_ptr<llvm::dwarf_linker::parallel::CompileUnit>&)> > /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/Support/Parallel.h:262:18
#19 0x00003fff8973f7ec llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::link(llvm::dwarf_linker::parallel::TypeUnit*) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp:499:18
#20 0x00003fff89741fa4 llvm::Error::getPtr() const /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/Support/Error.h:279:12
#21 0x00003fff89741fa4 llvm::Error::operator bool() /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/Support/Error.h:239:22
#22 0x00003fff89741fa4 operator() /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp:199:64
#23 0x00003fff89741fa4 __invoke_impl<void, llvm::dwarf_linker::parallel::DWARFLinkerImpl::link()::<lambda()>&> /usr/include/c++/13.3.0/bits/invoke.h:61:36
#24 0x00003fff89741fa4 __invoke_r<void, llvm::dwarf_linker::parallel::DWARFLinkerImpl::link()::<lambda()>&> /usr/include/c++/13.3.0/bits/invoke.h:111:28
#25 0x00003fff89741fa4 std::_Function_handler<void (), llvm::dwarf_linker::parallel::DWARFLinkerImpl::link()::'lambda0'()>::_M_invoke(std::_Any_data const&) /usr/include/c++/13.3.0/bits/std_function.h:290:30
#26 0x00003fff883953c8 std::function<void ()>::operator()() const /usr/include/c++/13.3.0/bits/std_function.h:591:9
#27 0x00003fff883953c8 llvm::ThreadPool::createTaskAndFuture(std::function<void ()>)::'lambda'()::operator()() const /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/Support/ThreadPool.h:135:19
#28 0x00003fff883953c8 void std::__invoke_impl<void, llvm::ThreadPool::createTaskAndFuture(std::function<void ()>)::'lambda'()&>(std::__invoke_other, llvm::ThreadPool::createTaskAndFuture(std::function<void ()>)::'lambda'()&) /usr/include/c++/13.3.0/bits/invoke.h:61:36
#29 0x00003fff883953c8 std::enable_if<is_invocable_r_v<void, llvm::ThreadPool::createTaskAndFuture(std::function<void ()>)::'lambda'()&>, void>::type std::__invoke_r<void, llvm::ThreadPool::createTaskAndFuture(std::function<void ()>)::'lambda'()&>(llvm::ThreadPool::createTaskAndFuture(std::function<void ()>)::'lambda'()&) /usr/include/c++/13.3.0/bits/invoke.h:111:28
#30 0x00003fff883953c8 std::_Function_handler<void (), llvm::ThreadPool::createTaskAndFuture(std::function<void ()>)::'lambda'()>::_M_invoke(std::_Any_data const&) /usr/include/c++/13.3.0/bits/std_function.h:290:30
#31 0x00003fff88484d18 std::function<void ()>::operator()() const /usr/include/c++/13.3.0/bits/std_function.h:591:9
#32 0x00003fff88484d18 llvm::ThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/Support/ThreadPool.cpp:101:9
#33 0x00003fff88485884 operator() /usr/include/c++/13.3.0/bits/unique_ptr.h:99:2
#34 0x00003fff88485884 ~unique_ptr /usr/include/c++/13.3.0/bits/unique_ptr.h:404:17
#35 0x00003fff88485884 GenericThreadProxy<std::tuple<llvm::ThreadPool::grow(int)::<lambda()> > > /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/Support/thread.h:46:3
#36 0x00003fff88485884 void* llvm::thread::ThreadProxy<std::tuple<llvm::ThreadPool::grow(int)::'lambda'()>>(void*) /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/Support/thread.h:55:36
#37 0x00003fff9080dab8 start /usr/src/packages/system/musl/src/musl-1.2.3/src/thread/pthread_create.c:203:2
#38 0x00003fff90822878 __sigsetjmp /usr/src/packages/system/musl/src/musl-1.2.3/src/thread/powerpc64/clone.s:47:0
/home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.script: line 8: 11834 Segmentation fault /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/dsymutil --linker parallel -oso-prepend-path /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/dsymutil/X86/../Inputs/private/tmp/eh_frame/eh_frame.out -o /home/awilcox/Code/awilfox/gcc-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/dsymutil/X86/Output/eh_frame.test.tmp.dSYM
Interestingly, on a SPARC system with 'Sparc;X86' as enabled targets, I only see:
Failed Tests (3):
LLVM-Unit :: tools/llvm-exegesis/./LLVMExegesisTests/SubprocessMemoryTest/DefinitionFillsCompletely
LLVM-Unit :: tools/llvm-exegesis/./LLVMExegesisTests/SubprocessMemoryTest/MultipleDefinitions
LLVM-Unit :: tools/llvm-exegesis/./LLVMExegesisTests/SubprocessMemoryTest/OneDefinition
…which means somehow this is specific to PPC64, and not endian-related?
For what it's worth, running another LLVM 18 build on PPC64 yielded a failure in one of the tests I hadn't disabled - so maybe it's flaky. I have ensured this isn't hardware related by building on another PPC64 and seeing the same failures.
FAIL: LLVM :: tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test (47209 of 52986)
******************** TEST 'LLVM :: tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test' FAILED ********************
Exit Code: 139
Command Output (stderr):
--
RUN: at line 4: /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/yaml2obj /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test -o /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp.o
+ /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/yaml2obj /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test -o /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp.o
RUN: at line 5: /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfutil /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp.o /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp1 2>&1 | /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck --check-prefix=ERR /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
+ /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck --check-prefix=ERR /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
+ /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfutil /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp.o /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp1
RUN: at line 6: /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfdump --verify /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp1 | /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck --check-prefix=VERIFY /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
+ /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck --check-prefix=VERIFY /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
+ /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfdump --verify /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp1
RUN: at line 7: /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfdump -a /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp1 | /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
+ /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfdump -a /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp1
+ /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
RUN: at line 9: /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfutil --linker parallel /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp.o /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp1 2>&1 | /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck --check-prefix=ERR /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
+ /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfutil --linker parallel /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp.o /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp1
+ /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck --check-prefix=ERR /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
/home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.script: line 7: 6311 Segmentation fault /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfutil --linker parallel /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp.o /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf5-macro-opcodeop.test.tmp1 2>&1
6312 Done | /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/FileCheck --check-prefix=ERR /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/test/tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
--
********************
********************
Failed Tests (1):
LLVM :: tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
ASan showed stack overflow. The problem was that musl's thread stack size defaults to a size too small for LLVM. It'd be advisable to set the stack size manually to ensure it is always sufficient considering different platforms have different stack size defaults for threads.
Hmm, that made the LTO tests a lot better, but I'm still seeing a few of the dwarfutil
tests flaking:
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfutil --linker parallel /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf4-macro-short.test.tmp.o /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf4-macro-short.test.tmp1
#0 0x00003fff8ce65090 llvm::sys::RunSignalHandlers() /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/Support/Signals.cpp:104:22
#1 0x00003fff8ce65090 SignalHandler(int) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/Support/Unix/Signals.inc:403:31
#2 0x00003fff951b2444 (+0x444)
#3 0x00003fff8e07348c llvm::dwarf_linker::parallel::ArrayList<llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*>>*, 5ul>::forEach(llvm::function_ref<void (llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*>>*&)>) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/ArrayList.h:66:7
#4 0x00003fff8e07348c llvm::dwarf_linker::parallel::TypeUnit::finalizeTypeEntryRec(unsigned long, llvm::DIE*, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*>>*) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerTypeUnit.cpp:248:47
#5 0x00003fff8e07348c llvm::dwarf_linker::parallel::ArrayList<llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*>>*, 5ul>::forEach(llvm::function_ref<void (llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*>>*&)>) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/ArrayList.h:66:7
#6 0x00003fff8e07348c llvm::dwarf_linker::parallel::TypeUnit::finalizeTypeEntryRec(unsigned long, llvm::DIE*, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*>>*) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerTypeUnit.cpp:248:47
#7 0x00003fff8e076880 llvm::SmallVectorBase<unsigned int>::size() const /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/ADT/SmallVector.h:91:32
#8 0x00003fff8e076880 llvm::SmallVectorTemplateCommon<unsigned long*, void>::end() /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/ADT/SmallVector.h:282:41
#9 0x00003fff8e076880 llvm::dwarf_linker::parallel::TypeUnit::createDIETree(llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&)::'lambda'()::operator()() const /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerTypeUnit.cpp:124:32
#10 0x00003fff8cd84570 std::function<void ()>::operator()() const /usr/include/c++/13.3.0/bits/std_function.h:591:9
#11 0x00003fff8cd84570 llvm::parallel::TaskGroup::spawn(std::function<void ()>, bool) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/Support/Parallel.cpp:221:4
#12 0x00003fff8e07933c llvm::dwarf_linker::parallel::TypeUnit::createDIETree(llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerTypeUnit.cpp:48:11
#13 0x00003fff8e07933c llvm::dwarf_linker::parallel::TypeUnit::finishCloningAndEmit(llvm::Triple const&) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerTypeUnit.cpp:342:16
#14 0x00003fff8e091b08 llvm::dwarf_linker::parallel::DWARFLinkerImpl::link() /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp:215:52
#15 0x0000000125d521c0 llvm::Error llvm::dwarfutil::linkDebugInfoImpl<llvm::dwarf_linker::parallel::DWARFLinker>(llvm::object::ObjectFile&, llvm::dwarfutil::Options const&, llvm::raw_pwrite_stream&) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp:462:13
#16 0x0000000125d53ec8 llvm::dwarfutil::linkDebugInfo(llvm::object::ObjectFile&, llvm::dwarfutil::Options const&, llvm::raw_pwrite_stream&) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp:472:77
#17 0x0000000125d2aee8 llvm::dwarfutil::applyCLOptions(llvm::dwarfutil::Options const&, llvm::object::ObjectFile&) /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/tools/llvm-dwarfutil/llvm-dwarfutil.cpp:451:61
#18 0x0000000125d1698c llvm::Error::getPtr() const /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/Support/Error.h:279:12
#19 0x0000000125d1698c llvm::Error::operator bool() /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/include/llvm/Support/Error.h:239:22
#20 0x0000000125d1698c main /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/tools/llvm-dwarfutil/llvm-dwarfutil.cpp:527:78
#21 0x00003fff950ee038 libc_start_main_stage2 /usr/src/packages/system/musl/src/musl-1.2.3/src/env/__libc_start_main.c:95:2
#22 0x00003fff950ee0b4 __libc_start_main /usr/src/packages/system/musl/src/musl-1.2.3/src/env/__libc_start_main.c:86:9
#23 0x0000000125d17998 _start_c /usr/src/packages/system/musl/src/musl-1.2.3/crt/crt1.c:18:2
#24 0x0000000125d1794c _start (/home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfutil+0x1794c)
/home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf4-macro-short.test.script: line 7: 49884 Segmentation fault /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/bin/llvm-dwarfutil --linker parallel /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf4-macro-short.test.tmp.o /home/awilcox/Code/awilfox/rust-next/user/llvm18/src/llvm-project-18.1.8.src/llvm/build/test/tools/llvm-dwarfutil/ELF/X86/Output/dwarf4-macro-short.test.tmp1
We are seeing this on Alpine Linux ppc64le as well, with llvm19.
********************
********************
Failed Tests (4):
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-member-functions.cpp
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
LLVM :: tools/llvm-dwarfutil/ELF/X86/dwarf5-macro-opcodeop.test
Testing Time: 378.53s
Total Discovered Tests: 60722
Skipped : 74 (0.12%)
Unsupported : 2333 (3.84%)
Passed : 58155 (95.77%)
Expectedly Failed: 156 (0.26%)
Failed : 4 (0.01%)
Same test also fails on armv6 on alpine linux:
Failed Tests (4):
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-fwd-declaration2.test
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-fwd-declaration3.test
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
Does something like this help, @ncopa?
chelf -s 1048576 build/bin/llvm-lto2
chelf -s 1048576 build/bin/dsymutil
chelf -s 1048576 build/bin/llvm-dwarfutil
Does something like this help, @ncopa?
chelf -s 1048576 build/bin/llvm-lto2 chelf -s 1048576 build/bin/dsymutil chelf -s 1048576 build/bin/llvm-dwarfutil
Good suggestsion. No. it does not appear to make any difference on either ppc64le or armhf (armv6). At least not tor the odr-string.test
.
I also have this applied to always set a larger stack size:
Patch-Source: https://github.com/chimera-linux/cports/blob/8c0359f31b9d888e59ced0320e93ca8ad79ba1f9/main/llvm/patches/0010-always-set-a-larger-stack-size-explicitly.patch
From 18e09846d9333b554e3dfbbd768ada6643bf92c0 Mon Sep 17 00:00:00 2001
From: Daniel Kolesa <daniel@octaforge.org>
Date: Sat, 27 Nov 2021 01:03:28 +0100
Subject: [PATCH 10/22] always set a larger stack size explicitly
---
llvm/lib/Support/Threading.cpp | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/llvm/lib/Support/Threading.cpp b/llvm/lib/Support/Threading.cpp
index 923935bbc..26594aac8 100644
--- a/llvm/lib/Support/Threading.cpp
+++ b/llvm/lib/Support/Threading.cpp
@@ -77,7 +77,7 @@ unsigned llvm::ThreadPoolStrategy::compute_thread_count() const {
// keyword.
#include "llvm/Support/thread.h"
-#if defined(__APPLE__)
+#if 1
// Darwin's default stack size for threads except the main one is only 512KB,
// which is not enough for some/many normal LLVM compilations. This implements
// the same interface as std::thread but requests the same stack size as the
I think various tests are flakyon ppc64le. This is the failing tests:
********************
********************
Failed Tests (3):
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
LLVM :: tools/dsymutil/X86/thinlto.test
I re-ran the tests without making any changes and now it is different testes that fails:
********************
********************
Failed Tests (5):
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/keep-func.test
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-member-functions.cpp
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
LLVM :: tools/llvm-dwarfutil/ELF/X86/accelerator-dwarf4.test
Ok. I'm trying to focus on odr-string.test
now, on ppc64le. It is definitively flaky.
Rerunning this will often, but not always, segfault:
/home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/bin/dsymutil --linker=parallel -f -o - -oso-prepend-path=/home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../ -y /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
Here is a backtrace from the core dump:
Core was generated by `/home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/bin/dsymutil -'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007fff92f1750c in llvm::dwarf_linker::parallel::CompileUnit::allocateTypeDie(llvm::dwarf_linker::parallel::TypeEntryBody*, llvm::dwarf_linker::parallel::DIEGenerator&, llvm::dwarf::Tag, bool, bool) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
[Current thread is 1 (LWP 54354)]
(gdb) bt
#0 0x00007fff92f1750c in llvm::dwarf_linker::parallel::CompileUnit::allocateTypeDie(llvm::dwarf_linker::parallel::TypeEntryBody*, llvm::dwarf_linker::parallel::DIEGenerator&, llvm::dwarf::Tag, bool, bool) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#1 0x00007fff92f17a60 in llvm::dwarf_linker::parallel::CompileUnit::createTypeDIEandCloneAttributes(llvm::DWARFDebugInfoEntry const*, llvm::dwarf_linker::parallel::DIEGenerator&, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*> >*, llvm::dwarf_linker::parallel::TypeUnit*) ()
from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#2 0x00007fff92f184e8 in llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*> >*, unsigned long, std::optional<long>, std::optional<long>, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit*) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#3 0x00007fff92f1859c in llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*> >*, unsigned long, std::optional<long>, std::optional<long>, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit*) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#4 0x00007fff92f1859c in llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*> >*, unsigned long, std::optional<long>, std::optional<long>, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit*) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#5 0x00007fff92f1859c in llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*> >*, unsigned long, std::optional<long>, std::optional<long>, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit*) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#6 0x00007fff92f1859c in llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*> >*, unsigned long, std::optional<long>, std::optional<long>, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit*) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#7 0x00007fff92f1859c in llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomic<llvm::dwarf_linker::parallel::TypeEntryBody*> >*, unsigned long, std::optional<long>, std::optional<long>, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit*) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#8 0x00007fff92f22028 in llvm::dwarf_linker::parallel::CompileUnit::cloneAndEmit(std::optional<std::reference_wrapper<llvm::Triple const> >, llvm::dwarf_linker::parallel::TypeUnit*) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#9 0x00007fff92f49dfc in llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::linkSingleCompileUnit(llvm::dwarf_linker::parallel::CompileUnit&, llvm::dwarf_linker::parallel::TypeUnit*, llvm::dwarf_linker::parallel::CompileUnit::Stage) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#10 0x00007fff91a0d70c in std::_Function_handler<void (), llvm::parallelFor(unsigned long, unsigned long, llvm::function_ref<void (unsigned long)>)::{lambda()#2}>::_M_invoke(std::_Any_data const&) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#11 0x00007fff91a0e0a0 in std::_Function_handler<void (), llvm::parallel::TaskGroup::spawn(std::function<void ()>, bool)::{lambda()#1}>::_M_invoke(std::_Any_data const&) ()
from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#12 0x00007fff91a0f964 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<llvm::parallel::detail::(anonymous namespace)::ThreadPoolExecutor::ThreadPoolExecutor(llvm::ThreadPoolStrategy)::{lambda()#1}::operator()() const::{lambda()#1}> > >::_M_run() () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
#13 0x00007fff90f13660 in ?? () from /usr/lib/libstdc++.so.6
#14 0x00007fff9b307460 in start (p=0x7fff906bfaa0) at src/thread/pthread_create.c:207
#15 0x00007fff9b318398 in __clone () at src/thread/powerpc64/clone.s:44
And info threads:
(gdb) info threads
Id Target Id Frame
* 1 LWP 54354 0x00007fff92f1750c in llvm::dwarf_linker::parallel::CompileUnit::allocateTypeDie(llvm::dwarf_linker::parallel::TypeEntryBody*, llvm::dwarf_linker::parallel::DIEGenerator&, llvm::dwarf::Tag, bool, bool) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
2 LWP 54341 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
3 LWP 54344 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
4 LWP 54351 0x00007fff92f11e3c in llvm::dwarf_linker::parallel::CompileUnit::assignTypeNamesRec(llvm::DWARFDebugInfoEntry const*, llvm::dwarf_linker::parallel::SyntheticTypeNameBuilder&) () from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
5 LWP 54361 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
6 LWP 54349 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
7 LWP 54342 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
8 LWP 54406 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
9 LWP 54356 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
10 LWP 54357 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
11 LWP 54358 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
12 LWP 54360 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
13 LWP 54362 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
14 LWP 54380 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
15 LWP 54408 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
16 LWP 54378 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
17 LWP 54379 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
18 LWP 54377 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
19 LWP 54381 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
20 LWP 54382 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
21 LWP 54359 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
22 LWP 54347 0x00007fff9b3090a0 in a_sc (p=0x7fff909c69ac, v=0) at ./arch/powerpc64/atomic_arch.h:13
23 LWP 54340 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
24 LWP 54352 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
25 LWP 54355 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
26 LWP 54363 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
27 LWP 54383 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
28 LWP 54405 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
29 LWP 54364 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
30 LWP 54365 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
31 LWP 54348 0x00007fff92f5c444 in llvm::dwarf_linker::parallel::SyntheticTypeNameBuilder::addTypePrefix(llvm::DWARFDebugInfoEntry const*) ()
from /home/ncopa/aports/main/llvm19/src/llvm-project-19.1.1.src/build/lib/libLLVM.so.19.1
32 LWP 54374 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
33 LWP 54366 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
34 LWP 54367 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
35 LWP 54368 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
36 LWP 54404 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
37 LWP 54375 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
38 LWP 54369 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
39 LWP 54370 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
40 LWP 54376 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
41 LWP 54371 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
42 LWP 54372 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
43 LWP 54373 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
44 LWP 54384 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
45 LWP 54385 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
46 LWP 54388 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
47 LWP 54386 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
48 LWP 54389 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
49 LWP 54393 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
50 LWP 54387 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
51 LWP 54390 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
52 LWP 54394 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
53 LWP 54391 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
54 LWP 54398 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
55 LWP 54395 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
56 LWP 54392 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
57 LWP 54399 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
58 LWP 54400 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
59 LWP 54401 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
60 LWP 54396 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
61 LWP 54402 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
62 LWP 54403 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
63 LWP 54397 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
64 LWP 54345 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
65 LWP 54343 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
66 LWP 54346 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
67 LWP 54353 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
68 LWP 54350 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
69 LWP 54407 __cp_end () at src/thread/powerpc64/syscall_cp.s:32
There wasn't a backtrace, but I ran the same
dsymutil
command undergdb
and encountered the following:This is on a 64-bit PowerPC (Power9) in big endian mode, running musl libc on Linux 5.15. Note that this is a Debug build with
-DLLVM_ENABLE_ASSERTIONS=ON
; in Release mode without assertions, I receive no assertion failure but a failed test case ("error: -: The file was not recognized as a valid object file").Additionally, the Release build shows two failures that are not present in the Debug build, both of which are segmentation faults without backtraces, i.e.: