diff build-aux/common.mk @ 20712:4a25c398ffa2

configure option to build with address sanitizer (bugg #46449) * common.mk (WARN_LDFLAGS, ADDRESS_SANITIZER_OPTIONS): New variables. (do_subst_script_vals): Substitute ADDRESS_SANITIZER_OPTIONS. * configure.ac (GCC_ADDRESS_SANITIZER_FLAGS, GXX_ADDRESS_SANITIZER_FLAGS, LD_ADDRESS_SANITIZER_FLAGS): New flags to optionally add to WARN_CFLAGS, WARN_CXXFLAGS, and WARN_LDFLAGS. (--enable-address-sanitizer-flags): New option. (WARN_LDFLAGS): Substitute new variable and display it in summary. * libgui/module.mk, config-module.awk, libinterp/module.mk, liboctave/module.mk, src/module.mk: Add WARN_LDFLAGS to linker options. * run-octave.in: Handle address sanitizer environment variable.
author John W. Eaton <jwe@octave.org>
date Wed, 18 Nov 2015 15:44:33 -0500
parents bacaec9b5535
children 54527108599a
line wrap: on
line diff
--- a/build-aux/common.mk	Wed Nov 18 10:40:26 2015 -0800
+++ b/build-aux/common.mk	Wed Nov 18 15:44:33 2015 -0500
@@ -143,6 +143,7 @@
 LD_CXX = @LD_CXX@
 LD_STATIC_FLAG = @LD_STATIC_FLAG@
 LIBFLAGS = -L$(top_builddir)
+WARN_LDFLAGS = @WARN_LDFLAGS@
 #ALL_LDFLAGS = $(LIBFLAGS) $(LD_STATIC_FLAG) $(CPICFLAG) $(LDFLAGS)
 
 BUILD_LDFLAGS = @BUILD_LDFLAGS@
@@ -318,6 +319,10 @@
 USE_64_BIT_IDX_T = @USE_64_BIT_IDX_T@
 OCTAVE_IDX_TYPE = @OCTAVE_IDX_TYPE@
 
+if AMCOND_ADDRESS_SANITIZER_ENABLED
+  ADDRESS_SANITIZER_OPTIONS="symbolize=1"
+endif
+
 # The arguments passed to configure.
 config_opts = @config_opts@
 
@@ -884,6 +889,7 @@
     -e "s|%AWK%|${AWK}|g" \
     -e "s|%FIND%|${FIND}|g" \
     -e "s|%SED%|${SED}|g" \
+    -e "s|%ADDRESS_SANITIZER_OPTIONS%|${ADDRESS_SANITIZER_OPTIONS}|g" \
     -e "s|%abs_top_srcdir%|${abs_top_srcdir}|" \
     -e "s|%builddir%|$(shell pwd)|" > $@-t && \
   $(simple_move_if_change_rule)