From 3382dafaee2258164b2e0fbffe3a04f139366a0d Mon Sep 17 00:00:00 2001 From: Antoine Poinsot Date: Mon, 7 Sep 2020 16:14:07 +0200 Subject: [PATCH] configure: allow to run clang with ASAN Prefer adding LSAN_OPTIONS="suppressions=$PWD/tests/sanitizer_suppressions/lsan" when CC=clang instead. Changelog-Added: build: clang build now supports --enable-address-sanitizer . Signed-off-by: Antoine Poinsot --- configure | 4 ---- contrib/sanitizer_suppressions/asan | 3 +++ contrib/sanitizer_suppressions/lsan | 3 +++ 3 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 contrib/sanitizer_suppressions/asan create mode 100644 contrib/sanitizer_suppressions/lsan diff --git a/configure b/configure index 28bea51cb..0a5c75f7d 100755 --- a/configure +++ b/configure @@ -223,10 +223,6 @@ $CC ${CWARNFLAGS-$BASE_WARNFLAGS} $CDEBUGFLAGS $COPTFLAGS -o $CONFIGURATOR $CONF echo "done" if [ "$ASAN" = "1" ]; then - if [ "$CC" = "clang" ]; then - echo "Address sanitizer (ASAN) is currently only supported with gcc" - exit 1 - fi if [ "$VALGRIND" = "1" ]; then echo "Address sanitizer (ASAN) and valgrind cannot be enabled at the same time" exit 1 diff --git a/contrib/sanitizer_suppressions/asan b/contrib/sanitizer_suppressions/asan new file mode 100644 index 000000000..45c1ff249 --- /dev/null +++ b/contrib/sanitizer_suppressions/asan @@ -0,0 +1,3 @@ +# process_check_funding_broadcast is racy as it operates on a data that may be +# freed under its feet +interceptor_via_fun:process_check_funding_broadcast diff --git a/contrib/sanitizer_suppressions/lsan b/contrib/sanitizer_suppressions/lsan new file mode 100644 index 000000000..f53dadfcf --- /dev/null +++ b/contrib/sanitizer_suppressions/lsan @@ -0,0 +1,3 @@ +# Clang would detect false positive here, due to padding. See https://github.com/ElementsProject/lightning/pull/2285 +leak:ccan/ccan/autodata/autodata.c +leak:ccan/ccan/htable/htable.c