diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2010-04-28 18:01:15 +0200 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2010-04-28 18:01:15 +0200 |
commit | cbd0a8f4b589f37f113c0b60fd9a9a8818cc3359 (patch) | |
tree | 57d66d527fa7f0b2b2d1ea111f13be38a478adff /cmake | |
parent | ecbe577be320a19ae3e3672c2f9072c55d53fa29 (diff) | |
download | libssh-cbd0a8f4b589f37f113c0b60fd9a9a8818cc3359.tar.gz libssh-cbd0a8f4b589f37f113c0b60fd9a9a8818cc3359.tar.xz libssh-cbd0a8f4b589f37f113c0b60fd9a9a8818cc3359.zip |
Change the test file for stackprotector for clang
Now compiles with clang !
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Modules/DefineCompilerFlags.cmake | 3 | ||||
-rw-r--r-- | cmake/Modules/MacroCheckCCompilerFlagSSP.cmake | 25 |
2 files changed, 27 insertions, 1 deletions
diff --git a/cmake/Modules/DefineCompilerFlags.cmake b/cmake/Modules/DefineCompilerFlags.cmake index 7cf8d8a..39964d7 100644 --- a/cmake/Modules/DefineCompilerFlags.cmake +++ b/cmake/Modules/DefineCompilerFlags.cmake @@ -1,6 +1,7 @@ # define system dependent compiler flags include(CheckCCompilerFlag) +include(MacroCheckCCompilerFlagSSP) if (UNIX AND NOT WIN32) if (${CMAKE_C_COMPILER_ID} MATCHES GNU) @@ -13,7 +14,7 @@ if (UNIX AND NOT WIN32) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") endif (WITH_FPIC) - check_c_compiler_flag("-fstack-protector" WITH_STACK_PROTECTOR) + check_c_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR) if (WITH_STACK_PROTECTOR) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector") endif (WITH_STACK_PROTECTOR) diff --git a/cmake/Modules/MacroCheckCCompilerFlagSSP.cmake b/cmake/Modules/MacroCheckCCompilerFlagSSP.cmake new file mode 100644 index 0000000..6e83a8b --- /dev/null +++ b/cmake/Modules/MacroCheckCCompilerFlagSSP.cmake @@ -0,0 +1,25 @@ +# - Check whether the C compiler supports a given flag. +# CHECK_C_COMPILER_FLAG(FLAG VARIABLE) +# +# FLAG - the compiler flag +# VARIABLE - variable to store the result +# +# This actually calls the check_c_source_compiles macro. +# See help for CheckCSourceCompiles for a listing of variables +# that can modify the build. + +# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org> +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +INCLUDE(CheckCSourceCompiles) + +MACRO (CHECK_C_COMPILER_FLAG_SSP _FLAG _RESULT) + SET(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}") + SET(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}") + CHECK_C_SOURCE_COMPILES("int main(int argc, char **argv) { char buffer[256]; return buffer[argc]=0;}" ${_RESULT}) + SET (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}") +ENDMACRO (CHECK_C_COMPILER_FLAG_SSP) + |