changeset: 90592:17689e43839a parent: 90590:232938736a31 user: Charles-François Natali date: Thu May 08 23:08:51 2014 +0100 files: Misc/NEWS configure configure.ac description: Issue #21037: Add a build option to enable AddressSanitizer support. diff -r 232938736a31 -r 17689e43839a Misc/NEWS --- a/Misc/NEWS Thu May 08 10:06:17 2014 -0400 +++ b/Misc/NEWS Thu May 08 23:08:51 2014 +0100 @@ -347,6 +347,8 @@ 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 diff -r 232938736a31 -r 17689e43839a configure --- a/configure Thu May 08 10:06:17 2014 -0400 +++ b/configure Thu May 08 23:08:51 2014 +0100 @@ -796,6 +796,7 @@ enable_profiling with_pydebug with_hash_algorithm +with_address_sanitizer with_libs with_system_expat with_system_ffi @@ -1472,6 +1473,8 @@ --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 @@ 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 -r 232938736a31 -r 17689e43839a configure.ac --- a/configure.ac Thu May 08 10:06:17 2014 -0400 +++ b/configure.ac Thu May 08 23:08:51 2014 +0100 @@ -2314,6 +2314,17 @@ ], [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