diff --git a/src/coreclr/nativeaot/Runtime/Full/CMakeLists.txt b/src/coreclr/nativeaot/Runtime/Full/CMakeLists.txt index b55aef8e5b5af4..5e4ff7296e163c 100644 --- a/src/coreclr/nativeaot/Runtime/Full/CMakeLists.txt +++ b/src/coreclr/nativeaot/Runtime/Full/CMakeLists.txt @@ -42,10 +42,16 @@ if(NATIVEAOT_PRIVATE_LIBUNWIND_SOURCES) NAMES "ld.lld${NATIVEAOT_PRIVATE_LIBUNWIND_LINKER_VERSION}${NATIVEAOT_PRIVATE_LIBUNWIND_LINKER_EXTENSION}" ld.lld PATHS "${NATIVEAOT_PRIVATE_LIBUNWIND_TOOL_DIR}" NO_DEFAULT_PATH) - if(NOT NATIVEAOT_PRIVATE_LIBUNWIND_LD_LLD) - message(FATAL_ERROR "ld.lld is required to privatize NativeAOT libunwind symbols") + if(NATIVEAOT_PRIVATE_LIBUNWIND_LD_LLD) + set(NATIVEAOT_PRIVATE_LIBUNWIND_LINKER "${NATIVEAOT_PRIVATE_LIBUNWIND_LD_LLD}") + else() + find_program(NATIVEAOT_PRIVATE_LIBUNWIND_LD NAMES ld) + if(NATIVEAOT_PRIVATE_LIBUNWIND_LD) + set(NATIVEAOT_PRIVATE_LIBUNWIND_LINKER "${NATIVEAOT_PRIVATE_LIBUNWIND_LD}") + else() + message(FATAL_ERROR "A linker supporting relocatable linking is required to privatize NativeAOT libunwind symbols") + endif() endif() - set(NATIVEAOT_PRIVATE_LIBUNWIND_LINKER "${NATIVEAOT_PRIVATE_LIBUNWIND_LD_LLD}") endif() add_custom_command(