This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [bootstrap] Tentative fix for PR 54281
- From: Richard Guenther <rguenther at suse dot de>
- To: Diego Novillo <dnovillo at google dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 16 Aug 2012 15:08:56 +0200 (CEST)
- Subject: Re: [bootstrap] Tentative fix for PR 54281
- References: <20120816115551.GA13453@google.com>
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 <dnovillo@google.com>
> Richard Guenther <rguenther@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 <rguenther@suse.de>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imend