perl 5.8.8: Fix the CFLAGS being used for perl modules. Instead of replacing
authorJamie Lenehan <lenehan@twibble.org>
Tue, 29 May 2007 23:48:37 +0000 (23:48 +0000)
committerJamie Lenehan <lenehan@twibble.org>
Tue, 29 May 2007 23:48:37 +0000 (23:48 +0000)
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
packages/perl/perl_5.8.8.bb

index 4c2b0bd..50ce00b 100644 (file)
@@ -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;
index c8e7afe..3dfe17c 100644 (file)
@@ -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"