* config.bfd (arm-*-netbsdelf*): Add target.
[deliverable/binutils-gdb.git] / bfd / elf32-arm.h
index 6bd1fbb5cdecb0ca1c2b40721ff9081de26eab77..d5cfcd428f62925f6965a1e16c8a8c316c31091b 100644 (file)
@@ -1149,22 +1149,11 @@ elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
 
          skip = false;
 
-         if (elf_section_data (input_section)->stab_info == NULL)
-           outrel.r_offset = rel->r_offset;
-         else
-           {
-             bfd_vma off;
-
-             off = (_bfd_stab_section_offset
-                    (output_bfd, &elf_hash_table (info)->stab_info,
-                     input_section,
-                     & elf_section_data (input_section)->stab_info,
-                     rel->r_offset));
-             if (off == (bfd_vma) -1)
-               skip = true;
-             outrel.r_offset = off;
-           }
-
+         outrel.r_offset =
+           _bfd_elf_section_offset (output_bfd, info, input_section,
+                                    rel->r_offset);
+         if (outrel.r_offset == (bfd_vma) -1)
+           skip = true;
          outrel.r_offset += (input_section->output_section->vma
                              + input_section->output_offset);
 
@@ -1892,9 +1881,7 @@ elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section,
                }
              msec = sec;
              addend =
-               _bfd_merged_section_offset (output_bfd, &msec,
-                                           elf_section_data (sec)->merge_info,
-                                           sym->st_value + addend, (bfd_vma) 0)
+               _bfd_elf_rel_local_sym (output_bfd, sym, &msec, addend)
                - relocation;
              addend += msec->output_section->vma + msec->output_offset;
              value = (value & ~ howto->dst_mask) | (addend & howto->dst_mask);
@@ -2282,14 +2269,20 @@ Error: %s uses %s floating point, whereas %s uses %s floating point"),
       /* Interworking mismatch is only a warning.  */
       if ((in_flags & EF_ARM_INTERWORK) != (out_flags & EF_ARM_INTERWORK))
        {
-         char *s1 = (in_flags & EF_ARM_INTERWORK
-                     ? _("supports") : _("does not support"));
-         char *s2 = out_flags & EF_ARM_INTERWORK ? _("does") : _("does not");
-
-         _bfd_error_handler (_("\
-Warning: %s %s interworking, whereas %s %s"),
-                             bfd_archive_filename (ibfd), s1,
-                             bfd_get_filename (obfd), s2);
+         if (in_flags & EF_ARM_INTERWORK)
+           {
+             _bfd_error_handler (_("\
+Warning: %s supports interworking, whereas %s does not"),
+                                 bfd_archive_filename (ibfd),
+                                 bfd_get_filename (obfd));    
+           }
+         else
+           {
+             _bfd_error_handler (_("\
+Warning: %s does not support interworking, whereas %s does"),
+                                 bfd_archive_filename (ibfd),
+                                 bfd_get_filename (obfd));
+           }
        }
     }
 
@@ -2462,14 +2455,9 @@ elf32_arm_gc_mark_hook (abfd, info, rel, h, sym)
      }
    else
      {
-       if (!(elf_bad_symtab (abfd)
-           && ELF_ST_BIND (sym->st_info) != STB_LOCAL)
-         && ! ((sym->st_shndx <= 0 || sym->st_shndx >= SHN_LORESERVE)
-                && sym->st_shndx != SHN_COMMON))
-          {
-            return bfd_section_from_elf_index (abfd, sym->st_shndx);
-          }
-      }
+       return bfd_section_from_elf_index (abfd, sym->st_shndx);
+     }
+
   return NULL;
 }
 
This page took 0.023951 seconds and 4 git commands to generate.