diff --git a/cmake/SetCompilerFlags.cmake b/cmake/SetCompilerFlags.cmake index 1440222..478f824 100644 --- a/cmake/SetCompilerFlags.cmake +++ b/cmake/SetCompilerFlags.cmake @@ -96,16 +96,11 @@ function(add_compile_flags target) message(WARNING "No stack protection supported") endif(HAVE_STACK_PROTECTOR) endif(HAVE_STACK_PROTECTOR_ALL) - # Support address space layout randomization (ASLR) - if(NOT (MINGW OR CYGWIN OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang" - OR ((CMAKE_SYSTEM_NAME MATCHES Darwin) AND (CMAKE_C_COMPILER_ID MATCHES Clang)))) + # Support address space layout randomization (ASLR) / PIE + if(UNIX AND NOT APPLE) target_compile_options(${target} PRIVATE -fPIE) - target_link_options(${target} PRIVATE -fPIE -pie) - target_link_options(${target} PRIVATE -Wl,-z,relro) - target_link_options(${target} PRIVATE -Wl,-z,now) - target_link_options(${target} PRIVATE -Wl,-z,noexecstack) - endif(NOT (MINGW OR CYGWIN OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang" - OR ((CMAKE_SYSTEM_NAME MATCHES Darwin) AND (CMAKE_C_COMPILER_ID MATCHES Clang)))) + target_link_options(${target} PRIVATE -fPIE -pie -Wl,-z,relro,-z,now,-z,noexecstack) + endif(UNIX AND NOT APPLE) target_link_options(${target} PRIVATE -fstack-check) add_compile_flag_to_targets(${target}) endif(MSVC)