Skip to content

Debug mode libclang fails to link on aarch64 Snapdragon X1E #165678

@mochalins

Description

@mochalins

When attempting to build the release/21.x branch on a Snapdragon X1 Elite computer (running Ubuntu Linux 25.10, kernel 6.17.0-6-generic) in debug mode, compilation always fails on linking libclang.so.21.1.5:

[1/192] Linking CXX static library lib/libLLVMFuzzerCLI.a
[2/192] Linking CXX shared library lib/libclang.so.21.1.5
FAILED: lib/libclang.so.21.1.5 
: && /usr/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -fno-common -Woverloaded-virtual -g  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/mocha/Software/llvm/build/./lib   -Wl,--version-script,/home/mocha/Software/llvm/clang/tools/libclang/libclang.map -Wl,--dependency-file=tools/clang/tools/libclang/CMakeFiles/libclang.dir/link.d -shared -Wl,-soname,libclang.so.21.1 -o lib/libclang.so.21.1.5 tools/clang/tools/libclang/CMakeFiles/libclang.dir/BuildSystem.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCXX.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCodeCompletion.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexDiagnostic.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexHigh.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexInclusionStack.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexUSRs.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexer.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXComment.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCursor.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXExtractAPI.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXIndexDataConsumer.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXCompilationDatabase.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXLoadedDiagnostic.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXSourceLocation.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXStoredDiagnostic.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXString.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/CXType.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/Indexing.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/FatalErrorHandler.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/Rewrite.cpp.o tools/clang/tools/libclang/CMakeFiles/libclang.dir/Obsolete.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:"  lib/libclangAST.a  lib/libclangBasic.a  lib/libclangDriver.a  lib/libclangExtractAPI.a  lib/libclangFrontend.a  lib/libclangIndex.a  lib/libclangLex.a  lib/libclangRewrite.a  lib/libclangSema.a  lib/libclangSerialization.a  lib/libclangTooling.a  -ldl  lib/libLLVMAArch64CodeGen.a  lib/libLLVMAArch64AsmParser.a  lib/libLLVMAArch64Desc.a  lib/libLLVMAArch64Disassembler.a  lib/libLLVMAArch64Info.a  lib/libLLVMAArch64Utils.a  lib/libLLVMAMDGPUCodeGen.a  lib/libLLVMAMDGPUAsmParser.a  lib/libLLVMAMDGPUDesc.a  lib/libLLVMAMDGPUDisassembler.a  lib/libLLVMAMDGPUInfo.a  lib/libLLVMAMDGPUUtils.a  lib/libLLVMARMCodeGen.a  lib/libLLVMARMAsmParser.a  lib/libLLVMARMDesc.a  lib/libLLVMARMDisassembler.a  lib/libLLVMARMInfo.a  lib/libLLVMARMUtils.a  lib/libLLVMAVRCodeGen.a  lib/libLLVMAVRAsmParser.a  lib/libLLVMAVRDesc.a  lib/libLLVMAVRDisassembler.a  lib/libLLVMAVRInfo.a  lib/libLLVMBPFCodeGen.a  lib/libLLVMBPFAsmParser.a  lib/libLLVMBPFDesc.a  lib/libLLVMBPFDisassembler.a  lib/libLLVMBPFInfo.a  lib/libLLVMHexagonCodeGen.a  lib/libLLVMHexagonAsmParser.a  lib/libLLVMHexagonDesc.a  lib/libLLVMHexagonDisassembler.a  lib/libLLVMHexagonInfo.a  lib/libLLVMLanaiCodeGen.a  lib/libLLVMLanaiAsmParser.a  lib/libLLVMLanaiDesc.a  lib/libLLVMLanaiDisassembler.a  lib/libLLVMLanaiInfo.a  lib/libLLVMLoongArchCodeGen.a  lib/libLLVMLoongArchAsmParser.a  lib/libLLVMLoongArchDesc.a  lib/libLLVMLoongArchDisassembler.a  lib/libLLVMLoongArchInfo.a  lib/libLLVMMipsCodeGen.a  lib/libLLVMMipsAsmParser.a  lib/libLLVMMipsDesc.a  lib/libLLVMMipsDisassembler.a  lib/libLLVMMipsInfo.a  lib/libLLVMMSP430CodeGen.a  lib/libLLVMMSP430AsmParser.a  lib/libLLVMMSP430Desc.a  lib/libLLVMMSP430Disassembler.a  lib/libLLVMMSP430Info.a  lib/libLLVMNVPTXCodeGen.a  lib/libLLVMNVPTXDesc.a  lib/libLLVMNVPTXInfo.a  lib/libLLVMPowerPCCodeGen.a  lib/libLLVMPowerPCAsmParser.a  lib/libLLVMPowerPCDesc.a  lib/libLLVMPowerPCDisassembler.a  lib/libLLVMPowerPCInfo.a  lib/libLLVMRISCVCodeGen.a  lib/libLLVMRISCVAsmParser.a  lib/libLLVMRISCVDesc.a  lib/libLLVMRISCVDisassembler.a  lib/libLLVMRISCVInfo.a  lib/libLLVMSparcCodeGen.a  lib/libLLVMSparcAsmParser.a  lib/libLLVMSparcDesc.a  lib/libLLVMSparcDisassembler.a  lib/libLLVMSparcInfo.a  lib/libLLVMSPIRVCodeGen.a  lib/libLLVMSPIRVDesc.a  lib/libLLVMSPIRVInfo.a  lib/libLLVMSystemZCodeGen.a  lib/libLLVMSystemZAsmParser.a  lib/libLLVMSystemZDesc.a  lib/libLLVMSystemZDisassembler.a  lib/libLLVMSystemZInfo.a  lib/libLLVMVECodeGen.a  lib/libLLVMVEAsmParser.a  lib/libLLVMVEDesc.a  lib/libLLVMVEDisassembler.a  lib/libLLVMVEInfo.a  lib/libLLVMWebAssemblyCodeGen.a  lib/libLLVMWebAssemblyAsmParser.a  lib/libLLVMWebAssemblyDesc.a  lib/libLLVMWebAssemblyDisassembler.a  lib/libLLVMWebAssemblyInfo.a  lib/libLLVMWebAssemblyUtils.a  lib/libLLVMX86CodeGen.a  lib/libLLVMX86AsmParser.a  lib/libLLVMX86Desc.a  lib/libLLVMX86Disassembler.a  lib/libLLVMX86Info.a  lib/libLLVMXCoreCodeGen.a  lib/libLLVMXCoreDesc.a  lib/libLLVMXCoreDisassembler.a  lib/libLLVMXCoreInfo.a  lib/libLLVMCore.a  lib/libLLVMSupport.a  lib/libLLVMTargetParser.a  lib/libclangInstallAPI.a  lib/libLLVMTextAPIBinaryReader.a  lib/libclangFrontend.a  lib/libclangDriver.a  lib/libLLVMWindowsDriver.a  lib/libclangParse.a  lib/libclangSerialization.a  lib/libclangSema.a  lib/libclangAPINotes.a  lib/libclangEdit.a  lib/libclangAnalysis.a  lib/libclangSupport.a  lib/libLLVMOption.a  lib/libclangFormat.a  lib/libclangToolingInclusions.a  lib/libclangToolingCore.a  lib/libclangRewrite.a  lib/libclangASTMatchers.a  lib/libclangAST.a  lib/libLLVMFrontendHLSL.a  lib/libclangLex.a  lib/libclangBasic.a  lib/libLLVMAArch64Desc.a  lib/libLLVMAArch64Info.a  lib/libLLVMAArch64Utils.a  lib/libLLVMMIRParser.a  lib/libLLVMAMDGPUDesc.a  lib/libLLVMAMDGPUInfo.a  lib/libLLVMAMDGPUUtils.a  lib/libLLVMARMDesc.a  lib/libLLVMARMInfo.a  lib/libLLVMARMUtils.a  lib/libLLVMPasses.a  lib/libLLVMHipStdPar.a  lib/libLLVMCoroutines.a  lib/libLLVMHexagonDesc.a  lib/libLLVMHexagonInfo.a  lib/libLLVMLanaiDesc.a  lib/libLLVMLanaiInfo.a  lib/libLLVMLoongArchDesc.a  lib/libLLVMLoongArchInfo.a  lib/libLLVMipo.a  lib/libLLVMFrontendOpenMP.a  lib/libLLVMFrontendOffloading.a  lib/libLLVMObjectYAML.a  lib/libLLVMFrontendAtomic.a  lib/libLLVMFrontendDirective.a  lib/libLLVMVectorize.a  lib/libLLVMSandboxIR.a  lib/libLLVMLinker.a  lib/libLLVMRISCVDesc.a  lib/libLLVMRISCVInfo.a  lib/libLLVMSPIRVAnalysis.a  lib/libLLVMSystemZDesc.a  lib/libLLVMSystemZInfo.a  lib/libLLVMWebAssemblyDesc.a  lib/libLLVMWebAssemblyInfo.a  lib/libLLVMCFGuard.a  lib/libLLVMGlobalISel.a  lib/libLLVMIRPrinter.a  lib/libLLVMInstrumentation.a  lib/libLLVMAsmPrinter.a  lib/libLLVMSelectionDAG.a  lib/libLLVMCodeGen.a  lib/libLLVMScalarOpts.a  lib/libLLVMAggressiveInstCombine.a  lib/libLLVMInstCombine.a  lib/libLLVMCGData.a  lib/libLLVMBitWriter.a  lib/libLLVMObjCARCOpts.a  lib/libLLVMTarget.a  lib/libLLVMTransformUtils.a  lib/libLLVMAnalysis.a  lib/libLLVMProfileData.a  lib/libLLVMSymbolize.a  lib/libLLVMDebugInfoGSYM.a  lib/libLLVMDebugInfoPDB.a  lib/libLLVMDebugInfoCodeView.a  lib/libLLVMDebugInfoMSF.a  lib/libLLVMDebugInfoBTF.a  lib/libLLVMDebugInfoDWARF.a  lib/libLLVMObject.a  lib/libLLVMMCParser.a  lib/libLLVMIRReader.a  lib/libLLVMBitReader.a  lib/libLLVMAsmParser.a  lib/libLLVMCore.a  lib/libLLVMRemarks.a  lib/libLLVMBitstreamReader.a  lib/libLLVMTextAPI.a  lib/libLLVMDebugInfoDWARFLowLevel.a  lib/libLLVMCodeGenTypes.a  lib/libLLVMMCDisassembler.a  lib/libLLVMMC.a  lib/libLLVMBinaryFormat.a  lib/libLLVMTargetParser.a  lib/libLLVMSupport.a  lib/libLLVMDemangle.a  -lrt  -ldl  -lm  /usr/lib/aarch64-linux-gnu/libz.so  /usr/lib/aarch64-linux-gnu/libzstd.so && :
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o: in function `__gnu_cxx::__exchange_and_add(int volatile*, int)':
/usr/include/c++/15/ext/atomicity.h:68:(.text._ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv[_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv]+0x144): relocation truncated to fit: R_AARCH64_CALL26 against symbol `__aarch64_ldadd4_acq_rel' defined in .text section in /usr/lib/gcc/aarch64-linux-gnu/15/libgcc.a(ldadd_4_4.o)
/usr/include/c++/15/ext/atomicity.h:68:(.text._ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE19_M_release_last_useEv[_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE19_M_release_last_useEv]+0xb0): relocation truncated to fit: R_AARCH64_CALL26 against symbol `__aarch64_ldadd4_acq_rel' defined in .text section in /usr/lib/gcc/aarch64-linux-gnu/15/libgcc.a(ldadd_4_4.o)
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o: in function `__gnu_cxx::__atomic_add(int volatile*, int)':
/usr/include/c++/15/ext/atomicity.h:73:(.text._ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE15_M_add_ref_copyEv[_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE15_M_add_ref_copyEv]+0x88): relocation truncated to fit: R_AARCH64_CALL26 against symbol `__aarch64_ldadd4_acq_rel' defined in .text section in /usr/lib/gcc/aarch64-linux-gnu/15/libgcc.a(ldadd_4_4.o)
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o: in function `std::__atomic_base::fetch_sub(int, std::memory_order)':
/usr/include/c++/15/bits/atomic_base.h:641:(.text._ZNK4llvm24ThreadSafeRefCountedBaseINS_3vfs10FileSystemEE7ReleaseEv[_ZNK4llvm24ThreadSafeRefCountedBaseINS_3vfs10FileSystemEE7ReleaseEv]+0x30): relocation truncated to fit: R_AARCH64_CALL26 against symbol `__aarch64_ldadd4_acq_rel' defined in .text section in /usr/lib/gcc/aarch64-linux-gnu/15/libgcc.a(ldadd_4_4.o)
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndex.cpp.o: in function `std::__atomic_base::fetch_add(int, std::memory_order)':
/usr/include/c++/15/bits/atomic_base.h:631:(.text._ZNK4llvm24ThreadSafeRefCountedBaseINS_3vfs10FileSystemEE6RetainEv[_ZNK4llvm24ThreadSafeRefCountedBaseINS_3vfs10FileSystemEE6RetainEv]+0x28): relocation truncated to fit: R_AARCH64_CALL26 against symbol `__aarch64_ldadd4_acq_rel' defined in .text section in /usr/lib/gcc/aarch64-linux-gnu/15/libgcc.a(ldadd_4_4.o)
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCodeCompletion.cpp.o: in function `std::__atomic_base::operator++()':
/usr/include/c++/15/bits/atomic_base.h:398:(.text._ZNSt13__atomic_baseIjEppEv[_ZNSt13__atomic_baseIjEppEv]+0x20): relocation truncated to fit: R_AARCH64_CALL26 against symbol `__aarch64_ldadd4_acq_rel' defined in .text section in /usr/lib/gcc/aarch64-linux-gnu/15/libgcc.a(ldadd_4_4.o)
tools/clang/tools/libclang/CMakeFiles/libclang.dir/CIndexCodeCompletion.cpp.o: in function `std::__atomic_base::operator--()':
/usr/include/c++/15/bits/atomic_base.h:406:(.text._ZNSt13__atomic_baseIjEmmEv[_ZNSt13__atomic_baseIjEmmEv]+0x1c): relocation truncated to fit: R_AARCH64_CALL26 against symbol `__aarch64_ldadd4_acq_rel' defined in .text section in /usr/lib/gcc/aarch64-linux-gnu/15/libgcc.a(ldadd_4_4.o)
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

CMake build invocation is as follows:

cmake ../llvm \
  -DCMAKE_INSTALL_PREFIX=$HOME/.local \
  -DCMAKE_BUILD_TYPE=Debug \
  -DLLVM_ENABLE_PROJECTS="lld;clang" \
  -DLLVM_ENABLE_LIBXML2=OFF \
  -DLLVM_ENABLE_TERMINFO=OFF \
  -DLLVM_ENABLE_LIBEDIT=OFF \
  -DLLVM_ENABLE_ASSERTIONS=ON \
  -DLLVM_PARALLEL_LINK_JOBS=1 \
  -G Ninja

Metadata

Metadata

Assignees

No one assigned

    Labels

    build-problemclang:as-a-librarylibclang and C++ APIplatform:linuxquestionA question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions