On Thu, 16 Aug 2012, Diego Novillo wrote:

> Richi, this implements your idea for fixing PR 54281.  I don't
> have an old enough compiler.  Could you please test it in your
> system?
> 
> I debated whether to remove the GENERATOR_FILE predicate from the
> inclusion (some files include gmp.h unconditionally).  I think it
> could be removed, but only a minority of files build with
> GENERATOR_FILE set, so it didn't seem harmful.
> 
> OK if tests pass?

It fixes it.

Thus, ok from my side (if your testing succeeds).

Thanks,
Richard.

> 
> Diego.
> 
> 
> 2012-08-16  Diego Novillo  <dnovi...@google.com>
>             Richard Guenther  <rguent...@suse.de>
> 
>       PR bootstrap/54281
>       * double-int.h: Move including of gmp.h ...
>       * system.h: ... here.
>       * realmpfr.h: Do not include gmp.h.
>       * tree-ssa-loop-niter.c: Do not include gmp.h.
> 
> fortran/ChangeLog
>       * gfortran.h: Do not include gmp.h.
> 
> diff --git a/gcc/double-int.h b/gcc/double-int.h
> index 3d9aa2c..7ea0528 100644
> --- a/gcc/double-int.h
> +++ b/gcc/double-int.h
> @@ -20,10 +20,6 @@ along with GCC; see the file COPYING3.  If not see
>  #ifndef DOUBLE_INT_H
>  #define DOUBLE_INT_H
>  
> -#ifndef GENERATOR_FILE
> -#include <gmp.h>
> -#endif
> -
>  /* A large integer is currently represented as a pair of HOST_WIDE_INTs.
>     It therefore represents a number with precision of
>     2 * HOST_BITS_PER_WIDE_INT bits (it is however possible that the
> diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
> index 7c4c0a4..611d16d 100644
> --- a/gcc/fortran/gfortran.h
> +++ b/gcc/fortran/gfortran.h
> @@ -1681,7 +1681,6 @@ gfc_intrinsic_sym;
>     EXPR_COMPCALL   Function (or subroutine) call of a procedure pointer
>                  component or type-bound procedure.  */
>  
> -#include <gmp.h>
>  #include <mpfr.h>
>  #include <mpc.h>
>  #define GFC_RND_MODE GMP_RNDN
> diff --git a/gcc/realmpfr.h b/gcc/realmpfr.h
> index ab234e9..ada876e 100644
> --- a/gcc/realmpfr.h
> +++ b/gcc/realmpfr.h
> @@ -22,7 +22,10 @@
>  #ifndef GCC_REALGMP_H
>  #define GCC_REALGMP_H
>  
> -#include <gmp.h>
> +/* Note that we do not include gmp.h.  It is included in system.h
> +   because it wrecks intl.h when compiling in C++ mode.
> +   See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54281 for details.  */
> +
>  #include <mpfr.h>
>  #include <mpc.h>
>  #include "real.h"
> diff --git a/gcc/system.h b/gcc/system.h
> index 9e7d503..0ccd991 100644
> --- a/gcc/system.h
> +++ b/gcc/system.h
> @@ -1037,4 +1037,8 @@ helper_const_non_const_cast (const char *p)
>  #define DEBUG_VARIABLE
>  #endif
>  
> +#ifndef GENERATOR_FILE
> +#include <gmp.h>
> +#endif
> +
>  #endif /* ! GCC_SYSTEM_H */
> diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
> index c719a74..4c67c26 100644
> --- a/gcc/tree-ssa-loop-niter.c
> +++ b/gcc/tree-ssa-loop-niter.c
> @@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
>  #include "flags.h"
>  #include "diagnostic-core.h"
>  #include "tree-inline.h"
> -#include "gmp.h"
>  
>  #define SWAP(X, Y) do { affine_iv *tmp = (X); (X) = (Y); (Y) = tmp; } while 
> (0)
>  
> 
> 

-- 
Richard Guenther <rguent...@suse.de>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imend

Reply via email to