summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.Merijn Brand <h.m.brand@xs4all.nl>2002-09-30 09:51:40 +0000
committerH.Merijn Brand <h.m.brand@xs4all.nl>2002-09-30 09:51:40 +0000
commita042607511961b7f7852d92748b40c4e94e5cc75 (patch)
tree967078cb29b1549b261215081b1e58b95b47d7df
parent2d736872f25b3e41d616d46e8286fe3f13ef058d (diff)
downloadperl-a042607511961b7f7852d92748b40c4e94e5cc75.tar.gz
-Dgccansipedantic only for gcc 3+
Mon, 30 Sep 2002, Jarkko Hietaniemi <jhi@iki.fi> p4raw-id: //depot/perl@17945
-rw-r--r--Porting/pumpkin.pod4
-rwxr-xr-xcflags.SH38
2 files changed, 25 insertions, 17 deletions
diff --git a/Porting/pumpkin.pod b/Porting/pumpkin.pod
index 0146f68046..a000108257 100644
--- a/Porting/pumpkin.pod
+++ b/Porting/pumpkin.pod
@@ -780,6 +780,10 @@ The flag -DPERL_GCC_PEDANTIC also gets added, since gcc does not add
any internal cpp flag to signify that -pedantic is being used, as it
does for -ansi (__STRICT_ANSI__).
+Note that the -ansi and -pedantic are enabled only for version 3 (and
+later) of gcc, since even gcc version 2.95.4 finds lots of seemingly
+false "value computed not used" errors from Perl.
+
The -ansi and -pedantic are useful in catching at least the following
nonportable practices:
diff --git a/cflags.SH b/cflags.SH
index 453fff67c7..634aba5de4 100755
--- a/cflags.SH
+++ b/cflags.SH
@@ -133,29 +133,33 @@ case "$gccversion" in
esac
case "$gccansipedantic" in
define)
- case "$osname" in
- # Add -ansi -pedantic only for known platforms.
- aix|dec_osf|freebsd|hpux|irix|linux)
- ansipedantic="-ansi -pedantic" ;;
- solaris)
+ case "$gccversion" in
+ [12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
+ *) case "$osname" in
+ # Add -ansi -pedantic only for known platforms.
+ aix|dec_osf|freebsd|hpux|irix|linux)
+ ansipedantic="-ansi -pedantic" ;;
+ solaris)
# Can't add -ansi for Solaris.
# Off_t/off_t is a struct in Solaris with largefiles, and with -ansi
# that struct cannot be compared with a flat integer, such as a STRLEN.
# The -ansi will also cause a lot of noise in Solaris because of:
# /usr/include/sys/resource.h:148: warning: `struct rlimit64' declared inside parameter list
- ansipedantic="-pedantic" ;;
- esac
- for i in $ansipedantic
- do
- case "$ccflags" in
- *$i*) ;;
- *) warn="$warn $i" ;;
+ ansipedantic="-pedantic" ;;
+ esac
+ for i in $ansipedantic
+ do
+ case "$ccflags" in
+ *$i*) ;;
+ *) warn="$warn $i" ;;
+ esac
+ done
+ case "$warn$ccflags" in
+ *-pedantic*) warn="$warn -DPERL_GCC_PEDANTIC" ;;
esac
- done
- case "$warn$ccflags" in
- *-pedantic*) warn="$warn -DPERL_GCC_PEDANTIC" ;;
- esac
- ;;
+ ;;
+ esac
+ ;;
esac
;;
esac