aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-i386.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-09-07 17:19:10 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-09-07 17:21:07 -0700
commit7a382c1c50fca0d4bc4c2e618ff6ac222c4e2137 (patch)
tree5fd76f03573b7ebbc4b986585323b5e7dbf419e3 /bfd/elf32-i386.c
parentbd757a5bf293aaed6c6aa79776bbef13ca2da92b (diff)
downloadgdb-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/elf32-i386.c')
-rw-r--r--bfd/elf32-i386.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index cee5182..a64a09d 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -4628,6 +4628,9 @@ elf_i386_link_setup_gnu_properties (struct bfd_link_info *info)
break;
}
+ 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);
}