summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2016-10-06 10:38:39 -0700
committerGerald Combs <gerald@wireshark.org>2016-10-07 17:54:35 +0000
commit22d8142ce77fce18f87b1a0242f86bd198623d2f (patch)
treee4a7c2ad2321ca0df24b2caf0391ca5696975934
parent827ae0c722dc686da9980478a6ff3db723993ea5 (diff)
downloadwireshark-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.txt6
-rw-r--r--configure.ac14
-rw-r--r--tools/lemon/CMakeLists.txt3
-rw-r--r--tools/lemon/Makefile.am6
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)