Skip to content

Commit c79bad6

Browse files
jfsmigfvennetier
authored andcommitted
cmake: Add asan/tsan options
1 parent 4592c21 commit c79bad6

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

CMakeLists.txt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,21 @@ set(SHORT_API_VERSION "${GridInit_VERSION_MAJOR}.${GridInit_VERSION_MINOR}")
1414
add_definitions(-DAPI_VERSION="${API_VERSION}")
1515
add_definitions(-DSHORT_API_VERSION="${SHORT_API_VERSION}")
1616

17+
option(ASAN "Enable ASAN (address sanitizer)" OFF)
18+
option(TSAN "Enable TSAN (thread sanitizer)" OFF)
19+
option(FSAN "Enable FSAN (frames sanitizer)" OFF)
20+
21+
set(SAN_CFLAGS "")
22+
if (ASAN)
23+
set(SAN_CFLAGS "-fno-omit-frame-pointer -fsanitize=address")
24+
endif ()
25+
if (TSAN)
26+
set(SAN_CFLAGS "-fno-omit-frame-pointer -fsanitize=thread")
27+
endif ()
28+
if (FRAMES)
29+
set(SAN_CFLAGS "${SAN_CFLAGS} -fstack-protector-all")
30+
endif ()
31+
1732
set(CMAKE_C_FLAGS "-g -Wall -Wextra -Wunused -pipe -std=gnu99")
1833
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
1934

@@ -22,6 +37,7 @@ if (CMAKE_COMPILER_IS_GNUCC)
2237
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wsequence-point")
2338
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wredundant-decls")
2439
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow")
40+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wtrampolines")
2541

2642
# gcc >= 4.2
2743
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcomment")
@@ -39,14 +55,15 @@ if (CMAKE_COMPILER_IS_GNUCC)
3955
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wconversion")
4056
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wswitch-enum")
4157
endif()
58+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SAN_CFLAGS}")
4259

4360
if (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
4461
MESSAGE("DEBUG symbols enabled")
4562
endif()
4663

4764
set(CMAKE_C_FLAGS_DEBUG "-O0 -fno-inline")
4865
set(CMAKE_C_FLAGS_RELEASE "-O2")
49-
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -fno-inline")
66+
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2")
5067
set(CMAKE_C_FLAGS_MINSIZEREL "-Os")
5168

5269
add_definitions(-D_REENTRANT)

0 commit comments

Comments
 (0)