فهرست منبع

IPO: Support duplicate object names in large archives

Apply the fix from commit 1ec6485c6a (Support duplicate object names in
large archives, 2014-04-16, v3.1.0-rc1~629^2) to the IPO-specific
archiving rules.  Use "quick append" instead of "replace".

Fixes: #25675
Issue: #14874
Ruslan Baratov 1 سال پیش
والد
کامیت
2d72a861d7
5فایلهای تغییر یافته به همراه10 افزوده شده و 10 حذف شده
  1. 2 2
      Modules/Compiler/Clang.cmake
  2. 2 2
      Modules/Compiler/GNU.cmake
  3. 2 2
      Modules/Compiler/IBMClang.cmake
  4. 2 2
      Modules/Compiler/IntelLLVM.cmake
  5. 2 2
      Modules/Compiler/LCC.cmake

+ 2 - 2
Modules/Compiler/Clang.cmake

@@ -95,11 +95,11 @@ else()
     endif()
 
     set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
-      "\"${__ar}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
+      "\"${__ar}\" qc <TARGET> <LINK_FLAGS> <OBJECTS>"
     )
 
     set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
-      "\"${__ar}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
+      "\"${__ar}\" q <TARGET> <LINK_FLAGS> <OBJECTS>"
     )
 
     set(CMAKE_${lang}_ARCHIVE_FINISH_IPO

+ 2 - 2
Modules/Compiler/GNU.cmake

@@ -168,11 +168,11 @@ macro(__compiler_gnu lang)
     #
     # [1]: https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Optimize-Options.html
     set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
-      "\"${CMAKE_${lang}_COMPILER_AR}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
+      "\"${CMAKE_${lang}_COMPILER_AR}\" qc <TARGET> <LINK_FLAGS> <OBJECTS>"
     )
 
     set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
-      "\"${CMAKE_${lang}_COMPILER_AR}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
+      "\"${CMAKE_${lang}_COMPILER_AR}\" q <TARGET> <LINK_FLAGS> <OBJECTS>"
     )
 
     set(CMAKE_${lang}_ARCHIVE_FINISH_IPO

+ 2 - 2
Modules/Compiler/IBMClang.cmake

@@ -58,11 +58,11 @@ macro(__compiler_ibmclang lang)
   set(__ranlib "${CMAKE_${lang}_COMPILER_RANLIB}")
 
   set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
-    "\"${__ar}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
+    "\"${__ar}\" qc <TARGET> <LINK_FLAGS> <OBJECTS>"
   )
 
   set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
-    "\"${__ar}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
+    "\"${__ar}\" q <TARGET> <LINK_FLAGS> <OBJECTS>"
   )
 
   set(CMAKE_${lang}_ARCHIVE_FINISH_IPO

+ 2 - 2
Modules/Compiler/IntelLLVM.cmake

@@ -19,8 +19,8 @@ set(__pch_header_OBJCXX "objective-c++-header")
 macro(__compiler_intel_llvm_common lang)
   set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
   set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
-  set(CMAKE_${lang}_ARCHIVE_CREATE_IPO "\"${CMAKE_${lang}_COMPILER_AR}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>")
-  set(CMAKE_${lang}_ARCHIVE_APPEND_IPO "\"${CMAKE_${lang}_COMPILER_AR}\" r <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_${lang}_ARCHIVE_CREATE_IPO "\"${CMAKE_${lang}_COMPILER_AR}\" qc <TARGET> <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_${lang}_ARCHIVE_APPEND_IPO "\"${CMAKE_${lang}_COMPILER_AR}\" q <TARGET> <LINK_FLAGS> <OBJECTS>")
   set(CMAKE_${lang}_ARCHIVE_FINISH_IPO "\"${CMAKE_${lang}_COMPILER_RANLIB}\" <TARGET>")
 endmacro()
 

+ 2 - 2
Modules/Compiler/LCC.cmake

@@ -65,11 +65,11 @@ macro(__compiler_lcc lang)
   set(CMAKE_${lang}_COMPILE_OPTIONS_IPO ${__lto_flags})
 
   set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
-    "\"${CMAKE_${lang}_COMPILER_AR}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
+    "\"${CMAKE_${lang}_COMPILER_AR}\" qc <TARGET> <LINK_FLAGS> <OBJECTS>"
   )
 
   set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
-    "\"${CMAKE_${lang}_COMPILER_AR}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
+    "\"${CMAKE_${lang}_COMPILER_AR}\" q <TARGET> <LINK_FLAGS> <OBJECTS>"
   )
 
   set(CMAKE_${lang}_ARCHIVE_FINISH_IPO