perl: Fix CCFLAGS for Perl 5.14.
authorRichard W.M. Jones <rjones@redhat.com>
Fri, 22 Jul 2011 10:12:52 +0000 (11:12 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Fri, 22 Jul 2011 10:12:52 +0000 (11:12 +0100)
A change to ExtUtils::CBuilder in Perl 5.14 causes CCFLAGS to
completely replace, rather than appending, the C flags.

The unfortunate consequence of this is that vital flags such as
-D_FILE_OFFSET_BITS=64 are missing.  For 32 bit code, this means you
get binary-incompatible code that completely fails to load.

For further analysis see:

http://www.nntp.perl.org/group/perl.perl5.porters/2011/04/msg171535.html

This commit changes CCFLAGS so that it appends to the existing
$Config{ccflags} instead of replacing it.  On earlier versions of Perl
this means we get two copies of the flags, which is unfortunate but
should be safe.

perl/Makefile.PL.in

index 410e076..62cd04b 100644 (file)
@@ -1,5 +1,5 @@
 # libguestfs Perl bindings
-# Copyright (C) 2009-2010 Red Hat Inc.
+# Copyright (C) 2009-2011 Red Hat Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -15,6 +15,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
+use Config;
 use ExtUtils::MakeMaker;
 
 WriteMakefile (
@@ -26,5 +27,5 @@ WriteMakefile (
     LIBS => '-L@top_builddir@/src/.libs -lguestfs',
     INC => '-I@top_builddir@/src -I@top_srcdir@/src',
     TYPEMAPS => [ '@srcdir@/typemap' ],
-    CCFLAGS => '@CFLAGS@',
+    CCFLAGS => $Config{ccflags} . ' @CFLAGS@',
     );