From 87cb3ec3f193a989420d972beef68c3f9fd0e793 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Tue, 10 Jul 2007 07:42:30 +0000 Subject: [PATCH] * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't eliminate copy relocs on vxworks. --- bfd/ChangeLog | 5 +++++ bfd/elf32-ppc.c | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 78bcb26a49..104e425588 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2007-07-10 Nathan Sidwell + + * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't eliminate + copy relocs on vxworks. + 2007-07-10 Alan Modra * elf32-arm.c (elf32_arm_size_info): Init checksum_contents field. diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index f2f053b2ee..f876897aa8 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -4284,11 +4284,15 @@ ppc_elf_adjust_dynamic_symbol (struct bfd_link_info *info, if (!h->non_got_ref) return TRUE; - /* If we didn't find any dynamic relocs in read-only sections, then we'll - be keeping the dynamic relocs and avoiding the copy reloc. We can't - do this if there are any small data relocations. */ + /* If we didn't find any dynamic relocs in read-only sections, then + we'll be keeping the dynamic relocs and avoiding the copy reloc. + We can't do this if there are any small data relocations. This + doesn't work on VxWorks, where we can not have dynamic + relocations (other than copy and jump slot relocations) in an + executable. */ if (ELIMINATE_COPY_RELOCS - && !ppc_elf_hash_entry (h)->has_sda_refs) + && !ppc_elf_hash_entry (h)->has_sda_refs + && !htab->is_vxworks) { struct ppc_elf_dyn_relocs *p; for (p = ppc_elf_hash_entry (h)->dyn_relocs; p != NULL; p = p->next) -- 2.11.0