* elf32-arm.c (elf32_arm_final_link_relocate): Correct logic for

R_ARM_RELATIVE on Symbian OS.
This commit is contained in:
Mark Mitchell 2004-11-11 18:24:24 +00:00
parent 85c9d3b84b
commit 6366ff1ead
2 changed files with 17 additions and 9 deletions

View File

@ -1,3 +1,8 @@
2004-11-11 Mark Mitchell <mark@codesourcery.com>
* elf32-arm.c (elf32_arm_final_link_relocate): Correct logic for
R_ARM_RELATIVE on Symbian OS.
2004-11-09 Mark Mitchell <mark@codesourcery.com>
* som.c (som_bfd_print_private_bfd_data): New function.

View File

@ -2381,15 +2381,18 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
/* This symbol is local, or marked to become local. */
relocate = TRUE;
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;
{
/* 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 = elf_section_data (sym_sec->output_section)->dynindx;
BFD_ASSERT (symbol != 0);
}
else
/* On SVR4-ish systems, the dynamic loader cannot
relocate the text and data segments independently,