This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
RE: [Patch ][RFC] [ARM] Remove use of real start of function for ARM EABI configurations.
- From: "Ramana Radhakrishnan" <ramana dot radhakrishnan at arm dot com>
- To: "'Paul Brook'" <paul at codesourcery dot com>, <binutils at sourceware dot org>
- Cc: "Richard Earnshaw" <Richard dot Earnshaw at arm dot com>
- Date: Fri, 27 Mar 2009 16:08:19 -0000
- Subject: RE: [Patch ][RFC] [ARM] Remove use of real start of function for ARM EABI configurations.
- References: <000001c9aee9$0cc09350$2641b9f0$@radhakrishnan@arm.com> <200903271540.00381.paul@codesourcery.com>
> -----Original Message-----
> From: Paul Brook [mailto:paul@codesourcery.com]
> Sent: 27 March 2009 15:40
> To: binutils@sourceware.org
> Cc: Ramana Radhakrishnan; Richard Earnshaw
> Subject: Re: [Patch ][RFC] [ARM] Remove use of real start of function
> for ARM EABI configurations.
>
> > I should point out that the assembler doesn't handle branches or
> calls to
> > local functions defined to be in Thumb ISA from functions written in
> ARM
> > ISA and vice versa that will do the right thing according to the ABI.
> I am
> > working on a follow up patch to handle those cases.
>
> I'm pretty sure this is a bug in your code. Function symbols should be
> marked
> as such regardless of whether they are local.
Consider the following case.
.text
.arch armv5t
.arm
one:
bl foo
.thumb
.type foo, %function
.thumb_func
foo:
nop
nop
In this case if foo were global we end up being interworking safe because
the assembler generates a reloc and the linker knows how to fix it. However
because this is local , the assembler would accept the same without
squawking. I'm trying to make the behaviour of the tools consistent across
local and global functions. OTOH if the bl were to a symbol with type
STT_NOTYPE it would be accepted as is and it's up to the user to be smart
about that.
cheers
Ramana