* elf32-i386.c (allocate_plt_and_got_and_discard_relocs): Discard

relocs without ELF_LINK_HASH_DEF_DYNAMIC set.
	(elf_i386_relocate_section <R_386_32, R_386_PC32>): Remove
	redundant bfd_link_hash_defined, bfd_link_hash_defweak test.
This commit is contained in:
Alan Modra 2001-06-25 02:40:47 +00:00
parent d14c409db3
commit 866b34001a
2 changed files with 14 additions and 8 deletions

View File

@ -1,3 +1,10 @@
2001-06-25 Alan Modra <amodra@bigpond.net.au>
* elf32-i386.c (allocate_plt_and_got_and_discard_relocs): Discard
relocs without ELF_LINK_HASH_DEF_DYNAMIC set.
(elf_i386_relocate_section <R_386_32, R_386_PC32>): Remove
redundant bfd_link_hash_defined, bfd_link_hash_defweak test.
2001-06-24 H.J. Lu <hjl@gnu.org> 2001-06-24 H.J. Lu <hjl@gnu.org>
* cpu-i960.c (scan_960_mach): Don't modify const char *. Use * cpu-i960.c (scan_960_mach): Don't modify const char *. Use
@ -5,8 +12,8 @@
2001-06-23 H.J. Lu <hjl@gnu.org> 2001-06-23 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_relocate_section): Check the * elf32-i386.c (elf_i386_relocate_section <R_386_32, R_386_PC32>):
ELF_LINK_HASH_DEF_DYNAMIC to see if a symbol is not defined Check ELF_LINK_HASH_DEF_DYNAMIC to see if a symbol is not defined
in the regular object file and treat the weak definition as in the regular object file and treat the weak definition as
the normal one. the normal one.

View File

@ -1193,8 +1193,9 @@ allocate_plt_and_got_and_discard_relocs (h, inf)
&& ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0 && ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0
|| info->symbolic)) || info->symbolic))
|| (!info->shared || (!info->shared
&& ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) != 0 && (h->dynindx == -1
|| h->dynindx == -1))) || (h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) != 0
|| (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0)))
{ {
struct elf_i386_link_hash_entry *eh; struct elf_i386_link_hash_entry *eh;
struct elf_i386_dyn_relocs *c; struct elf_i386_dyn_relocs *c;
@ -1693,10 +1694,8 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
&& h != NULL && h != NULL
&& h->dynindx != -1 && h->dynindx != -1
&& (h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0 && (h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0
&& ((h->root.type == bfd_link_hash_defined && (h->elf_link_hash_flags
|| h->root.type == bfd_link_hash_defweak) & ELF_LINK_HASH_DEF_DYNAMIC) != 0))
&& (h->elf_link_hash_flags
& ELF_LINK_HASH_DEF_DYNAMIC) != 0)))
{ {
Elf_Internal_Rel outrel; Elf_Internal_Rel outrel;
boolean skip, relocate; boolean skip, relocate;