aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elflink.h8
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)