* coff-arm.c (coff_arm_relocate_section): Do not ignore the symbol
authorAlexandre Oliva <aoliva@redhat.com>
Tue, 4 Jul 2000 05:11:37 +0000 (05:11 +0000)
committerAlexandre Oliva <aoliva@redhat.com>
Tue, 4 Jul 2000 05:11:37 +0000 (05:11 +0000)
value of PC-relative offsets.

bfd/ChangeLog
bfd/coff-arm.c

index e44ee9b72f7e90ee6d611dc03d0c966ad0e21a34..e2e8baf94c31748422dab3b13b094d8225b239af 100644 (file)
@@ -1,3 +1,8 @@
+2000-07-04  Alexandre Oliva  <aoliva@redhat.com>
+
+       * coff-arm.c (coff_arm_relocate_section): Do not ignore the symbol
+       value of PC-relative offsets.
+
 2000-07-03  Jim Wilson  <wilson@cygnus.com>
 
        * elf64-alpha.c (alpha_elf_size_info): New.
index 2b89b848c8cd9095fb2bc7920f89126ceb6ed71e..4aecc07ab76a803bcab57d2e17f3fde52a450fe1 100644 (file)
@@ -1246,8 +1246,15 @@ coff_arm_relocate_section (output_bfd, info, input_bfd, input_section,
         {
           if (info->relocateable)
             continue;
+#if 0  /* We must not ignore the symbol value.  If the symbol is
+         within the same section, the relocation should have already
+         been fixed, but if it is not, we'll be handed a reloc into
+         the beginning of the symbol's section, so we must not cancel
+         out the symbol's value, otherwise we'll be adding it in
+         twice.  */
           if (sym != NULL && sym->n_scnum != 0)
             addend += sym->n_value;
+#endif
         }
 
       val = 0;