This is the mail archive of the gcc-help@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]

EABI


Hi,

I'd really like to wrap my head around the concept of gcc toolchain generation w.r.t. different ABIs.

So far, I managed to build cross compilers for the various architectures I need to support using these target tuples:

i686-mytoolchain-linux-gnu
mipsel-mytoolchain-linux-gnu
mipseb-mytoolchain-linux-gnu
powerpc-mytoolchain-linux-gnu

but for ARM, I had to use linux-guneabi  instead of linux-gnu to get the build done, i.e.

arm-mytoolchain-linux-gnueabi

To make all toolchains look as similar as possible, I then did use -gnueabi for the other architectures as well, which also worked fine, i.e.

i686-mytoolchain-linux-gnueabi
mipsel-mytoolchain-linux-gnueabi
mipseb-mytoolchain-linux-gnueabi
powerpc-mytoolchain-linux-gnueabi
arm-mytoolchain-linux-gnueabi

Now I really would like to understand what this eabi thing is all about in the context of GNU toolchain generation: Does it only make a difference for ARM? And what is the proper convention to be used for the other architecture's toolchains, _if_ it is only convention there? Should I go with or without -gnueabi for them?

Finally, a quick look at the config.sub and configure scripts of gcc seem to indicate that -gnueabi only makes a difference for arm-, while -eabi is special for powerpc- and arm- (and _different_ from -gnueabi for arm-!). And what about mips*- and i*86-? At least for MIPS, Wikipedia says that EABI is also supported for this architecture.

Thanks to anyone who could shed some light into the concept of different ABIs from the toolchain generation point of view. 

Cheers,

Chris


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