linux-mips
[Top] [All Lists]

Re: Gcc 4.2.2 broken for kernel builds

To: "Maciej W. Rozycki" <macro@linux-mips.org>
Subject: Re: Gcc 4.2.2 broken for kernel builds
From: Richard Sandiford <rsandifo@nildram.co.uk>
Date: Mon, 15 Oct 2007 17:19:18 +0100
Cc: Ralf Baechle <ralf@linux-mips.org>, Martin Michlmayr <tbm@cyrius.com>, David Daney <ddaney@avtrex.com>, MIPS Linux List <linux-mips@linux-mips.org>
In-reply-to: <Pine.LNX.4.64N.0710151553200.16262@blysk.ds.pg.gda.pl> (Maciej W. Rozycki's message of "Mon\, 15 Oct 2007 15\:59\:51 +0100 \(BST\)")
Mail-followup-to: "Maciej W. Rozycki" <macro@linux-mips.org>, Ralf Baechle <ralf@linux-mips.org>, Martin Michlmayr <tbm@cyrius.com>, David Daney <ddaney@avtrex.com>, MIPS Linux List <linux-mips@linux-mips.org>, rsandifo@nildram.co.uk
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20071012172254.GA10835@linux-mips.org> <470FB386.6080709@avtrex.com> <20071012175317.GB1110@linux-mips.org> <470FBE08.8090004@avtrex.com> <20071012184909.GA4832@linux-mips.org> <20071012191446.GK3163@deprecation.cyrius.com> <20071012191645.GB4832@linux-mips.org> <87d4vj9tk7.fsf@firetop.home> <Pine.LNX.4.64N.0710151553200.16262@blysk.ds.pg.gda.pl>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux)
"Maciej W. Rozycki" <macro@linux-mips.org> writes:
> On Sat, 13 Oct 2007, Richard Sandiford wrote:
>> FWIW, I've added some notes about the underlying cause.  I think this
>> could in principle happen with any gcc release.
>
>  It has been seen with GCC 3.4 and IIRC SDE has a hack in binutils to 
> disable this error as a workaround.  I guess the problem has always been 
> there since explicit relocs were added to GCC; it is just it hardly ever 
> happens.

Agreed.  And in options-speak, "explicit relocs" means both -mexplicit-relocs
and -msplit-addresses.  The associated gas warning was disabled in the
initial revision of sourceware binutils:

1.1          (rth      03-May-99): #if 0 /* GCC code motion plus incomplete 
dead code elimination
1.1          (rth      03-May-99):       can leave a %hi without a %lo.  */
1.1          (rth      03-May-99):        if (pass == 1)
1.1          (rth      03-May-99):          as_warn_where (l->fixp->fx_file, 
l->fixp->fx_line,
1.1          (rth      03-May-99):                         _("Unmatched %%hi 
reloc"));
1.1          (rth      03-May-99): #endif

so I think this problem has been seen with GCC 2 as well as 3 and 4.

Richard

<Prev in Thread] Current Thread [Next in Thread>