summaryrefslogtreecommitdiffstats
path: root/recipes/perl/perl-5.10.1/letgcc-find-errno.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/perl/perl-5.10.1/letgcc-find-errno.patch')
-rw-r--r--recipes/perl/perl-5.10.1/letgcc-find-errno.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/recipes/perl/perl-5.10.1/letgcc-find-errno.patch b/recipes/perl/perl-5.10.1/letgcc-find-errno.patch
new file mode 100644
index 0000000000..3b7a0ffc19
--- /dev/null
+++ b/recipes/perl/perl-5.10.1/letgcc-find-errno.patch
@@ -0,0 +1,44 @@
+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.
+
+Index: perl-5.10.1/ext/Errno/Errno_pm.PL
+===================================================================
+--- perl-5.10.1.orig/ext/Errno/Errno_pm.PL 2007-12-18 13:47:07.000000000 +0300
++++ perl-5.10.1/ext/Errno/Errno_pm.PL 2009-08-23 16:10:24.716303050 +0400
+@@ -16,8 +16,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.
+@@ -49,7 +59,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;