perlPackages: Add cross-compilation support.
This involved:
* Installing miniperl as $dev/bin/perl
* Setting miniperl to take INC from
lib/perl5/{site_perl/,}cross_perl/${version} as well as
lib/perl5/{site_perl/,}/${version}/${runtimeArch}, in that
order. miniperl taking from runtimeArch is not really correct, but
it works in some pure-perl cases (e.g. Config.pm) and can be
overridden with the cross_perl variant.
* Installing perl-cross's stubs into
$dev/lib/perl5/cross_perl/${version}
* Patching MakeMaker.pm to gracefully degrade (very slightly) if B.pm
can't be loaded, which it can't in cross-compilation.
* Passing the right build-time and runtime perls to Makefile.PL
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
diff -Naur a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
|
||||
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 2017-06-30 17:03:20.000000000 -0400
|
||||
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 2018-02-28 10:06:37.031237946 -0500
|
||||
@@ -1267,7 +1267,12 @@
|
||||
my $value = shift;
|
||||
return $value if $UNDER_CORE;
|
||||
my $tvalue = '';
|
||||
- require B;
|
||||
+ eval {
|
||||
+ require B;
|
||||
+ };
|
||||
+ if ($@) {
|
||||
+ return $tvalue;
|
||||
+ }
|
||||
my $sv = B::svref_2object(\$value);
|
||||
my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef;
|
||||
while ( $magic ) {
|
||||
Reference in New Issue
Block a user