mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-29 16:38:05 +08:00
x86: Increment PLT count only for function symbols
Since PLT entry is needed only for function symbols, increment PLT count only for function symbols. * elf32-i386.c (elf_i386_check_relocs): Increment PLT count only for function symbols. * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* elf32-i386.c (elf_i386_check_relocs): Increment PLT count only
|
||||||
|
for function symbols.
|
||||||
|
* elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
|
||||||
|
|
||||||
2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
|
2017-08-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* elf32-i386.c (elf_i386_link_setup_gnu_properties): Set
|
* elf32-i386.c (elf_i386_link_setup_gnu_properties): Set
|
||||||
|
@ -2273,8 +2273,9 @@ do_relocation:
|
|||||||
/* We may need a .plt entry if the symbol is a function
|
/* We may need a .plt entry if the symbol is a function
|
||||||
defined in a shared lib or is a STT_GNU_IFUNC function
|
defined in a shared lib or is a STT_GNU_IFUNC function
|
||||||
referenced from the code or read-only section. */
|
referenced from the code or read-only section. */
|
||||||
if (!h->def_regular
|
if ((h->type == STT_FUNC || h->type == STT_GNU_IFUNC)
|
||||||
|| (sec->flags & (SEC_CODE | SEC_READONLY)) != 0)
|
&& (!h->def_regular
|
||||||
|
|| (sec->flags & (SEC_CODE | SEC_READONLY)) != 0))
|
||||||
h->plt.refcount += 1;
|
h->plt.refcount += 1;
|
||||||
|
|
||||||
if (r_type == R_386_PC32)
|
if (r_type == R_386_PC32)
|
||||||
|
@ -2716,8 +2716,9 @@ pointer:
|
|||||||
/* We may need a .plt entry if the symbol is a function
|
/* We may need a .plt entry if the symbol is a function
|
||||||
defined in a shared lib or is a STT_GNU_IFUNC function
|
defined in a shared lib or is a STT_GNU_IFUNC function
|
||||||
referenced from the code or read-only section. */
|
referenced from the code or read-only section. */
|
||||||
if (!h->def_regular
|
if ((h->type == STT_FUNC || h->type == STT_GNU_IFUNC)
|
||||||
|| (sec->flags & (SEC_CODE | SEC_READONLY)) != 0)
|
&& (!h->def_regular
|
||||||
|
|| (sec->flags & (SEC_CODE | SEC_READONLY)) != 0))
|
||||||
h->plt.refcount += 1;
|
h->plt.refcount += 1;
|
||||||
|
|
||||||
if (r_type == R_X86_64_PC32)
|
if (r_type == R_X86_64_PC32)
|
||||||
|
Reference in New Issue
Block a user