From cab87ef999efe2137895d35dc933188bd69bad17 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 17 Feb 2006 12:52:58 +0000 Subject: [PATCH] * elf32-ppc.c (allocate_dynrelocs): Tweak undef weak handling. * elf64-ppc.c (allocate_dynrelocs): Likewise. --- bfd/ChangeLog | 5 +++++ bfd/elf32-ppc.c | 3 ++- bfd/elf64-ppc.c | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 3f4da9cfa86..6162d9cb5f9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2006-02-17 Alan Modra + + * elf32-ppc.c (allocate_dynrelocs): Tweak undef weak handling. + * elf64-ppc.c (allocate_dynrelocs): Likewise. + 2006-02-17 Alan Modra PR ld/2218 diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index caa5ed44d9c..134b960db96 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -4546,7 +4546,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) /* Also discard relocs on undefined weak syms with non-default visibility. */ - if (h->root.type == bfd_link_hash_undefweak) + if (eh->dyn_relocs != NULL + && h->root.type == bfd_link_hash_undefweak) { if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT) eh->dyn_relocs = NULL; diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index 785c859de0d..1cfac82c741 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -7582,7 +7582,8 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) /* Also discard relocs on undefined weak syms with non-default visibility. */ - if (h->root.type == bfd_link_hash_undefweak) + if (eh->dyn_relocs != NULL + && h->root.type == bfd_link_hash_undefweak) { if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT) eh->dyn_relocs = NULL; -- 2.30.2