aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2007-07-10 07:42:30 +0000
committerNathan Sidwell <nathan@codesourcery.com>2007-07-10 07:42:30 +0000
commitcfd2c77310af7174d7f831cffe8bc3983b320788 (patch)
tree86c979ebe1218e20c9496831d63282be9c1cef91
parent1c68693b0ced40f9089d426e59e03cab9a0d1865 (diff)
downloadgdb-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/ChangeLog5
-rw-r--r--bfd/elf32-ppc.c12
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)