gcc for ARM in thumb mode

Richard Earnshaw rearnsha@arm.com
Sat Feb 22 14:25:00 GMT 2003


> aha, somone who might know.
> 
> Apologies if this is a can of worms :)

Very wriggly ones ;-)

> 
> Is it possible to link ADS/SDT compiled libraries using an arm targetted
> gcc?

In summary no.  GCC and ADS do not use the same procedure call standard, 
so while you might "get away with it", the chances are that something will 
come along quietly and bite you when you are least expecting it (the 
differences are largely in the corners, but they do exist and some of the 
corners have plenty of dust).

Note that ADS and SDT don't share a common ABI either (though you might be 
able to persuade the ADS compiler to generate SDT confoming code -- I've 
never tried it).

> 
> gcc currently complains about the EABI version number being different. Is
> there any significant difference in the elf files between the compiler
> toolchains?

To be pedantic, gcc isn't complaining, but the GNU linker is.  Objects 
created by ADS are marked differently to those created by GCC/GAS.

> 
> I did some searches for info
> 
> it appears that there is/was a collision with the EF_ARM_SYMSARESORTED and
> EF_INTERWORK flags from EABI 0 is this still the case?

Don't know the answer to that one, sorry.

> I can't seem to find any information on interworking. Has this been
> deprecated in favour of some other method of calling between ARM and thumb
> code?

GCC's interworking code has been tested even less thoroughly than just 
plain thumb code (which is to say it hasn't had much testing at all).

That all sounds a bit negative.  The best encouragement I can give is that 
ARM is currently working on a new and far more tightly laid down EABI 
standard; this will be taking the Generic C++ ABI as the base for C++ 
code.  Once this work is complete it would be nice to see configurations 
of GCC conforming to it.

R.



More information about the Gcc mailing list