summaryrefslogtreecommitdiff
path: root/packages/perl
diff options
context:
space:
mode:
authorJamie Lenehan <lenehan@twibble.org>2007-05-01 11:51:40 +0000
committerJamie Lenehan <lenehan@twibble.org>2007-05-01 11:51:40 +0000
commitcc0b957aa36df807344e5ef3a12358eb2430383b (patch)
treeac3dfecb57dd09bf5bb431d8b1eead9c680ace3f /packages/perl
parent32cbfda7038c0ec4ebc806198a37541a688a5adc (diff)
perl 5.8.8: Allow perl to build when using an external toolchain.
This is done by allowing gcc to search for errno.h by itself instead of manually searching for. The manual search was looking in STAGING_INCDIR and that's not where the external toolchains headers are. This whole test is really for handle other compilers and operating systems, so the simple make gcc do itself should be fine for us. Closes #1700.
Diffstat (limited to 'packages/perl')
-rw-r--r--packages/perl/files/letgcc-find-errno.patch42
-rw-r--r--packages/perl/perl_5.8.8.bb3
2 files changed, 44 insertions, 1 deletions
diff --git a/packages/perl/files/letgcc-find-errno.patch b/packages/perl/files/letgcc-find-errno.patch
new file mode 100644
index 0000000000..24722ee964
--- /dev/null
+++ b/packages/perl/files/letgcc-find-errno.patch
@@ -0,0 +1,42 @@
+This removes all the logic that perl uses to locate an appropriate
+errno.h for the target. Instead we simple create a file that does
+
+ #include "errno.h"
+
+and use that as the file to parse. This is needed when using an
+external toolchain since perl will search in ${STAGING_INCDIR} for
+errno.h (when using gcc) and that isn't where it's located - its
+wherever the external toolchain keeps it's headers.
+
+--- perl-5.8.8/ext/Errno/Errno_pm.PL 2007/04/30 14:10:10 1.1
++++ perl-5.8.8/ext/Errno/Errno_pm.PL 2007/04/30 14:21:35
+@@ -11,8 +11,18 @@
+ open OUT, ">Errno.pm" or die "Cannot open Errno.pm: $!";
+ select OUT;
+ my $file;
+-my @files = get_files();
+-if ($Config{gccversion} ne '' && $^O eq 'MSWin32') {
++#my @files = get_files();
++my @files = ("errno.h");
++
++if (1) {
++ open INCS, '>includes.c' or
++ die "Cannot open includes.c";
++ print INCS qq[#include "errno.h"\n];
++ close INCS;
++ process_file('includes.c');
++ unlink 'includes.c';
++}
++elsif ($Config{gccversion} ne '' && $^O eq 'MSWin32') {
+ # MinGW complains "warning: #pragma system_header ignored outside include
+ # file" if the header files are processed individually, so include them
+ # all in .c file and process that instead.
+@@ -44,7 +54,7 @@
+ chomp($file = `cygpath -w "$file"`);
+ }
+
+- return unless defined $file and -f $file;
++# return unless defined $file and -f $file;
+ # warn "Processing $file\n";
+
+ local *FH;
diff --git a/packages/perl/perl_5.8.8.bb b/packages/perl/perl_5.8.8.bb
index 7265074ea7..7f2416162d 100644
--- a/packages/perl/perl_5.8.8.bb
+++ b/packages/perl/perl_5.8.8.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPL"
PRIORITY = "optional"
# We need gnugrep (for -I)
DEPENDS = "virtual/db perl-native grep-native"
-PR = "r8"
+PR = "r9"
# Major part of version
PVM = "5.8"
@@ -17,6 +17,7 @@ SRC_URI = "ftp://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \
file://Makefile.SH.patch \
file://perl-dynloader.patch;patch=1 \
file://perl-moreconfig.patch;patch=1 \
+ file://letgcc-find-errno.patch;patch=1 \
file://generate-sh.patch;patch=1 \
file://09_fix_installperl.patch;patch=1 \
file://52_debian_extutils_hacks.patch;patch=1 \