Skip to content

Commit e1df0de

Browse files
authored
[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.
1 parent c274bbe commit e1df0de

File tree

1 file changed

+48
-43
lines changed

1 file changed

+48
-43
lines changed

llvm/tools/lto/CMakeLists.txt

Lines changed: 48 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,53 @@
1-
set(LLVM_LINK_COMPONENTS
2-
AllTargetsAsmParsers
3-
AllTargetsCodeGens
4-
AllTargetsDescs
5-
AllTargetsDisassemblers
6-
AllTargetsInfos
7-
BitReader
8-
Core
9-
CodeGen
10-
LTO
11-
MC
12-
MCDisassembler
13-
Support
14-
Target
15-
TargetParser
16-
)
17-
18-
set(SOURCES
19-
LTODisassembler.cpp
20-
lto.cpp
21-
)
22-
23-
set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
24-
25-
if(CMAKE_SYSTEM_NAME STREQUAL AIX)
26-
set(LTO_LIBRARY_TYPE MODULE)
27-
set(LTO_LIBRARY_NAME libLTO)
28-
else()
29-
set(LTO_LIBRARY_TYPE SHARED)
30-
set(LTO_LIBRARY_NAME LTO)
31-
endif()
1+
# Building shared libraries requires PIC objects.
2+
if(LLVM_ENABLE_PIC)
3+
4+
set(LLVM_LINK_COMPONENTS
5+
AllTargetsAsmParsers
6+
AllTargetsCodeGens
7+
AllTargetsDescs
8+
AllTargetsDisassemblers
9+
AllTargetsInfos
10+
BitReader
11+
Core
12+
CodeGen
13+
LTO
14+
MC
15+
MCDisassembler
16+
Support
17+
Target
18+
TargetParser
19+
)
3220

33-
add_llvm_library(${LTO_LIBRARY_NAME} ${LTO_LIBRARY_TYPE} INSTALL_WITH_TOOLCHAIN
34-
${SOURCES} DEPENDS intrinsics_gen)
21+
set(SOURCES
22+
LTODisassembler.cpp
23+
lto.cpp
24+
)
3525

36-
install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
37-
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/llvm-c"
38-
COMPONENT LTO)
26+
set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports)
3927

40-
if (APPLE)
41-
set(LTO_VERSION ${LLVM_VERSION_MAJOR})
42-
if(LLVM_LTO_VERSION_OFFSET)
43-
math(EXPR LTO_VERSION "${LLVM_VERSION_MAJOR} + ${LLVM_LTO_VERSION_OFFSET}")
28+
if(CMAKE_SYSTEM_NAME STREQUAL AIX)
29+
set(LTO_LIBRARY_TYPE MODULE)
30+
set(LTO_LIBRARY_NAME libLTO)
31+
else()
32+
set(LTO_LIBRARY_TYPE SHARED)
33+
set(LTO_LIBRARY_NAME LTO)
4434
endif()
45-
set_property(TARGET LTO APPEND_STRING PROPERTY
46-
LINK_FLAGS
47-
" -compatibility_version 1 -current_version ${LTO_VERSION}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}")
35+
36+
add_llvm_library(${LTO_LIBRARY_NAME} ${LTO_LIBRARY_TYPE} INSTALL_WITH_TOOLCHAIN
37+
${SOURCES} DEPENDS intrinsics_gen)
38+
39+
install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
40+
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/llvm-c"
41+
COMPONENT LTO)
42+
43+
if (APPLE)
44+
set(LTO_VERSION ${LLVM_VERSION_MAJOR})
45+
if(LLVM_LTO_VERSION_OFFSET)
46+
math(EXPR LTO_VERSION "${LLVM_VERSION_MAJOR} + ${LLVM_LTO_VERSION_OFFSET}")
47+
endif()
48+
set_property(TARGET LTO APPEND_STRING PROPERTY
49+
LINK_FLAGS
50+
" -compatibility_version 1 -current_version ${LTO_VERSION}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}")
51+
endif()
52+
4853
endif()

0 commit comments

Comments
 (0)