summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoman I Khimov <khimov@altell.ru>2010-11-22 17:23:55 +0300
committerRoman I Khimov <khimov@altell.ru>2010-12-28 22:50:40 +0300
commit264f7ab1f41cc86d29716619d67506c85223df71 (patch)
treecda0ceeaa1ef59fc6bd4e3f97e76e2ab2fade228
parent228a1481110bf8e522baca11fef3d682648236fd (diff)
downloadopenembedded-264f7ab1f41cc86d29716619d67506c85223df71.tar.gz
perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars
Multimachine builds race staging Config_heavy-target.pl to native directory. Solve that by changing PERLCONFIGTARGET variable semantics, now it will contain $TARGET_SYS. Change perl patch and stage functions accordingly. Also, move PERLCONFIGTARGET and other target-specific variable settings from cpan to cpan-base as I think they're also useful for cpan_build and anywhere else cpan-base is needed. Signed-off-by: Roman I Khimov <khimov@altell.ru> Acked-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--classes/cpan-base.bbclass14
-rw-r--r--classes/cpan.bbclass10
-rw-r--r--classes/cpan_build.bbclass4
-rw-r--r--recipes/perl/perl-5.10.1/perl-configpm-switch.patch6
-rw-r--r--recipes/perl/perl-5.8.8/perl-configpm-switch.patch6
-rw-r--r--recipes/perl/perl-native_5.10.1.bb2
-rw-r--r--recipes/perl/perl-native_5.8.8.bb2
-rw-r--r--recipes/perl/perl_5.10.1.bb4
-rw-r--r--recipes/perl/perl_5.8.8.bb2
9 files changed, 25 insertions, 25 deletions
diff --git a/classes/cpan-base.bbclass b/classes/cpan-base.bbclass
index a04f61c340..53621edc62 100644
--- a/classes/cpan-base.bbclass
+++ b/classes/cpan-base.bbclass
@@ -32,11 +32,21 @@ def perl_get_libdirs(d):
def is_target(d):
if not bb.data.inherits_class('native', d):
- return "yes"
- return "no"
+ return bb.data.expand('${TARGET_SYS}', d)
+ return ""
PERLLIBDIRS = "${@perl_get_libdirs(d)}"
FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \
${PERLLIBDIRS}/auto/*/*/.debug \
${PERLLIBDIRS}/auto/*/*/*/.debug"
+
+# Env var which tells perl if it should use host ('') or target ('$TARGET_SYS') settings
+export PERLCONFIGTARGET = "${@is_target(d)}"
+
+EXTRA_CPANFLAGS ?= ""
+
+# Env var which tells perl where the perl include files are
+export PERL_INC = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}/CORE"
+export PERL_LIB = "${STAGING_DATADIR}/perl/${@get_perl_version(d)}"
+export PERL_ARCHLIB = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}" \ No newline at end of file
diff --git a/classes/cpan.bbclass b/classes/cpan.bbclass
index 24e0c6e326..b81ae9ad46 100644
--- a/classes/cpan.bbclass
+++ b/classes/cpan.bbclass
@@ -3,16 +3,6 @@
#
inherit cpan-base
-EXTRA_CPANFLAGS ?= ""
-
-# Env var which tells perl if it should use host (no) or target (yes) settings
-export PERLCONFIGTARGET = "${@is_target(d)}"
-
-# Env var which tells perl where the perl include files are
-export PERL_INC = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}/CORE"
-export PERL_LIB = "${STAGING_DATADIR}/perl/${@get_perl_version(d)}"
-export PERL_ARCHLIB = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}"
-
NATIVE_INSTALL_WORKS = "1"
cpan_do_configure () {
diff --git a/classes/cpan_build.bbclass b/classes/cpan_build.bbclass
index d1bbc4f93e..3f52cc21cb 100644
--- a/classes/cpan_build.bbclass
+++ b/classes/cpan_build.bbclass
@@ -22,7 +22,7 @@ def cpan_build_deps(d):
DEPENDS_prepend = "${@cpan_build_deps(d)}"
cpan_build_do_configure () {
- if [ ${@is_target(d)} = "yes" ]; then
+ if [ ${@is_target(d)} != "" ]; then
# build for target
. ${STAGING_LIBDIR}/perl/config.sh
perl Build.PL --installdirs vendor \
@@ -44,7 +44,7 @@ cpan_build_do_compile () {
}
cpan_build_do_install () {
- if [ ${@is_target(d)} = "yes" ]; then
+ if [ ${@is_target(d)} != "" ]; then
perl Build install
else
perl Build install destdir="${WORKDIR}/image"
diff --git a/recipes/perl/perl-5.10.1/perl-configpm-switch.patch b/recipes/perl/perl-5.10.1/perl-configpm-switch.patch
index 1aacd35189..8becb8e33a 100644
--- a/recipes/perl/perl-5.10.1/perl-configpm-switch.patch
+++ b/recipes/perl/perl-5.10.1/perl-configpm-switch.patch
@@ -1,6 +1,6 @@
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
+Config_heavy-$TARGET_SYS.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
@@ -24,9 +24,9 @@ values would be valid for the host only.
sub AUTOLOAD {
- require 'Config_heavy.pl';
+ my $cfgfile = 'Config_heavy.pl';
-+ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes")
++ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} ne "")
+ {
-+ $cfgfile = 'Config_heavy-target.pl';
++ $cfgfile = "Config_heavy-$ENV{PERLCONFIGTARGET}.pl";
+ }
+ require $cfgfile;
goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
diff --git a/recipes/perl/perl-5.8.8/perl-configpm-switch.patch b/recipes/perl/perl-5.8.8/perl-configpm-switch.patch
index 1aacd35189..8becb8e33a 100644
--- a/recipes/perl/perl-5.8.8/perl-configpm-switch.patch
+++ b/recipes/perl/perl-5.8.8/perl-configpm-switch.patch
@@ -1,6 +1,6 @@
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
+Config_heavy-$TARGET_SYS.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
@@ -24,9 +24,9 @@ values would be valid for the host only.
sub AUTOLOAD {
- require 'Config_heavy.pl';
+ my $cfgfile = 'Config_heavy.pl';
-+ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes")
++ if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} ne "")
+ {
-+ $cfgfile = 'Config_heavy-target.pl';
++ $cfgfile = "Config_heavy-$ENV{PERLCONFIGTARGET}.pl";
+ }
+ require $cfgfile;
goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
diff --git a/recipes/perl/perl-native_5.10.1.bb b/recipes/perl/perl-native_5.10.1.bb
index 61d57f4b2b..8b275a2750 100644
--- a/recipes/perl/perl-native_5.10.1.bb
+++ b/recipes/perl/perl-native_5.10.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
SECTION = "libs"
LICENSE = "Artistic|GPLv1+"
DEPENDS = "virtual/db-native gdbm-native"
-PR = "r6"
+PR = "r7"
NATIVE_INSTALL_WORKS = "1"
# Not tested enough
diff --git a/recipes/perl/perl-native_5.8.8.bb b/recipes/perl/perl-native_5.8.8.bb
index dbff4c5c40..a7f85a30e6 100644
--- a/recipes/perl/perl-native_5.8.8.bb
+++ b/recipes/perl/perl-native_5.8.8.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
SECTION = "libs"
LICENSE = "Artistic|GPLv1+"
DEPENDS = "virtual/db-native gdbm-native"
-PR = "r21"
+PR = "r22"
NATIVE_INSTALL_WORKS = "1"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/perl-${PV}"
diff --git a/recipes/perl/perl_5.10.1.bb b/recipes/perl/perl_5.10.1.bb
index 91434e284a..387755e4da 100644
--- a/recipes/perl/perl_5.10.1.bb
+++ b/recipes/perl/perl_5.10.1.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+"
PRIORITY = "optional"
# We need gnugrep (for -I)
DEPENDS = "virtual/db perl-native grep-native"
-PR = "r14"
+PR = "r15"
# 5.10.1 has Module::Build built-in
PROVIDES += "libmodule-build-perl"
@@ -211,7 +211,7 @@ do_stage() {
# target config, used by cpan.bbclass to extract version information
install config.sh ${STAGING_LIBDIR}/perl/
# target configuration, used by native perl when cross-compiling
- install lib/Config_heavy.pl ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy-target.pl
+ install lib/Config_heavy.pl ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy-${TARGET_SYS}.pl
# target configuration
install lib/Config.pm ${STAGING_LIBDIR}/perl/${PV}/
install lib/ExtUtils/typemap ${STAGING_DATADIR}/perl/${PV}/ExtUtils/
diff --git a/recipes/perl/perl_5.8.8.bb b/recipes/perl/perl_5.8.8.bb
index 69078e8b24..3e14bc34d2 100644
--- a/recipes/perl/perl_5.8.8.bb
+++ b/recipes/perl/perl_5.8.8.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+"
PRIORITY = "optional"
# We need gnugrep (for -I)
DEPENDS = "virtual/db perl-native grep-native"
-PR = "r36"
+PR = "r37"
# Major part of version
PVM = "5.8"