summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKim Woelders <kim@woelders.dk>2020-05-16 09:27:37 +0200
committerKim Woelders <kim@woelders.dk>2021-07-13 08:55:33 +0200
commit49af0f9d599ddd89cde880e46f3d2115a91a1f28 (patch)
tree014dec30311298cb063acc88ec450b989d00a500
parent651c56bb295ebd3b0ceedb8cd60ba35c275e8e93 (diff)
downloadimlib2-49af0f9d599ddd89cde880e46f3d2115a91a1f28.tar.gz
Add feature to build with ASAN (--enable-gcc-asan)
-rw-r--r--configure.ac1
-rw-r--r--m4/ec_asan.m420
-rw-r--r--src/bin/Makefile.am2
-rw-r--r--src/lib/Makefile.am2
-rw-r--r--src/modules/filters/Makefile.am2
-rw-r--r--src/modules/loaders/Makefile.am2
6 files changed, 25 insertions, 4 deletions
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