This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: ARM/Thumb Interwork
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: "Bhattacharya, Soubhik" <soubhik_bhattacharya at mentorg dot com>
- Cc: crossgcc at sources dot redhat dot com, binutils at sources dot redhat dot com, Richard dot Earnshaw at arm dot com
- Date: Wed, 29 Oct 2003 10:26:44 +0000
- Subject: Re: ARM/Thumb Interwork
- Organization: ARM Ltd.
- Reply-to: Richard dot Earnshaw at arm dot com
> hi all,
>
> i'm working on a tool that reads and analyzes arm/thumb elf files
> produced by gcc. to do this i need to be able to distinguish between arm
> and thumb code fragments.
>
> arm eabi 2.0 extends generic elf standard to specify how to distinguish
> between arm and thumb code fragments. however, it seems that the cross
> gcc that i have does not follow arm eabi 2.0. so what is the convention
> that gcc follows and how to learn about it?
>
> with the help of 'objdump', i cud see that calls to arm functions from
> thumb code and vice versa is supported thru special wrapper functions
> (__<func>_from_thumb and __<func>_from_arm). this technique will not
> work for a function having a mix of arm and thumb code. are such
> functions supported? what happens if a relocatable object is generated
> with -mcallee-super-interworking?
>
GNU tools currently mark Thumb function symbols with type STT_THUMB_FUNC.
I'm hoping that we will be able to migrate the GNU tools over to the new
ARM ABI specs, but it's going to be a fair amount of work.
R.