diff options
author | Gerald Combs <gerald@wireshark.org> | 2016-10-06 10:38:39 -0700 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2016-10-07 17:54:35 +0000 |
commit | 22d8142ce77fce18f87b1a0242f86bd198623d2f (patch) | |
tree | e4a7c2ad2321ca0df24b2caf0391ca5696975934 | |
parent | 827ae0c722dc686da9980478a6ff3db723993ea5 (diff) | |
download | wireshark-22d8142ce77fce18f87b1a0242f86bd198623d2f.tar.gz |
Disable ASAN when building lemon.
If ASAN is enabled, use "-fno-sanitize=all" when building lemon. This
keeps us from having to set ASAN_OPTIONS=detect_leaks=0 in the
environment in order to build Wireshark.
Change-Id: I36f6d1a4f913ecabaf188f4c2b59216c8430d81a
Reviewed-on: https://code.wireshark.org/review/18098
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | configure.ac | 14 | ||||
-rw-r--r-- | tools/lemon/CMakeLists.txt | 3 | ||||
-rw-r--r-- | tools/lemon/Makefile.am | 6 |
4 files changed, 25 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 865e36f95b..667fee4bc7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -593,6 +593,12 @@ if(ENABLE_ASAN) endif() set(CMAKE_C_FLAGS "-fsanitize=address ${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS "-fsanitize=address ${CMAKE_CXX_FLAGS}") + # Disable ASAN for build-time tools, e.g. lemon + check_c_compiler_flag(-fno-sanitize=all C__fno_sanitize_all_VALID) + if(C__fno_sanitize_all_VALID) + set(NO_SANITIZE_CFLAGS "-fno-sanitize=all") + set(NO_SANITIZE_LDFLAGS "-fno-sanitize=all") + endif() endif() set(WERROR_COMMON_FLAGS "") diff --git a/configure.ac b/configure.ac index 5487dd96a3..a13be50156 100644 --- a/configure.ac +++ b/configure.ac @@ -784,7 +784,21 @@ AC_ARG_ENABLE(asan, # XXX shouldn't this also be added to LDFLAGS? AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fsanitize=address) + # Disable ASAN for build-time tools, e.g. lemon + WS_CFLAGS_saved="$WS_CFLAGS" + WS_LDFLAGS_saved="$WS_LDFLAGS" + AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fno-sanitize=all, C) + if test "x$can_add_to_cflags" = "xyes" + then + NO_SANITIZE_CFLAGS="-fno-sanitize=all" + NO_SANITIZE_LDFLAGS="-fno-sanitize=all" + fi + WS_CFLAGS="$WS_CFLAGS_saved" + WS_LDFLAGS="$WS_LDFLAGS_saved" + ]) +AC_SUBST(NO_SANITIZE_CFLAGS) +AC_SUBST(NO_SANITIZE_LDFLAGS) # Add check hf conflict.. # diff --git a/tools/lemon/CMakeLists.txt b/tools/lemon/CMakeLists.txt index bba72c3450..43a8e9d41b 100644 --- a/tools/lemon/CMakeLists.txt +++ b/tools/lemon/CMakeLists.txt @@ -30,7 +30,7 @@ set(CLEAN_FILES set_source_files_properties( ${CLEAN_FILES} PROPERTIES - COMPILE_FLAGS "${WERROR_COMMON_FLAGS}" + COMPILE_FLAGS "${WERROR_COMMON_FLAGS} ${NO_SANITIZE_CFLAGS}" ) set(lemon_LIBS @@ -40,6 +40,7 @@ set(lemon_LIBS add_executable(lemon ${lemon_FILES}) set_target_properties(lemon PROPERTIES FOLDER "tools") set_target_properties(lemon PROPERTIES COMPILE_OPTIONS "${WS_WARNINGS_C_FLAGS}") +set_target_properties(lemon PROPERTIES LINK_FLAGS "${NO_SANITIZE_LDFLAGS}") target_link_libraries(lemon ${lemon_LIBS}) diff --git a/tools/lemon/Makefile.am b/tools/lemon/Makefile.am index 476f844608..ff7569fbc0 100644 --- a/tools/lemon/Makefile.am +++ b/tools/lemon/Makefile.am @@ -26,9 +26,9 @@ AUTOMAKE_OPTIONS = -Wno-gnu CC = $(CC_FOR_BUILD) -CPPFLAGS = $(CPPFLAGS_FOR_BUILD) -CFLAGS = $(CFLAGS_FOR_BUILD) -LDFLAGS = $(LDFLAGS_FOR_BUILD) +CPPFLAGS = $(CPPFLAGS_FOR_BUILD) $(NO_SANITIZE_CFLAGS) +CFLAGS = $(CFLAGS_FOR_BUILD) $(NO_SANITIZE_CFLAGS) +LDFLAGS = $(LDFLAGS_FOR_BUILD) $(NO_SANITIZE_LDFLAGS) LIBS = AM_CPPFLAGS = -I$(top_srcdir) |