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] |
+ for (i = 0; i< ARRAY_SIZE (reloc_names); i++) + { + struct reloc_entry * entry = reloc_names + i; + + if (arm_is_eabi()&& entry->reloc == BFD_RELOC_ARM_PLT32) + /* This makes encode_branch() use the EABI versions of this relocation. */ + entry->reloc = BFD_RELOC_UNUSED; + + hash_insert (arm_reloc_hsh, entry->name, (void *) entry); + }
While this is probably the simplest way to fix this in terms of code change I wonder whether it would be better to actually modify the encode_branch function?
This also then allows us to ensure that the BFD_RELOC_ARM_* value in default_reloc really maps to R_ARM_CALL or R_ARM_JUMP24 as the documentation says :-).
I'm also concerned at else will happen if we stop marking these relocations as BFD_RELOC_ARM_PLT32.
For instance in arm_fix_adjustable there is code to not allow symbols to be discarded on GOT related relocs which depends on this relocation type.
Cheers Nick
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |