* elf32-ppc.c (ppc_elf_reload_section): Fix typo.
authorJeff Law <law@redhat.com>
Sun, 1 Nov 1998 03:11:16 +0000 (03:11 +0000)
committerJeff Law <law@redhat.com>
Sun, 1 Nov 1998 03:11:16 +0000 (03:11 +0000)
bfd/ChangeLog
bfd/elf32-ppc.c

index 9e1c5b03bbc896910874161b1dcb8a91330027cc..faef05abf9e5ac265399973bf12f78f348b1e9a6 100644 (file)
@@ -1,3 +1,7 @@
+Sat Oct 31 20:10:09 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * elf32-ppc.c (ppc_elf_reload_section): Fix typo.
+
 1998-10-26 15:58  Ulrich Drepper  <drepper@cygnus.com>
 
        * elf-bfd.h (struct elf_link_hash_entry): Add new field elf_hash_value.
index 1b8a8f02c31204e4664de30443536ac6ac508052..0d3f0d2264d25707c39680996abdbc1bac585f07 100644 (file)
@@ -2761,7 +2761,7 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
   for (; rel < relend; rel++)
     {
-      enum elf_ppc_reloc_type r_type   = (enum ppc_reloc_type)ELF32_R_TYPE (rel->r_info);
+      enum elf_ppc_reloc_type r_type   = (enum elf_ppc_reloc_type)ELF32_R_TYPE (rel->r_info);
       bfd_vma offset                   = rel->r_offset;
       bfd_vma addend                   = rel->r_addend;
       bfd_reloc_status_type r          = bfd_reloc_other;
@@ -3286,7 +3286,6 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
            BFD_ASSERT (sec != (asection *)0);
            name = bfd_get_section_name (abfd, sec->output_section);
            if (strcmp (name, ".sdata") != 0
-               && strcmp (name, ".dynsbss") != 0
                && strcmp (name, ".sbss") != 0)
              {
                (*_bfd_error_handler) (_("%s: The target (%s) of a %s relocation is in the wrong output section (%s)"),
@@ -3294,13 +3293,10 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                                       sym_name,
                                       ppc_elf_howto_table[ (int)r_type ]->name,
                                       name);
-               
-               bfd_set_error (bfd_error_bad_value);
-               ret = false;
-               continue;
              }
            addend -= (sdata->sym_hash->root.u.def.value
-                      + sec->output_section->vma);
+                      + sdata->sym_hash->root.u.def.section->output_section->vma
+                      + sdata->sym_hash->root.u.def.section->output_offset);
          }
          break;
 
@@ -3325,7 +3321,8 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
                continue;
              }
            addend -= (sdata2->sym_hash->root.u.def.value
-                      + sec->output_section->vma);
+                      + sdata2->sym_hash->root.u.def.section->output_section->vma
+                      + sdata2->sym_hash->root.u.def.section->output_offset);
          }
          break;
 
@@ -3343,14 +3340,16 @@ ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section,
              {
                reg = 13;
                addend -= (sdata->sym_hash->root.u.def.value
-                          + sec->output_section->vma);
+                          + sdata->sym_hash->root.u.def.section->output_section->vma
+                          + sdata->sym_hash->root.u.def.section->output_offset);
              }
 
            else if (strcmp (name, ".sdata2") == 0 || strcmp (name, ".sbss2") == 0)
              {
                reg = 2;
                addend -= (sdata2->sym_hash->root.u.def.value
-                          + sec->output_section->vma);
+                          + sdata2->sym_hash->root.u.def.section->output_section->vma
+                          + sdata2->sym_hash->root.u.def.section->output_offset);
              }
 
            else if (strcmp (name, ".PPC.EMB.sdata0") == 0 || strcmp (name, ".PPC.EMB.sbss0") == 0)