[lld] r291432 - [lld][cmake] Fix LLVM_LINK_LLVM_DYLIB build

Pavel Labath via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 9 01:57:09 PST 2017


Author: labath
Date: Mon Jan  9 03:57:08 2017
New Revision: 291432

URL: http://llvm.org/viewvc/llvm-project?rev=291432&view=rev
Log:
[lld][cmake] Fix LLVM_LINK_LLVM_DYLIB build

Summary:
Lld's build had a couple of issues which prevented a successfull
LLVM_LINK_LLVM_DYLIB compilation.

- add_llvm_library vs llvm_add_library: One adds a library to libLLVM.so, other
  one doesn't. Lld was using the wrong one, causing symbols to be mupltiply
  defined in things linking to libLLVM.
- confusion when to use LINK_LIBS vs LINK_COMPONENTS in llvm_add_library
- not using LLVM_LINK_COMPONENTS for add_lld_tool

With these fixes lld compiles and it's test suite passes both in
LLVM_LINK_LLVM_DYLIB mode and without it.

Reviewers: ruiu, beanz

Subscribers: llvm-commits, mgorny

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

Modified:
    lld/trunk/cmake/modules/AddLLD.cmake
    lld/trunk/lib/Config/CMakeLists.txt
    lld/trunk/lib/Core/CMakeLists.txt
    lld/trunk/lib/Driver/CMakeLists.txt
    lld/trunk/lib/ReaderWriter/CMakeLists.txt
    lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt
    lld/trunk/lib/ReaderWriter/YAML/CMakeLists.txt
    lld/trunk/tools/lld/CMakeLists.txt

Modified: lld/trunk/cmake/modules/AddLLD.cmake
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/cmake/modules/AddLLD.cmake?rev=291432&r1=291431&r2=291432&view=diff
==============================================================================
--- lld/trunk/cmake/modules/AddLLD.cmake (original)
+++ lld/trunk/cmake/modules/AddLLD.cmake Mon Jan  9 03:57:08 2017
@@ -1,5 +1,5 @@
 macro(add_lld_library name)
-  add_llvm_library(${name} ${ARGN})
+  llvm_add_library(${name} ${ARGN})
   set_target_properties(${name} PROPERTIES FOLDER "lld libraries")
 endmacro(add_lld_library)
 

Modified: lld/trunk/lib/Config/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Config/CMakeLists.txt?rev=291432&r1=291431&r2=291432&view=diff
==============================================================================
--- lld/trunk/lib/Config/CMakeLists.txt (original)
+++ lld/trunk/lib/Config/CMakeLists.txt Mon Jan  9 03:57:08 2017
@@ -4,6 +4,6 @@ add_lld_library(lldConfig
   ADDITIONAL_HEADER_DIRS
   ${LLD_INCLUDE_DIR}/lld/Config
 
-  LINK_LIBS
-    LLVMSupport
+  LINK_COMPONENTS
+    Support
   )

Modified: lld/trunk/lib/Core/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/CMakeLists.txt?rev=291432&r1=291431&r2=291432&view=diff
==============================================================================
--- lld/trunk/lib/Core/CMakeLists.txt (original)
+++ lld/trunk/lib/Core/CMakeLists.txt Mon Jan  9 03:57:08 2017
@@ -12,6 +12,6 @@ add_lld_library(lldCore
   ADDITIONAL_HEADER_DIRS
   ${LLD_INCLUDE_DIR}/lld/Core
 
-  LINK_LIBS
-    LLVMSupport
+  LINK_COMPONENTS
+    Support
   )

Modified: lld/trunk/lib/Driver/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/CMakeLists.txt?rev=291432&r1=291431&r2=291432&view=diff
==============================================================================
--- lld/trunk/lib/Driver/CMakeLists.txt (original)
+++ lld/trunk/lib/Driver/CMakeLists.txt Mon Jan  9 03:57:08 2017
@@ -8,15 +8,17 @@ add_lld_library(lldDriver
   ADDITIONAL_HEADER_DIRS
   ${LLD_INCLUDE_DIR}/lld/Driver
 
+  LINK_COMPONENTS
+    Object
+    Option
+    Support
+
   LINK_LIBS
     lldConfig
     lldMachO
     lldCore
     lldReaderWriter
     lldYAML
-    LLVMObject
-    LLVMOption
-    LLVMSupport
   )
 
 add_dependencies(lldDriver DriverOptionsTableGen)

Modified: lld/trunk/lib/ReaderWriter/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/CMakeLists.txt?rev=291432&r1=291431&r2=291432&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/CMakeLists.txt (original)
+++ lld/trunk/lib/ReaderWriter/CMakeLists.txt Mon Jan  9 03:57:08 2017
@@ -11,9 +11,11 @@ add_lld_library(lldReaderWriter
   ADDITIONAL_HEADER_DIRS
   ${LLD_INCLUDE_DIR}/lld/ReaderWriter
 
+  LINK_COMPONENTS
+    Object
+    Support
+
   LINK_LIBS
     lldCore
     lldYAML
-    LLVMObject
-    LLVMSupport
   )

Modified: lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt?rev=291432&r1=291431&r2=291432&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt (original)
+++ lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt Mon Jan  9 03:57:08 2017
@@ -18,13 +18,16 @@ add_lld_library(lldMachO
   StubsPass.cpp
   TLVPass.cpp
   WriterMachO.cpp
+
+  LINK_COMPONENTS
+    DebugInfoDWARF
+    Object
+    Support
+    Demangle
+
   LINK_LIBS
     lldCore
     lldYAML
-    LLVMDebugInfoDWARF
-    LLVMObject
-    LLVMSupport
-    LLVMDemangle
     ${PTHREAD_LIB}
   )
 

Modified: lld/trunk/lib/ReaderWriter/YAML/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/YAML/CMakeLists.txt?rev=291432&r1=291431&r2=291432&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/YAML/CMakeLists.txt (original)
+++ lld/trunk/lib/ReaderWriter/YAML/CMakeLists.txt Mon Jan  9 03:57:08 2017
@@ -1,6 +1,9 @@
 add_lld_library(lldYAML
   ReaderWriterYAML.cpp
+
+  LINK_COMPONENTS
+    Support
+
   LINK_LIBS
     lldCore
-    LLVMSupport
   )

Modified: lld/trunk/tools/lld/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/tools/lld/CMakeLists.txt?rev=291432&r1=291431&r2=291432&view=diff
==============================================================================
--- lld/trunk/tools/lld/CMakeLists.txt (original)
+++ lld/trunk/tools/lld/CMakeLists.txt Mon Jan  9 03:57:08 2017
@@ -1,3 +1,7 @@
+set(LLVM_LINK_COMPONENTS
+  Support
+  )
+
 add_lld_tool(lld
   lld.cpp
   )
@@ -6,7 +10,6 @@ target_link_libraries(lld
   lldDriver
   lldCOFF
   lldELF
-  LLVMSupport
   )
 
 install(TARGETS lld




More information about the llvm-commits mailing list