[BOLT][CMAKE] Fix DYLIB build
authorAmir Ayupov <aaupov@users.noreply.github.com>
Fri, 13 May 2022 20:14:45 +0000 (13:14 -0700)
committerAmir Ayupov <aaupov@fb.com>
Fri, 13 May 2022 20:27:21 +0000 (13:27 -0700)
Move BOLT libraries out of `LLVM_LINK_COMPONENTS` to `target_link_libraries`.
Addresses issue #55432.

Reviewed By: rafauler

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

bolt/lib/Core/CMakeLists.txt
bolt/lib/Passes/CMakeLists.txt
bolt/lib/Profile/CMakeLists.txt
bolt/lib/Rewrite/CMakeLists.txt
bolt/lib/RuntimeLibs/CMakeLists.txt
bolt/tools/driver/CMakeLists.txt
bolt/tools/heatmap/CMakeLists.txt
bolt/unittests/Core/CMakeLists.txt

index 9e57662..8184f25 100644 (file)
@@ -1,5 +1,4 @@
 set(LLVM_LINK_COMPONENTS
-  BOLTUtils
   DebugInfoDWARF
   Demangle
   MC
@@ -26,3 +25,8 @@ add_llvm_library(LLVMBOLTCore
   LINK_LIBS
   ${LLVM_PTHREAD_LIB}
   )
+
+target_link_libraries(LLVMBOLTCore
+  PRIVATE
+  LLVMBOLTUtils
+  )
index 95d872d..bb29626 100644 (file)
@@ -51,8 +51,12 @@ add_llvm_library(LLVMBOLTPasses
 
   LINK_COMPONENTS
   AsmPrinter
-  BOLTCore
-  BOLTUtils
   MC
   Support
   )
+
+target_link_libraries(LLVMBOLTPasses
+  PRIVATE
+  LLVMBOLTCore
+  LLVMBOLTUtils
+  )
index b150196..f4397e3 100644 (file)
@@ -8,8 +8,12 @@ add_llvm_library(LLVMBOLTProfile
   YAMLProfileWriter.cpp
 
   LINK_COMPONENTS
-  BOLTCore
-  BOLTPasses
-  BOLTUtils
   Support
   )
+
+target_link_libraries(LLVMBOLTProfile
+  PRIVATE
+  LLVMBOLTCore
+  LLVMBOLTPasses
+  LLVMBOLTUtils
+  )
index dfef547..053fa9a 100644 (file)
@@ -1,9 +1,4 @@
 set(LLVM_LINK_COMPONENTS
-  BOLTCore
-  BOLTPasses
-  BOLTProfile
-  BOLTRuntimeLibs
-  BOLTUtils
   DebugInfoDWARF
   DWP
   ExecutionEngine
@@ -12,13 +7,21 @@ set(LLVM_LINK_COMPONENTS
   Support
   )
 
+set(TARGET_LINK_LIBRARIES
+  LLVMBOLTCore
+  LLVMBOLTPasses
+  LLVMBOLTProfile
+  LLVMBOLTRuntimeLibs
+  LLVMBOLTUtils
+  )
+
 if ("AArch64" IN_LIST LLVM_TARGETS_TO_BUILD)
-  list(APPEND LLVM_LINK_COMPONENTS BOLTTargetAArch64)
+  list(APPEND TARGET_LINK_LIBRARIES LLVMBOLTTargetAArch64)
   set(BOLT_AArch64 On)
 endif()
 
 if ("X86" IN_LIST LLVM_TARGETS_TO_BUILD)
-  list(APPEND LLVM_LINK_COMPONENTS BOLTTargetX86)
+  list(APPEND TARGET_LINK_LIBRARIES LLVMBOLTTargetX86)
   set(BOLT_X64 On)
 endif()
 
@@ -34,6 +37,11 @@ add_llvm_library(LLVMBOLTRewrite
   ${LLVM_PTHREAD_LIB}
   )
 
+target_link_libraries(LLVMBOLTRewrite
+  PRIVATE
+  ${TARGET_LINK_LIBRARIES}
+  )
+
 if (DEFINED BOLT_AArch64)
   target_compile_definitions(LLVMBOLTRewrite PRIVATE AARCH64_AVAILABLE)
 endif()
index a489fd2..f0359a6 100644 (file)
@@ -1,7 +1,4 @@
 set(LLVM_LINK_COMPONENTS
-  BOLTCore
-  BOLTPasses
-  BOLTUtils
   BinaryFormat
   MC
   Object
@@ -14,3 +11,10 @@ add_llvm_library(LLVMBOLTRuntimeLibs
   HugifyRuntimeLibrary.cpp
   InstrumentationRuntimeLibrary.cpp
   )
+
+target_link_libraries(LLVMBOLTRuntimeLibs
+  PRIVATE
+  LLVMBOLTCore
+  LLVMBOLTPasses
+  LLVMBOLTUtils
+  )
index 462381b..2338cce 100644 (file)
@@ -1,8 +1,5 @@
 set(LLVM_LINK_COMPONENTS
   ${LLVM_TARGETS_TO_BUILD}
-  BOLTProfile
-  BOLTRewrite
-  BOLTUtils
   MC
   Object
   Support
@@ -21,6 +18,13 @@ add_llvm_tool(llvm-bolt
   ${BOLT_DRIVER_DEPS}
   )
 
+target_link_libraries(llvm-bolt
+  PRIVATE
+  LLVMBOLTProfile
+  LLVMBOLTRewrite
+  LLVMBOLTUtils
+  )
+
 add_llvm_tool_symlink(perf2bolt llvm-bolt)
 add_llvm_tool_symlink(llvm-boltdiff llvm-bolt)
 
index 2a04704..820b268 100644 (file)
@@ -1,8 +1,5 @@
 set(LLVM_LINK_COMPONENTS
   ${LLVM_TARGETS_TO_BUILD}
-  BOLTProfile
-  BOLTRewrite
-  BOLTUtils
   MC
   Object
   Support
@@ -12,4 +9,11 @@ add_llvm_tool(llvm-bolt-heatmap
   heatmap.cpp
   )
 
+target_link_libraries(llvm-bolt-heatmap
+  PRIVATE
+  LLVMBOLTProfile
+  LLVMBOLTRewrite
+  LLVMBOLTUtils
+  )
+
 set_target_properties(llvm-bolt-heatmap PROPERTIES FOLDER "BOLT")
index 926e65b..6e4538b 100644 (file)
@@ -1,6 +1,4 @@
 set(LLVM_LINK_COMPONENTS
-  BOLTCore
-  BOLTRewrite
   DebugInfoDWARF
   Object
   MC
@@ -12,6 +10,12 @@ add_bolt_unittest(CoreTests
   MCPlusBuilder.cpp
   )
 
+target_link_libraries(CoreTests
+  PRIVATE
+  LLVMBOLTCore
+  LLVMBOLTRewrite
+  )
+
 if ("AArch64" IN_LIST LLVM_TARGETS_TO_BUILD)
   include_directories(
     ${LLVM_MAIN_SRC_DIR}/lib/Target/AArch64