From 1de031c80b121db6f59d189d150ab2b69f6ede21 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 8 Sep 2017 04:10:34 -0700 Subject: [PATCH] x86: Replace elf_x86_plt_layout_table with elf_x86_init_table * elf32-i386.c (elf_i386_link_setup_gnu_properties): Replace elf_x86_plt_layout_table with elf_x86_init_table. * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Likewise. * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Likewise. * elfxx-x86.h (elf_x86_plt_layout_table): Renamed to ... (elf_x86_init_table): This. (_bfd_x86_elf_link_setup_gnu_properties): Replace elf_x86_plt_layout_table with elf_x86_init_table. --- bfd/ChangeLog | 13 +++++++++++++ bfd/elf32-i386.c | 40 ++++++++++++++++++++-------------------- bfd/elf64-x86-64.c | 42 +++++++++++++++++++++--------------------- bfd/elfxx-x86.c | 21 ++++++++++----------- bfd/elfxx-x86.h | 4 ++-- 5 files changed, 66 insertions(+), 54 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c3144b3..73d3d1c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,16 @@ +2017-09-08 H.J. Lu + + * elf32-i386.c (elf_i386_link_setup_gnu_properties): Replace + elf_x86_plt_layout_table with elf_x86_init_table. + * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): + Likewise. + * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): + Likewise. + * elfxx-x86.h (elf_x86_plt_layout_table): Renamed to ... + (elf_x86_init_table): This. + (_bfd_x86_elf_link_setup_gnu_properties): Replace + elf_x86_plt_layout_table with elf_x86_init_table. + 2017-09-07 H.J. Lu * configure.ac (bfd_backends): Don't add elf64-x86-64.lo nor diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index a64a09d..dcf07d9 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -4600,38 +4600,38 @@ elf_i386_get_synthetic_symtab (bfd *abfd, static bfd * elf_i386_link_setup_gnu_properties (struct bfd_link_info *info) { - struct elf_x86_plt_layout_table plt_layout; + struct elf_x86_init_table init_table; - plt_layout.normal_target = FALSE; - plt_layout.is_vxworks = FALSE; + init_table.normal_target = FALSE; + init_table.is_vxworks = FALSE; switch (get_elf_i386_backend_data (info->output_bfd)->os) { case is_normal: - plt_layout.lazy_plt = &elf_i386_lazy_plt; - plt_layout.non_lazy_plt = &elf_i386_non_lazy_plt; - plt_layout.lazy_ibt_plt = &elf_i386_lazy_ibt_plt; - plt_layout.non_lazy_ibt_plt = &elf_i386_non_lazy_ibt_plt; - plt_layout.normal_target = TRUE; + init_table.lazy_plt = &elf_i386_lazy_plt; + init_table.non_lazy_plt = &elf_i386_non_lazy_plt; + init_table.lazy_ibt_plt = &elf_i386_lazy_ibt_plt; + init_table.non_lazy_ibt_plt = &elf_i386_non_lazy_ibt_plt; + init_table.normal_target = TRUE; break; case is_vxworks: - plt_layout.lazy_plt = &elf_i386_lazy_plt; - plt_layout.non_lazy_plt = NULL; - plt_layout.lazy_ibt_plt = NULL; - plt_layout.non_lazy_ibt_plt = NULL; - plt_layout.is_vxworks = TRUE; + init_table.lazy_plt = &elf_i386_lazy_plt; + init_table.non_lazy_plt = NULL; + init_table.lazy_ibt_plt = NULL; + init_table.non_lazy_ibt_plt = NULL; + init_table.is_vxworks = TRUE; break; case is_nacl: - plt_layout.lazy_plt = &elf_i386_nacl_plt; - plt_layout.non_lazy_plt = NULL; - plt_layout.lazy_ibt_plt = NULL; - plt_layout.non_lazy_ibt_plt = NULL; + init_table.lazy_plt = &elf_i386_nacl_plt; + init_table.non_lazy_plt = NULL; + init_table.lazy_ibt_plt = NULL; + init_table.non_lazy_ibt_plt = NULL; break; } - plt_layout.r_info = elf32_r_info; - plt_layout.r_sym = elf32_r_sym; + init_table.r_info = elf32_r_info; + init_table.r_sym = elf32_r_sym; - return _bfd_x86_elf_link_setup_gnu_properties (info, &plt_layout); + return _bfd_x86_elf_link_setup_gnu_properties (info, &init_table); } #define TARGET_LITTLE_SYM i386_elf32_vec diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 10da820..cab086d 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -5140,7 +5140,7 @@ elf_x86_64_relocs_compatible (const bfd_target *input, static bfd * elf_x86_64_link_setup_gnu_properties (struct bfd_link_info *info) { - struct elf_x86_plt_layout_table plt_layout; + struct elf_x86_init_table init_table; if ((int) R_X86_64_standard >= (int) R_X86_64_converted_reloc_bit || (int) R_X86_64_max <= (int) R_X86_64_converted_reloc_bit @@ -5150,53 +5150,53 @@ elf_x86_64_link_setup_gnu_properties (struct bfd_link_info *info) != (int) R_X86_64_GNU_VTENTRY)) abort (); - plt_layout.is_vxworks = FALSE; + init_table.is_vxworks = FALSE; if (get_elf_x86_64_backend_data (info->output_bfd)->os == is_normal) { if (info->bndplt) { - plt_layout.lazy_plt = &elf_x86_64_lazy_bnd_plt; - plt_layout.non_lazy_plt = &elf_x86_64_non_lazy_bnd_plt; + init_table.lazy_plt = &elf_x86_64_lazy_bnd_plt; + init_table.non_lazy_plt = &elf_x86_64_non_lazy_bnd_plt; } else { - plt_layout.lazy_plt = &elf_x86_64_lazy_plt; - plt_layout.non_lazy_plt = &elf_x86_64_non_lazy_plt; + init_table.lazy_plt = &elf_x86_64_lazy_plt; + init_table.non_lazy_plt = &elf_x86_64_non_lazy_plt; } if (ABI_64_P (info->output_bfd)) { - plt_layout.lazy_ibt_plt = &elf_x86_64_lazy_ibt_plt; - plt_layout.non_lazy_ibt_plt = &elf_x86_64_non_lazy_ibt_plt; + init_table.lazy_ibt_plt = &elf_x86_64_lazy_ibt_plt; + init_table.non_lazy_ibt_plt = &elf_x86_64_non_lazy_ibt_plt; } else { - plt_layout.lazy_ibt_plt = &elf_x32_lazy_ibt_plt; - plt_layout.non_lazy_ibt_plt = &elf_x32_non_lazy_ibt_plt; + init_table.lazy_ibt_plt = &elf_x32_lazy_ibt_plt; + init_table.non_lazy_ibt_plt = &elf_x32_non_lazy_ibt_plt; } - plt_layout.normal_target = TRUE; + init_table.normal_target = TRUE; } else { - plt_layout.lazy_plt = &elf_x86_64_nacl_plt; - plt_layout.non_lazy_plt = NULL; - plt_layout.lazy_ibt_plt = NULL; - plt_layout.non_lazy_ibt_plt = NULL; - plt_layout.normal_target = FALSE; + init_table.lazy_plt = &elf_x86_64_nacl_plt; + init_table.non_lazy_plt = NULL; + init_table.lazy_ibt_plt = NULL; + init_table.non_lazy_ibt_plt = NULL; + init_table.normal_target = FALSE; } if (ABI_64_P (info->output_bfd)) { - plt_layout.r_info = elf64_r_info; - plt_layout.r_sym = elf64_r_sym; + init_table.r_info = elf64_r_info; + init_table.r_sym = elf64_r_sym; } else { - plt_layout.r_info = elf32_r_info; - plt_layout.r_sym = elf32_r_sym; + init_table.r_info = elf32_r_info; + init_table.r_sym = elf32_r_sym; } - return _bfd_x86_elf_link_setup_gnu_properties (info, &plt_layout); + return _bfd_x86_elf_link_setup_gnu_properties (info, &init_table); } static const struct bfd_elf_special_section diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c index bbb0578..86e26f9 100644 --- a/bfd/elfxx-x86.c +++ b/bfd/elfxx-x86.c @@ -2106,8 +2106,7 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info, bfd * _bfd_x86_elf_link_setup_gnu_properties - (struct bfd_link_info *info, - struct elf_x86_plt_layout_table *plt_layout) + (struct bfd_link_info *info, struct elf_x86_init_table *init_table) { bfd_boolean normal_target; bfd_boolean lazy_plt; @@ -2185,9 +2184,9 @@ error_alignment: if (htab == NULL) return pbfd; - htab->is_vxworks = plt_layout->is_vxworks; - htab->r_info = plt_layout->r_info; - htab->r_sym = plt_layout->r_sym; + htab->is_vxworks = init_table->is_vxworks; + htab->r_info = init_table->r_info; + htab->r_sym = init_table->r_sym; if (bfd_link_relocatable (info)) return pbfd; @@ -2247,24 +2246,24 @@ error_alignment: still be used with LD_AUDIT or LD_PROFILE if PLT entry is used for canonical function address. */ htab->plt.has_plt0 = 1; - normal_target = plt_layout->normal_target; + normal_target = init_table->normal_target; if (normal_target) { if (use_ibt_plt) { - htab->lazy_plt = plt_layout->lazy_ibt_plt; - htab->non_lazy_plt = plt_layout->non_lazy_ibt_plt; + htab->lazy_plt = init_table->lazy_ibt_plt; + htab->non_lazy_plt = init_table->non_lazy_ibt_plt; } else { - htab->lazy_plt = plt_layout->lazy_plt; - htab->non_lazy_plt = plt_layout->non_lazy_plt; + htab->lazy_plt = init_table->lazy_plt; + htab->non_lazy_plt = init_table->non_lazy_plt; } } else { - htab->lazy_plt = plt_layout->lazy_plt; + htab->lazy_plt = init_table->lazy_plt; htab->non_lazy_plt = NULL; } diff --git a/bfd/elfxx-x86.h b/bfd/elfxx-x86.h index 6e77356..8f0cad0 100644 --- a/bfd/elfxx-x86.h +++ b/bfd/elfxx-x86.h @@ -343,7 +343,7 @@ struct elf_x86_link_hash_table const char *tls_get_addr; }; -struct elf_x86_plt_layout_table +struct elf_x86_init_table { /* The lazy PLT layout. */ const struct elf_x86_lazy_plt_layout *lazy_plt; @@ -491,7 +491,7 @@ extern bfd_boolean _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *, bfd *, elf_property *, elf_property *); extern bfd * _bfd_x86_elf_link_setup_gnu_properties - (struct bfd_link_info *, struct elf_x86_plt_layout_table *); + (struct bfd_link_info *, struct elf_x86_init_table *); #define bfd_elf64_mkobject \ _bfd_x86_elf_mkobject -- 2.7.4