From: Roman I Khimov Date: Tue, 23 Nov 2010 11:21:39 +0000 (+0300) Subject: perl-native: fix ExtUtils::Liblist::Kid library check for cross-build X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=319f102271e020652dec091150d630b545597426;p=openembedded.git 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 Acked-by: Khem Raj --- 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 0000000000..1c516096ae --- /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 8b275a2750..c5239746de 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"