diff options
author | Ross Smith <rjsm@umich.edu> | 2014-12-12 12:45:21 -0500 |
---|---|---|
committer | Ross Smith <rjsm@umich.edu> | 2014-12-17 23:05:46 -0500 |
commit | 1c3d093c85dd021eabb87fb67fe942487869480e (patch) | |
tree | 23837f5a137f53b71b54b28d59e88334802d8e81 | |
parent | 742ada086916212dd29c583b6f758612f9b1aa1d (diff) | |
download | rneovim-1c3d093c85dd021eabb87fb67fe942487869480e.tar.gz rneovim-1c3d093c85dd021eabb87fb67fe942487869480e.tar.bz2 rneovim-1c3d093c85dd021eabb87fb67fe942487869480e.zip |
Detect and propagate _FORTIFY_SOURCE prefix
Get prefix to a -D_FORTIFY_SOURCE string if it is present in
CFLAGS and apply the prefix to flags added to redefine
_FORTIFY_SOURCE in CFLAGS and CPPFLAGS
* fixes 1569
-rw-r--r-- | CMakeLists.txt | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 20d653a082..9f41f03241 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,10 +86,16 @@ main(void) " _FORTIFY_SOURCE_ACCEPTABLE) if(NOT _FORTIFY_SOURCE_ACCEPTABLE) + # Extract possible prefix to _FORTIFY_SOURCE (e.g. -Wp,-D_FORTIFY_SOURCE). + STRING(REGEX MATCH "[^\ ]+-D_FORTIFY_SOURCE" _FORTIFY_SOURCE_PREFIX "${CMAKE_C_FLAGS}") + STRING(REPLACE "-D_FORTIFY_SOURCE" "" _FORTIFY_SOURCE_PREFIX "${_FORTIFY_SOURCE_PREFIX}" ) + if (NOT _FORTIFY_SOURCE_PREFIX STREQUAL "") + message(STATUS "Detected _FORTIFY_SOURCE Prefix=${_FORTIFY_SOURCE_PREFIX}") + endif() # -U in add_definitions doesn't end up in the correct spot, so we add it to # the flags variable instead. - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_FORTIFY_SOURCE_PREFIX}-U_FORTIFY_SOURCE ${_FORTIFY_SOURCE_PREFIX}-D_FORTIFY_SOURCE=1") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_FORTIFY_SOURCE_PREFIX}-U_FORTIFY_SOURCE ${_FORTIFY_SOURCE_PREFIX}-D_FORTIFY_SOURCE=1") endif() add_definitions(-Wall -Wextra -pedantic -Wno-unused-parameter |