[BUG?] GCC 4.5.2 produces deprecated ARM relocation
Nick Clifton
nickc@redhat.com
Mon Oct 24 15:02:00 GMT 2011
Hi Ben,
> 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?
Yes...
> 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():
bl hi(PLT)
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
GAS.
Cheers
Nick
More information about the Binutils
mailing list