PATCH: [perl #122460] Regression with (?{})(?=...) and pos

The commit that really broke this was
a0dd42312a1f26356d2fdf49656e45b77c2cefb5.  The blamed commit fixed some
typos that kept the earlier bad commit from having an effect.

Zero-length assertions, such as (?=...) obviously can match an empty
string.  The bad commit wrongly removed a setting of a flag to that
effect.  I didn't realize the implications at the time, thinking that
the newly-corrected AND logical operations would correctly set things
up, and that the previous code had been a workaround for the buggy AND.
The problem is that there is an overriding context such that whatever
the AND result, since this is in a 0-length assertion, the result will
match the empty string.  Thus it now differs from the pre-bad-commit
code which set to match the empty string only sometimes.  I'm pretty
sure it should be 'always'.  If I'm wrong, it doesn't mean a bug, but
only that an optimisation that could take place won't.

(cherry picked from commit 842a9d211f60b9643f4a6707f378be70fa2fbb9e)
Sync Config::Perl::V to version 0.21

 * Add tests for each major distribution since 5.6.2
 * Better detect build times
 * Sync with 5.20.1

(cherry picked from commit b4ade0121f513ffbfbd57484ccf779f28bcfb95b)
Test file had been renamed. remove old cruft

(cherry picked from commit 2af655b5cf66b7a6963303751abfaa0aa53b7828)
Update Config::Perl::V to version 0.22

(cherry picked from commit 60df6830c0429ffd1f40e4d01237803f337499a5)
Correct double mention of winpid_to_pid.

As reported by graham at wdlabs dot com.

For: RT #122430
(cherry picked from commit f15c31c178d6fa50bc256d9c7a373eab5648f939)
Revert part of b844a53a to fix ./perl -Ilib t/io/fs.t

The temps are created in t, but $ENV{PWD} points to root.

The change was made for Android support, but is now obsoleted
by newer code for Android, just below.

(cherry picked from commit a5a49cbf4d6eb36d453c1c5eb58984d66bb4b45e)
Skip ext/GDBM_File/t/fatal.t in Darwin, too flaky.

(random crashes at destruction time)

See https://rt.perl.org/Public/Bug/Display.html?id=117967
and jhi ran into this in OS 10.9.4 + blead + gdbm 1.11
(gdbm via macports, but shouldn't matter much: flaky is flaky).

(cherry picked from commit cfc6b1ed3a0eabcc03845bd71d4357d9c62155b6)
regcomp.c: Don't read outside array bound

This code is only in DEBUGGING builds had an off-by-one error
that would read beyond the end of the array.  This commit also removes
a redundant test

(cherry picked from commit 33e493d3ba71689dfaec10efd9847548790cc922)
[perl #121404] tied hashes are different

(cherry picked from commit 883f220b1a9552b53f705c439a73a5c235feaedc)
t/run/locale.t: Skip environment test on Win32

This test is to make sure that without environment overrides, that the
decimal point character is a dot.  However in Windows machines, the
default locale can be set via administration regardless of environment
overrides, so this test is invalid on that platform.

Spotted by Steve Hay.

(cherry picked from commit e1df407107c5f394da157461e336562c7a7d6a59)
Documentation typo fix

(cherry picked from commit 287e9fa667dea09a6b41b11e1be4ccc73927e200)
ExtUtils::CBuilder: On Android, link to both -lperl and $Config{perllibs}

This is done because quite a bit of CPAN assumes that
if libperl.so links to something, then you'll get those
functions for free, but that is not the case on
Android.

(cherry picked from commit 9f9de66faac78f8dab171d8636dbaa778db5ea35)
Bring perldelta up-to-date
Newer Sun C compilers are not 'SUNwspro', but 'solstudio'.

(cherry picked from commit 78ab3d1a1e24336ae295c6766f0aa90bff964c53)
Sun c99 ccversion.

(cherry picked from commit 8f6660ae44158df9b0d94fc5d1c7deb9c85ea1ad)
Sun c99 doesn't like bare -O.

(cherry picked from commit a5a0b9b91da0e2ae65a3eaaed49632081d8eb2de)
Sun c99 needs -Xa for many system interfaces.

(cherry picked from commit 0b6032931d47da84e83a642fede2c6ebb0bcedeb)
Fix hint typo: No leading underscore in PERL_USE_SAFE_PUTENV

hints/solaris_2.sh generates a config.over script intended to add
PERL_USE_SAFE_PUTENV to ccflags, if it is not already present.  An extra
leading underscore in the check meant that the test always failed and
PERL_USE_SAFE_PUTENV always got added.

(cherry picked from commit dd25c352db6f2a0adb8324232f6ccfd456d603e9)
t/run/locale.t: Improve skip message

Better wording uggested by H.Merijn Brand

(cherry picked from commit 2ebcba0a9f172787c2c75bb3480e865c6809c1f0)
locale.c: Use PERL_UNUSED_RESULT

The previous way to suppress messages wasn't working for all gcc
versions.  Spotted by Jarkko Hietaniemi.

(cherry picked from commit 856b881c8af7c4319ce0cf631dae3495067185a2)