2001-10-15 H.J. Lu <hjl@gnu.org>
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 16 Oct 2001 06:33:52 +0000 (06:33 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 16 Oct 2001 06:33:52 +0000 (06:33 +0000)
* elflink.h (elf_link_input_bfd): Set type to BFD_RELOC_NONE
for relocations against discarded link-once section.

bfd/ChangeLog
bfd/elflink.h

index 634843dc1523875ddc8e9028570107fae1923e37..99c172738b9137f36c2b98a8aa20d48717059f5d 100644 (file)
@@ -1,3 +1,8 @@
+2001-10-15  H.J. Lu <hjl@gnu.org>
+
+       * elflink.h (elf_link_input_bfd): Set type to BFD_RELOC_NONE
+       for relocations against discarded link-once section.
+
 2001-10-15  Alan Modra  <amodra@bigpond.net.au>
 
        * elf32-i386.c (elf_i386_relocate_section): Report some detail on
index 8a3a4ff203cc1d7474550795e13170622b261db3..b714d46d681d52888ed22f1792c92481cb06e8a1 100644 (file)
@@ -5897,6 +5897,8 @@ elf_link_input_bfd (finfo, input_bfd)
   asection *o;
   struct elf_backend_data *bed;
   boolean emit_relocs;
+  reloc_howto_type *none_howto;
+  bfd_vma none_r_info;
 
   output_bfd = finfo->output_bfd;
   bed = get_elf_backend_data (output_bfd);
@@ -6068,6 +6070,9 @@ elf_link_input_bfd (finfo, input_bfd)
        return false;
     }
 
+  none_howto = bfd_reloc_type_lookup (output_bfd, BFD_RELOC_NONE);
+  none_r_info = ELF_R_INFO (0, none_howto->type);
+
   /* Relocate the contents of each section.  */
   for (o = input_bfd->sections; o != NULL; o = o->next)
     {
@@ -6146,8 +6151,7 @@ elf_link_input_bfd (finfo, input_bfd)
                            && (sec->flags & SEC_LINK_ONCE) != 0
                            && bfd_is_abs_section (sec->output_section))
                          {
-                           long r_type = ELF_R_TYPE (rel->r_info);
-                           rel->r_info = ELF_R_INFO (0, r_type);
+                           rel->r_info = none_r_info;
 
 #if BFD_VERSION_DATE > 20021005
                            (*finfo->info->callbacks->warning)