This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: we are starting the wide int merge
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: Gerald Pfeifer <gerald at pfeifer dot com>
- Cc: Mike Stump <mikestump at comcast dot net>, Kenneth Zadeck <zadeck at naturalbridge dot com>, gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Mon, 19 May 2014 07:47:24 +0100
- Subject: Re: we are starting the wide int merge
- Authentication-results: sourceware.org; auth=none
- References: <5368FD99 dot 2010607 at naturalbridge dot com> <A41D2B7B-480F-475B-B1CB-9FD001F5622C at comcast dot net> <alpine dot LSU dot 2 dot 11 dot 1405102137220 dot 2722 at tuna dot site> <alpine dot LSU dot 2 dot 11 dot 1405161854490 dot 2259 at tuna dot site> <87a9agztw1 dot fsf at talisman dot default> <alpine dot LSU dot 2 dot 11 dot 1405182101570 dot 4553 at tuna dot site>
Gerald Pfeifer <gerald@pfeifer.com> writes:
> On Sat, 17 May 2014, Richard Sandiford wrote:
>> To rule out one possibility: which GCC are you using for stage1?
>
> I think that may the smoking gun. When I use GCC 4.7 to bootstrap,
> FreeBSD 8, 9 and 10 all build fine on i386 (= i486) and amd64.
>
> When I use the system compiler, which is GCC 4.2 on FreeBSD 8 and 9
> and clang on FreeBSD 10, things fail on FreeBSD 10...
>
> ...with a bootstrap comparison failure of stages 2 and 3 on i386:
> https://redports.org/~gerald/20140518230801-31619-208277/gcc410-4.10.0.s20140518.log
Do you get exactly the same comparison failures using clang and GCC 4.2
as the stage1 compiler? That would rule out the system compiler
miscompiling stage1.
> In file included from .././../gcc-4.10-20140518/gcc/xcoffout.c:29:
> .././../gcc-4.10-20140518/gcc/tree.h:4576:3: warning: extraneous template
> parameter list in template specialization
> template <>
> ^~~~~~~~~~~
Oops, fixed below, applied as obvious.
> .././../gcc-4.10-20140518/gcc/wide-int.cc:1274:23: error: invalid use of a
> cast in a inline asm context requiring an l-value: remove the cast or
> build with -fheinous-gnu-extensions
> umul_ppmm (val[1], val[0], op1.ulow (), op2.ulow ());
> ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is PR 61146. You can get around it by adding -fheinous-gnu-extensions
to BOOT_CFLAGS.
> This means this clang-based system is not able to bootstrap GCC trunk
> on amd64.
>
> Perhaps looking into this first may affect the failure on i486?
'Fraid it won't help. We don't use umul_ppmm (or even include
longlong.h) for 486.
Thanks,
Richard
gcc/
* tree.h: Remove extraneous template <>.
Index: gcc/tree.h
===================================================================
--- gcc/tree.h 2014-05-19 07:45:30.378667987 +0100
+++ gcc/tree.h 2014-05-19 07:46:07.364991104 +0100
@@ -4573,7 +4573,6 @@ #define ANON_AGGRNAME_FORMAT "__anon_%d"
unsigned int get_len () const;
};
- template <>
template <int N>
struct int_traits <extended_tree <N> >
{