summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS4
-rw-r--r--configure.in6
3 files changed, 10 insertions, 1 deletions
diff --git a/Misc/ACKS b/Misc/ACKS
index 65ee9e7a70..3b968dde8c 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -167,6 +167,7 @@ Yves Dionne
Daniel Dittmar
Walter Dörwald
Jaromir Dolecek
+Ismail Donmez
Dima Dorfman
Cesar Douady
Dean Draayer
diff --git a/Misc/NEWS b/Misc/NEWS
index 7dae508ec2..0d420d0e38 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1123,6 +1123,10 @@ Tools/Demos
Build
-----
+- Bug #1608: use -fwrapv when GCC supports it. This is important,
+ newer GCC versions may optimize away overflow buffer overflow checks
+ without this option!
+
- Patch #1418: Make the AC_REPLACE_FUNCS object files actually work.
- Add a FAST_LOOPS build option that speeds-up looping by trading away
diff --git a/configure.in b/configure.in
index b0313e2472..496495483e 100644
--- a/configure.in
+++ b/configure.in
@@ -757,6 +757,10 @@ then
if test "$CC" != 'g++' ; then
STRICT_PROTO="-Wstrict-prototypes"
fi
+ # For gcc 4.x we need to use -fwrapv so lets check if its supported
+ if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
+ WRAP="-fwrapv"
+ fi
case $ac_cv_prog_cc_g in
yes)
if test "$Py_DEBUG" = 'true' ; then
@@ -764,7 +768,7 @@ then
# debug builds.
OPT="-g -Wall $STRICT_PROTO"
else
- OPT="-g -O3 -Wall $STRICT_PROTO"
+ OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
fi
;;
*)