Match PLT entry only for ELFOSABI_GNU input
* elf32-i386.c (elf_i386_plt_sym_val): Match PLT entry only for ELFOSABI_GNU input. * elf64-x86-64.c (elf_x86_64_plt_sym_val): Likewise. (elf_x86_64_plt_sym_val_offset_plt_bnd): Likewise.
This commit is contained in:
parent
144bed8d4d
commit
cca5b8b64b
@ -1,3 +1,10 @@
|
|||||||
|
2014-07-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* elf32-i386.c (elf_i386_plt_sym_val): Match PLT entry only for
|
||||||
|
ELFOSABI_GNU input.
|
||||||
|
* elf64-x86-64.c (elf_x86_64_plt_sym_val): Likewise.
|
||||||
|
(elf_x86_64_plt_sym_val_offset_plt_bnd): Likewise.
|
||||||
|
|
||||||
2014-07-16 H.J. Lu <hongjiu.lu@intel.com>
|
2014-07-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR binutils/17154
|
PR binutils/17154
|
||||||
|
@ -4994,6 +4994,10 @@ elf_i386_plt_sym_val (bfd_vma i, const asection *plt, const arelent *rel)
|
|||||||
abfd = plt->owner;
|
abfd = plt->owner;
|
||||||
bed = get_elf_i386_backend_data (abfd);
|
bed = get_elf_i386_backend_data (abfd);
|
||||||
plt_offset = bed->plt->plt_entry_size;
|
plt_offset = bed->plt->plt_entry_size;
|
||||||
|
|
||||||
|
if (elf_elfheader (abfd)->e_ident[EI_OSABI] != ELFOSABI_GNU)
|
||||||
|
return plt->vma + (i + 1) * plt_offset;
|
||||||
|
|
||||||
while (plt_offset < plt->size)
|
while (plt_offset < plt->size)
|
||||||
{
|
{
|
||||||
bfd_vma reloc_offset;
|
bfd_vma reloc_offset;
|
||||||
|
@ -5311,6 +5311,10 @@ elf_x86_64_plt_sym_val (bfd_vma i, const asection *plt,
|
|||||||
abfd = plt->owner;
|
abfd = plt->owner;
|
||||||
bed = get_elf_x86_64_backend_data (abfd);
|
bed = get_elf_x86_64_backend_data (abfd);
|
||||||
plt_offset = bed->plt_entry_size;
|
plt_offset = bed->plt_entry_size;
|
||||||
|
|
||||||
|
if (elf_elfheader (abfd)->e_ident[EI_OSABI] != ELFOSABI_GNU)
|
||||||
|
return plt->vma + (i + 1) * plt_offset;
|
||||||
|
|
||||||
while (plt_offset < plt->size)
|
while (plt_offset < plt->size)
|
||||||
{
|
{
|
||||||
bfd_vma reloc_index;
|
bfd_vma reloc_index;
|
||||||
@ -5340,6 +5344,10 @@ elf_x86_64_plt_sym_val_offset_plt_bnd (bfd_vma i, const asection *plt)
|
|||||||
const struct elf_x86_64_backend_data *bed = &elf_x86_64_bnd_arch_bed;
|
const struct elf_x86_64_backend_data *bed = &elf_x86_64_bnd_arch_bed;
|
||||||
bfd *abfd = plt->owner;
|
bfd *abfd = plt->owner;
|
||||||
bfd_vma plt_offset = bed->plt_entry_size;
|
bfd_vma plt_offset = bed->plt_entry_size;
|
||||||
|
|
||||||
|
if (elf_elfheader (abfd)->e_ident[EI_OSABI] != ELFOSABI_GNU)
|
||||||
|
return i * sizeof (elf_x86_64_legacy_plt2_entry);
|
||||||
|
|
||||||
while (plt_offset < plt->size)
|
while (plt_offset < plt->size)
|
||||||
{
|
{
|
||||||
bfd_vma reloc_index;
|
bfd_vma reloc_index;
|
||||||
|
Loading…
Reference in New Issue
Block a user