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
This commit is contained in:
Neels Hofmeyr 2016-09-30 01:25:45 +02:00
parent 2b3c228416
commit a23817622b
2 changed files with 15 additions and 2 deletions

View File

@ -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

View File

@ -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