[llvm] Avoid linking llvm-cfi-verify to duplicate libs
authorMichał Górny <mgorny@gentoo.org>
Tue, 16 Jun 2020 10:16:52 +0000 (12:16 +0200)
committerMichał Górny <mgorny@gentoo.org>
Wed, 17 Jun 2020 17:00:26 +0000 (19:00 +0200)
Fix the CMake rules for LLVMCFIVerify library not to pull duplicate
LLVM .a libraries when linking to the dylib.  This prevents problems
due to duplicate symbols and apparently fixes mingw32.

This is an alternative approach to D44650 that just forces .a libraries
instead.  However, there doesn't seem to be any reason to do that.

Differential Revision: https://reviews.llvm.org/D81921

llvm/tools/llvm-cfi-verify/lib/CMakeLists.txt

index 82ca42e..41d55ed 100644 (file)
@@ -7,13 +7,17 @@ add_library(LLVMCFIVerify
   )
 
 llvm_update_compile_flags(LLVMCFIVerify)
-llvm_map_components_to_libnames(libs
-  DebugInfoDWARF
-  MC
-  MCParser
-  Object
-  Support
-  Symbolize
-  )
+if (LLVM_LINK_LLVM_DYLIB)
+  set(libs LLVM)
+else()
+  llvm_map_components_to_libnames(libs
+    DebugInfoDWARF
+    MC
+    MCParser
+    Object
+    Support
+    Symbolize
+    )
+endif()
 target_link_libraries(LLVMCFIVerify ${libs})
 set_target_properties(LLVMCFIVerify PROPERTIES FOLDER "Libraries")