Changes needed to make gmp 4.2.1 build with GCC trunk

Richard Guenther rguenther at suse.de
Wed May 23 15:42:18 CEST 2007


FYI,

GCC 4.3 will change inline semantics to be standard conforming to
C99.  The t-locale.cc test references abort(), so it should include
cstdlib.

If those already are fixed in development sources just ignore this
post.

Thanks,
Richard.

Index: gmp-h.in
===================================================================
--- gmp-h.in.orig	2006-04-11 20:10:15.000000000 +0200
+++ gmp-h.in	2007-05-23 11:08:11.000000000 +0200
@@ -24,6 +24,7 @@ MA 02110-1301, USA. */
 
 #if defined (__cplusplus)
 #include <iosfwd>   /* for std::istream, std::ostream, std::string */
+#include <cstdio>   /* for std::FILE */
 #endif
 
 
@@ -418,9 +419,15 @@ typedef __mpq_struct *mpq_ptr;
 
 /* gcc has __inline__ in all modes, including strict ansi.  Give a prototype
    for an inline too, so as to correctly specify "dllimport" on windows, in
-   case the function is called rather than inlined.  */
+   case the function is called rather than inlined.
+   GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+   inline semantics, unless -fgnu89-inline is used.  */
 #ifdef __GNUC__
+#ifdef __GNUC_STDC_INLINE__
+#define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
+#else
 #define __GMP_EXTERN_INLINE      extern __inline__
+#endif
 #define __GMP_INLINE_PROTOTYPES  1
 #endif
 
Index: tests/cxx/t-locale.cc
===================================================================
--- tests/cxx/t-locale.cc.orig	2006-03-14 16:57:54.000000000 +0100
+++ tests/cxx/t-locale.cc	2007-05-23 15:31:10.000000000 +0200
@@ -20,6 +20,7 @@ the Free Software Foundation, Inc., 51 F
 MA 02110-1301, USA. */
 
 #include <clocale>
+#include <cstdlib>
 #include <iostream>
 
 #include "gmp.h"

-- 
Richard Guenther <rguenther at suse.de>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 - GF: Markus Rex


More information about the gmp-devel mailing list