diff options
author | Charles-François Natali <cf.natali@gmail.com> | 2014-05-08 22:08:51 (GMT) |
---|---|---|
committer | Charles-François Natali <cf.natali@gmail.com> | 2014-05-08 22:08:51 (GMT) |
commit | d30b022b5ea1b73595b330d9d4aba36aa0ebdd29 (patch) | |
tree | 6243159ef1ee2dfae02e38b7658af7418d933e21 | |
parent | ef8f7792f3763b21b452c0859660b24473e7a345 (diff) | |
download | cpython-d30b022b5ea1b73595b330d9d4aba36aa0ebdd29.zip cpython-d30b022b5ea1b73595b330d9d4aba36aa0ebdd29.tar.gz cpython-d30b022b5ea1b73595b330d9d4aba36aa0ebdd29.tar.bz2 |
Issue #21037: Add a build option to enable AddressSanitizer support.
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rwxr-xr-x | configure | 20 | ||||
-rw-r--r-- | configure.ac | 11 |
3 files changed, 33 insertions, 0 deletions
@@ -347,6 +347,8 @@ IDLE Build ----- +- Issue #21037: Add a build option to enable AddressSanitizer support. + - The Windows build now includes OpenSSL 1.0.1g - Issue #19962: The Windows build process now creates "python.bat" in the @@ -796,6 +796,7 @@ enable_shared enable_profiling with_pydebug with_hash_algorithm +with_address_sanitizer with_libs with_system_expat with_system_ffi @@ -1472,6 +1473,8 @@ Optional Packages: --with-pydebug build with Py_DEBUG defined --with-hash-algorithm=[fnv|siphash24] select hash algorithm + --with-address-sanitizer + enable AddressSanitizer --with-libs='lib1 ...' link against additional libs --with-system-expat build pyexpat module using an installed expat library @@ -9154,6 +9157,23 @@ $as_echo "default" >&6; } fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5 +$as_echo_n "checking for --with-address-sanitizer... " >&6; } + +# Check whether --with-address_sanitizer was given. +if test "${with_address_sanitizer+set}" = set; then : + withval=$with_address_sanitizer; +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$withval" >&6; } +BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS" +LDFLAGS="-fsanitize=address $LDFLAGS" + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for t_open in -lnsl" >&5 $as_echo_n "checking for t_open in -lnsl... " >&6; } diff --git a/configure.ac b/configure.ac index b2f519f..a6f613a 100644 --- a/configure.ac +++ b/configure.ac @@ -2314,6 +2314,17 @@ esac ], [AC_MSG_RESULT(default)]) +AC_MSG_CHECKING(for --with-address-sanitizer) +AC_ARG_WITH(address_sanitizer, + AS_HELP_STRING([--with-address-sanitizer], + [enable AddressSanitizer]), +[ +AC_MSG_RESULT($withval) +BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS" +LDFLAGS="-fsanitize=address $LDFLAGS" +], +[AC_MSG_RESULT(no)]) + # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl. AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets |