Subject: Re: egcs / koffice
To: Todd Vierling <tv@pobox.com>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm32
Date: 10/25/1998 16:32:20
> (Richard, can you set your default Cc: to rearnsha@sun52.arm.com to go in
> your Bcc: instead?  :)

That never used to happen, it's probably a misconfiguration somewhere in 
our site sendmail file.  I've amended the header so hopefully it shouldn't 
happen any more.
> 
> On Sun, 25 Oct 1998, Richard Earnshaw wrote:
> 
> : > I have a hard time believing that EGCS has purposely discontinued this
> : > behavior. Have you queried the EGCS list about this issue?
> : 
> : The change was made to make GCC compatible with the ARM toolkit and the 
> : APCS.
> 
> This is what I've been meaning to get back to you about.  I can't really add
> the "return_in_regs" hack because it only addresses softfloat.c and not
> _all_ source code out there.  This is an ABI issue as much as it is an API
> issue.
> 
> NetBSD/arm32 1.3.2 was shipped with gcc 2.7, and like it or not, since that
> "bug" existed then, we _must_ provide that as default behavior for
> NetBSD/arm32 on all future versions.  

Not quite.  We could also fix the problem by bumping the major version of 
shared libs that changed their interface.  Old programs (built with the 
old compiler) would then continue to use the old libs (built with the old 
compiler).  New programs and libs could then be set up to do things 
differently.

Don't forget the ABI was also changed between 1.2 and 1.3 when we went 
from hard to soft floating point.  The only reason we got away with it 
then was that 1.2 didn't have shared libs.

> At worst, if stack-return of structs
> uses a different pointer register than the two regs used for reg-return, we
> need to have egcs provide both interfaces simultaneously unless one of the
> -f*-return options is given.

I don't follow.

> What I need to know is how to set egcs, when compiled for NetBSD/arm32, to
> have reg-return as the default behavior.  Since you've rototilled the code
> several times, you'd probably have the best knowledge for it.

The only way really is to put the old code back in, maybe with a flag to 
allow switching between the two; but I'm still of the opinion that this 
would be a bad idea (see my reply to the other Todd).


Richard.