A more accurate approach is the following commands:
- sh Configure -des -Dccflags=-Wformat ...
- make miniperl # without -DCHECK_FORMAT
- perl -i.orig -pwe 's/-Wformat/-DCHECK_FORMAT $&/' config.sh
- sh Configure -S
- make >& make.log # build from correct miniperl
+=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
+
make clean
- make miniperl >& mini.log # build miniperl with -DCHECK_FORMAT
- perl -nwe 'print if /^\S+:/ and not /^make\b/' mini.log make.log
+ make miniperl
+ make all OPTIMIZE=-DCHECK_FORMAT >& make.log
+
+=item *
+
+clean up, and print warnings from the log files
+
make clean
+ perl -nwe 'print if /^\S+:/ and not /^make\b/' \
+ mini.log make.log
+
+=back
(-Wformat support by Robin Barker.)
(void)rsignal(sig, &Perl_csighandler);
#endif
#endif /* !PERL_MICRO */
- Perl_die(aTHX_ Nullch);
+ Perl_die(aTHX_ Nullformat);
}
cleanup:
if (flags & 1)
# endif
#endif
+#ifndef Nullformat
+# ifdef CHECK_FORMAT
+# define Nullformat "%s",""
+# else
+# define Nullformat Nullch
+# endif
+#endif
+
/* Some unistd.h's give a prototype for pause() even though
HAS_PAUSE ends up undefined. This causes the #define
below to be rejected by the compiler. Sigh.