- Notifications
You must be signed in to change notification settings - Fork 15.1k
Open
Labels
Description
(this is a continuation of ziglang/zig#25374)
This issue exists in LLVM 18(?) to 21 and there isn't any resolve yet. hopefully this gets fixed.
The Error:
2025-09-27T15:02:44.6910810Z FAILED: [code=1] bin/lld 2025-09-27T15:02:44.6942420Z : && /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/zig-as-llvm/bin/c++ -fstack-protector-strong -fsanitize=undefined -static -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -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 -Os -DNDEBUG -static -static -fno-pie -Wl,--color-diagnostics tools/lld/tools/lld/CMakeFiles/lld.dir/lld.cpp.o tools/lld/tools/lld/CMakeFiles/lld.dir/lld-driver.cpp.o -o bin/lld -Wl,-rpath,"\$ORIGIN/../lib:" lib/libLLVMSupport.a lib/libLLVMTargetParser.a lib/liblldCommon.a lib/liblldCOFF.a lib/liblldELF.a lib/liblldMachO.a lib/liblldMinGW.a lib/liblldWasm.a lib/liblldCOFF.a lib/libLLVMLibDriver.a lib/libLLVMWindowsDriver.a lib/libLLVMWindowsManifest.a lib/liblldCommon.a lib/libLLVMOption.a lib/libLLVMX86CodeGen.a lib/libLLVMX86AsmParser.a lib/libLLVMX86Desc.a lib/libLLVMX86Disassembler.a lib/libLLVMX86Info.a lib/libLLVMAArch64CodeGen.a lib/libLLVMAArch64AsmParser.a lib/libLLVMAArch64Disassembler.a lib/libLLVMAArch64Desc.a lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMARMCodeGen.a lib/libLLVMARMAsmParser.a lib/libLLVMARMDisassembler.a lib/libLLVMARMDesc.a lib/libLLVMARMInfo.a lib/libLLVMARMUtils.a lib/libLLVMRISCVCodeGen.a lib/libLLVMAsmPrinter.a lib/libLLVMGlobalISel.a lib/libLLVMSelectionDAG.a lib/libLLVMRISCVAsmParser.a lib/libLLVMRISCVDisassembler.a lib/libLLVMRISCVDesc.a lib/libLLVMMCDisassembler.a lib/libLLVMRISCVInfo.a lib/libLLVMLTO.a lib/libLLVMExtensions.a lib/libLLVMPasses.a lib/libLLVMCodeGen.a lib/libLLVMCGData.a lib/libLLVMCodeGenTypes.a lib/libLLVMTarget.a lib/libLLVMObjCARCOpts.a lib/libLLVMCFGuard.a lib/libLLVMIRPrinter.a lib/libLLVMCoroutines.a lib/libLLVMipo.a lib/libLLVMBitWriter.a lib/libLLVMInstrumentation.a lib/libLLVMVectorize.a lib/libLLVMSandboxIR.a lib/libLLVMLinker.a lib/libLLVMFrontendOpenMP.a lib/libLLVMScalarOpts.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMInstCombine.a lib/libLLVMFrontendOffloading.a lib/libLLVMFrontendAtomic.a lib/libLLVMHipStdPar.a lib/libLLVMTransformUtils.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a lib/libLLVMSymbolize.a lib/libLLVMDebugInfoDWARF.a lib/libLLVMDebugInfoPDB.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMDebugInfoMSF.a lib/libLLVMObject.a lib/libLLVMTextAPI.a lib/libLLVMMCParser.a lib/libLLVMMC.a lib/libLLVMIRReader.a lib/libLLVMBitReader.a lib/libLLVMAsmParser.a lib/libLLVMCore.a lib/libLLVMRemarks.a lib/libLLVMBitstreamReader.a lib/libLLVMBinaryFormat.a lib/libLLVMTargetParser.a lib/libLLVMDebugInfoBTF.a lib/libLLVMSupport.a -lrt -ldl -lm /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/output/x86_64-linux-muslx32/lib/libz.a /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/output/x86_64-linux-muslx32/lib/libzstd.a lib/libLLVMDemangle.a && cd /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/build/x86_64-linux-muslx32/tools/lld/tools/lld && /usr/local/bin/cmake -E create_symlink lld /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/build/x86_64-linux-muslx32/./bin/lld-link && cd /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/build/x86_64-linux-muslx32/tools/lld/tools/lld && /usr/local/bin/cmake -E create_symlink lld /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/build/x86_64-linux-muslx32/./bin/ld.lld && cd /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/build/x86_64-linux-muslx32/tools/lld/tools/lld && /usr/local/bin/cmake -E create_symlink lld /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/build/x86_64-linux-muslx32/./bin/ld64.lld && cd /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/build/x86_64-linux-muslx32/tools/lld/tools/lld && /usr/local/bin/cmake -E create_symlink lld /home/runner/work/llvm-custom-experimental/llvm-custom-experimental/build/x86_64-linux-muslx32/./bin/wasm-ld 2025-09-27T15:02:44.6981900Z ld.lld: error: lib/liblldELF.a(Relocations.cpp.o):(function void addRelativeReloc<true>(lld::elf::Ctx&, lld::elf::InputSectionBase&, unsigned long long, lld::elf::Symbol&, long long, lld::elf::RelExpr, lld::elf::RelType): .text._ZL16addRelativeRelocILb1EEvRN3lld3elf3CtxERNS1_16InputSectionBaseEyRNS1_6SymbolExNS1_7RelExprENS1_7RelTypeE+0xf6): R_X86_64_GOTTPOFF must be used in MOVQ or ADDQ instructions only 2025-09-27T15:02:44.6987419Z ld.lld: error: lib/liblldELF.a(Relocations.cpp.o):(function void lld::elf::RelocationBaseSection::addReloc<true>(lld::elf::DynamicReloc::Kind, lld::elf::RelType, lld::elf::InputSectionBase&, unsigned long long, lld::elf::Symbol&, long long, lld::elf::RelExpr, lld::elf::RelType): .text._ZN3lld3elf21RelocationBaseSection8addRelocILb1EEEvNS0_12DynamicReloc4KindENS0_7RelTypeERNS0_16InputSectionBaseEyRNS0_6SymbolExNS0_7RelExprES5_+0x137): R_X86_64_GOTTPOFF must be used in MOVQ or ADDQ instructions onlyCMake Flags I use:
cmake -S "$ROOTDIR/llvm" -B "${TARGET_BUILD_DIR}" -G Ninja \ -DCMAKE_INSTALL_PREFIX="${ROOTDIR}/llvm-${{matrix.target}}" \ -DCMAKE_PREFIX_PATH="${TARGET_INSTALL_DIR}" \ -DLLVM_TARGETS_TO_BUILD="X86;AArch64;ARM;RISCV" \ -DCMAKE_BUILD_TYPE=MinSizeRel \ -DCMAKE_CROSSCOMPILING=True \ -DCMAKE_SYSTEM_NAME=Linux \ -DLLVM_DEFAULT_TARGET_TRIPLE=${{matrix.target}} \ -DCMAKE_C_COMPILER="${TOOLCHAIN}/bin/cc" \ -DCMAKE_CXX_COMPILER="${TOOLCHAIN}/bin/c++" \ -DCMAKE_ASM_COMPILER="${TOOLCHAIN}/bin/cc" \ -DCMAKE_LINKER="${TOOLCHAIN}/bin/ld" \ -DCMAKE_OBJCOPY="${TOOLCHAIN}/bin/objcopy" \ -DCMAKE_AR="${TOOLCHAIN}/bin/ar" \ -DCMAKE_RANLIB="${TOOLCHAIN}/bin/ranlib" \ -DCMAKE_STRIP="${TOOLCHAIN}/bin/strip" \ -DCMAKE_C_FLAGS="-fstack-protector-strong -fsanitize=undefined -static" \ -DCMAKE_CXX_FLAGS="-fstack-protector-strong -fsanitize=undefined -static" \ -DCMAKE_EXE_LINKER_FLAGS="-static" \ -DLLVM_ENABLE_PROJECTS="${{inputs.projects}}" \ -DLLVM_ENABLE_ZLIB=FORCE_ON \ -DLLVM_ENABLE_ZSTD=FORCE_ON \ -DLLVM_USE_STATIC_ZSTD=ON \ -DLLVM_BUILD_STATIC=ON \ -DCLANG_ENABLE_ARCMT=OFF \ -DLLVM_LINK_LLVM_DYLIB=OFF \ -DLIBCLANG_BUILD_STATIC=ON \ -DCMAKE_SKIP_INSTALL_RPATH=TRUE \ -DBUILD_SHARED_LIBS=OFF \ -DLLVM_INCLUDE_BENCHMARKS=OFF \ -DLLVM_BUILD_BENCHMARKS=OFF \ -DLLVM_INCLUDE_EXAMPLES=OFF \ -DLLVM_BUILD_EXAMPLES=OFF \ -DLLVM_BUILD_TESTS=OFF \ -DLLVM_BUILD_TOOLS=ON \ -DLLVM_INCLUDE_TESTS=OFF \ -DCLANG_INCLUDE_TESTS=OFF \ -DCLANG_BUILD_TESTS=OFF \ -DLLVM_TOOL_C_TEST_BUILD=OFF \ -DCLANG_TOOL_CLANG_IMPORT_TEST_BUILD=OFF \ -DCLANG_TOOL_APINOTES_TEST_BUILD=OFF \ -DCLANG_TOOL_ARCMT_TEST_BUILD=OFF \ -DCLANG_TOOL_C_ARCMT_TEST_BUILD=OFF \ -DCLANG_TOOL_C_INDEX_TEST_BUILD=OFF \ -DLLVM_PARALLEL_LINK_JOBS=1 \ -DLLVM_ENABLE_PIC=OFF \ -DLLVM_ENABLE_LIBCXX=OFF \ -DLLVM_ENABLE_LLVM_LIBC=OFF \ -DLLVM_ENABLE_UNWIND_TABLES=OFF \ -DLLVM_ENABLE_EH=OFF \ -DLLVM_ENABLE_RTTI=OFF \ -DLLVM_ENABLE_LTO=OFF \ -DLLVM_ENABLE_TERMINFO=OFF \ -DLLVM_ENABLE_MODULES=OFF \ -DLLVM_ENABLE_PEDANTIC=OFF \ -DLLVM_ENABLE_FFI=OFF \ -DLLVM_ENABLE_LIBPFM=OFF \ -DLLVM_ENABLE_LIBEDIT=OFF \ -DLLVM_ENABLE_LIBXML2=OFF \ -DLLVM_ENABLE_CURL=OFF \ -DLLVM_ENABLE_THREADS=ON \ -DLLVM_VERSION_SUFFIX="" \ -DCLANG_VENDOR="Android" \ -DCLANG_REPOSITORY_STRING="https://github.com/${{ github.repository_owner }}/llvm-custom" \ -DPACKAGE_BUGREPORT="https://github.com/${{ github.repository_owner }}/android-ndk-custom/issues/"