[ColdFire 16/63] Bring *-uclinux configurations closer to *-linux-gnu

Richard Sandiford richard@codesourcery.com
Wed Jan 10 22:03:00 GMT 2007


Christoph Hellwig <hch@infradead.org> writes:
> On Wed, Jan 10, 2007 at 11:10:11AM +0000, Richard Sandiford wrote:
>> However, the current uClinux configuration is a form of *-elf rather
>> than *-linux-gnu.  This leads to two important incompatibilities:
>> 
>>   - *-linux-gnu returns pointers in %a0 while *-uclinux returns then
>>     in %d0.
>> 
>>   - *-linux-gnu uses %a1 as the incoming return address while
>>     *-uclinux uses %a0.
>> 
>> It seems odd to have this sort of difference.  I would generally have
>> expected *-uclinux and *-linux* to have the same calling convention,
>> as the two are often source-compatible otherwise (even at the assembly
>> level).  If we're making the major changes mentioned above anyway, and if
>> we're changing the ABI by redefining long double, it seems like a good
>> idea to remove this incompatibility too, and make *-linux-gnu and
>> *-uclinux variants of one another.
>> 
>> This patch therefore makes *-uclinux include the linux headers and
>> makefiles, then override the uClinux-specific bits.
>> 
>> As well as removing the incompabilities just mentioned, the patch
>> pulls in some useful things from the linux support.
>
> I don't think you can simply change the uclinux ABI.  If you're going
> for this transition it needs to be done carefully, for example you
> should probably still support the old abi as -uclinux-oldabi targets
> as systems with the traditional ABI won't simply go away.

OK.  Does that sound reasonable to you Jeff?  Split off a copy
of the current uclinux configuration as m68k-*-uclinux-oldabi?
The copied uclinux.h could restore the original long double
type too for maximum compatibility.

If so, I'll prepare a patch.

Richard



More information about the Gcc-patches mailing list