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,12 @@
|
||||
addPerlLibPath () {
|
||||
addToSearchPath PERL5LIB $1/lib/perl5/site_perl/@version@
|
||||
addToSearchPath PERL5LIB $1/lib/perl5/site_perl/cross_perl/@version@
|
||||
# Adding the arch-specific directory is morally incorrect, as
|
||||
# miniperl can't load the native modules there. However, it can
|
||||
# (and sometimes needs to) load and run some of the pure perl
|
||||
# code there, so we add it anyway. When needed, stubs can be put
|
||||
# into $1/lib/perl5/site_perl/cross_perl/@version@
|
||||
addToSearchPath PERL5LIB $1/lib/perl5/site_perl/@version@/@runtimeArch@
|
||||
}
|
||||
|
||||
addEnvHooks "$targetOffset" addPerlLibPath
|
||||
Reference in New Issue
Block a user