From cef4a518108a97202c50b80bcddb579545fc0d94 Mon Sep 17 00:00:00 2001 From: Erik Boasson Date: Fri, 18 Jan 2019 14:16:16 +0100 Subject: [PATCH] Set "position independent code" property unconditionally in os, util Previously it wasn't set for all platforms, breaking, e.g., Linux on ARM. The property also does the trick for OpenIndiana, so that hack can be removed as well Signed-off-by: Erik Boasson --- src/os/CMakeLists.txt | 9 ++------- src/util/CMakeLists.txt | 9 +-------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/src/os/CMakeLists.txt b/src/os/CMakeLists.txt index e95ac92..cb64db5 100644 --- a/src/os/CMakeLists.txt +++ b/src/os/CMakeLists.txt @@ -57,6 +57,7 @@ add_library(OSAPI ${sources}) set(CMAKE_THREAD_PREFER_PTHREAD TRUE) find_package(Threads REQUIRED) target_link_libraries(OSAPI INTERFACE Threads::Threads) +set_property(TARGET OSAPI PROPERTY POSITION_INDEPENDENT_CODE TRUE) if(WIN32) # Link with Win32 core-libraries @@ -73,12 +74,7 @@ if(WIN32) target_compile_definitions(OSAPI PRIVATE _WINSOCK_DEPRECATED_NO_WARNINGS) # Disable warnings for deprecated POSIX names. target_compile_definitions(OSAPI PRIVATE -D_CRT_NONSTDC_NO_DEPRECATE) -elseif(UNIX AND NOT APPLE) - if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64") - # Shared libs will have this by default. Static libs need it too on x86_64. - set_property(TARGET OSAPI PROPERTY POSITION_INDEPENDENT_CODE TRUE) - endif() - +elseif(UNIX) check_library_exists(c clock_gettime "" HAVE_CLOCK_GETTIME) if(NOT HAVE_CLOCK_GETTIME) # Before glibc 2.17, clock_gettime was in librt. @@ -95,7 +91,6 @@ endif() if(${CMAKE_C_COMPILER_ID} STREQUAL "SunPro") target_link_libraries(OSAPI INTERFACE -lsocket -lnsl) - add_definitions(-KPIC) endif() # Determine if platform is big or little endian. diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index e9dd89e..109a2db 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -19,10 +19,7 @@ add_library(util ${srcs_util}) generate_export_header(util EXPORT_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/exports/util/ut_export.h") target_link_libraries(util PUBLIC OSAPI) -if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64") - # Shared libs will have this by default. Static libs need it too on x86_64. - set_property(TARGET util PROPERTY POSITION_INDEPENDENT_CODE TRUE) -endif() +set_property(TARGET util PROPERTY POSITION_INDEPENDENT_CODE TRUE) target_include_directories( util PUBLIC @@ -31,10 +28,6 @@ target_include_directories( "$" "$") -if(${CMAKE_C_COMPILER_ID} STREQUAL "SunPro") - add_definitions(-KPIC) -endif() - # TODO: improve test inclusion. if((BUILD_TESTING) AND ((NOT DEFINED MSVC_VERSION) OR (MSVC_VERSION GREATER "1800"))) add_subdirectory(tests)