diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2018-09-11 11:26:50 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-09-11 16:52:02 +0200 |
commit | 7b8d5c42e29282ce47775645ef5b934475df4d37 (patch) | |
tree | 12645d91b7091a236ab630eb45f674baf4632c82 | |
parent | 21dd16562fddb3bef5d0dd91c5bf3533b2b533fc (diff) | |
download | cmocka-7b8d5c42e29282ce47775645ef5b934475df4d37.tar.gz cmocka-7b8d5c42e29282ce47775645ef5b934475df4d37.tar.xz cmocka-7b8d5c42e29282ce47775645ef5b934475df4d37.zip |
cmake: Fix linking with -fstack-protector* on Solaris
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r-- | CompilerChecks.cmake | 9 | ||||
-rw-r--r-- | example/uptime/CMakeLists.txt | 14 | ||||
-rw-r--r-- | src/CMakeLists.txt | 40 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 5 |
4 files changed, 46 insertions, 22 deletions
diff --git a/CompilerChecks.cmake b/CompilerChecks.cmake index 4d5ef02..be428dc 100644 --- a/CompilerChecks.cmake +++ b/CompilerChecks.cmake @@ -65,10 +65,18 @@ if (UNIX) check_c_compiler_flag_ssp("-fstack-protector-strong" WITH_STACK_PROTECTOR_STRONG) if (WITH_STACK_PROTECTOR_STRONG) list(APPEND SUPPORTED_COMPILER_FLAGS "-fstack-protector-strong") + # This is needed as Solaris has a seperate libssp + if (SOLARIS) + list(APPEND SUPPORTED_LINKER_FLAGS "-fstack-protector-strong") + endif() else (WITH_STACK_PROTECTOR_STRONG) check_c_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR) if (WITH_STACK_PROTECTOR) list(APPEND SUPPORTED_COMPILER_FLAGS "-fstack-protector") + # This is needed as Solaris has a seperate libssp + if (SOLARIS) + list(APPEND SUPPORTED_LINKER_FLAGS "-fstack-protector") + endif() endif() endif (WITH_STACK_PROTECTOR_STRONG) @@ -100,3 +108,4 @@ if (OSX) endif() set(DEFAULT_C_COMPILE_FLAGS ${SUPPORTED_COMPILER_FLAGS} CACHE INTERNAL "Default C Compiler Flags" FORCE) +set(DEFAULT_LINK_FLAGS ${SUPPORTED_LINKER_FLAGS} CACHE INTERNAL "Default C Linker Flags" FORCE) diff --git a/example/uptime/CMakeLists.txt b/example/uptime/CMakeLists.txt index 99924bd..cab1e88 100644 --- a/example/uptime/CMakeLists.txt +++ b/example/uptime/CMakeLists.txt @@ -9,13 +9,19 @@ add_library(proc_uptime proc_uptime.c) add_executable(uptime uptime.c) target_compile_options(uptime PRIVATE ${DEFAULT_C_COMPILE_FLAGS}) target_link_libraries(uptime proc_uptime) +set_property(TARGET + uptime + PROPERTY + LINK_FLAGS + "${DEFAULT_LINK_FLAGS}") add_executable(test_uptime test_uptime.c) target_compile_options(test_uptime PRIVATE ${DEFAULT_C_COMPILE_FLAGS}) target_link_libraries(test_uptime ${CMOCKA_SHARED_LIBRARY}) - -set_target_properties(test_uptime - PROPERTIES - LINK_FLAGS "-Wl,--wrap=uptime") +set_property(TARGET + test_uptime + PROPERTY + LINK_FLAGS + "${DEFAULT_LINK_FLAGS} -Wl,--wrap=uptime") add_test(test_uptime ${CMAKE_CURRENT_BINARY_DIR}/test_uptime) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1a3d3be..e98bb82 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -52,14 +52,17 @@ if (CMOCKA_PLATFORM_INCLUDE) endif() target_link_libraries(${CMOCKA_SHARED_LIBRARY} ${CMOCKA_LINK_LIBRARIES}) -set_target_properties( - ${CMOCKA_SHARED_LIBRARY} - PROPERTIES - OUTPUT_NAME - cmocka - DEFINE_SYMBOL - CMOCKA_EXPORTS -) +set_property(TARGET + ${CMOCKA_SHARED_LIBRARY} + PROPERTY + OUTPUT_NAME + cmocka + PROPERTY + DEFINE_SYMBOL + CMOCKA_EXPORTS + PROPERTY + LINKER_FLAGS + "${DEFAULT_LINK_FLAGS}") if (NOT WIN32) set_target_properties( @@ -99,16 +102,17 @@ if (WITH_STATIC_LIB) -DCMOCKA_PLATFORM_INCLUDE) endif() - set_target_properties( - ${CMOCKA_STATIC_LIBRARY} - PROPERTIES - VERSION - ${LIBRARY_VERSION} - SOVERSION - ${LIBRARY_SOVERSION} - OUTPUT_NAME - cmocka - ) + set_property(TARGET + ${CMOCKA_STATIC_LIBRARY} + PROPERTY + OUTPUT_NAME + cmocka + PROPERTY + DEFINE_SYMBOL + CMOCKA_EXPORTS + PROPERTY + LINK_FLAGS + "${DEFAULT_LINK_FLAGS}") if (NOT WIN32) set_target_properties( diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d89a71e..33d2578 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -24,6 +24,11 @@ foreach(_CMOCKA_TEST ${CMOCKA_TESTS}) add_cmocka_test(${_CMOCKA_TEST} ${_CMOCKA_TEST}.c ${CMOCKA_STATIC_LIBRARY}) target_include_directories(${_CMOCKA_TEST} PRIVATE ${cmocka_BINARY_DIR}) target_compile_options(${_CMOCKA_TEST} PRIVATE ${DEFAULT_C_COMPILE_FLAGS}) + set_property(TARGET + ${_CMOCKA_TEST} + PROPERTY + LINK_FLAGS + "${DEFAULT_LINK_FLAGS}") endforeach() ### Special Cases |