diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-09-07 17:19:10 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-09-07 17:21:07 -0700 |
commit | 7a382c1c50fca0d4bc4c2e618ff6ac222c4e2137 (patch) | |
tree | 5fd76f03573b7ebbc4b986585323b5e7dbf419e3 /bfd/elf64-x86-64.c | |
parent | bd757a5bf293aaed6c6aa79776bbef13ca2da92b (diff) | |
download | gdb-7a382c1c50fca0d4bc4c2e618ff6ac222c4e2137.zip gdb-7a382c1c50fca0d4bc4c2e618ff6ac222c4e2137.tar.gz gdb-7a382c1c50fca0d4bc4c2e618ff6ac222c4e2137.tar.bz2 |
x86; Don't add elf64-x86-64.lo nor elf64.lo together with elfxx-x86.lo
Don't set r_info and r_sym fields in _bfd_x86_elf_link_hash_table_create.
Instead, set them in _bfd_x86_elf_link_setup_gnu_properties. We can
avoid adding elf64-x86-64.lo and elf64.lo together with elfxx-x86.lo to
bfd_backends.
* configure.ac (bfd_backends): Don't add elf64-x86-64.lo nor
elf64.lo together with elfxx-x86.lo for 64-bit BFD.
* configure: Regenerated.
* elf32-i386.c (elf_i386_link_setup_gnu_properties): Set r_info
and r_sym fields of plt_layout.
* elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties):
Likewise.
* elfxx-x86.c (elf_x86_64_is_reloc_section): Remove BFD64 check.
(_bfd_x86_elf_link_hash_table_create): Likewise. Don't set
r_info nor r_sym fields.
(_bfd_x86_elf_link_setup_gnu_properties): Set r_info and r_sym
fields of htab.
* elfxx-x86.h (elf_x86_plt_layout_table): Add r_info and r_sym.
Diffstat (limited to 'bfd/elf64-x86-64.c')
-rw-r--r-- | bfd/elf64-x86-64.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index a2a4be8..10da820 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -5185,6 +5185,17 @@ elf_x86_64_link_setup_gnu_properties (struct bfd_link_info *info) plt_layout.normal_target = FALSE; } + if (ABI_64_P (info->output_bfd)) + { + plt_layout.r_info = elf64_r_info; + plt_layout.r_sym = elf64_r_sym; + } + else + { + plt_layout.r_info = elf32_r_info; + plt_layout.r_sym = elf32_r_sym; + } + return _bfd_x86_elf_link_setup_gnu_properties (info, &plt_layout); } |