Просмотр исходного кода

BinUtils: Avoid llvm-ar on Apple platforms

Since commit cf82300a63 (BinUtils: Clarify search logic and make it more
consistent, 2021-05-27, v3.21.0-rc1~119^2~2) we correctly prefer the
more-specific name `llvm-ar` over `ar` when using Clang.  However, on
Apple platforms, `llvm-ar` does not generate a symbol table that the
Apple linker accepts.  Fall back to `ar` on Apple platforms.

Fixes: #23269
Brad King 3 лет назад
Родитель
Сommit
29ea94e17c
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      Modules/CMakeFindBinUtils.cmake

+ 4 - 1
Modules/CMakeFindBinUtils.cmake

@@ -172,7 +172,10 @@ else()
     else()
       list(PREPEND _CMAKE_LINKER_NAMES "ld.lld")
     endif()
-    list(PREPEND _CMAKE_AR_NAMES "llvm-ar")
+    if(NOT APPLE)
+      # llvm-ar does not generate a symbol table that the Apple ld64 linker accepts.
+      list(PREPEND _CMAKE_AR_NAMES "llvm-ar")
+    endif()
     list(PREPEND _CMAKE_RANLIB_NAMES "llvm-ranlib")
     if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}" VERSION_GREATER_EQUAL 11)
       # llvm-strip versions prior to 11 require additional flags we do not yet add.