From: H.Merijn Brand Date: Mon, 30 Sep 2002 09:51:40 +0000 (+0000) Subject: -Dgccansipedantic only for gcc 3+ X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a042607511961b7f7852d92748b40c4e94e5cc75;p=p5sagit%2Fp5-mst-13.2.git -Dgccansipedantic only for gcc 3+ Mon, 30 Sep 2002, Jarkko Hietaniemi p4raw-id: //depot/perl@17945 --- diff --git a/Porting/pumpkin.pod b/Porting/pumpkin.pod index 0146f68..a000108 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 453fff6..634aba5 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