This is the mail archive of the binutils@sourceware.org mailing list for the binutils 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]

RE: [Patch ][RFC] [ARM] Remove use of real start of function for ARM EABI configurations.


 

> -----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




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