Description
if I try to build LLVM 18.1.7 or 18.1.7 on FC39 inside docker container (host is Power8 ppc64le Ubuntu 22.04) it fails during testing:
`[663/664] Running the LLVM regression tests
FAIL: LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test (46252 of 53310)
******************** TEST 'LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test' FAILED ********************
Exit Code: 139
Command Output (stderr):
RUN: at line 1: /root/llvm-project/build/bin/dsymutil --linker=parallel -f -o /root/llvm-project/build/test/tools/dsymutil/X86/DWARFLinkerParallel/Output/odr-predictable-output2.test.tmp1.o -oso-prepend-path=/root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../ -y /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test
- /root/llvm-project/build/bin/dsymutil --linker=parallel -f -o /root/llvm-project/build/test/tools/dsymutil/X86/DWARFLinkerParallel/Output/odr-predictable-output2.test.tmp1.o -oso-prepend-path=/root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../ -y /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/foo1.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:39.000000000)
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/foo2.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:43.000000000)
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/foo3.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:47.000000000)
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/main.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:54.000000000)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
/root/llvm-project/build/test/tools/dsymutil/X86/DWARFLinkerParallel/Output/odr-predictable-output2.test.script: line 8: 2005731 Segmentation fault /root/llvm-project/build/bin/dsymutil --linker=parallel -f -o /root/llvm-project/build/test/tools/dsymutil/X86/DWARFLinkerParallel/Output/odr-predictable-output2.test.tmp1.o -oso-prepend-path=/root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../ -y /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test
--
FAIL: LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test (46475 of 53310)
******************** TEST 'LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test' FAILED ********************
Exit Code: 2
Command Output (stderr):
RUN: at line 1: /root/llvm-project/build/bin/dsymutil --linker=parallel -f -o - -oso-prepend-path=/root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../ -y /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test | /root/llvm-project/build/bin/llvm-dwarfdump --verify - | /root/llvm-project/build/bin/FileCheck -check-prefixes=VERIFY /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
- /root/llvm-project/build/bin/dsymutil --linker=parallel -f -o - -oso-prepend-path=/root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../ -y /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
- /root/llvm-project/build/bin/llvm-dwarfdump --verify -
- /root/llvm-project/build/bin/FileCheck -check-prefixes=VERIFY /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/foo1.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:39.000000000)
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/foo2.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:43.000000000)
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/foo3.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:47.000000000)
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/main.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:54.000000000)
RUN: at line 2: /root/llvm-project/build/bin/dsymutil --linker=parallel -f -o - -oso-prepend-path=/root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../ -y /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test | /root/llvm-project/build/bin/llvm-dwarfdump -a - | /root/llvm-project/build/bin/FileCheck /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test - /root/llvm-project/build/bin/dsymutil --linker=parallel -f -o - -oso-prepend-path=/root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../ -y /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
- /root/llvm-project/build/bin/FileCheck /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
- /root/llvm-project/build/bin/llvm-dwarfdump -a -
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/foo1.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:39.000000000)
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/foo2.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:43.000000000)
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/foo3.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:47.000000000)
warning: /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/../Inputs/String/main.o: timestamp mismatch between object file (2024-07-26 10:47:18.521297524) and debug map (2021-12-07 19:18:54.000000000)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
#0 0x00000000127f2d80 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/root/llvm-project/build/bin/dsymutil+0x127f2d80)
Fixing Rust build #1 0x00000000127eff8c SignalHandler(int) Signals.cpp:0:0
Fix a typo #2 0x00007c73f7d60444 (linux-vdso64.so.1+0x444)
Fix a compilation error on gcc8 #3 0x0000000012473e0c llvm::dwarf_linker::parallel::CompileUnit::allocateTypeDie(llvm::dwarf_linker::parallel::TypeEntryBody*, llvm::dwarf_linker::parallel::DIEGenerator&, llvm::dwarf::Tag, bool, bool) (/root/llvm-project/build/bin/dsymutil+0x12473e0c)
Fix a compilation error on gcc8 #4 0x00000000124744b8 llvm::dwarf_linker::parallel::CompileUnit::createTypeDIEandCloneAttributes(llvm::DWARFDebugInfoEntry const*, llvm::dwarf_linker::parallel::DIEGenerator&, llvm::StringMapEntry<std::atomicllvm::dwarf_linker::parallel::TypeEntryBody*>, llvm::dwarf_linker::parallel::TypeUnit) (/root/llvm-project/build/bin/dsymutil+0x124744b8)
Seedarg/member/wip #5 0x0000000012474e80 llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomicllvm::dwarf_linker::parallel::TypeEntryBody*>, unsigned long, std::optional, std::optional, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit) (/root/llvm-project/build/bin/dsymutil+0x12474e80)
Add check for matching HeaderFilter before emitting Diagnostic #6 0x0000000012474f28 llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomicllvm::dwarf_linker::parallel::TypeEntryBody*>, unsigned long, std::optional, std::optional, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit) (/root/llvm-project/build/bin/dsymutil+0x12474f28)
Random engine swap #7 0x0000000012474f28 llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomicllvm::dwarf_linker::parallel::TypeEntryBody*>, unsigned long, std::optional, std::optional, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit) (/root/llvm-project/build/bin/dsymutil+0x12474f28)
Update rwlock init #8 0x0000000012474f28 llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomicllvm::dwarf_linker::parallel::TypeEntryBody*>, unsigned long, std::optional, std::optional, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit) (/root/llvm-project/build/bin/dsymutil+0x12474f28)
Next80 merge test #9 0x0000000012474f28 llvm::dwarf_linker::parallel::CompileUnit::cloneDIE(llvm::DWARFDebugInfoEntry const*, llvm::StringMapEntry<std::atomicllvm::dwarf_linker::parallel::TypeEntryBody*>, unsigned long, std::optional, std::optional, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>&, llvm::dwarf_linker::parallel::TypeUnit) (/root/llvm-project/build/bin/dsymutil+0x12474f28)
Fix typo: 'soruce' -> 'source' #10 0x0000000012480644 llvm::dwarf_linker::parallel::CompileUnit::cloneAndEmit(std::optional<std::reference_wrapper<llvm::Triple const>>, llvm::dwarf_linker::parallel::TypeUnit*) (/root/llvm-project/build/bin/dsymutil+0x12480644)
fix for gcc 8 #11 0x000000001246215c llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::linkSingleCompileUnit(llvm::dwarf_linker::parallel::CompileUnit&, llvm::dwarf_linker::parallel::TypeUnit*, llvm::dwarf_linker::parallel::CompileUnit::Stage) (/root/llvm-project/build/bin/dsymutil+0x1246215c)
Fix "Allman" style example #12 0x0000000012752d8c std::_Function_handler<void (), llvm::parallelFor(unsigned long, unsigned long, llvm::function_ref<void (unsigned long)>)::'lambda0'()>::_M_invoke(std::_Any_data const&) Parallel.cpp:0:0 Defer diag #13 0x0000000012753280 std::_Function_handler<void (), llvm::parallel::TaskGroup::spawn(std::function<void ()>, bool)::'lambda'()>::_M_invoke(std::_Any_data const&) Parallel.cpp:0:0 WIP lifetime categories #14 0x0000000012753e04 std::thread::_State_impl<std::thread::_Invoker<std::tuple<llvm::parallel::detail::(anonymous namespace)::ThreadPoolExecutor::ThreadPoolExecutor(llvm::ThreadPoolStrategy)::'lambda'()::operator()() const::'lambda'()>>>::_M_run() Parallel.cpp:0:0 Fix ClangOpenCLBuiltinsImpl target not found #15 0x00007c73f7941330 (/lib64/libstdc++.so.6+0x161330)
__unique_stable_name implementation. #16 0x00007c73f7471524 start_thread (/lib64/libc.so.6+0xb1524)
error: -: The file was not recognized as a valid object file
FileCheck error: '' is empty.
FileCheck command line: /root/llvm-project/build/bin/FileCheck /root/llvm-project/llvm/test/tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
--
Failed Tests (2):
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-predictable-output2.test
LLVM :: tools/dsymutil/X86/DWARFLinkerParallel/odr-string.test
Testing Time: 877.44s
Total Discovered Tests: 58174
Skipped : 64 (0.11%)
Unsupported : 2060 (3.54%)
Passed : 55892 (96.08%)
Expectedly Failed: 156 (0.27%)
Failed : 2 (0.00%)
FAILED: test/CMakeFiles/check-llvm /root/llvm-project/build/test/CMakeFiles/check-llvm
cd /root/llvm-project/build/test && /usr/bin/python3.12 /root/llvm-project/build/./bin/llvm-lit -sv /root/llvm-project/build/test
ninja: build stopped: subcommand failed.`
compiling on host itself on Ubuntu 22.04 does not fail.
Using exactly the same Dockerfile on Ubuntu 22.04 x86_64 host it also builds fine.
Some of previous versions of LLVM (16.x for sure) built find in the same environment.