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: [BUG?] GCC 4.5.2 produces deprecated ARM relocation


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


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