2004-04-02 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 2 Apr 2004 15:26:04 +0000 (15:26 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 2 Apr 2004 15:26:04 +0000 (15:26 +0000)
* elf32-cr16c.c (elf32_cr16c_relocate_section): Use
RELOC_FOR_GLOBAL_SYMBOL.
(elf32_cr16c_add_symbol_hook): Remove const from Elf_Internal_Sym.

bfd/ChangeLog
bfd/elf32-cr16c.c

index b54be88..6d2b7fc 100644 (file)
@@ -1,5 +1,11 @@
 2004-04-02  H.J. Lu  <hongjiu.lu@intel.com>
 
+       * elf32-cr16c.c (elf32_cr16c_relocate_section): Use
+       RELOC_FOR_GLOBAL_SYMBOL.
+       (elf32_cr16c_add_symbol_hook): Remove const from Elf_Internal_Sym.
+
+2004-04-02  H.J. Lu  <hongjiu.lu@intel.com>
+
        * elf32-arm.h (elf32_arm_final_link_relocate): Handle
        R_ARM_ALU* only if OLD_ARM_ABI is not defined.
 
index 3e2e275..e722335 100644 (file)
@@ -721,27 +721,12 @@ elf32_cr16c_relocate_section (bfd *output_bfd,
        }
       else
        {
-         h = sym_hashes[r_symndx - symtab_hdr->sh_info];
-         while (h->root.type == bfd_link_hash_indirect
-                || h->root.type == bfd_link_hash_warning)
-           h = (struct elf_link_hash_entry *) h->root.u.i.link;
-         if (h->root.type == bfd_link_hash_defined
-             || h->root.type == bfd_link_hash_defweak)
-           {
-             sec = h->root.u.def.section;
-             relocation = (h->root.u.def.value
-                           + sec->output_section->vma + sec->output_offset);
-           }
-         else if (h->root.type == bfd_link_hash_undefweak)
-           relocation = 0;
-         else
-           {
-             if (!((*info->callbacks->undefined_symbol)
-                   (info, h->root.root.string, input_bfd,
-                    input_section, rel->r_offset, TRUE)))
-               return FALSE;
-             relocation = 0;
-           }
+         bfd_boolean unresolved_reloc, warned;
+
+         RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel,
+                                  r_symndx, symtab_hdr, sym_hashes,
+                                  h, sec, relocation,
+                                  unresolved_reloc, warned);
        }
 
       r = cr16c_elf_final_link_relocate (howto, input_bfd, output_bfd,
@@ -944,7 +929,7 @@ elf32_cr16c_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED,
 static bfd_boolean
 elf32_cr16c_add_symbol_hook (bfd *abfd,
                             struct bfd_link_info *info ATTRIBUTE_UNUSED,
-                            const Elf_Internal_Sym *sym,
+                            Elf_Internal_Sym *sym,
                             const char **namep ATTRIBUTE_UNUSED,
                             flagword *flagsp ATTRIBUTE_UNUSED,
                             asection **secp,