diff options
author | Mark Mitchell <mark@codesourcery.com> | 2004-11-11 18:24:24 +0000 |
---|---|---|
committer | Mark Mitchell <mark@codesourcery.com> | 2004-11-11 18:24:24 +0000 |
commit | 6366ff1ead04d6d0f312b90ab270e95a9d078a10 (patch) | |
tree | 71fc682def0920229cdc37825ec8f6caa6deb7e9 /bfd | |
parent | 85c9d3b84bde5fd92d8db5c0f561e166a64d18be (diff) | |
download | gdb-6366ff1ead04d6d0f312b90ab270e95a9d078a10.zip gdb-6366ff1ead04d6d0f312b90ab270e95a9d078a10.tar.gz gdb-6366ff1ead04d6d0f312b90ab270e95a9d078a10.tar.bz2 |
* elf32-arm.c (elf32_arm_final_link_relocate): Correct logic for
R_ARM_RELATIVE on Symbian OS.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 21 |
2 files changed, 17 insertions, 9 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b09680a..783c831 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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. diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index e55c7c5..a7c3246 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -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, |