[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