diff options
Diffstat (limited to 'packages/perl/files/letgcc-find-errno.patch')
-rw-r--r-- | packages/perl/files/letgcc-find-errno.patch | 42 |
1 files changed, 42 insertions, 0 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; |