summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Brabec <utx@penguin.cz>2008-11-10 21:24:04 +0000
committerutx@penguin.cz <utx@penguin.cz>2008-11-11 13:04:23 +0000
commit76e3e6e123c6b2a64905a32e5181e647107e562d (patch)
treedf7eaeae78c8aa3f349fbc8b1b6e5eaec7046ae1
parente359350395120b910cd281157e678f8416d68416 (diff)
perl and cpan.bbclass: Never reference to host instance of perl:
* install MakeMaker files separately for native and target system * PERL_INC, PERL_LIB and PERL_ARCHLIB changes through environment * for more see http://lists.linuxtogo.org/pipermail/openembedded-devel/2008-November/006815.html
-rw-r--r--classes/cpan.bbclass3
-rw-r--r--packages/perl/perl-5.8.8/native-perlinc.patch14
-rw-r--r--packages/perl/perl-native_5.8.8.bb19
-rw-r--r--packages/perl/perl_5.8.8.bb6
4 files changed, 36 insertions, 6 deletions
diff --git a/classes/cpan.bbclass b/classes/cpan.bbclass
index 3ff3f3093d..7b3faa2561 100644
--- a/classes/cpan.bbclass
+++ b/classes/cpan.bbclass
@@ -10,7 +10,8 @@ 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_ARCHLIB = "${STAGING_LIBDIR_NATIVE}/perl/${@get_perl_version(d)}"
+export PERL_LIB = "${STAGING_DATADIR}/perl/${@get_perl_version(d)}"
+export PERL_ARCHLIB = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}"
cpan_do_configure () {
yes '' | perl Makefile.PL ${EXTRA_CPANFLAGS}
diff --git a/packages/perl/perl-5.8.8/native-perlinc.patch b/packages/perl/perl-5.8.8/native-perlinc.patch
index aea38a0b56..6dc4b9538d 100644
--- a/packages/perl/perl-5.8.8/native-perlinc.patch
+++ b/packages/perl/perl-5.8.8/native-perlinc.patch
@@ -1,12 +1,20 @@
Index: perl-5.8.8/lib/ExtUtils/MM_Unix.pm
===================================================================
---- perl-5.8.8.orig/lib/ExtUtils/MM_Unix.pm 2007-05-30 15:16:47.000000000 +1000
-+++ perl-5.8.8/lib/ExtUtils/MM_Unix.pm 2007-05-30 15:18:12.000000000 +1000
-@@ -1597,6 +1597,11 @@
+--- perl-5.8.8.orig/lib/ExtUtils/MM_Unix.pm 2008-10-31 22:01:35.000000000 +0000
++++ perl-5.8.8/lib/ExtUtils/MM_Unix.pm 2008-11-08 16:01:12.000000000 +0000
+@@ -1597,6 +1597,19 @@
$self->{PERL_LIB} ||= $Config{privlibexp};
$self->{PERL_ARCHLIB} ||= $Config{archlibexp};
$self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now
+ # Check for environment override so we'll find the headers in the correct place
++ if (defined $ENV{PERL_LIB})
++ {
++ $self->{PERL_LIB} = $ENV{PERL_LIB};
++ }
++ if (defined $ENV{PERL_ARCHLIB})
++ {
++ $self->{PERL_ARCHLIB} = $ENV{PERL_ARCHLIB};
++ }
+ if (defined $ENV{PERL_INC})
+ {
+ $self->{PERL_INC} = $ENV{PERL_INC};
diff --git a/packages/perl/perl-native_5.8.8.bb b/packages/perl/perl-native_5.8.8.bb
index c58f82822c..e3d73845fc 100644
--- a/packages/perl/perl-native_5.8.8.bb
+++ b/packages/perl/perl-native_5.8.8.bb
@@ -65,8 +65,25 @@ do_stage_append() {
# We need a hostperl link for building perl
ln -sf ${STAGING_BINDIR_NATIVE}/perl${PV} ${STAGING_BINDIR_NATIVE}/hostperl
# Store native config in non-versioned directory
- install -d ${STAGING_DIR_HOST}/perl
+ install -d ${STAGING_DIR_HOST}/perl \
+ ${STAGING_LIBDIR_NATIVE}/perl/${PV}/CORE \
+ ${STAGING_DATADIR_NATIVE}/perl/${PV}/ExtUtils
install config.sh ${STAGING_DIR_HOST}/perl
+ # target configuration
+ install lib/Config.pm ${STAGING_LIBDIR_NATIVE}/perl/${PV}/
+ install lib/ExtUtils/typemap ${STAGING_DATADIR_NATIVE}/perl/${PV}/ExtUtils/
+ # perl shared library headers
+ for i in av.h embed.h gv.h keywords.h op.h perlio.h pp.h regexp.h \
+ uconfig.h XSUB.h cc_runtime.h embedvar.h handy.h opnames.h \
+ perliol.h pp_proto.h regnodes.h unixish.h config.h EXTERN.h \
+ hv.h malloc_ctl.h pad.h perlsdio.h proto.h scope.h utf8.h \
+ cop.h fakesdio.h INTERN.h mg.h patchlevel.h perlsfio.h \
+ reentr.h sv.h utfebcdic.h cv.h fakethr.h intrpvar.h \
+ nostdio.h perlapi.h perlvars.h reentr.inc thrdvar.h util.h \
+ dosish.h form.h iperlsys.h opcode.h perl.h perly.h regcomp.h \
+ thread.h warnings.h; do
+ install $i ${STAGING_LIBDIR_NATIVE}/perl/${PV}/CORE
+ done
}
PARALLEL_MAKE = ""
diff --git a/packages/perl/perl_5.8.8.bb b/packages/perl/perl_5.8.8.bb
index 8c00a61536..2118bba68f 100644
--- a/packages/perl/perl_5.8.8.bb
+++ b/packages/perl/perl_5.8.8.bb
@@ -139,11 +139,15 @@ do_install() {
do_stage() {
install -d ${STAGING_DIR_HOST}/perl \
${STAGING_LIBDIR_NATIVE}/perl/${PV} \
- ${STAGING_LIBDIR}/perl/${PV}/CORE
+ ${STAGING_LIBDIR}/perl/${PV}/CORE \
+ ${STAGING_DATADIR}/perl/${PV}/ExtUtils
# target config, used by cpan.bbclass to extract version information
install config.sh ${STAGING_DIR_HOST}/perl/
# target configuration, used by native perl when cross-compiling
install lib/Config_heavy.pl ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy-target.pl
+ # target configuration
+ install lib/Config.pm ${STAGING_LIBDIR}/perl/${PV}/
+ install lib/ExtUtils/typemap ${STAGING_DATADIR}/perl/${PV}/ExtUtils/
# perl shared library headers
for i in av.h embed.h gv.h keywords.h op.h perlio.h pp.h regexp.h \
uconfig.h XSUB.h cc_runtime.h embedvar.h handy.h opnames.h \