This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc for ARM in thumb mode
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: "Dave Murphy" <wintermute2002 at ntlworld dot com>
- Cc: Richard dot Earnshaw at arm dot com, gcc at gnu dot org
- Date: Sat, 22 Feb 2003 13:09:40 +0000
- Subject: Re: gcc for ARM in thumb mode
- Organization: ARM Ltd.
- Reply-to: Richard dot Earnshaw at arm dot com
> 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.