[llvm] e1df0de - [CMake] Disable LTO library when PIC is disabled (#136372)

via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 18 23:38:38 PDT 2025


Author: Petr Hosek
Date: 2025-04-18T23:38:36-07:00
New Revision: e1df0defa8a16b9769f6bde83ee4e4f79426d53f

URL: https://github.com/llvm/llvm-project/commit/e1df0defa8a16b9769f6bde83ee4e4f79426d53f
DIFF: https://github.com/llvm/llvm-project/commit/e1df0defa8a16b9769f6bde83ee4e4f79426d53f.diff

LOG: [CMake] Disable LTO library when PIC is disabled (#136372)

Building shared libraries requires PIC. This matches what we do for
Remarks which is another tool library.

Added: 
    

Modified: 
    llvm/tools/lto/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/llvm/tools/lto/CMakeLists.txt b/llvm/tools/lto/CMakeLists.txt
index c2f7d81063af8..8c7d7904e16ea 100644
--- a/llvm/tools/lto/CMakeLists.txt
+++ b/llvm/tools/lto/CMakeLists.txt
@@ -1,48 +1,53 @@
-set(LLVM_LINK_COMPONENTS
-  AllTargetsAsmParsers
-  AllTargetsCodeGens
-  AllTargetsDescs
-  AllTargetsDisassemblers
-  AllTargetsInfos
-  BitReader
-  Core
-  CodeGen
-  LTO
-  MC
-  MCDisassembler
-  Support
-  Target
-  TargetParser
-  )
-
-set(SOURCES
-  LTODisassembler.cpp
-  lto.cpp
-  )
-
-set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
-
-if(CMAKE_SYSTEM_NAME STREQUAL AIX)
-    set(LTO_LIBRARY_TYPE MODULE)
-    set(LTO_LIBRARY_NAME libLTO)
-  else()
-    set(LTO_LIBRARY_TYPE SHARED)
-    set(LTO_LIBRARY_NAME LTO)
-endif()
+# Building shared libraries requires PIC objects.
+if(LLVM_ENABLE_PIC)
+
+  set(LLVM_LINK_COMPONENTS
+    AllTargetsAsmParsers
+    AllTargetsCodeGens
+    AllTargetsDescs
+    AllTargetsDisassemblers
+    AllTargetsInfos
+    BitReader
+    Core
+    CodeGen
+    LTO
+    MC
+    MCDisassembler
+    Support
+    Target
+    TargetParser
+    )
 
-add_llvm_library(${LTO_LIBRARY_NAME} ${LTO_LIBRARY_TYPE} INSTALL_WITH_TOOLCHAIN
-    ${SOURCES} DEPENDS intrinsics_gen)
+  set(SOURCES
+    LTODisassembler.cpp
+    lto.cpp
+    )
 
-install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
-  DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/llvm-c"
-  COMPONENT LTO)
+  set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
 
-if (APPLE)
-  set(LTO_VERSION ${LLVM_VERSION_MAJOR})
-  if(LLVM_LTO_VERSION_OFFSET)
-    math(EXPR LTO_VERSION "${LLVM_VERSION_MAJOR} + ${LLVM_LTO_VERSION_OFFSET}")
+  if(CMAKE_SYSTEM_NAME STREQUAL AIX)
+      set(LTO_LIBRARY_TYPE MODULE)
+      set(LTO_LIBRARY_NAME libLTO)
+    else()
+      set(LTO_LIBRARY_TYPE SHARED)
+      set(LTO_LIBRARY_NAME LTO)
   endif()
-  set_property(TARGET LTO APPEND_STRING PROPERTY
-              LINK_FLAGS
-              " -compatibility_version 1 -current_version ${LTO_VERSION}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}")
+
+  add_llvm_library(${LTO_LIBRARY_NAME} ${LTO_LIBRARY_TYPE} INSTALL_WITH_TOOLCHAIN
+      ${SOURCES} DEPENDS intrinsics_gen)
+
+  install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
+    DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/llvm-c"
+    COMPONENT LTO)
+
+  if (APPLE)
+    set(LTO_VERSION ${LLVM_VERSION_MAJOR})
+    if(LLVM_LTO_VERSION_OFFSET)
+      math(EXPR LTO_VERSION "${LLVM_VERSION_MAJOR} + ${LLVM_LTO_VERSION_OFFSET}")
+    endif()
+    set_property(TARGET LTO APPEND_STRING PROPERTY
+                LINK_FLAGS
+                " -compatibility_version 1 -current_version ${LTO_VERSION}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}")
+  endif()
+
 endif()


        


More information about the llvm-commits mailing list