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


On 24/10/11 16:04, Nick Clifton wrote:
> 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.
> 

I disagree, gas should just ignore the suffix when generating EABI
conforming objects.

R.



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