Subject: | don't remove -fno-strict-aliasing from the C compiler flags |
The Makefile.PL is changing the C compiler flags to -Wall if it thinks that the
compiler is gcc. It isn't a good idea to *change* the flags, as this removes
existing flags that may be important.
As it turns out, this will always be the case with gcc. The perl sources aren't
strictly conformant ANSI C because they violate aliasing rules left, right and
centre. So -fno-strict-aliasing is needed, else tests fail in really strange
ways. (Errors about "not a CODE reference" reported as coming from DynaLoader)
Attached patch *adds* -Wall to the cflags, and uses a slightly more robust way
of detecting gcc.
Nicholas Clark
Subject: | ccflags.patch |
--- Makefile.PL~ 2007-11-22 20:51:23.000000000 +0100
+++ Makefile.PL 2014-03-19 16:16:30.550812448 +0100
@@ -23,8 +23,8 @@
clean => { FILES => 'Devel-LeakTrace-Fast-*' },
);
-if ( $Config{'ccname'} =~ /gcc/ ) {
- $args{CCFLAGS} = '-Wall';
+if ( $Config{'gccversion'} ) {
+ $args{CCFLAGS} = "$Config{ccflags} -Wall";
}
WriteMakefile( %args );