# HG changeset patch # User koda # Date 1370854079 -7200 # Node ID 7b0d5388abc4d52bcdcb7af3210c90e07ab363f9 # Parent 67334acaaac73d63a10bc774652ab53ac890303f stack-protector flag needs to be passed to the linker as well diff -r 67334acaaac7 -r 7b0d5388abc4 CMakeLists.txt --- a/CMakeLists.txt Thu Jun 06 15:55:10 2013 +0200 +++ b/CMakeLists.txt Mon Jun 10 10:47:59 2013 +0200 @@ -2,7 +2,7 @@ #initialise cmake environment cmake_minimum_required(VERSION 2.6.0) -foreach(hwpolicy CMP0003 CMP0012 CMP0017) +foreach(hwpolicy CMP0003 CMP0012 CMP0017 CMP0018) if(POLICY ${hwpolicy}) cmake_policy(SET ${hwpolicy} NEW) endif() diff -r 67334acaaac7 -r 7b0d5388abc4 cmake_modules/compilerchecks.cmake --- a/cmake_modules/compilerchecks.cmake Thu Jun 06 15:55:10 2013 +0200 +++ b/cmake_modules/compilerchecks.cmake Mon Jun 10 10:47:59 2013 +0200 @@ -5,15 +5,18 @@ # CMAKE_C{XX}_FLAGS is for compiler flags (c and c++) # CMAKE_EXE_LINKER_FLAGS is for linker flags (also add them to pascal_flags and haskell_flags) - +# CMAKE_SHARED_LIBRARY__FLAGS same but for shared libraries #TODO: should there be two different checks for C and CXX? -#stack protection +#stack protection, when found it needs to go in the linker flags too (-lssp is added) check_c_compiler_flag("-fstack-protector" HAVE_STACKPROTECTOR) if(HAVE_STACKPROTECTOR) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fstack-protector") + set(CMAKE_SHARED_LIBRARY_C_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS} -fstack-protector") + set(CMAKE_SHARED_LIBRARY_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS} -fstack-protector") endif() #symbol visibility