From a23817622b28cb1969a73ffd36da501eb29b9cd7 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 30 Sep 2016 01:25:45 +0200 Subject: 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 --- configure.ac | 12 ++++++++++++ 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 -- cgit v1.2.3