diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2007-07-10 07:42:30 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@codesourcery.com> | 2007-07-10 07:42:30 +0000 |
commit | cfd2c77310af7174d7f831cffe8bc3983b320788 (patch) | |
tree | 86c979ebe1218e20c9496831d63282be9c1cef91 | |
parent | 1c68693b0ced40f9089d426e59e03cab9a0d1865 (diff) | |
download | gdb-cfd2c77310af7174d7f831cffe8bc3983b320788.zip gdb-cfd2c77310af7174d7f831cffe8bc3983b320788.tar.gz gdb-cfd2c77310af7174d7f831cffe8bc3983b320788.tar.bz2 |
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't eliminate
copy relocs on vxworks.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-ppc.c | 12 |
2 files changed, 13 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 78bcb26..104e425 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2007-07-10 Nathan Sidwell <nathan@codesourcery.com> + + * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Don't eliminate + copy relocs on vxworks. + 2007-07-10 Alan Modra <amodra@bigpond.net.au> * elf32-arm.c (elf32_arm_size_info): Init checksum_contents field. diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index f2f053b..f876897 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) |