[llvm] [ORC] Use __unw_add_dynamic_eh_frame_section/__unw_remove_dynamic_eh_ frame_section in RegisterEHFrames.cpp (PR #212260)
Devon Loehr via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 30 09:00:23 PDT 2026
DKLoehr wrote:
We've started to see link failures in chromium when building clang against older versions of the mac SDK:
```
[5358/6057] Linking CXX executable bin/lli
FAILED: bin/lli
: && /Volumes/Work/s/w/ir/cache/builder/src/third_party/llvm-build-tools/pinned-clang/bin/clang++ -DLIBXML_STATIC -fcrash-diagnostics-dir=/Volumes/Work/s/w/ir/cache/builder/src/out/clang-crashreports -DLLVM_FORCE_HEAD_REVISION -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 -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -Xclang -fno-pch-timestamp -O3 -DNDEBUG -arch arm64 -isysroot /Volumes/Work/s/w/ir/cache/xcode_ios_14c18.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -mmacosx-version-min=10.12 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -fno-pie -fuse-ld=lld -Wl,--color-diagnostics -Wl,-dead_strip -rdynamic tools/lli/CMakeFiles/lli.dir/lli.cpp.o -o bin/lli -Wl,-rpath, at loader_path/../lib lib/libLLVMCodeGen.a lib/libLLVMCore.a lib/libLLVMExecutionEngine.a lib/libLLVMIRReader.a lib/libLLVMInterpreter.a lib/libLLVMJITLink.a lib/libLLVMMC.a lib/libLLVMMCJIT.a lib/libLLVMObject.a lib/libLLVMOrcJIT.a lib/libLLVMOrcDebugging.a lib/libLLVMOrcShared.a lib/libLLVMOrcTargetProcess.a lib/libLLVMPasses.a lib/libLLVMRuntimeDyld.a lib/libLLVMSelectionDAG.a lib/libLLVMSupport.a lib/libLLVMTarget.a lib/libLLVMTargetParser.a lib/libLLVMTransformUtils.a lib/libLLVMAArch64CodeGen.a lib/libLLVMAArch64AsmParser.a lib/libLLVMAArch64Desc.a lib/libLLVMAArch64Disassembler.a lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMOrcJIT.a lib/libLLVMExecutionEngine.a lib/libLLVMJITLink.a lib/libLLVMOrcTargetProcess.a lib/libLLVMRuntimeDyld.a lib/libLLVMWindowsDriver.a lib/libLLVMOption.a lib/libLLVMOrcShared.a lib/libLLVMPasses.a lib/libLLVMCoroutines.a lib/libLLVMHipStdPar.a lib/libLLVMipo.a lib/libLLVMFrontendOpenMP.a lib/libLLVMFrontendOffloading.a lib/libLLVMObjectYAML.a lib/libLLVMFrontendAtomic.a lib/libLLVMFrontendDirective.a lib/libLLVMLinker.a lib/libLLVMIRPrinter.a lib/libLLVMInstrumentation.a lib/libLLVMAsmPrinter.a lib/libLLVMCFGuard.a lib/libLLVMGlobalISel.a lib/libLLVMSelectionDAG.a lib/libLLVMCodeGen.a lib/libLLVMCGData.a lib/libLLVMBitWriter.a lib/libLLVMObjCARCOpts.a lib/libLLVMScalarOpts.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMInstCombine.a lib/libLLVMTarget.a lib/libLLVMVectorize.a lib/libLLVMTransformUtils.a lib/libLLVMSandboxIR.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a lib/libLLVMSymbolize.a lib/libLLVMDebugInfoGSYM.a lib/libLLVMDebugInfoDWARF.a lib/libLLVMDebugInfoPDB.a lib/libLLVMObject.a lib/libLLVMIRReader.a lib/libLLVMAsmParser.a lib/libLLVMBitReader.a lib/libLLVMTextAPI.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMDebugInfoMSF.a lib/libLLVMDebugInfoBTF.a lib/libLLVMFrontendHLSL.a lib/libLLVMCore.a lib/libLLVMRemarks.a lib/libLLVMBitstreamReader.a lib/libLLVMMCParser.a lib/libLLVMAArch64Desc.a lib/libLLVMCodeGenTypes.a lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMMCDisassembler.a lib/libLLVMMC.a lib/libLLVMDebugInfoDWARFLowLevel.a lib/libLLVMBinaryFormat.a lib/libLLVMTargetParser.a lib/libLLVMSupport.a lib/libLLVMDemangle.a -lm /Volumes/Work/s/w/ir/cache/xcode_ios_14c18.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/lib/libz.tbd /Volumes/Work/s/w/ir/cache/builder/src/third_party/llvm-build-tools/zstd-1.5.5/cmake_build/install/lib/libzstd.a && :
ld64.lld: warning: -no_pie ignored for arm64
ld64.lld: error: undefined symbol: __unw_add_dynamic_eh_frame_section
>>> referenced by lib/libLLVMOrcTargetProcess.a(RegisterEHFrames.cpp.o):(symbol llvm::orc::registerEHFrameSection(void const*, unsigned long)+0x38)
>>> referenced by lib/libLLVMOrcTargetProcess.a(RegisterEHFrames.cpp.o):(symbol llvm::orc::registerEHFrameSection(void const*, unsigned long)+0x4)
>>> referenced by lib/libLLVMOrcTargetProcess.a(RegisterEHFrames.cpp.o):(symbol llvm::orc::registerEHFrameSection(void const*, unsigned long)+0x0)
>>> referenced 7 more times
```
[Chromium bug](https://crbug.com/567920093) for reference.
It seems like these early versions don't export the symbols yet.
https://github.com/llvm/llvm-project/pull/212260
More information about the llvm-commits
mailing list