From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1517 invoked by alias); 11 Nov 2002 15:56:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 1503 invoked by uid 71); 11 Nov 2002 15:56:04 -0000 Date: Mon, 11 Nov 2002 07:56:00 -0000 Message-ID: <20021111155604.1502.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Daniel Jacobowitz Subject: Re: target/8520: -mips64 not forcing -mgp64 under mips*-*-linux* target Reply-To: Daniel Jacobowitz X-SW-Source: 2002-11/txt/msg00522.txt.bz2 List-Id: The following reply was made to PR target/8520; it has been noted by GNATS. From: Daniel Jacobowitz To: jbr@keyresearch.com Cc: gcc-gnats@gcc.gnu.org, jbroughton@keyresearch.com, glindahl@keyresearch.com Subject: Re: target/8520: -mips64 not forcing -mgp64 under mips*-*-linux* target Date: Mon, 11 Nov 2002 10:54:07 -0500 On Sun, Nov 10, 2002 at 10:54:02PM -0000, jbr@keyresearch.com wrote: > > >Number: 8520 > >Category: target > >Synopsis: -mips64 not forcing -mgp64 under mips*-*-linux* target > >Confidential: no > >Severity: serious > >Priority: medium > >Responsible: unassigned > >State: open > >Class: sw-bug > >Submitter-Id: net > >Arrival-Date: Sun Nov 10 14:56:00 PST 2002 > >Closed-Date: > >Last-Modified: > >Originator: Jeff Rubin > >Release: 3.2 > >Organization: > >Environment: > Cross compiler running on i686-pc-linux running Red Hat 7.2 > linux > >Description: > In config.gcc, for mips*-*-linux*, tm_file has near the end > linux.h and then mips/linux.h. The first thing mips/linux.h > does is to include mips/mips.h. So the header files come > in in the order ... linux.h mips/mips.h linux.h > In mips/mips.h there is a macro definition for CC1_SPEC > which has the correct stuff to make -mips64 force -mgp64, > among other things. However, it is conditionaled on > #ifndef CC1_SPEC. linux.h also has a macro definition > for CC1_SPEC (setting it to %{profile:-p}) which is > conditionaled the same way. Since linux.h comes before > mips.h, CC1_SPEC gets defined by linux.h and not by > mips.h. > >How-To-Repeat: > > >Fix: > Partial fix: add #undef CC1_SPEC to mips/linux.h before the > #include "mips/mips.h" to undo the definition in linux.h. > I'm not sure how you would get the profile forces -p effect > back or even if you want to in this case. I don't think that -mips64 _should_ force -mgp64 on mips*-linux*. mips*-linux* is for the 32-bit MIPS/Linux port; there will be a mips*64-linux* pattern when GCC supports a 64-bit Linux configuration, which it doesn't yet. There was a discussion last week on the binutils list about this exact behavior. It's useful to generate code using instructions from higher ISAs that still works when your OS only saves and restores 32-bit registers. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer