diff options
Diffstat (limited to 'Porting')
-rw-r--r-- | Porting/pumpkin.pod | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/Porting/pumpkin.pod b/Porting/pumpkin.pod index b2e2c2ef6e..ff1e5bd5f9 100644 --- a/Porting/pumpkin.pod +++ b/Porting/pumpkin.pod @@ -719,37 +719,32 @@ If you have gcc, you can test the correct use of printf-style arguments. Run C<Configure> with S<-Dccflags='-DCHECK_FORMAT -Wformat'> (and S<-Dcc=gcc>, if you are not on a system where C<cc> is C<gcc>) and run C<make>. The compiler will produce warnings of -incorrect use of format arguments. CHECK_FORMAT changes perl-defined -formats to common formats, so DO NOT USE the executable produced by -this process. +incorrect use of format arguments. -A more accurate approach is the following commands: +As of change 23767, CHECK_FORMAT changes perl-defined formats +to obscure (but standard) formats, and then traps the obscure +format. The resulting perl executable operates properly but +you should not use the executable produced by this process. =over 4 =item * - -build miniperl with -DCHECK_FORMAT - - make clean - make miniperl OPTIMIZE=-DCHECK_FORMAT >& mini.log - -=item * - -build a clean miniperl, -and build everything else from that with -DCHECK_FORMAT + +A more accurate approach is the following commands: make clean - make miniperl make all OPTIMIZE='-DCHECK_FORMAT -Wformat' >& make.log - + perl -nwe 'print if /^\S+:/ and not /^make\b/' make.log + =item * -clean up, and print warnings from the log files +A more thorough approach to compiler warnings is make clean - perl -nwe 'print if /^\S+:/ and not /^make\b/' \ - mini.log make.log + make miniperl OPTIMIZE=-O\ -DCHECK_FORMAT >& make.log + make all OPTIMIZE=-O\ -DCHECK_FORMAT\ -Wall\ -Wno-unused\ + -Wno-uninitialized >>& make.log + perl -nwe 'print if /^\S+:/ and not /^make\b/' make.log =back |