Summary: | sys-devel/llvm fails to build with Clang with -rtlib=compiler-rt (default with sys-devel/clang[default-compiler-rt]) (except with -stdlib=libc++ and sys-libs/llvm-libunwind transitively used through sys-libs/libcxx{,abi}[libunwind]) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Arfrever Frehtes Taifersar Arahesis <arfrever.fta> |
Component: | Current packages | Assignee: | LLVM support project <llvm> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | paolo.pedroni, StormByte, telans |
Priority: | Normal | Keywords: | PullRequest |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
See Also: | https://github.com/gentoo/gentoo/pull/19793 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 745039 | ||
Attachments: |
Log for -stdlib=libstdc++ -rtlib=compiler-rt
Log for -stdlib=libc++ -rtlib=compiler-rt + sys-libs/libcxx{,abi}[libunwind] + sys-libs/libunwind Log for -stdlib=libc++ -rtlib=compiler-rt + sys-libs/libcxx{,abi}[libunwind] + sys-libs/llvm-libunwind Patch |
Description
Arfrever Frehtes Taifersar Arahesis
2020-05-14 09:40:43 UTC
Created attachment 638840 [details]
Log for -stdlib=libstdc++ -rtlib=compiler-rt
: && /usr/lib/llvm/11/bin/x86_64-pc-linux-gnu-clang++ -march=native -O2 -frecord-command-line -fstack-clash-protection -fstack-protector-all -mretpoline -pipe -Qn -Wall -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wno-comment -Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 -Wl,--gc-sections -Wl,--sort-common -Wl,-z,now -rtlib=compiler-rt -Wl,-allow-shlib-undefined -Wl,-rpath-link,/var/tmp/portage/sys-devel/llvm-11.0.0.9999/work/llvm-abi_x86_64.amd64/./lib64 -Wl,-O3 -Wl,--gc-sections utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmWriterEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmWriterInst.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/Attributes.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CallingConvEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeEmitterGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenDAGPatterns.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenHwModes.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenInstruction.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenMapTable.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenRegisters.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenSchedule.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CodeGenTarget.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherOpt.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcher.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DFAEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/DisassemblerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/ExegesisEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/FastISelEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/FixedLenDecoderEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/GICombinerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/GlobalISelEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/InfoByHwMode.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/InstrInfoEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/InstrDocsEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/IntrinsicEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/OptEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/OptParserEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/OptRSTEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/PredicateExpander.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/PseudoLoweringEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/RISCVCompressInstEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/RegisterBankEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/RegisterInfoEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SDNodeProperties.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SearchableTableEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SubtargetEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/SubtargetFeatureInfo.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/TableGen.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/Types.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86DisassemblerTables.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86EVEX2VEXTablesEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86FoldTablesEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86ModRMFilters.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/X86RecognizableInstr.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/WebAssemblyDisassemblerEmitter.cpp.o utils/TableGen/CMakeFiles/llvm-tblgen.dir/CTagsEmitter.cpp.o -o bin/llvm-tblgen -Wl,-rpath,"\$ORIGIN/../lib64" lib64/libLLVMSupport.a lib64/libLLVMTableGen.a -lpthread lib64/libLLVMTableGenGlobalISel.a lib64/libLLVMTableGen.a lib64/libLLVMSupport.a -lz -lrt -ldl -ltinfo -lpthread -lm lib64/libLLVMDemangle.a && :
clang-11: warning: argument unused during compilation: '-Qn' [-Wunused-command-line-argument]
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o: in function `llvm::cl::opt<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, false, llvm::cl::parser<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::opt<char [13], llvm::cl::initializer<char [1]>, llvm::cl::desc, llvm::cl::cat>(char const (&) [13], llvm::cl::initializer<char [1]> const&, llvm::cl::desc const&, llvm::cl::cat const&)':
AsmMatcherEmitter.cpp:(.text._ZN4llvm2cl3optINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ENS0_6parserIS7_EEEC2IJA13_cNS0_11initializerIA1_cEENS0_4descENS0_3catEEEEDpRKT_[_ZN4llvm2cl3optINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ENS0_6parserIS7_EEEC2IJA13_cNS0_11initializerIA1_cEENS0_4descENS0_3catEEEEDpRKT_]+0x21a): undefined reference to `_Unwind_Resume'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o: in function `(anonymous namespace)::AsmMatcherEmitter::run(llvm::raw_ostream&)':
AsmMatcherEmitter.cpp:(.text._ZN12_GLOBAL__N_117AsmMatcherEmitter3runERN4llvm11raw_ostreamE+0x158b4): undefined reference to `_Unwind_Resume'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o: in function `(anonymous namespace)::AsmMatcherInfo::buildInfo()':
AsmMatcherEmitter.cpp:(.text._ZN12_GLOBAL__N_114AsmMatcherInfo9buildInfoEv+0x75fb): undefined reference to `_Unwind_Resume'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o: in function `emitConvertFuncs(llvm::CodeGenTarget&, llvm::StringRef, std::vector<std::unique_ptr<(anonymous namespace)::MatchableInfo, std::default_delete<(anonymous namespace)::MatchableInfo> >, std::allocator<std::unique_ptr<(anonymous namespace)::MatchableInfo, std::default_delete<(anonymous namespace)::MatchableInfo> > > >&, bool, bool, llvm::raw_ostream&)':
AsmMatcherEmitter.cpp:(.text._ZL16emitConvertFuncsRN4llvm13CodeGenTargetENS_9StringRefERSt6vectorISt10unique_ptrIN12_GLOBAL__N_113MatchableInfoESt14default_deleteIS6_EESaIS9_EEbbRNS_11raw_ostreamE+0x714e): undefined reference to `_Unwind_Resume'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o: in function `llvm::StringToOffsetTable::EmitString(llvm::raw_ostream&)':
AsmMatcherEmitter.cpp:(.text._ZN4llvm19StringToOffsetTable10EmitStringERNS_11raw_ostreamE[_ZN4llvm19StringToOffsetTable10EmitStringERNS_11raw_ostreamE]+0x41b): undefined reference to `_Unwind_Resume'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: utils/TableGen/CMakeFiles/llvm-tblgen.dir/AsmMatcherEmitter.cpp.o:AsmMatcherEmitter.cpp:(.text._ZNK4llvm20SubtargetFeatureInfo14getEnumBitNameB5cxx11Ev[_ZNK4llvm20SubtargetFeatureInfo14getEnumBitNameB5cxx11Ev]+0x1fa): more undefined references to `_Unwind_Resume' follow
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
Created attachment 638842 [details]
Log for -stdlib=libc++ -rtlib=compiler-rt + sys-libs/libcxx{,abi}[libunwind] + sys-libs/libunwind
: && /usr/lib/llvm/11/bin/x86_64-pc-linux-gnu-clang++ -march=native -O2 -frecord-command-line -fstack-clash-protection -fstack-protector-all -mretpoline -pipe -Qn -Wall -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wno-comment -Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 -Wl,--gc-sections -Wl,--sort-common -Wl,-z,now -rtlib=compiler-rt -Wl,-allow-shlib-undefined -Wl,-rpath-link,/var/tmp/portage/sys-devel/llvm-11.0.0.9999/work/llvm-abi_x86_64.amd64/./lib64 -Wl,-O3 -Wl,--gc-sections tools/lli/ChildTarget/CMakeFiles/lli-child-target.dir/ChildTarget.cpp.o -o bin/lli-child-target -Wl,-rpath,"\$ORIGIN/../lib64" lib64/libLLVMOrcError.a lib64/libLLVMOrcJIT.a lib64/libLLVMRuntimeDyld.a lib64/libLLVMSupport.a -lpthread lib64/libLLVMOrcError.a lib64/libLLVMExecutionEngine.a lib64/libLLVMRuntimeDyld.a lib64/libLLVMJITLink.a lib64/libLLVMPasses.a lib64/libLLVMCodeGen.a lib64/libLLVMCoroutines.a lib64/libLLVMipo.a lib64/libLLVMInstrumentation.a lib64/libLLVMScalarOpts.a lib64/libLLVMAggressiveInstCombine.a lib64/libLLVMInstCombine.a lib64/libLLVMVectorize.a lib64/libLLVMFrontendOpenMP.a lib64/libLLVMIRReader.a lib64/libLLVMAsmParser.a lib64/libLLVMLinker.a lib64/libLLVMTarget.a lib64/libLLVMTransformUtils.a lib64/libLLVMBitWriter.a lib64/libLLVMAnalysis.a lib64/libLLVMObject.a lib64/libLLVMBitReader.a lib64/libLLVMMCParser.a lib64/libLLVMMC.a lib64/libLLVMDebugInfoCodeView.a lib64/libLLVMDebugInfoMSF.a lib64/libLLVMTextAPI.a lib64/libLLVMProfileData.a lib64/libLLVMCore.a lib64/libLLVMBinaryFormat.a lib64/libLLVMRemarks.a lib64/libLLVMBitstreamReader.a lib64/libLLVMSupport.a -lz -lrt -ldl -ltinfo -lpthread -lm lib64/libLLVMDemangle.a && :
clang-11: warning: argument unused during compilation: '-Qn' [-Wunused-command-line-argument]
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: lib64/libLLVMRuntimeDyld.a(RTDyldMemoryManager.cpp.o): in function `llvm::RTDyldMemoryManager::registerEHFramesInProcess(unsigned char*, unsigned long)':
RTDyldMemoryManager.cpp:(.text._ZN4llvm19RTDyldMemoryManager25registerEHFramesInProcessEPhm+0x12): undefined reference to `__register_frame'
/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: lib64/libLLVMRuntimeDyld.a(RTDyldMemoryManager.cpp.o): in function `llvm::RTDyldMemoryManager::deregisterEHFramesInProcess(unsigned char*, unsigned long)':
RTDyldMemoryManager.cpp:(.text._ZN4llvm19RTDyldMemoryManager27deregisterEHFramesInProcessEPhm+0x12): undefined reference to `__deregister_frame'
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
Created attachment 638844 [details]
Log for -stdlib=libc++ -rtlib=compiler-rt + sys-libs/libcxx{,abi}[libunwind] + sys-libs/llvm-libunwind
Created attachment 638846 [details, diff]
Patch
Sounds like this is the same as https://bugs.gentoo.org/702344 Should be fixed with: https://github.com/gentoo/gentoo/pull/19793 The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=297becbde98426212589bfff287eb05ae8bbf40f commit 297becbde98426212589bfff287eb05ae8bbf40f Author: Theo Anderson <telans@posteo.de> AuthorDate: 2021-04-10 23:37:57 +0000 Commit: Michał Górny <mgorny@gentoo.org> CommitDate: 2021-06-10 20:19:52 +0000 sys-devel/clang: support default unwindlib Closes: https://bugs.gentoo.org/702344 Closes: https://bugs.gentoo.org/722978 Signed-off-by: Theo Anderson <telans@posteo.de> Closes: https://github.com/gentoo/gentoo/pull/19793 Signed-off-by: Michał Górny <mgorny@gentoo.org> sys-devel/clang/clang-12.0.0-r1.ebuild | 9 +++++++-- sys-devel/clang/clang-12.0.1.9999.ebuild | 9 +++++++-- sys-devel/clang/clang-12.0.1_rc1.ebuild | 9 +++++++-- sys-devel/clang/clang-13.0.0.9999.ebuild | 9 +++++++-- 4 files changed, 28 insertions(+), 8 deletions(-) |