* elf32-arm.c (elf32_arm_final_link_relocate): Correct logic for
authorMark Mitchell <mark@codesourcery.com>
Thu, 11 Nov 2004 18:24:24 +0000 (18:24 +0000)
committerMark Mitchell <mark@codesourcery.com>
Thu, 11 Nov 2004 18:24:24 +0000 (18:24 +0000)
R_ARM_RELATIVE on Symbian OS.

bfd/ChangeLog
bfd/elf32-arm.c

index b09680a41fd89ccb3183e87cde117a7b1501eaf5..783c831397ef33ea50ab20f7281ddece6a523153 100644 (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.
index e55c7c5c5e505a32672e8ef8ff7aef9222837cba..a7c324652d65a925678b67b24334e393a3bcffd4 100644 (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,
This page took 0.032057 seconds and 4 git commands to generate.