diff options
author | Jamie Lenehan <lenehan@twibble.org> | 2007-05-01 11:51:40 +0000 |
---|---|---|
committer | Jamie Lenehan <lenehan@twibble.org> | 2007-05-01 11:51:40 +0000 |
commit | cc0b957aa36df807344e5ef3a12358eb2430383b (patch) | |
tree | ac3dfecb57dd09bf5bb431d8b1eead9c680ace3f /packages | |
parent | 32cbfda7038c0ec4ebc806198a37541a688a5adc (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')
-rw-r--r-- | packages/perl/files/letgcc-find-errno.patch | 42 | ||||
-rw-r--r-- | packages/perl/perl_5.8.8.bb | 3 |
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 \ |