perl 5.8.8: Allow perl to build when using an external toolchain.
authorJamie Lenehan <lenehan@twibble.org>
Tue, 1 May 2007 11:51:40 +0000 (11:51 +0000)
committerJamie Lenehan <lenehan@twibble.org>
Tue, 1 May 2007 11:51:40 +0000 (11:51 +0000)
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.

packages/perl/files/letgcc-find-errno.patch [new file with mode: 0644]
packages/perl/perl_5.8.8.bb

diff --git a/packages/perl/files/letgcc-find-errno.patch b/packages/perl/files/letgcc-find-errno.patch
new file mode 100644 (file)
index 0000000..24722ee
--- /dev/null
@@ -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;
index 7265074..7f24161 100644 (file)
@@ -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 \