[Python-checkins] cpython: Issue #21037: Add a build option to enable AddressSanitizer support.

charles-francois.natali python-checkins at python.org
Fri May 9 00:10:21 CEST 2014


http://hg.python.org/cpython/rev/17689e43839a
changeset:   90592:17689e43839a
parent:      90590:232938736a31
user:        Charles-François Natali <cf.natali at gmail.com>
date:        Thu May 08 23:08:51 2014 +0100
summary:
  Issue #21037: Add a build option to enable AddressSanitizer support.

files:
  Misc/NEWS    |   2 ++
  configure    |  20 ++++++++++++++++++++
  configure.ac |  11 +++++++++++
  3 files changed, 33 insertions(+), 0 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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 --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -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 --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -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

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list