--- llvm-16.0.0.src/tools/llvm-shlib/CMakeLists.txt 2023-03-17 13:26:07.000000000 +0100
|
+++ llvm-16.0.0.src/tools/llvm-shlib/CMakeLists.txt.orig 2023-03-22 18:27:10.446014388 +0100
|
@@ -33,14 +33,11 @@
|
add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${INSTALL_WITH_TOOLCHAIN} ${SOURCES})
|
|
list(REMOVE_DUPLICATES LIB_NAMES)
|
- if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU)
|
- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
|
- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU")
|
- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD")
|
- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
|
- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")
|
- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "Android")
|
- OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS")) # FIXME: It should be "GNU ld for elf"
|
+ if("${CMAKE_SYSTEM_NAME}" STREQUAL "SunOS")
|
+ set(LIB_NAMES -Wl,-Bsymbolic -Wl,-z -Wl,allextract ${LIB_NAMES} -Wl,-z -Wl,defaultextract)
|
+ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
|
+ set(LIB_NAMES -Wl,-all_load ${LIB_NAMES})
|
+ else()
|
configure_file(
|
${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map.in
|
${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map)
|
@@ -56,10 +53,8 @@
|
# reduce dynamic relocations.
|
# Note: for -fno-pic default, the address of a function may be different from
|
# inside and outside libLLVM.so.
|
- target_link_options(LLVM PRIVATE LINKER:-Bsymbolic-functions)
|
+ target_link_options(LLVM PRIVATE LINKER:-Bsymbolic)
|
endif()
|
- elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
|
- set(LIB_NAMES -Wl,-all_load ${LIB_NAMES})
|
endif()
|
|
target_link_libraries(LLVM PRIVATE ${LIB_NAMES})
|