From e79c031dbe53b80a8b938fb6cba71f3ec2e603c2 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Thu, 24 Mar 2016 23:20:44 +0800 Subject: [PATCH] cmake: enable FORTFY flags if supported Signed-off-by: Kefu Chai --- src/CMakeLists.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 46f5bd1458915..9afa6e0e8f4e7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,6 +16,18 @@ set(CMAKE_ASM_COMPILER ${PROJECT_SOURCE_DIR}/src/yasm-wrapper) set(CMAKE_ASM_FLAGS "-f elf64") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -fPIC") +include(CheckCCompilerFlag) +CHECK_C_COMPILER_FLAG("-Wp,-D_FORTIFY_SOURCE=2" HAS_FORTIFY_SOURCE) +if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") +if(HAS_FORTIFY_SOURCE) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wp,-D_FORTIFY_SOURCE=2") +endif() +endif() +CHECK_C_COMPILER_FLAG(-fstack-protector-strong HAS_STACK_PROTECT) +if (HAS_STACK_PROTECT) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector-strong") +endif() + execute_process( COMMAND yasm -f elf64 ${CMAKE_SOURCE_DIR}/src/common/crc32c_intel_fast_asm.S -o /dev/null RESULT_VARIABLE no_yasm -- 2.39.5