This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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: More ARM binutils fuckage


On Tue, Dec 05, 2006 at 07:22:34PM -0800, Khem Raj wrote:

> >>>>>I use a bog-standard gcc 4.1.0 to cross-compile all my ARM kernels
> >>>>>with, which allows me to build both old-ABI and EABI kernels.  (These
> >>>>>days I build all kernels in EABI mode with old-ABI compat.)  I have
> >>>>>not run into any code generation issues with this compiler yet.
> >>>>>     
> >>>>>          
> >>>>Is this gcc configured with -gnu or -gnueabi?
> >>>>        
> >>>-gnu.  It is a common misconception that you would need an EABI
> >>>toolchain to build an EABI kernel.  You can use any gcc 4.1 to build
> >>>EABI kernels with.
> >>>      
> >>I guess there are two things here.
> >>
> >>1. The kernel is capable of running EABI binaries.
> >>
> >>For this case you do not require a EABI toolchain so configuring gcc 
> >>with arm*-*-linux-gnu would do.
> >
> >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.

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?

I have no doubt that the Montavista kernel supports a bunch more
combinations in this area than mainline 2.6 does, but I doubt whether
many of us care what the Montavista kernel can and can not do.


> >>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.

If your compiler can do EABI (which 4.1 can), it doesn't matter one
bit whether your glibc was compiled for old-ABI or EABI.

--
For unsubscribe information see http://sourceware.org/lists.html#faq


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