* elf32-arm.c (elf32_arm_final_link_relocate): When generating an

R_ARM_RELATIVE relocation for Symbian OS, mention the section
	symbol in the relocation.
This commit is contained in:
Mark Mitchell 2004-11-08 22:08:07 +00:00
parent bcfca65278
commit a16385dc25
2 changed files with 24 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2004-11-08 Mark Mitchell <mark@codesourcery.com>
* elf32-arm.c (elf32_arm_final_link_relocate): When generating an
R_ARM_RELATIVE relocation for Symbian OS, mention the section
symbol in the relocation.
2004-11-08 Inderpreet Singh <inderpreetb@nioda.hcltech.com>
Vineet Sharma <vineets@noida.hcltech.com>

View File

@ -2376,9 +2376,26 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
else
{
int symbol;
/* This symbol is local, or marked to become local. */
relocate = TRUE;
outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE);
if (globals->symbian_p)
/* On Symbian OS, the data segment and text segement
can be relocated independently. Therefore, we must
indicate the segment to which this relocation is
relative. The BPABI allows us to use any symbol in
the right segment; we just use the section symbol
as it is convenient. (We cannot use the symbol
given by "h" directly as it will not appear in the
dynamic symbol table.) */
symbol = input_section->output_section->target_index;
else
/* On SVR4-ish systems, the dynamic loader cannot
relocate the text and data segments independently,
so the symbol does not matter. */
symbol = 0;
outrel.r_info = ELF32_R_INFO (symbol, R_ARM_RELATIVE);
}
loc = sreloc->contents;