* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't eliminate

copy relocations for VxWorks.
This commit is contained in:
Daniel Jacobowitz 2005-05-20 22:02:08 +00:00
parent 4dc4a9a515
commit 643796e38c
2 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2005-05-20 Daniel Jacobowitz <dan@codesourcery.com>
* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't eliminate
copy relocations for VxWorks.
2005-05-20 Daniel Jacobowitz <dan@codesourcery.com>
* bfd/elf32-ppc.c (struct ppc_elf_link_hash_entry): Add new field

View File

@ -1431,7 +1431,13 @@ elf_i386_adjust_dynamic_symbol (struct bfd_link_info *info,
return TRUE;
}
if (ELIMINATE_COPY_RELOCS)
htab = elf_i386_hash_table (info);
/* If there aren't any dynamic relocs in read-only sections, then
we can keep the dynamic relocs and avoid the copy reloc. 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 && !htab->is_vxworks)
{
struct elf_i386_link_hash_entry * eh;
struct elf_i386_dyn_relocs *p;
@ -1444,8 +1450,6 @@ elf_i386_adjust_dynamic_symbol (struct bfd_link_info *info,
break;
}
/* 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. */
if (p == NULL)
{
h->non_got_ref = 0;
@ -1463,8 +1467,6 @@ elf_i386_adjust_dynamic_symbol (struct bfd_link_info *info,
both the dynamic object and the regular object will refer to the
same memory location for the variable. */
htab = elf_i386_hash_table (info);
/* We must generate a R_386_COPY reloc to tell the dynamic linker to
copy the initial value out of the dynamic object and into the
runtime process image. */