[Libreoffice-commits] online.git: configure.ac
Ashod Nakashian (via logerrit)
logerrit at kemper.freedesktop.org
Sun Sep 22 18:26:43 UTC 2019
configure.ac | 14 ++++++++++++++
1 file changed, 14 insertions(+)
New commits:
commit 90188d07c17048291b6a64d461a982129a3f8837
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
AuthorDate: Sat Sep 21 16:29:56 2019 -0400
Commit: Ashod Nakashian <ashnakash at gmail.com>
CommitDate: Sun Sep 22 20:26:25 2019 +0200
configure: support sanitizers
It is now possible to run ./configure --with-sanitizer=address
(or any least of valid sanitizers) to build with sanitizers.
When --with-sanitizer is specified, we build with -O1 and
don't omit frame-pointer. We also enable RTTI (which should
be enabled anyway, but just in case).
UBSan (undefined) sanitizer can cause 'typeinfo' errors.
Fixing the source is best, but as a workaround, disabling
vptr sanitizer works. Just pass -fno-sanitize=vptr to CFLAGS
and CXXFLAGS.
Change-Id: I4031aa872b1b1ef779703135394f3733952e5cd1
Reviewed-on: https://gerrit.libreoffice.org/79329
Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
Tested-by: Ashod Nakashian <ashnakash at gmail.com>
diff --git a/configure.ac b/configure.ac
index 711de7d01..c3ab7c195 100644
--- a/configure.ac
+++ b/configure.ac
@@ -184,6 +184,10 @@ AC_ARG_WITH([max-documents],
AS_HELP_STRING([--with-max-documents],
[Set the limit on the total number of documents. Def: 10, Min: 2.]))
+AC_ARG_WITH([sanitizer],
+ AS_HELP_STRING([--with-sanitizer],
+ [Enable one or more compatible sanitizers. E.g. --with-sanitizer=address,undefined,leak]))
+
AC_ARG_WITH([compiler-plugins],
AS_HELP_STRING([--with-compiler-plugins=<path>],
[Experimental! Unlikely to work for anyone except Noel! Enable compiler plugins that will perform additional checks during
@@ -460,6 +464,16 @@ else
AC_MSG_RESULT([no])
fi
+AC_MSG_CHECKING([whether to turn sanitizers on])
+if test "x$with_sanitizer" != "x"; then
+ AC_MSG_RESULT([yes ($with_sanitizer)])
+ SANITIZER_FLAGS="-O1 -fno-omit-frame-pointer -fsanitize=$with_sanitizer -frtti -static-libasan"
+ CXXFLAGS="$CXXFLAGS $SANITIZER_FLAGS"
+ CFLAGS="$CFLAGS $SANITIZER_FLAGS"
+else
+ AC_MSG_RESULT([no])
+fi
+
# check for C++11 support
HAVE_CXX11=
AC_MSG_CHECKING([whether $CXX supports C++14 or C++11])
More information about the Libreoffice-commits
mailing list