Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling LLVM 16/17 with Clang 16/17 and libc++ segfaults when linking with lld/mold/bfd and LTO (-flto) #63110

Closed
LinuxUserGD opened this issue Jun 4, 2023 · 2 comments
Labels
LTO Link time optimization (regular/full LTO or ThinLTO)

Comments

@LinuxUserGD
Copy link

LinuxUserGD commented Jun 4, 2023

$ clang --version
clang version 16.0.4
Target: x86_64-gentoo-linux-musl
Thread model: posix
InstalledDir: /usr/lib/llvm/16/bin
Configuration file: /etc/clang/clang.cfg

clang version 17.0.0
Target: x86_64-gentoo-linux-musl
Thread model: posix
InstalledDir: /usr/lib/llvm/17/bin
Configuration file: /etc/clang/clang.cfg
$ ./libc.so --version
musl libc (x86_64)
Version 1.2.4
Dynamic Program Loader
Usage: ./libc.so [options] [--] pathname [args]

Compiling LLVM fails with Clang and LTO (works with GCC or ThinLTO) on Gentoo Linux (x86_64 musl libc)
Edit: libexecinfo is not required

Steps to reproduce:

Flags:

CFLAGS="-O3 -pipe -march=skylake -mtune=skylake -D_FORTIFY_SOURCE=3 -gsplit-dwarf -fcf-protection -D_FORTIFY_SOURCE=3 -flto"
CXXFLAGS="${CFLAGS} -stdlib=libc++"
LDFLAGS="${CFLAGS} -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind -Wl,-O3 -Wl,--sort-common -Wl,--as-needed -Wl,--compress-debug-sections=zstd -Wl,-z,relro,-z,now -Wl,--undefined-version -Wl,--icf=all -Wl,--threads=2 -Wl,--plugin-opt=dwo_dir="

Error:

[3276/3359] : && /usr/bin/cmake -E rm -f lib/libLLVMExegesisX86.a && /usr/lib/llvm/16/bin/llvm-ar Dqc lib/libLLVMExegesisX86.a  tools/llvm-exegesis/lib/X86/CMakeFiles/LLVMExegesisX86.dir/Target.cpp.o tools/llvm-exegesis/lib/X86/CMakeFiles/LLVMExegesisX86.dir/X86Counter.cpp.o && /usr/lib/llvm/16/bin/llvm-ranlib -D lib/libLLVMExegesisX86.a && :
[3277/3359] : && /usr/lib/ccache/bin/clang++ -O3 -pipe -march=skylake -mtune=skylake -D_FORTIFY_SOURCE=3 -gsplit-dwarf -fcf-protection -D_FORTIFY_SOURCE=3 -flto -Wno-implicit-function-declaration -Wno-int-conversion -stdlib=libc++ -stdlib=libc++ -fPIC -fno-semantic-interposition -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 -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -pipe -march=skylake -mtune=skylake -D_FORTIFY_SOURCE=3 -gsplit-dwarf -fcf-protection -D_FORTIFY_SOURCE=3 -flto -Wno-implicit-function-declaration -Wno-int-conversion -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind -Wl,-O3 -Wl,--sort-common -Wl,--as-needed -Wl,--compress-debug-sections=zstd -Wl,-z,relro,-z,now -Wl,--undefined-version -Wl,--icf=all -Wl,--threads=2 -Wl,--plugin-opt=dwo_dir=             -L"/usr/lib/llvm/16/lib" -lPolly -lPollyISL -stdlib=libc++ -Wl,--color-diagnostics    -Wl,--gc-sections tools/llvm-exegesis/CMakeFiles/llvm-exegesis.dir/llvm-exegesis.cpp.o -o bin/llvm-exegesis  -Wl,-rpath,"\$ORIGIN/../lib:"  lib/libLLVMLanaiAsmParser.a  lib/libLLVMLoongArchAsmParser.a  lib/libLLVMMSP430AsmParser.a  lib/libLLVMX86AsmParser.a  lib/libLLVMVEAsmParser.a  lib/libLLVMAMDGPUAsmParser.a  lib/libLLVMRISCVAsmParser.a  lib/libLLVMARMAsmParser.a  lib/libLLVMPowerPCAsmParser.a  lib/libLLVMBPFAsmParser.a  lib/libLLVMAArch64AsmParser.a  lib/libLLVMMipsAsmParser.a  lib/libLLVMSparcAsmParser.a  lib/libLLVMAVRAsmParser.a  lib/libLLVMSystemZAsmParser.a  lib/libLLVMHexagonAsmParser.a  lib/libLLVMWebAssemblyAsmParser.a  lib/libLLVMLanaiCodeGen.a  lib/libLLVMLoongArchCodeGen.a  lib/libLLVMMSP430CodeGen.a  lib/libLLVMX86CodeGen.a  lib/libLLVMNVPTXCodeGen.a  lib/libLLVMVECodeGen.a  lib/libLLVMAMDGPUCodeGen.a  lib/libLLVMRISCVCodeGen.a  lib/libLLVMARMCodeGen.a  lib/libLLVMPowerPCCodeGen.a  lib/libLLVMBPFCodeGen.a  lib/libLLVMAArch64CodeGen.a  lib/libLLVMMipsCodeGen.a  lib/libLLVMSparcCodeGen.a  lib/libLLVMXCoreCodeGen.a  lib/libLLVMAVRCodeGen.a  lib/libLLVMSystemZCodeGen.a  lib/libLLVMHexagonCodeGen.a  lib/libLLVMWebAssemblyCodeGen.a  lib/libLLVMLanaiDesc.a  lib/libLLVMLoongArchDesc.a  lib/libLLVMMSP430Desc.a  lib/libLLVMX86Desc.a  lib/libLLVMNVPTXDesc.a  lib/libLLVMVEDesc.a  lib/libLLVMAMDGPUDesc.a  lib/libLLVMRISCVDesc.a  lib/libLLVMARMDesc.a  lib/libLLVMPowerPCDesc.a  lib/libLLVMBPFDesc.a  lib/libLLVMAArch64Desc.a  lib/libLLVMMipsDesc.a  lib/libLLVMSparcDesc.a  lib/libLLVMXCoreDesc.a  lib/libLLVMAVRDesc.a  lib/libLLVMSystemZDesc.a  lib/libLLVMHexagonDesc.a  lib/libLLVMWebAssemblyDesc.a  lib/libLLVMLanaiDisassembler.a  lib/libLLVMLoongArchDisassembler.a  lib/libLLVMMSP430Disassembler.a  lib/libLLVMX86Disassembler.a  lib/libLLVMVEDisassembler.a  lib/libLLVMAMDGPUDisassembler.a  lib/libLLVMRISCVDisassembler.a  lib/libLLVMARMDisassembler.a  lib/libLLVMPowerPCDisassembler.a  lib/libLLVMBPFDisassembler.a  lib/libLLVMAArch64Disassembler.a  lib/libLLVMMipsDisassembler.a  lib/libLLVMSparcDisassembler.a  lib/libLLVMXCoreDisassembler.a  lib/libLLVMAVRDisassembler.a  lib/libLLVMSystemZDisassembler.a  lib/libLLVMHexagonDisassembler.a  lib/libLLVMWebAssemblyDisassembler.a  lib/libLLVMLanaiInfo.a  lib/libLLVMLoongArchInfo.a  lib/libLLVMMSP430Info.a  lib/libLLVMX86Info.a  lib/libLLVMNVPTXInfo.a  lib/libLLVMVEInfo.a  lib/libLLVMAMDGPUInfo.a  lib/libLLVMRISCVInfo.a  lib/libLLVMARMInfo.a  lib/libLLVMPowerPCInfo.a  lib/libLLVMBPFInfo.a  lib/libLLVMAArch64Info.a  lib/libLLVMMipsInfo.a  lib/libLLVMSparcInfo.a  lib/libLLVMXCoreInfo.a  lib/libLLVMAVRInfo.a  lib/libLLVMSystemZInfo.a  lib/libLLVMHexagonInfo.a  lib/libLLVMWebAssemblyInfo.a  lib/libLLVMMC.a  lib/libLLVMMCParser.a  lib/libLLVMSupport.a  lib/libLLVMTargetParser.a  lib/libLLVMExegesis.a  lib/libLLVMExegesisX86.a  lib/libLLVMExegesisAArch64.a  lib/libLLVMExegesisPowerPC.a  lib/libLLVMExegesisMips.a  lib/libLLVMLanaiAsmParser.a  lib/libLLVMPasses.a  lib/libLLVMCoroutines.a  lib/libLLVMIRPrinter.a  lib/libLLVMMIRParser.a  lib/libLLVMHexagonAsmParser.a  lib/libLLVMipo.a  lib/libLLVMVectorize.a  lib/libLLVMFrontendOpenMP.a  lib/libLLVMLinker.a  lib/libLLVMLanaiDesc.a  lib/libLLVMLanaiInfo.a  lib/libLLVMLoongArchDesc.a  lib/libLLVMLoongArchInfo.a  lib/libLLVMAMDGPUDesc.a  lib/libLLVMAMDGPUInfo.a  lib/libLLVMAMDGPUUtils.a  lib/libLLVMRISCVDesc.a  lib/libLLVMRISCVInfo.a  lib/libLLVMARMDesc.a  lib/libLLVMARMInfo.a  lib/libLLVMARMUtils.a  lib/libLLVMSystemZDesc.a  lib/libLLVMSystemZInfo.a  lib/libLLVMHexagonDesc.a  lib/libLLVMHexagonInfo.a  lib/libLLVMWebAssemblyDesc.a  lib/libLLVMWebAssemblyInfo.a  lib/libLLVMWebAssemblyUtils.a  lib/libLLVMX86AsmParser.a  lib/libLLVMX86CodeGen.a  lib/libLLVMInstrumentation.a  lib/libLLVMX86Desc.a  lib/libLLVMX86Disassembler.a  lib/libLLVMX86Info.a  lib/libLLVMAArch64AsmParser.a  lib/libLLVMAArch64CodeGen.a  lib/libLLVMCFGuard.a  lib/libLLVMAArch64Disassembler.a  lib/libLLVMAArch64Desc.a  lib/libLLVMAArch64Info.a  lib/libLLVMAArch64Utils.a  lib/libLLVMPowerPCAsmParser.a  lib/libLLVMPowerPCCodeGen.a  lib/libLLVMPowerPCDesc.a  lib/libLLVMPowerPCDisassembler.a  lib/libLLVMPowerPCInfo.a  lib/libLLVMMipsAsmParser.a  lib/libLLVMMipsCodeGen.a  lib/libLLVMAsmPrinter.a  lib/libLLVMMipsDesc.a  lib/libLLVMMipsDisassembler.a  lib/libLLVMMipsInfo.a  lib/libLLVMExegesis.a  lib/libLLVMGlobalISel.a  lib/libLLVMSelectionDAG.a  lib/libLLVMCodeGen.a  lib/libLLVMScalarOpts.a  lib/libLLVMAggressiveInstCombine.a  lib/libLLVMInstCombine.a  lib/libLLVMBitWriter.a  lib/libLLVMObjCARCOpts.a  lib/libLLVMTransformUtils.a  lib/libLLVMMCDisassembler.a  lib/libLLVMMCA.a  lib/libLLVMMCJIT.a  lib/libLLVMExecutionEngine.a  lib/libLLVMTarget.a  lib/libLLVMAnalysis.a  lib/libLLVMProfileData.a  lib/libLLVMSymbolize.a  lib/libLLVMDebugInfoDWARF.a  lib/libLLVMDebugInfoPDB.a  lib/libLLVMDebugInfoMSF.a  lib/libLLVMOrcTargetProcess.a  lib/libLLVMOrcShared.a  lib/libLLVMObjectYAML.a  lib/libLLVMRuntimeDyld.a  lib/libLLVMObject.a  lib/libLLVMMCParser.a  lib/libLLVMMC.a  lib/libLLVMDebugInfoCodeView.a  lib/libLLVMIRReader.a  lib/libLLVMBitReader.a  lib/libLLVMAsmParser.a  lib/libLLVMTextAPI.a  lib/libLLVMCore.a  lib/libLLVMBinaryFormat.a  lib/libLLVMTargetParser.a  lib/libLLVMRemarks.a  lib/libLLVMBitstreamReader.a  lib/libLLVMSupport.a  -lrt  -ldl  -lexecinfo  -lm  /usr/lib/libz.so  /usr/lib/libzstd.so  /usr/lib/libtinfo.so  lib/libLLVMDemangle.a && :
samu: job failed: : && /usr/lib/ccache/bin/clang++ -fPIC -O3 -pipe -march=skylake -mtune=skylake -D_FORTIFY_SOURCE=3 -gsplit-dwarf -fcf-protection -D_FORTIFY_SOURCE=3 -flto -Wno-implicit-function-declaration -Wno-int-conversion -stdlib=libc++ -stdlib=libc++ -fPIC -fno-semantic-interposition -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 -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections  -O3 -pipe -march=skylake -mtune=skylake -D_FORTIFY_SOURCE=3 -gsplit-dwarf -fcf-protection -D_FORTIFY_SOURCE=3 -flto -Wno-implicit-function-declaration -Wno-int-conversion -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind -Wl,-O3 -Wl,--sort-common -Wl,--as-needed -Wl,--compress-debug-sections=zstd -Wl,-z,relro,-z,now -Wl,--undefined-version -Wl,--icf=all -Wl,--threads=2 -Wl,--plugin-opt=dwo_dir=             -L"/usr/lib/llvm/16/lib" -lPolly -lPollyISL -stdlib=libc++ -Wl,-z,defs -Wl,-z,nodelete -Wl,--color-diagnostics   -Wl,--gc-sections  -Xlinker -Bsymbolic-functions -shared -Wl,-soname,libLLVM-16+libcxx.so -o lib/libLLVM-16+libcxx.so tools/llvm-shlib/CMakeFiles/LLVM.dir/libllvm.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:"  -Wl,--version-script,/var/tmp/portage/sys-devel/llvm-16.0.5/work/llvm_build-abi_x86_64.amd64/./lib/tools/llvm-shlib/simple_version_script.map  -Wl,--whole-archive  lib/libLLVMDemangle.a  lib/libLLVMSupport.a  lib/libLLVMCore.a  lib/libLLVMFuzzerCLI.a  lib/libLLVMFuzzMutate.a  lib/libLLVMFileCheck.a  lib/libLLVMInterfaceStub.a  lib/libLLVMIRPrinter.a  lib/libLLVMIRReader.a  lib/libLLVMCodeGen.a  lib/libLLVMSelectionDAG.a  lib/libLLVMAsmPrinter.a  lib/libLLVMMIRParser.a  lib/libLLVMGlobalISel.a  lib/libLLVMBinaryFormat.a  lib/libLLVMBitReader.a  lib/libLLVMBitWriter.a  lib/libLLVMBitstreamReader.a  lib/libLLVMDWARFLinker.a  lib/libLLVMDWARFLinkerParallel.a  lib/libLLVMExtensions.a  lib/libLLVMFrontendHLSL.a  lib/libLLVMFrontendOpenACC.a  lib/libLLVMFrontendOpenMP.a  lib/libLLVMTransformUtils.a  lib/libLLVMInstrumentation.a  lib/libLLVMAggressiveInstCombine.a  lib/libLLVMInstCombine.a  lib/libLLVMScalarOpts.a  lib/libLLVMipo.a  lib/libLLVMVectorize.a  lib/libLLVMObjCARCOpts.a  lib/libLLVMCoroutines.a  lib/libLLVMCFGuard.a  lib/libLLVMLinker.a  lib/libLLVMAnalysis.a  lib/libLLVMLTO.a  lib/libLLVMMC.a  lib/libLLVMMCParser.a  lib/libLLVMMCDisassembler.a  lib/libLLVMMCA.a  lib/libLLVMObjCopy.a  lib/libLLVMObject.a  lib/libLLVMObjectYAML.a  lib/libLLVMOption.a  lib/libLLVMRemarks.a  lib/libLLVMDebugInfoDWARF.a  lib/libLLVMDebugInfoGSYM.a  lib/libLLVMDebugInfoLogicalView.a  lib/libLLVMDebugInfoMSF.a  lib/libLLVMDebugInfoCodeView.a  lib/libLLVMDebugInfoPDB.a  lib/libLLVMSymbolize.a  lib/libLLVMDWP.a  lib/libLLVMExecutionEngine.a  lib/libLLVMInterpreter.a  lib/libLLVMJITLink.a  lib/libLLVMMCJIT.a  lib/libLLVMOrcJIT.a  lib/libLLVMOrcShared.a  lib/libLLVMOrcTargetProcess.a  lib/libLLVMRuntimeDyld.a  lib/libLLVMTarget.a  lib/libLLVMLanaiCodeGen.a  lib/libLLVMLanaiAsmParser.a  lib/libLLVMLanaiDisassembler.a  lib/libLLVMLanaiDesc.a  lib/libLLVMLanaiInfo.a  lib/libLLVMLoongArchCodeGen.a  lib/libLLVMLoongArchAsmParser.a  lib/libLLVMLoongArchDisassembler.a  lib/libLLVMLoongArchDesc.a  lib/libLLVMLoongArchInfo.a  lib/libLLVMMSP430CodeGen.a  lib/libLLVMMSP430Desc.a  lib/libLLVMMSP430Info.a  lib/libLLVMMSP430AsmParser.a  lib/libLLVMMSP430Disassembler.a  lib/libLLVMX86CodeGen.a  lib/libLLVMX86AsmParser.a  lib/libLLVMX86Disassembler.a  lib/libLLVMX86TargetMCA.a  lib/libLLVMX86Desc.a  lib/libLLVMX86Info.a  lib/libLLVMNVPTXCodeGen.a  lib/libLLVMNVPTXDesc.a  lib/libLLVMNVPTXInfo.a  lib/libLLVMVECodeGen.a  lib/libLLVMVEAsmParser.a  lib/libLLVMVEDisassembler.a  lib/libLLVMVEInfo.a  lib/libLLVMVEDesc.a  lib/libLLVMAMDGPUCodeGen.a  lib/libLLVMAMDGPUAsmParser.a  lib/libLLVMAMDGPUDisassembler.a  lib/libLLVMAMDGPUTargetMCA.a  lib/libLLVMAMDGPUDesc.a  lib/libLLVMAMDGPUInfo.a  lib/libLLVMAMDGPUUtils.a  lib/libLLVMRISCVCodeGen.a  lib/libLLVMRISCVAsmParser.a  lib/libLLVMRISCVDisassembler.a  lib/libLLVMRISCVDesc.a  lib/libLLVMRISCVTargetMCA.a  lib/libLLVMRISCVInfo.a  lib/libLLVMARMCodeGen.a  lib/libLLVMARMAsmParser.a  lib/libLLVMARMDisassembler.a  lib/libLLVMARMDesc.a  lib/libLLVMARMInfo.a  lib/libLLVMARMUtils.a  lib/libLLVMPowerPCCodeGen.a  lib/libLLVMPowerPCAsmParser.a  lib/libLLVMPowerPCDisassembler.a  lib/libLLVMPowerPCDesc.a  lib/libLLVMPowerPCInfo.a  lib/libLLVMBPFCodeGen.a  lib/libLLVMBPFAsmParser.a  lib/libLLVMBPFDisassembler.a  lib/libLLVMBPFDesc.a  lib/libLLVMBPFInfo.a  lib/libLLVMAArch64CodeGen.a  lib/libLLVMAArch64AsmParser.a  lib/libLLVMAArch64Disassembler.a  lib/libLLVMAArch64Desc.a  lib/libLLVMAArch64Info.a  lib/libLLVMAArch64Utils.a  lib/libLLVMMipsCodeGen.a  lib/libLLVMMipsAsmParser.a  lib/libLLVMMipsDisassembler.a  lib/libLLVMMipsDesc.a  lib/libLLVMMipsInfo.a  lib/libLLVMSparcCodeGen.a  lib/libLLVMSparcAsmParser.a  lib/libLLVMSparcDisassembler.a  lib/libLLVMSparcDesc.a  lib/libLLVMSparcInfo.a  lib/libLLVMXCoreCodeGen.a  lib/libLLVMXCoreDisassembler.a  lib/libLLVMXCoreDesc.a  lib/libLLVMXCoreInfo.a  lib/libLLVMAVRCodeGen.a  lib/libLLVMAVRAsmParser.a  lib/libLLVMAVRDisassembler.a  lib/libLLVMAVRDesc.a  lib/libLLVMAVRInfo.a  lib/libLLVMSystemZCodeGen.a  lib/libLLVMSystemZAsmParser.a  lib/libLLVMSystemZDisassembler.a  lib/libLLVMSystemZDesc.a  lib/libLLVMSystemZInfo.a  lib/libLLVMHexagonCodeGen.a  lib/libLLVMHexagonAsmParser.a  lib/libLLVMHexagonDisassembler.a  lib/libLLVMHexagonDesc.a  lib/libLLVMHexagonInfo.a  lib/libLLVMWebAssemblyCodeGen.a  lib/libLLVMWebAssemblyAsmParser.a  lib/libLLVMWebAssemblyDisassembler.a  lib/libLLVMWebAssemblyDesc.a  lib/libLLVMWebAssemblyInfo.a  lib/libLLVMWebAssemblyUtils.a  lib/libLLVMAsmParser.a  lib/libLLVMLineEditor.a  lib/libLLVMProfileData.a  lib/libLLVMCoverage.a  lib/libLLVMPasses.a  lib/libLLVMTargetParser.a  lib/libLLVMTextAPI.a  lib/libLLVMDlltoolDriver.a  lib/libLLVMLibDriver.a  lib/libLLVMXRay.a  lib/libLLVMWindowsDriver.a  lib/libLLVMWindowsManifest.a  -Wl,--no-whole-archive  lib/libLLVMExtensions.a  /usr/lib/libffi.so  lib/libLLVMExecutionEngine.a  lib/libLLVMJITLink.a  lib/libLLVMOrcTargetProcess.a  lib/libLLVMOrcShared.a  lib/libLLVMRuntimeDyld.a  lib/libLLVMMSP430Desc.a  lib/libLLVMMSP430Info.a  lib/libLLVMVEInfo.a  lib/libLLVMMIRParser.a  lib/libLLVMIRPrinter.a  lib/libLLVMCoroutines.a  lib/libLLVMMCA.a  lib/libLLVMRISCVDesc.a  lib/libLLVMRISCVInfo.a  lib/libLLVMCFGuard.a  lib/libLLVMGlobalISel.a  lib/libLLVMipo.a  lib/libLLVMFrontendOpenMP.a  lib/libLLVMInstrumentation.a  lib/libLLVMVectorize.a  lib/libLLVMLinker.a  lib/libLLVMSelectionDAG.a  lib/libLLVMAsmPrinter.a  lib/libLLVMMCDisassembler.a  lib/libLLVMCodeGen.a  lib/libLLVMBitWriter.a  lib/libLLVMScalarOpts.a  lib/libLLVMAggressiveInstCombine.a  lib/libLLVMInstCombine.a  lib/libLLVMObjCARCOpts.a  lib/libLLVMTransformUtils.a  lib/libLLVMTarget.a  lib/libLLVMAnalysis.a  lib/libLLVMProfileData.a  lib/libLLVMSymbolize.a  lib/libLLVMDebugInfoDWARF.a  lib/libLLVMDebugInfoPDB.a  lib/libLLVMDebugInfoMSF.a  lib/libLLVMOption.a  lib/libLLVMObject.a  lib/libLLVMIRReader.a  lib/libLLVMAsmParser.a  lib/libLLVMBitReader.a  lib/libLLVMCore.a  lib/libLLVMRemarks.a  lib/libLLVMBitstreamReader.a  lib/libLLVMMCParser.a  lib/libLLVMMC.a  lib/libLLVMDebugInfoCodeView.a  lib/libLLVMTextAPI.a  lib/libLLVMBinaryFormat.a  lib/libLLVMTargetParser.a  lib/libLLVMSupport.a  lib/libLLVMDemangle.a  -lrt  -ldl  -lexecinfo  -lm  /usr/lib/libz.so  /usr/lib/libzstd.so  /usr/lib/libtinfo.so && :
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.	Program arguments: /usr/bin/x86_64-gentoo-linux-musl-ld.lld --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -shared -o lib/libLLVM-16+libcxx.so /lib/crti.o /usr/lib/llvm/16/bin/../../../../lib/clang/16/lib/linux/clang_rt.crtbegin-x86_64.o -L/usr/lib/llvm/16/lib -L/usr/lib/gcc/x86_64-gentoo-linux-musl/14 -L/usr/lib/gcc/x86_64-gentoo-linux-musl/14/../../../../x86_64-gentoo-linux-musl/lib -L/lib -L/usr/lib -plugin /usr/lib/llvm/16/bin/../lib/LLVMgold.so -plugin-opt=mcpu=skylake -plugin-opt=O3 -plugin-opt=dwo_dir=lib/libLLVM-16+libcxx.so_dwo -plugin-opt=-function-sections=1 -plugin-opt=-data-sections=1 -O3 --sort-common --as-needed --compress-debug-sections=zstd -z relro -z now --undefined-version --icf=all --threads=2 --plugin-opt=dwo_dir= -lPolly -lPollyISL -z defs -z nodelete --color-diagnostics --gc-sections -Bsymbolic-functions -soname libLLVM-16+libcxx.so tools/llvm-shlib/CMakeFiles/LLVM.dir/libllvm.cpp.o -rpath $ORIGIN/../lib: --version-script /var/tmp/portage/sys-devel/llvm-16.0.5/work/llvm_build-abi_x86_64.amd64/./lib/tools/llvm-shlib/simple_version_script.map --whole-archive lib/libLLVMDemangle.a lib/libLLVMSupport.a lib/libLLVMCore.a lib/libLLVMFuzzerCLI.a lib/libLLVMFuzzMutate.a lib/libLLVMFileCheck.a lib/libLLVMInterfaceStub.a lib/libLLVMIRPrinter.a lib/libLLVMIRReader.a lib/libLLVMCodeGen.a lib/libLLVMSelectionDAG.a lib/libLLVMAsmPrinter.a lib/libLLVMMIRParser.a lib/libLLVMGlobalISel.a lib/libLLVMBinaryFormat.a lib/libLLVMBitReader.a lib/libLLVMBitWriter.a lib/libLLVMBitstreamReader.a lib/libLLVMDWARFLinker.a lib/libLLVMDWARFLinkerParallel.a lib/libLLVMExtensions.a lib/libLLVMFrontendHLSL.a lib/libLLVMFrontendOpenACC.a lib/libLLVMFrontendOpenMP.a lib/libLLVMTransformUtils.a lib/libLLVMInstrumentation.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMInstCombine.a lib/libLLVMScalarOpts.a lib/libLLVMipo.a lib/libLLVMVectorize.a lib/libLLVMObjCARCOpts.a lib/libLLVMCoroutines.a lib/libLLVMCFGuard.a lib/libLLVMLinker.a lib/libLLVMAnalysis.a lib/libLLVMLTO.a lib/libLLVMMC.a lib/libLLVMMCParser.a lib/libLLVMMCDisassembler.a lib/libLLVMMCA.a lib/libLLVMObjCopy.a lib/libLLVMObject.a lib/libLLVMObjectYAML.a lib/libLLVMOption.a lib/libLLVMRemarks.a lib/libLLVMDebugInfoDWARF.a lib/libLLVMDebugInfoGSYM.a lib/libLLVMDebugInfoLogicalView.a lib/libLLVMDebugInfoMSF.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMDebugInfoPDB.a lib/libLLVMSymbolize.a lib/libLLVMDWP.a lib/libLLVMExecutionEngine.a lib/libLLVMInterpreter.a lib/libLLVMJITLink.a lib/libLLVMMCJIT.a lib/libLLVMOrcJIT.a lib/libLLVMOrcShared.a lib/libLLVMOrcTargetProcess.a lib/libLLVMRuntimeDyld.a lib/libLLVMTarget.a lib/libLLVMLanaiCodeGen.a lib/libLLVMLanaiAsmParser.a lib/libLLVMLanaiDisassembler.a lib/libLLVMLanaiDesc.a lib/libLLVMLanaiInfo.a lib/libLLVMLoongArchCodeGen.a lib/libLLVMLoongArchAsmParser.a lib/libLLVMLoongArchDisassembler.a lib/libLLVMLoongArchDesc.a lib/libLLVMLoongArchInfo.a lib/libLLVMMSP430CodeGen.a lib/libLLVMMSP430Desc.a lib/libLLVMMSP430Info.a lib/libLLVMMSP430AsmParser.a lib/libLLVMMSP430Disassembler.a lib/libLLVMX86CodeGen.a lib/libLLVMX86AsmParser.a lib/libLLVMX86Disassembler.a lib/libLLVMX86TargetMCA.a lib/libLLVMX86Desc.a lib/libLLVMX86Info.a lib/libLLVMNVPTXCodeGen.a lib/libLLVMNVPTXDesc.a lib/libLLVMNVPTXInfo.a lib/libLLVMVECodeGen.a lib/libLLVMVEAsmParser.a lib/libLLVMVEDisassembler.a lib/libLLVMVEInfo.a lib/libLLVMVEDesc.a lib/libLLVMAMDGPUCodeGen.a lib/libLLVMAMDGPUAsmParser.a lib/libLLVMAMDGPUDisassembler.a lib/libLLVMAMDGPUTargetMCA.a lib/libLLVMAMDGPUDesc.a lib/libLLVMAMDGPUInfo.a lib/libLLVMAMDGPUUtils.a lib/libLLVMRISCVCodeGen.a lib/libLLVMRISCVAsmParser.a lib/libLLVMRISCVDisassembler.a lib/libLLVMRISCVDesc.a lib/libLLVMRISCVTargetMCA.a lib/libLLVMRISCVInfo.a lib/libLLVMARMCodeGen.a lib/libLLVMARMAsmParser.a lib/libLLVMARMDisassembler.a lib/libLLVMARMDesc.a lib/libLLVMARMInfo.a lib/libLLVMARMUtils.a lib/libLLVMPowerPCCodeGen.a lib/libLLVMPowerPCAsmParser.a lib/libLLVMPowerPCDisassembler.a lib/libLLVMPowerPCDesc.a lib/libLLVMPowerPCInfo.a lib/libLLVMBPFCodeGen.a lib/libLLVMBPFAsmParser.a lib/libLLVMBPFDisassembler.a lib/libLLVMBPFDesc.a lib/libLLVMBPFInfo.a lib/libLLVMAArch64CodeGen.a lib/libLLVMAArch64AsmParser.a lib/libLLVMAArch64Disassembler.a lib/libLLVMAArch64Desc.a lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMMipsCodeGen.a lib/libLLVMMipsAsmParser.a lib/libLLVMMipsDisassembler.a lib/libLLVMMipsDesc.a lib/libLLVMMipsInfo.a lib/libLLVMSparcCodeGen.a lib/libLLVMSparcAsmParser.a lib/libLLVMSparcDisassembler.a lib/libLLVMSparcDesc.a lib/libLLVMSparcInfo.a lib/libLLVMXCoreCodeGen.a lib/libLLVMXCoreDisassembler.a lib/libLLVMXCoreDesc.a lib/libLLVMXCoreInfo.a lib/libLLVMAVRCodeGen.a lib/libLLVMAVRAsmParser.a lib/libLLVMAVRDisassembler.a lib/libLLVMAVRDesc.a lib/libLLVMAVRInfo.a lib/libLLVMSystemZCodeGen.a lib/libLLVMSystemZAsmParser.a lib/libLLVMSystemZDisassembler.a lib/libLLVMSystemZDesc.a lib/libLLVMSystemZInfo.a lib/libLLVMHexagonCodeGen.a lib/libLLVMHexagonAsmParser.a lib/libLLVMHexagonDisassembler.a lib/libLLVMHexagonDesc.a lib/libLLVMHexagonInfo.a lib/libLLVMWebAssemblyCodeGen.a lib/libLLVMWebAssemblyAsmParser.a lib/libLLVMWebAssemblyDisassembler.a lib/libLLVMWebAssemblyDesc.a lib/libLLVMWebAssemblyInfo.a lib/libLLVMWebAssemblyUtils.a lib/libLLVMAsmParser.a lib/libLLVMLineEditor.a lib/libLLVMProfileData.a lib/libLLVMCoverage.a lib/libLLVMPasses.a lib/libLLVMTargetParser.a lib/libLLVMTextAPI.a lib/libLLVMDlltoolDriver.a lib/libLLVMLibDriver.a lib/libLLVMXRay.a lib/libLLVMWindowsDriver.a lib/libLLVMWindowsManifest.a --no-whole-archive lib/libLLVMExtensions.a /usr/lib/libffi.so lib/libLLVMExecutionEngine.a lib/libLLVMJITLink.a lib/libLLVMOrcTargetProcess.a lib/libLLVMOrcShared.a lib/libLLVMRuntimeDyld.a lib/libLLVMMSP430Desc.a lib/libLLVMMSP430Info.a lib/libLLVMVEInfo.a lib/libLLVMMIRParser.a lib/libLLVMIRPrinter.a lib/libLLVMCoroutines.a lib/libLLVMMCA.a lib/libLLVMRISCVDesc.a lib/libLLVMRISCVInfo.a lib/libLLVMCFGuard.a lib/libLLVMGlobalISel.a lib/libLLVMipo.a lib/libLLVMFrontendOpenMP.a lib/libLLVMInstrumentation.a lib/libLLVMVectorize.a lib/libLLVMLinker.a lib/libLLVMSelectionDAG.a lib/libLLVMAsmPrinter.a lib/libLLVMMCDisassembler.a lib/libLLVMCodeGen.a lib/libLLVMBitWriter.a lib/libLLVMScalarOpts.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMInstCombine.a lib/libLLVMObjCARCOpts.a lib/libLLVMTransformUtils.a lib/libLLVMTarget.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a lib/libLLVMSymbolize.a lib/libLLVMDebugInfoDWARF.a lib/libLLVMDebugInfoPDB.a lib/libLLVMDebugInfoMSF.a lib/libLLVMOption.a lib/libLLVMObject.a lib/libLLVMIRReader.a lib/libLLVMAsmParser.a lib/libLLVMBitReader.a lib/libLLVMCore.a lib/libLLVMRemarks.a lib/libLLVMBitstreamReader.a lib/libLLVMMCParser.a lib/libLLVMMC.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMTextAPI.a lib/libLLVMBinaryFormat.a lib/libLLVMTargetParser.a lib/libLLVMSupport.a lib/libLLVMDemangle.a -lrt -ldl -lexecinfo -lm /usr/lib/libz.so /usr/lib/libzstd.so /usr/lib/libtinfo.so -lc++ -lm /usr/lib/llvm/16/bin/../../../../lib/clang/16/lib/linux/libclang_rt.builtins-x86_64.a --as-needed -lunwind --no-as-needed -lc /usr/lib/llvm/16/bin/../../../../lib/clang/16/lib/linux/libclang_rt.builtins-x86_64.a --as-needed -lunwind --no-as-needed /usr/lib/llvm/16/bin/../../../../lib/clang/16/lib/linux/clang_rt.crtend-x86_64.o /lib/crtn.o
#0 0x00007ff157bc4e32 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm/16/bin/../lib/libLLVM-16+libcxx.so+0x3bc4e32)
#1 0x00007ff157bc25e0 llvm::sys::RunSignalHandlers() (/usr/lib/llvm/16/bin/../lib/libLLVM-16+libcxx.so+0x3bc25e0)
clang-16: error: unable to execute command: Segmentation fault (core dumped)
clang-16: error: linker command failed due to signal (use -v to see invocation)

repro.tar.gz

@EugeneZelenko EugeneZelenko added LTO Link time optimization (regular/full LTO or ThinLTO) and removed new issue labels Jun 4, 2023
@kir68k
Copy link

kir68k commented Aug 2, 2023

Is this musl-specific? Building LLVM 16 and 17 works for me, where 17 is using the sys-devel/llvm-17.0.0.9999 package.

Have you tried without ccache passed to portage? I had build failures in the past because of it, especially when using mold, but it's possible it was a user error.

My info:

Compiler:

$ clang --version
clang version 16.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm/16/bin
Configuration file: /etc/clang/clang.cfg

glibc:

$ ldd --version
ldd (Gentoo 2.37-r4 (patchset 6)) 2.37

Portage:

CFLAGS="-O3 -march=x86-64-v3 -flto=thin -maes -pipe"
CXXFLAGS="${CFLAGS} -stdlib=libc++"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -fuse-ld=lld -rtlib=compiler-rt -unwindlib=libunwind"

@LinuxUserGD
Copy link
Author

Is this musl-specific?

CFLAGS="-O3 -march=x86-64-v3 -flto=thin -maes -pipe"

Might be specific to Gentoo musl/Clang or LLVM toolchain bootstrapped with GCC, not reproducible with ThinLTO

I could reproduce it with bfd, mold, lld linkers and -flto -gsplit-dwarf -stdlib=libc++ / -Wl,--icf=all -Wl,--compress-debug-sections=zstd -Wl,--plugin-opt=dwo_dir= (see https://bugs.gentoo.org/906906).

Seems to be fixed in latest LLVM 16.0.6 / 17.0.0 rc1 / 18.0.0_pre20230803 after initially recompiling both slots with LLVM 15 toolchain.

@LinuxUserGD LinuxUserGD closed this as not planned Won't fix, can't repro, duplicate, stale Aug 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
LTO Link time optimization (regular/full LTO or ThinLTO)
Projects
None yet
Development

No branches or pull requests

3 participants