More ARM binutils fuckage
Nicolas Pitre
nico@cam.org
Wed Dec 6 14:24:00 GMT 2006
On Wed, 6 Dec 2006, Lennert Buytenhek wrote:
> On Tue, Dec 05, 2006 at 07:22:34PM -0800, Khem Raj wrote:
>
> > >The kernel itself needs to be EABI to be able to run EABI userland
> > >binaries.
> >
> > I dont think so. You can have kernel compiled with Old ABI compiler
> > and it still will run EABI binaries with right config options.
Trying to clear confusion away....
For a kernel to run EABI user space, it must be compiled with EABI
itself. But any EABI capable gcc version can compile the kernel with
EABI, even if gcc is not configured for EABI by default.
> Is this supported by mainline 2.6, or are you talking about the
> Montavista kernel that I'm not allowed to look at unless I pay
> Montavista a bazillion dollars?
There is no difference at all between the MV kernel and mainline wrt
EABI support at this point. Guess why I know...
> > >>2. Kernel itself it compiled as EABI binary.
> > >>
> > >>This would need a complete EABI toolchain. (configure with
> > >>arm*-*-linux-gnueabi )
> > >
> > >No, it does not.
> >
> > How would you generate a EABI binary with a non EABI toolchain then.
> > (after all kernel is also a binary)
>
> You pass your old-ABI compiler the option -mabi=aapcs-linux, which works
> fine with my gcc 4.1 old-ABI toolchain and is exactly what mainline 2.6
> does.
Right. The kernel is self sufficient as it doesn't rely on any external
piece of code like extra libraries. It therefore can be compiled for
either ABIs up front by simply providing gcc with the right -mabi
switch.
This is not the case for user space binaries since they depend on extra
libs which must be of the same ABI.
Nicolas
--
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc
mailing list