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>
Wed, 27 Jul 2011 14:00:15 +0000 (15:00 +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.
(cherry picked from commit 8386a57458aceb768f0e59aa090a15a544f7466e)

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@',
     );