[oe-commits] Stanislav Brabec : perl and cpan.bbclass: Never reference to host instance of perl:

GIT User account git at amethyst.openembedded.net
Tue Nov 11 14:04:40 UTC 2008


Module: openembedded.git
Branch: shared/xorg-7.4-update
Commit: 76e3e6e123c6b2a64905a32e5181e647107e562d
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=76e3e6e123c6b2a64905a32e5181e647107e562d

Author: Stanislav Brabec <utx at penguin.cz>
Date:   Mon Nov 10 21:24:04 2008 +0000

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

---

 classes/cpan.bbclass                          |    3 ++-
 packages/perl/perl-5.8.8/native-perlinc.patch |   14 +++++++++++---
 packages/perl/perl-native_5.8.8.bb            |   19 ++++++++++++++++++-
 packages/perl/perl_5.8.8.bb                   |    6 +++++-
 4 files changed, 36 insertions(+), 6 deletions(-)

diff --git a/classes/cpan.bbclass b/classes/cpan.bbclass
index 3ff3f30..7b3faa2 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 aea38a0..6dc4b95 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 c58f828..e3d7384 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 8c00a61..2118bba 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 \





More information about the Openembedded-commits mailing list