mirror of
https://git.yoctoproject.org/poky
synced 2026-07-16 15:57:04 +00:00
ead379657b
perl-cross is a build system overlay from buildroot project that aims to bring a bit of sanity to cross-building perl. The advantage of using that is that we can drop a lot of custom patches (that no one really understands), and simplify the perl recipe as well. Also the build time goes down from several minutes to about 30 seconds. The whole thing becomes maintainable again, in my opinion. When rewriting the recipe I had two goals in mind: 1. Stay with upstream defaults as much as possible 2. Add custom patches only when their necessity was proven through testing. http://arsv.github.io/perl-cross/ (From OE-Core rev: 52f2828314f851263ca3a6beb41ec936fab4d3ab) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
49 lines
1.6 KiB
Diff
49 lines
1.6 KiB
Diff
This patch is used for perl-native only. It enables the switching of
|
|
configuration files between Config_heavy.pl and
|
|
Config_heavy-target.pl by setting the environment variables
|
|
PERLCONFIGTARGET - the later containing settings for the target while
|
|
the former contains those for the host. This will allow cpan.bbclass
|
|
to use the settings appropriate for the native and/or target builds
|
|
as required. This also disables the use of the cache since the cached
|
|
values would be valid for the host only.
|
|
|
|
Upstream-Status: Inappropriate [native]
|
|
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
|
|
|
|
Index: perl-5.14.2/configpm
|
|
===================================================================
|
|
--- perl-5.14.2.orig/configpm
|
|
+++ perl-5.14.2/configpm
|
|
@@ -658,7 +658,7 @@ sub FETCH {
|
|
my($self, $key) = @_;
|
|
|
|
# check for cached value (which may be undef so we use exists not defined)
|
|
- return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key);
|
|
+ return $self->fetch_string($key);
|
|
}
|
|
|
|
ENDOFEND
|
|
@@ -816,7 +816,21 @@ $config_txt .= sprintf <<'ENDOFTIE', $fa
|
|
sub DESTROY { }
|
|
|
|
sub AUTOLOAD {
|
|
- require 'Config_heavy.pl';
|
|
+ my $cfgfile = 'Config_heavy.pl';
|
|
+ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes")
|
|
+ {
|
|
+ $cfgfile = 'Config_heavy-target.pl';
|
|
+ }
|
|
+ if (defined $ENV{PERL_ARCHLIB})
|
|
+ {
|
|
+ push @INC, $ENV{PERL_ARCHLIB};
|
|
+ require $cfgfile;
|
|
+ pop @INC;
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ require $cfgfile;
|
|
+ }
|
|
goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
|
|
die "&Config::AUTOLOAD failed on $Config::AUTOLOAD";
|
|
}
|