* 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:
parent
bcfca65278
commit
a16385dc25
@ -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>
|
2004-11-08 Inderpreet Singh <inderpreetb@nioda.hcltech.com>
|
||||||
Vineet Sharma <vineets@noida.hcltech.com>
|
Vineet Sharma <vineets@noida.hcltech.com>
|
||||||
|
|
||||||
|
@ -2376,9 +2376,26 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
|
|||||||
outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
|
outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
int symbol;
|
||||||
|
|
||||||
/* This symbol is local, or marked to become local. */
|
/* This symbol is local, or marked to become local. */
|
||||||
relocate = TRUE;
|
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;
|
loc = sreloc->contents;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user