[oe-commits] Roman I Khimov : perl-native: fix ExtUtils::Liblist:: Kid library check for cross-build

git version control git at git.openembedded.org
Tue Dec 28 19:54:53 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 319f102271e020652dec091150d630b545597426
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=319f102271e020652dec091150d630b545597426

Author: Roman I Khimov <khimov at altell.ru>
Date:   Tue Nov 23 14:21:39 2010 +0300

perl-native: fix ExtUtils::Liblist::Kid library check for cross-build

MakeMaker uses it to check for libraries presence and if the library is not
found in host dirs (/lib, /usr/lib, etc) it fails with messages like:

Note (probably harmless): No library found for -lpcap

Unfortunately it's not harmless, since MakeMaker removes such libs from flags
passed to link target modules which obviously breaks them.

Seen that on Net::PCAP, the package built fine, but the actual library wasn't
linked to pcap, thus not working.

In order for target perl libraries to build properly native perl needs to be patched.
As I don't know exact semantic and all use-cases of libpth config variable
I've workarounded this issue by prepending ldflags (and this does contain the
right path) to lib flags.

Signed-off-by: Roman I Khimov <khimov at altell.ru>
Acked-by: Khem Raj <raj.khem at gmail.com>

---

 .../perl-5.10.1/perl-fix-cross-library-check.patch |   19 +++++++++++++++++++
 recipes/perl/perl-native_5.10.1.bb                 |    3 ++-
 2 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch b/recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch
new file mode 100644
index 0000000..1c51609
--- /dev/null
+++ b/recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch
@@ -0,0 +1,19 @@
+Index: perl-5.10.1/lib/ExtUtils/Liblist/Kid.pm
+===================================================================
+--- perl-5.10.1.orig/lib/ExtUtils/Liblist/Kid.pm	2010-11-23 13:54:41.000000000 +0300
++++ perl-5.10.1/lib/ExtUtils/Liblist/Kid.pm	2010-11-23 14:18:13.000000000 +0300
+@@ -33,6 +33,14 @@
+ 	$potential_libs .= " " if $potential_libs;
+ 	$potential_libs .= $Config{perllibs};
+     }
++
++    if ($Config{ldflags}) { 
++	# Dynamic libraries are not transitive, so we may need including
++	# the libraries linked against perl.dll again.
++
++	$potential_libs = $Config{ldflags} . " " . $potential_libs;
++    }
++
+     return ("", "", "", "", ($give_libs ? [] : ())) unless $potential_libs;
+     warn "Potential libraries are '$potential_libs':\n" if $verbose;
+ 
diff --git a/recipes/perl/perl-native_5.10.1.bb b/recipes/perl/perl-native_5.10.1.bb
index 8b275a2..c523974 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 = "r7"
+PR = "r8"
 NATIVE_INSTALL_WORKS = "1"
 
 # Not tested enough
@@ -21,6 +21,7 @@ SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz;name=perl-${PV} \
            file://perl-configpm-switch.patch \
            file://native-nopacklist.patch \
            file://native-perlinc.patch \
+	   file://perl-fix-cross-library-check.patch \
 	   "
 
 SRC_URI[perl-5.10.1.md5sum] = "b9b2fdb957f50ada62d73f43ee75d044"





More information about the Openembedded-commits mailing list