From 4e2ab57e3a73f1e11707b3981e78aaba779d8285 Mon Sep 17 00:00:00 2001 From: Jamie Lenehan Date: Tue, 29 May 2007 23:48:37 +0000 Subject: perl 5.8.8: Fix the CFLAGS being used for perl modules. Instead of replacing the CFLAGS from the perl configuration with the OE CFLAGS we prepend the OE CFLAGS. This is needed to ensure that compiler defines (such as _GNU_SOURCE) are correctly definied when building perl modules. This primarily effects modules that link against the core perl library, such as libxml-parser-perl. --- packages/perl/perl-5.8.8/generate-sh.patch | 40 ++++++++++++++++++++++++++---- packages/perl/perl_5.8.8.bb | 2 +- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/packages/perl/perl-5.8.8/generate-sh.patch b/packages/perl/perl-5.8.8/generate-sh.patch index 4c2b0bd752..50ce00b42f 100644 --- a/packages/perl/perl-5.8.8/generate-sh.patch +++ b/packages/perl/perl-5.8.8/generate-sh.patch @@ -1,16 +1,46 @@ Use the ld flags from the supplied configuration file. For sh we need the flags that specify to build PIC code so that the shared libraries work. ---- perl-5.8.7/Cross/generate_config_sh~ 2006-09-25 16:34:09.000000000 +1000 -+++ perl-5.8.7/Cross/generate_config_sh 2006-09-25 16:34:09.000000000 +1000 -@@ -19,8 +19,8 @@ +Index: perl-5.8.8/Cross/generate_config_sh +=================================================================== +--- perl-5.8.8.orig/Cross/generate_config_sh 2003-09-05 18:31:08.000000000 +1000 ++++ perl-5.8.8/Cross/generate_config_sh 2007-05-30 09:12:50.000000000 +1000 +@@ -19,10 +19,10 @@ $callbacks->{'ar'} = [\&simple_process, ["AR", "arm-linux-ar"]]; $callbacks->{'archname'} = [\&simple_process, ["SYS", "armv4l-linux"]]; $callbacks->{'cc'} = [\&simple_process, ["CC", "arm-linux-gcc"]]; -$callbacks->{'cccdlflags'} = [\&simple_process, ["CFLAGS", ""]]; -$callbacks->{'ccdlflags'} = [\&simple_process, ["CFLAGS", ""]]; +-$callbacks->{'ccflags'} = [\&simple_process, ["CFLAGS", "-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; +-$callbacks->{'ccflags_uselargefiles'} = [\&simple_process, ["CFLAGS", "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; +#$callbacks->{'cccdlflags'} = [\&simple_process, ["CFLAGS", ""]]; +#$callbacks->{'ccdlflags'} = [\&simple_process, ["CFLAGS", ""]]; - $callbacks->{'ccflags'} = [\&simple_process, ["CFLAGS", "-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; - $callbacks->{'ccflags_uselargefiles'} = [\&simple_process, ["CFLAGS", "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; ++$callbacks->{'ccflags'} = [\&simple_process_insert, ["CFLAGS", "-fno-strict-aliasing -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; ++$callbacks->{'ccflags_uselargefiles'} = [\&simple_process_insert, ["CFLAGS", "-D_GNU_SOURCE -DTHREADS_HAVE_PIDS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"]]; $callbacks->{'ccname'} = [\&simple_process, ["CC", "arm-linux-gcc"]]; + $callbacks->{'cpp'} = [\&simple_process, ["CCP", "arm-linux-cpp"]]; + $callbacks->{'cppflags'} = [\&simple_process, ["CCPFLAGS", "-fno-strict-aliasing"]]; +@@ -105,6 +105,23 @@ + + } + ++# Insert env var into the variables value ++sub simple_process_insert { ++ my $key = shift; ++ my $value = shift; ++ my $envvar = $callbacks->{$key}->[1][0]; ++ ++ if ($ENV{$envvar}) { ++ # Strip quotes from value ++ $value =~ s/^\'//; ++ $value =~ s/\'$//; ++ # Remove -I/usr/local/... from the value ++ $value =~ s#\W-I/usr/local/\w+\W##g; ++ # Prepend env var (OE setting) to value ++ print("$key=\'$ENV{$envvar} $value\'\n"); ++ } ++} ++ + sub library_munge { + my $key = shift; + my $value = shift; diff --git a/packages/perl/perl_5.8.8.bb b/packages/perl/perl_5.8.8.bb index c8e7afebc7..3dfe17cad8 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 = "r16" +PR = "r17" # Major part of version PVM = "5.8" -- cgit v1.2.3