On Fri, 14 Oct 2011 18:38:26 +0100, Richard Earnshaw <rearn...@arm.com> wrote:
> On 14/10/11 17:40, Ben Gamari wrote:
> > I was recently trying to test GCC's behavior in producing various types
> > of ARM relocations. In particular, I was trying to produce an
> > R_ARM_JUMP24 relocation, which requires veneer. It was suggested that
> > the code most likely to produce this relocation would involve some sort
> > of tail recursion. I wrote up a small test[1] involving interworking and
> > tail recursion to see what the produced object might look like. To my
> > surprise, I found that the compiler instead[2] produced the deprecated
> > R_ARM_PLT32 relocation. Considering the deprecated state of this
> > relocation type, should this be considered a bug? Being a linker
> > implementer, I for one would greatly appreciate it if GCC tried to only
> > use non-deprecated relocation types. I apologize if this has already
> > been fixed upstream.
> >
> 
> The compiler doesn't produce relocations, but the assembler does.  You
> need to make sure your binutils is up-to-date.
> 
Fair enough. I suppose that makes more sense.

$ as -v
GNU assembler version 2.21.0 (arm-linux-gnueabi) using BFD version (GNU 
Binutils for Ubuntu) 2.21.0.20110327


Seems that this is the latest stable release.

Cheers,

- Ben

Reply via email to