| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
It causes non-deterministic build failures. While most have been
seen on ARM, it can happen on other architectures.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Install perl and its libraries into the usual places, make no
distinction between site, vendor and core.
This needs to be kept in sync with perl build systems as otherwise
it may not be able to find modules
|
|
|
|
|
|
|
|
| |
sitelib usually includes the version number, sitearch includes
the architecture as well.
We don't need this as we will only ever have one version of perl
installed on a system and different chunks are needed for different
architectures anyway.
|
| |
|
| |
|
|
|
|
| |
This is approximately the same version as linux from scratch
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This was due to my failure to realize that this 'if' needed to
be updated when the /aa modifier was added.
|
|
|
|
|
| |
This was due to my oversight in not fixing this switch statement
to accommodate /aa when it was added.
|
| |
|
|
|
|
| |
3c97495f56fb647c used bzero(), which isn't available on some platforms.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Because read_meta is also used to read META.* for configure_requires,
it must not return undef when dynamic_config is true. Instead,
the caller of read_meta must check dynamic_config when appropriate.
This is an API change, but as this is a new function, I think getting
correct semantics is more important than preserving back compatibility.
|
|
|
|
|
|
|
| |
It should not check MYMETA if for some reason configure_requires
is checked again after MYMETA has been created.
This patch adds a regex filter to the check for the meta file.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(aka Fun with Hash::Util)
This script gives ‘Modification of a read-only value’:
use Hash::Util lock_value;
*foo::; # autovivify
lock_value %::, foo::::;
*foo:: = [];
So far so good. That’s to be expected. But this one crashes:
use Hash::Util lock_value;
$a{h} = *foo;
lock_value %a, h;
$a{h} = [];
Under debugging builds, it gives assertion failures.
Anyone who knows how the flags work will see immediately what’s wrong,
but for the sake of those who don’t:
The SVf_FAKE flag is set on a copy of a typeglob, meaning that assign-
ing something other than a glob to it will overwrite the glob, instead
of writing to one of its slots.
The SVf_FAKE flag on a read-only (SVf_READONLY-flagged) string means
that it’s not actually read-only, but a copy-on-write string.
SVf_READONLY on a glob means that you can’t even assign *through* it.
See the first Hash::Util example above.
The crashing occurs when the two flags are combined.
sv_force_normal_flags assumes that anything marked fake AND read-only
is a copy-on-write string, so it proceeds to gut it, even if it’s
actually just corrupting a glob.
So this commit changes that check to take typeglobs into account.
|
| |
|
| |
|
| |
|
|
|
|
| |
I wonder how many other things a604c75 broke....
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
I reverted the first version of this patch because I put the if()
statement before a declaration. I did a revert, rather than a correc-
tion, to make back-porting easier.
|
| |
|
|
|
|
|
|
|
|
|
| |
First, disable all the unsupported flags just to make sure they aren't
triggering something they shouldn't be. Also, zero the pglob struct
before passing to bsd_glob(); it contains function pointers, and it's
safest if they are null rather than containing random stack data.
Bug reported by Clément Lecigne <clemun@gmail.com>.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit eff7e72c3 (Detect incomplete caller overrides in Carp) used
this little trick for detecting a @DB::args that an overridden
caller() failed to set:
+ @args = \$i; # A sentinal, which no-one else has the address of
But there is a bug in caller(). The first time caller tries to write
to @DB::args, it calls Perl_init_dbargs first. That function checks
whether @DB::args is AvREAL, in case someone has assigned to it, and
takes appropriate measures. But caller doesn’t bother calling
Perl_init_dbargs more than once. So manually-assigned items in
@DB::args would leak, starting with the *second* call to caller.
Commit eff7e72c3 triggered that bug, resulting in a regression in
Carp, in that it started leaking. eff7e72c3 was backported to 5.12.2
with commit 97705941a4, so in both 5.12 and 5.14 Carp is affected.
This bug (the caller bug, not Carp’s triggering thereof) also affects
any caller overrides that set @DB::args themselves, if there are
alternate calls to the overridden caller and CORE::caller.
This commit fixes that by changing the if (!PL_dbargs) condition
in pp_caller to if (!PL_dbargs || AvREAL(PL_dbargs)). I.e., if
@args is either uninitialised or AvREAL then call Perl_init_dbargs.
Perl_init_dbargs also has a bug in it, that this fixes: The array not
only needs AvREAL turned off, but also AvREIFY turned on, so that
assignments to it that occur after its initialisation turn AvREAL back
on again. (In fact, Larry Wall added a comment suggesting this back
in perl 5.000.)
|
| |
|
| |
|