From 49af0f9d599ddd89cde880e46f3d2115a91a1f28 Mon Sep 17 00:00:00 2001 From: Kim Woelders Date: Sat, 16 May 2020 09:27:37 +0200 Subject: [PATCH] Add feature to build with ASAN (--enable-gcc-asan) --- configure.ac | 1 + m4/ec_asan.m4 | 20 ++++++++++++++++++++ src/bin/Makefile.am | 2 +- src/lib/Makefile.am | 2 +- src/modules/filters/Makefile.am | 2 +- src/modules/loaders/Makefile.am | 2 +- 6 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 m4/ec_asan.m4 diff --git a/configure.ac b/configure.ac index 02edf59..f5d53ba 100644 --- a/configure.ac +++ b/configure.ac @@ -382,6 +382,7 @@ AM_CONDITIONAL(BUILD_ID3_LOADER, test "$id3_ok" = yes) EC_C_WARNINGS() EC_C_VISIBILITY(yes) +EC_C_ASAN() AC_CONFIG_HEADERS(config.h) AC_CONFIG_FILES([ diff --git a/m4/ec_asan.m4 b/m4/ec_asan.m4 new file mode 100644 index 0000000..c7d9bfb --- /dev/null +++ b/m4/ec_asan.m4 @@ -0,0 +1,20 @@ +dnl Copyright (C) 2020 Kim Woelders +dnl This code is public domain and can be freely used or copied. + +dnl Macro to set compiler flags in CFLAGS_ASAN + +dnl Usage: EC_C_ASAN() + +AC_DEFUN([EC_C_ASAN], [ + AC_ARG_ENABLE(gcc-asan, + [AS_HELP_STRING([--enable-gcc-asan], + [compile with ASAN support @<:@default=no@:>@])],, + enable_gcc_asan=no) + + if test "x$GCC" = "xyes"; then + if test "x$enable_gcc_asan" = "xyes"; then + CFLAGS_ASAN="-fsanitize=address -fno-omit-frame-pointer" + fi + fi + AC_SUBST(CFLAGS_ASAN) +]) diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 415f4ba..4833794 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -1,6 +1,6 @@ MAINTAINERCLEANFILES = Makefile.in -AM_CFLAGS = $(CFLAGS_WARNINGS) +AM_CFLAGS = $(CFLAGS_WARNINGS) $(CFLAGS_ASAN) AM_CPPFLAGS = \ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -I$(top_srcdir)/src/lib \ diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index d1e4429..bfff8e1 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -1,6 +1,6 @@ AUTOMAKE_OPTIONS = 1.4 foreign MAINTAINERCLEANFILES = Makefile.in -AM_CFLAGS = $(CFLAGS_WARNINGS) $(CFLAGS_VISIBILITY) +AM_CFLAGS = $(CFLAGS_WARNINGS) $(CFLAGS_VISIBILITY) $(CFLAGS_ASAN) AM_CPPFLAGS = -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -I$(top_builddir) \ $(X_CFLAGS) \ diff --git a/src/modules/filters/Makefile.am b/src/modules/filters/Makefile.am index 3faceee..08b840f 100644 --- a/src/modules/filters/Makefile.am +++ b/src/modules/filters/Makefile.am @@ -1,6 +1,6 @@ MAINTAINERCLEANFILES = Makefile.in -AM_CFLAGS = $(CFLAGS_WARNINGS) $(CFLAGS_VISIBILITY) +AM_CFLAGS = $(CFLAGS_WARNINGS) $(CFLAGS_VISIBILITY) $(CFLAGS_ASAN) AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir)/src/lib pkgdir = $(libdir)/imlib2/filters diff --git a/src/modules/loaders/Makefile.am b/src/modules/loaders/Makefile.am index 921f0ad..7204711 100644 --- a/src/modules/loaders/Makefile.am +++ b/src/modules/loaders/Makefile.am @@ -1,6 +1,6 @@ MAINTAINERCLEANFILES = Makefile.in -AM_CFLAGS = $(CFLAGS_WARNINGS) $(CFLAGS_VISIBILITY) +AM_CFLAGS = $(CFLAGS_WARNINGS) $(CFLAGS_VISIBILITY) $(CFLAGS_ASAN) AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir)/src/lib pkgdir = $(libdir)/imlib2/loaders