Compiling a C program with g++ 4.3.1 yields an error about std::FILE

Torbjorn Granlund tg at swox.com
Mon Jul 21 15:57:58 CEST 2008


Vincent Lefevre <vincent at vinc17.org> writes:

  On 2008-06-10 09:34:17 -0500, Steve M. Robbins wrote:
  > The Debian patch does use cstdio.
  
  Yes, FYI:
  
  vin:~> diff -u x86_64/include/gmp.h /usr/include/gmp.h
  --- x86_64/include/gmp.h        2008-02-18 13:36:05.000000000 +0100
  +++ /usr/include/gmp.h  2008-04-09 09:22:56.000000000 +0200
  @@ -418,9 +418,13 @@
       for an inline too, so as to correctly specify "dllimport" on windows, in
       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.  */
  +    inline semantics, unless -fgnu89-inline is used.
  +
  +   With GCC 4.2, `__GNUC_STDC_INLINE__' is never defined (because C99 inline
  +   semantics are not supported), but a warning is issued in C99 mode if
  +   `__gnu_inline__' is not used.  */
   #ifdef __GNUC__
  -#ifdef __GNUC_STDC_INLINE__
  +#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2)
   #define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
   #else
   #define __GMP_EXTERN_INLINE      extern __inline__
  @@ -516,6 +520,7 @@
   
   #if defined (__cplusplus)
   extern "C" {
  +#include <cstdio>
   #ifdef _GMP_H_HAVE_FILE
   using std::FILE;
   #endif
  
I applied this patch.  

-- 
Torbjörn


More information about the gmp-bugs mailing list