pat_advanced.t: fix two tests

If two pieces of code are executed to see if they produce exactly the
same warning, the scalar holding the warning needs to be cleared in
between, otherwise the second test is useless if the first one passes
and the second piece of code doesn’t warn.
Update Compress-Raw-Bzip2 to CPAN version 2.061

  [DELTA]

  2.061 19 May 2013

      * silence compiler warning by making 2nd parameter to
        DispStream a const char*
Update Compress-Raw-Zlib to CPAN version 2.061

  [DELTA]

  2.061 19 May 2013

      * Include zlib 1.2.8 source.

      * typo fix
        [#85431]

      * silence compiler warning by making 2nd parameter to
        DispStream a const char*
Update IO-Compress to CPAN version 2.061

  [DELTA]

  2.061 19 May 2013

      * zipdetails (1.06)
        Get it to cope with Android 'zipalign' non-standard extra fields.
        These are used to make sure that a non-compressed member starts on
        a 4 byte boundary.

      * RT#84647: unzip example with IO::Uncompress::Unzip
[perl #117947] Verify lvalueness of XSUBs at run time

If the sub is not visible at compile time, the op tree is flagged such
that pp_entersub will know whether to check the lvalueness of the
called sub.

That check has been in pp_entersub since da1dff9483c.  When I moved
it to pp_entersub in that commit, I only added it to the pure-Perl
branch, not to the XS branch, allowing all XSUBs to be treated as
lvalues if they are not visible at compile time.
diag.t, perldiag.pod: Make sure S is used for Perl_warn

Perl_warn does not allow a category, and is not used in conjunction
with ckWARN checks (if it is, that is a bug, as such warnings will
be emitted when the category is enabled, but not fatal when the
category is fatal).  So such warnings are mandatory and should be
marked with S.
In bisect{,-runner}.pl, refactor the code for CPU probing and make jobs.

Move the code that attempts various ways to probe for the number of CPUs
from bisect-runner.pl to bisect.pl. Skip the probe entirely if a -j (--jobs)
options is passed to bisect.pl. For --jobs=0 (or -j0) entirely skip adding
-j to the make command line. (For heretical versions of make which don't use
-j for parallelism).

Previously the probe code always ran for each call to bisect-runner.pl,
which is completely redundant if bisect-runner.pl is being called for
argument validation or help text, and inefficient even when building, as the
number of CPUs rarely changes during a bisect run. Additionally there was no
way to avoid a -j in the make command line, which isn't going to fly on
systems where the make utility doesn't have a -j option.
On HP-UX, bisect without any -j option as the system make is "special".

HP-UX system make offers parallelism with -P not -j. (But doesn't deliver on
it, so we're not going to attempt to work round its crankiness and failings.)
bisect-runner.pl needs to know how to identify HP-UX's patch.

Unlike AIX, HP-UX patch offers no meaningful clue as to its upstream version:

$ patch -v
$Header: patch.c,v 76.1.1.2.1.3 2001/12/03 12:24:52 abhinav Exp $
Patch level: 0

But it ignores unified diffs, so assume the worst and feed it context diffs.
Teach bisect-runner.pl that on HP-UX, _filbuf() is named __filbuf().

This is all that is needed to build 5.003 and earlier. bisect.pl can validate
all stable versions from blead back to 5.002
bisect-runner.pl should use ".$Config{dlext}" instead of hard-coding ".so".
bisect-runner.pl should search for lib*.a as well as lib*.so

When forcing the library list on earlier perls to avoid versioned shared
objects, also look for static libraries. Also, ensure bisect-runner.pl
searches additional library paths given to it via -Alibpth

Without this, one can't test build against static libraries in non-standard
locations.
When testing the end version, bisect.pl should treat a 'skip' as fatal.

git bisect uses exit code 125 to signal a skip. Previously bisect.pl would
treat 125 just like every other non-zero exit code, assume that it meant
'fail', and if 'fail' was expected for the end version then it would start
the bisect run as normal. Which isn't useful, as it means that there's a
problem with the user's test case.
In bisect-runner.pl, refactor the system ... and die; into system_or_die().
bisect-runner.pl should always exit fatally with 255, to abort the bisect.

Don't use die or croak, as these will exit with the value of $! or $? instead
of 255, and git bisect doesn't treat these as fatal errors, but ploughs on
before inevitably failing messily for some other reason, concealing the true
error message.
Add --all-fixups to bisect.pl, to apply all patches and fixups.

bisect-runner.pl will minimally patch various files on a platform and
version dependent basis to get the build to complete. Normally it defers
doing this as long as possible - .SH files aren't patched until after
Configure is run, and C and XS code isn't patched until after miniperl is
built. If --all-fixups is specified, all the fixups are done before running
Configure.
Add --early-fixup and --late-fixup to bisect.pl, for user-controlled patching.

These provide a way to run code or to conditionally or unconditionally
apply patches for each revision tested during git bisect. This is very
useful when for the commit range, operating system and configuration options
tested, the behaviour otherwise would be to fail to build for a wide range
of revisions, and hence the bisect would finish without finding culprit
commit due to getting bogged down in 'skipped' revisions.
bisect-runner.pl should fix Makefile.SH to remove remove GNU make-isms.

Commit c7b956bbbaff0c46 inadvertently added a GNU (and BSD) make specific
construction to the *nix Makefile, which other platforms' makes choke on.
It was corrected with commit cfe76a0a8e5b6f21 (and 0961731461727bea), but
those changes are not the simplest way to get things passing again, so use
a simpler custom patch here.
bisect-runner.pl will now invoke with ./perl -Ilib if it sees a #!./perl line

If the first argument of the test case given to bisect-runner.pl is a readable
file with a #! line of ./perl or ./miniperl (only), bisect-runner.pl with
prepend ./perl -Ilib or ./miniperl -Ilib to the command sent to system.
This increases flexibility somewhat, and will avoid problems with
inconsistencies between directly running system(...), and running
system('valgrind', ...). The former accepts a #!./perl line, the latter sends
it to /bin/sh.
Add a --valgrind option to bisect.pl, to run the test program with valgrind.

Specifically this option prepends valgrind --error-exitcode=124
to the command line, so that git bisect run will treat this revision as a
failure if valgrind finds any problems.