diff options
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | src/Makefile.am | 8 |
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 |