summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac7
-rw-r--r--src/Makefile.am8
2 files changed, 13 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 2d752d4..b0618f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,9 +20,14 @@ if test "$DEFAULT_PAGESIZE" != auto; then
fi
AC_ARG_WITH([asan],
- AS_HELP_STRING([--with-asan], [Link with libasan])
+ AS_HELP_STRING([--with-asan], [Build with address sanitizer])
)
AM_CONDITIONAL([WITH_ASAN], [test x"$with_asan" = xyes])
+AC_ARG_WITH([ubsan],
+ AS_HELP_STRING([--with-ubsan], [Build with undefined behavior sanitizer])
+)
+AM_CONDITIONAL([WITH_UBSAN], [test x"$with_ubsan" = xyes])
+
AC_CONFIG_FILES([Makefile src/Makefile tests/Makefile patchelf.spec])
AC_OUTPUT
diff --git a/src/Makefile.am b/src/Makefile.am
index b9aee08..0ea311a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,7 +1,13 @@
AM_CXXFLAGS = -Wall -std=c++11 -D_FILE_OFFSET_BITS=64
+SAN_FLAGS = -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1
+
if WITH_ASAN
-AM_CXXFLAGS += -fsanitize=address -fno-optimize-sibling-calls -fsanitize-address-use-after-scope -fno-omit-frame-pointer -g -O1
+AM_CXXFLAGS += -fsanitize=address $(SAN_FLAGS)
+endif
+
+if WITH_UBSAN
+AM_CXXFLAGS += -fsanitize=undefined $(SAN_FLAGS)
endif
bin_PROGRAMS = patchelf