pkgsrc/lang/clang/patches/patch-tools_libclang_CMakeLists.txt
tm db87a03d81 clang: fix patch files for solaris by providing a missing newline
Move file content to correct patch files based on the patch name.
Add missing newline to the end of one patch file.
2022-01-14 08:58:48 +00:00

34 lines
1.8 KiB
Text

$NetBSD: patch-tools_libclang_CMakeLists.txt,v 1.2 2022/01/14 08:58:48 tm Exp $
Only the linker on Solaris 11.4 supports GNU ld version script and only if
the special option gnu-version-script-compat is used. Older Solaris linker
doesn't support version script.
--- tools/libclang/CMakeLists.txt.orig 2021-09-24 16:18:10.000000000 +0000
+++ tools/libclang/CMakeLists.txt
@@ -167,11 +167,21 @@ if(ENABLE_SHARED)
endif()
endif()
if (USE_VERSION_SCRIPT)
- target_link_options(libclang PRIVATE "-Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/libclang.map")
- # The Solaris 11.4 linker supports a subset of GNU ld version scripts,
- # but requires a special option to enable it.
if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
- target_link_options(libclang PRIVATE "-Wl,-z,gnu-version-script-compat")
+ include(CheckLinkerFlag)
+ # The Solaris 11.4 linker supports a subset of GNU ld version scripts,
+ # but requires a special option to enable it.
+ llvm_check_linker_flag(CXX "-Wl,-z,gnu-version-script-compat" LINKER_SUPPORTS_Z_GNU_VERSION_SCRIPT_COMPAT)
+ # Older Solaris (and illumos) linker doesn't support GNU ld version
+ # and doesn't support GNU version script compat.
+ if (LINKER_SUPPORTS_Z_GNU_VERSION_SCRIPT_COMPAT)
+ target_link_options(libclang PRIVATE "-Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/libclang.map")
+ target_link_options(libclang PRIVATE "-Wl,-z,gnu-version-script-compat")
+ else()
+ target_link_options(libclang PRIVATE "-Wl,-M,${CMAKE_CURRENT_SOURCE_DIR}/libclang.map")
+ endif()
+ else()
+ target_link_options(libclang PRIVATE "-Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/libclang.map")
endif()
# Ensure that libclang.so gets rebuilt when the linker script changes.
set_property(SOURCE ARCMigrate.cpp APPEND PROPERTY