mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-02 02:45:37 +08:00
* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't eliminate
copy relocations for VxWorks.
This commit is contained in:
@ -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>
|
2005-05-20 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
* bfd/elf32-ppc.c (struct ppc_elf_link_hash_entry): Add new field
|
* bfd/elf32-ppc.c (struct ppc_elf_link_hash_entry): Add new field
|
||||||
|
@ -1431,7 +1431,13 @@ elf_i386_adjust_dynamic_symbol (struct bfd_link_info *info,
|
|||||||
return TRUE;
|
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_link_hash_entry * eh;
|
||||||
struct elf_i386_dyn_relocs *p;
|
struct elf_i386_dyn_relocs *p;
|
||||||
@ -1444,8 +1450,6 @@ elf_i386_adjust_dynamic_symbol (struct bfd_link_info *info,
|
|||||||
break;
|
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)
|
if (p == NULL)
|
||||||
{
|
{
|
||||||
h->non_got_ref = 0;
|
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
|
both the dynamic object and the regular object will refer to the
|
||||||
same memory location for the variable. */
|
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
|
/* 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
|
copy the initial value out of the dynamic object and into the
|
||||||
runtime process image. */
|
runtime process image. */
|
||||||
|
Reference in New Issue
Block a user