diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elflink.h | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 634843d..99c1727 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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 diff --git a/bfd/elflink.h b/bfd/elflink.h index 8a3a4ff..b714d46 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -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) |