This is the mail archive of the
mailing list for the binutils project.
Re: [BUG?] GCC 4.5.2 produces deprecated ARM relocation
- From: Nick Clifton <nickc at redhat dot com>
- To: Ben Gamari <bgamari dot foss at gmail dot com>
- Cc: binutils at sourceware dot org
- Date: Mon, 24 Oct 2011 16:04:02 +0100
- Subject: Re: [BUG?] GCC 4.5.2 produces deprecated ARM relocation
- References: <firstname.lastname@example.org>
surprise, I found that the compiler instead 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.
And so you will need to repost this bug report to the gcc bug mailing
list, since it is gcc's fault...
What is happening is that GCC is producing this assembler output for the
call to hi():
The presence of the "(PLT)" instructs GAS to produce the deprecated
ARM_PLT32 reloc. (See the ARM specific portion of the GAS documentation
for a mention of this).
GCC is adding this suffix because the -fPIC flag enables NEED_PLT_RELOC
(see gcc/config/arm/elf.h). Why elf.h is doing this I am not sure -
backwards compatibility maybe ? Anyway it is GCC that needs fixing, not