diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-09-30 01:25:45 +0200 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-10-12 22:50:24 +0000 |
commit | a23817622b28cb1969a73ffd36da501eb29b9cd7 (patch) | |
tree | fb1257402e7909c8d99318fc3337b568aca4e907 | |
parent | 2b3c228416263eee6e261c3c589f1a18e54d9a27 (diff) |
configure: add --enable-sanitize, use in jenkins.sh
--enable-sanitize adds address sanitizer CFLAGS/CPPFLAGS to the entire build.
Also pass UBSAN_OPTIONS to the test suite run (only has effect during runtime).
Add this flag to jenkins.sh's configure step. To ensure that we get the
sanitize results, add 'make check' to jenkins to catch sanitize failures;
Keep 'make distcheck' without ASAN; it has its own configure which omits
--enable-sanitize. This way we test both with and without ASAN.
Change-Id: Idf7f46fa048608c2951f2473cb528f6c8dc2681d
-rw-r--r-- | configure.ac | 12 | ||||
-rwxr-xr-x | contrib/jenkins.sh | 5 |
2 files changed, 15 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index e3752b4e..ea688399 100644 --- a/configure.ac +++ b/configure.ac @@ -202,6 +202,18 @@ then AC_DEFINE([PANIC_INFLOOP],[1],[Use infinite loop on panic rather than fprintf/abort]) fi +AC_ARG_ENABLE(sanitize, + [AS_HELP_STRING( + [--enable-sanitize], + [Compile with address sanitizer enabled], + )], + [sanitize=$enableval], [sanitize="no"]) +if test x"$sanitize" = x"yes" +then + CFLAGS+=" -fsanitize=address -fsanitize=undefined" + CPPFLAGS+=" -fsanitize=address -fsanitize=undefined" +fi + AC_OUTPUT( libosmocore.pc libosmocodec.pc diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e5e17c86..108a73ab 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -3,7 +3,8 @@ set -ex autoreconf --install --force -./configure --enable-static -$MAKE $PARALLEL_MAKE +./configure --enable-static --enable-sanitize +$MAKE $PARALLEL_MAKE check \ + || cat-testlogs.sh $MAKE distcheck \ || cat-testlogs.sh |