This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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.  The
best place to discuss those issues is uclinux-dev@uclinux.org


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]