diff options
author | Alan Modra <amodra@gmail.com> | 2024-12-14 11:26:45 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2024-12-14 19:19:32 +1030 |
commit | 5ba2d7a0a3340f1dd3372df9fa9c6ce739021a96 (patch) | |
tree | f5352cd00bff98185e63435508db430a0f039e60 | |
parent | fff601fb3041a566d492d2704b3fcba92a1b026a (diff) | |
download | gdb-5ba2d7a0a3340f1dd3372df9fa9c6ce739021a96.zip gdb-5ba2d7a0a3340f1dd3372df9fa9c6ce739021a96.tar.gz gdb-5ba2d7a0a3340f1dd3372df9fa9c6ce739021a96.tar.bz2 |
Delete asection.symbol_ptr_ptr
This field is always set to point to asection.symbol, and no code ever
changes it from its initial value. With one exception. elfxx-mips.c
creates two sections with separate pointers to their symbols, and uses
those as asection.symbol_ptr_ptr. Those pointers aren't modified,
so they disappear in this patch too.
-rw-r--r-- | bfd/aoutx.h | 10 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 5 | ||||
-rw-r--r-- | bfd/coff-alpha.c | 2 | ||||
-rw-r--r-- | bfd/coff-mips.c | 2 | ||||
-rw-r--r-- | bfd/coff-tic30.c | 4 | ||||
-rw-r--r-- | bfd/coff-tic4x.c | 4 | ||||
-rw-r--r-- | bfd/coff-tic54x.c | 4 | ||||
-rw-r--r-- | bfd/coff-z80.c | 4 | ||||
-rw-r--r-- | bfd/coff-z8k.c | 4 | ||||
-rw-r--r-- | bfd/coffcode.h | 4 | ||||
-rw-r--r-- | bfd/ecoff.c | 6 | ||||
-rw-r--r-- | bfd/elf.c | 6 | ||||
-rw-r--r-- | bfd/elf32-nds32.c | 2 | ||||
-rw-r--r-- | bfd/elf64-mips.c | 4 | ||||
-rw-r--r-- | bfd/elf64-sparc.c | 8 | ||||
-rw-r--r-- | bfd/elfcode.h | 4 | ||||
-rw-r--r-- | bfd/elfxx-mips.c | 10 | ||||
-rw-r--r-- | bfd/i386lynx.c | 10 | ||||
-rw-r--r-- | bfd/linker.c | 2 | ||||
-rw-r--r-- | bfd/mach-o-aarch64.c | 2 | ||||
-rw-r--r-- | bfd/mach-o.c | 12 | ||||
-rw-r--r-- | bfd/pdp11.c | 10 | ||||
-rw-r--r-- | bfd/peicode.h | 2 | ||||
-rw-r--r-- | bfd/reloc.c | 2 | ||||
-rw-r--r-- | bfd/section.c | 6 | ||||
-rw-r--r-- | bfd/som.c | 2 | ||||
-rw-r--r-- | bfd/vms-alpha.c | 3 | ||||
-rw-r--r-- | bfd/xcofflink.c | 4 | ||||
-rw-r--r-- | binutils/objcopy.c | 2 | ||||
-rw-r--r-- | binutils/rescoff.c | 4 | ||||
-rw-r--r-- | gas/config/tc-hppa.c | 9 | ||||
-rw-r--r-- | gas/config/tc-m32r.c | 1 | ||||
-rw-r--r-- | gas/config/tc-mn10300.c | 5 | ||||
-rw-r--r-- | gas/config/tc-msp430.c | 7 | ||||
-rw-r--r-- | gas/config/tc-tic6x.c | 1 |
35 files changed, 73 insertions, 94 deletions
diff --git a/bfd/aoutx.h b/bfd/aoutx.h index 13a5d82..5f62ac6 100644 --- a/bfd/aoutx.h +++ b/bfd/aoutx.h @@ -2107,7 +2107,7 @@ NAME (aout, swap_ext_reloc_out) (bfd *abfd, if (symbols != NULL && r_index < bfd_get_symcount (abfd)) \ cache_ptr->sym_ptr_ptr = symbols + r_index; \ else \ - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; \ cache_ptr->addend = ad; \ } \ else \ @@ -2118,23 +2118,23 @@ NAME (aout, swap_ext_reloc_out) (bfd *abfd, { \ case N_TEXT: \ case N_TEXT | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_textsec (abfd)->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &obj_textsec (abfd)->symbol; \ cache_ptr->addend = ad - su->textsec->vma; \ break; \ case N_DATA: \ case N_DATA | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_datasec (abfd)->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &obj_datasec (abfd)->symbol; \ cache_ptr->addend = ad - su->datasec->vma; \ break; \ case N_BSS: \ case N_BSS | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_bsssec (abfd)->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &obj_bsssec (abfd)->symbol; \ cache_ptr->addend = ad - su->bsssec->vma; \ break; \ default: \ case N_ABS: \ case N_ABS | N_EXT: \ - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; \ cache_ptr->addend = ad; \ break; \ } \ diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 8cc255b..a2f75b2 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -811,7 +811,6 @@ typedef struct bfd_section /* A symbol which points at this section only. */ struct bfd_symbol *symbol; - struct bfd_symbol **symbol_ptr_ptr; /* Early in the link process, map_head and map_tail are used to build a list of input sections attached to an output section. Later, @@ -1002,8 +1001,8 @@ discarded_section (const asection *sec) /* target_index, used_by_bfd, constructor_chain, owner, */ \ 0, NULL, NULL, NULL, \ \ - /* symbol, symbol_ptr_ptr, */ \ - (struct bfd_symbol *) SYM, &SEC.symbol, \ + /* symbol, */ \ + (struct bfd_symbol *) SYM, \ \ /* map_head, map_tail, already_assigned, type */ \ { NULL }, { NULL }, NULL, 0 \ diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c index 38d2c10..0329be6 100644 --- a/bfd/coff-alpha.c +++ b/bfd/coff-alpha.c @@ -664,7 +664,7 @@ alpha_adjust_reloc_in (bfd *abfd, some reason the address of this reloc type is not adjusted by the section vma. We record the gp value for this object file here, for convenience when doing the GPDISP relocation. */ - rptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + rptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; rptr->address = intern->r_vaddr; rptr->addend = ecoff_data (abfd)->gp; break; diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c index ae7b6e0..145fb65 100644 --- a/bfd/coff-mips.c +++ b/bfd/coff-mips.c @@ -368,7 +368,7 @@ mips_adjust_reloc_in (bfd *abfd, /* If the type is MIPS_R_IGNORE, make sure this is a reference to the absolute section so that the reloc is ignored. */ if (intern->r_type == MIPS_R_IGNORE) - rptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + rptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; rptr->howto = &mips_howto_table[intern->r_type]; } diff --git a/bfd/coff-tic30.c b/bfd/coff-tic30.c index deca0a4..7590a34 100644 --- a/bfd/coff-tic30.c +++ b/bfd/coff-tic30.c @@ -162,7 +162,7 @@ reloc_processing (arelent *relent, rtype2howto (relent, reloc); if (reloc->r_symndx == -1 || symbols == NULL) - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; else if (reloc->r_symndx >= 0 && reloc->r_symndx < obj_conv_table_size (abfd)) relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx]; else @@ -171,7 +171,7 @@ reloc_processing (arelent *relent, /* xgettext:c-format */ (_("%pB: warning: illegal symbol index %ld in relocs"), abfd, reloc->r_symndx); - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; } relent->addend = reloc->r_offset; relent->address -= section->vma; diff --git a/bfd/coff-tic4x.c b/bfd/coff-tic4x.c index 8d70b46..323d586 100644 --- a/bfd/coff-tic4x.c +++ b/bfd/coff-tic4x.c @@ -227,7 +227,7 @@ tic4x_reloc_processing (arelent *relent, /* xgettext: c-format */ (_("%pB: warning: illegal symbol index %ld in relocs"), abfd, reloc->r_symndx); - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; ptr = NULL; } else @@ -239,7 +239,7 @@ tic4x_reloc_processing (arelent *relent, } else { - relent->sym_ptr_ptr = section->symbol_ptr_ptr; + relent->sym_ptr_ptr = §ion->symbol; ptr = *(relent->sym_ptr_ptr); } diff --git a/bfd/coff-tic54x.c b/bfd/coff-tic54x.c index 424a3b1..37124c2 100644 --- a/bfd/coff-tic54x.c +++ b/bfd/coff-tic54x.c @@ -337,7 +337,7 @@ tic54x_reloc_processing (arelent *relent, /* xgettext: c-format */ (_("%pB: warning: illegal symbol index %ld in relocs"), abfd, reloc->r_symndx); - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; ptr = NULL; } else @@ -349,7 +349,7 @@ tic54x_reloc_processing (arelent *relent, } else { - relent->sym_ptr_ptr = section->symbol_ptr_ptr; + relent->sym_ptr_ptr = §ion->symbol; ptr = *(relent->sym_ptr_ptr); } diff --git a/bfd/coff-z80.c b/bfd/coff-z80.c index fd33b5a..cc6e995 100644 --- a/bfd/coff-z80.c +++ b/bfd/coff-z80.c @@ -315,7 +315,7 @@ reloc_processing (arelent *relent, rtype2howto (relent, reloc); if (reloc->r_symndx == -1 || symbols == NULL) - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; else if (reloc->r_symndx >= 0 && reloc->r_symndx < obj_conv_table_size (abfd)) relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx]; else @@ -324,7 +324,7 @@ reloc_processing (arelent *relent, /* xgettext:c-format */ (_("%pB: warning: illegal symbol index %ld in relocs"), abfd, reloc->r_symndx); - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; } relent->addend = reloc->r_offset; relent->address -= section->vma; diff --git a/bfd/coff-z8k.c b/bfd/coff-z8k.c index 0b4e3b6..2a768f2 100644 --- a/bfd/coff-z8k.c +++ b/bfd/coff-z8k.c @@ -178,7 +178,7 @@ reloc_processing (arelent *relent, rtype2howto (relent, reloc); if (reloc->r_symndx == -1 || symbols == NULL) - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; else if (reloc->r_symndx >= 0 && reloc->r_symndx < obj_conv_table_size (abfd)) relent->sym_ptr_ptr = symbols + obj_convert (abfd)[reloc->r_symndx]; else @@ -187,7 +187,7 @@ reloc_processing (arelent *relent, /* xgettext:c-format */ (_("%pB: warning: illegal symbol index %ld in relocs"), abfd, reloc->r_symndx); - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; } relent->addend = reloc->r_offset; relent->address -= section->vma; diff --git a/bfd/coffcode.h b/bfd/coffcode.h index ebf4f51..929470a 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -5313,7 +5313,7 @@ coff_slurp_reloc_table (bfd * abfd, sec_ptr asect, asymbol ** symbols) /* xgettext:c-format */ (_("%pB: warning: illegal symbol index %ld in relocs"), abfd, dst.r_symndx); - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + cache_ptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; ptr = NULL; } else @@ -5325,7 +5325,7 @@ coff_slurp_reloc_table (bfd * abfd, sec_ptr asect, asymbol ** symbols) } else { - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + cache_ptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; ptr = NULL; } diff --git a/bfd/ecoff.c b/bfd/ecoff.c index d0cb9e1..e8804bf 100644 --- a/bfd/ecoff.c +++ b/bfd/ecoff.c @@ -1685,7 +1685,7 @@ ecoff_slurp_reloc_table (bfd *abfd, (*backend->swap_reloc_in) (abfd, external_relocs + i * external_reloc_size, &intern); - rptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + rptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; rptr->addend = 0; if (intern.r_extern) @@ -1729,7 +1729,7 @@ ecoff_slurp_reloc_table (bfd *abfd, sec = bfd_get_section_by_name (abfd, sec_name); if (sec != NULL) { - rptr->sym_ptr_ptr = sec->symbol_ptr_ptr; + rptr->sym_ptr_ptr = &sec->symbol; rptr->addend = - bfd_section_vma (sec); } } @@ -3963,7 +3963,7 @@ ecoff_reloc_link_order (bfd *output_bfd, if (type == bfd_section_reloc_link_order) { section = link_order->u.reloc.p->u.section; - rel.sym_ptr_ptr = section->symbol_ptr_ptr; + rel.sym_ptr_ptr = §ion->symbol; } else { @@ -13853,8 +13853,7 @@ _bfd_elf_slurp_secondary_reloc_section (bfd * abfd, { /* FIXME: This and the error case below mean that we have a symbol on relocs that is not elf_symbol_type. */ - internal_reloc->sym_ptr_ptr = - bfd_abs_section_ptr->symbol_ptr_ptr; + internal_reloc->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; } else if (r_sym (rela.r_info) > symcount) { @@ -13863,8 +13862,7 @@ _bfd_elf_slurp_secondary_reloc_section (bfd * abfd, (_("%pB(%pA): relocation %zu has invalid symbol index %lu"), abfd, sec, i, (long) r_sym (rela.r_info)); bfd_set_error (bfd_error_bad_value); - internal_reloc->sym_ptr_ptr = - bfd_abs_section_ptr->symbol_ptr_ptr; + internal_reloc->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; result = false; } else diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c index b0b9b9b..eb3e241 100644 --- a/bfd/elf32-nds32.c +++ b/bfd/elf32-nds32.c @@ -13138,7 +13138,7 @@ nds32_elf_get_relocated_section_contents (bfd *abfd, input_section); _bfd_clear_contents ((*parent)->howto, input_bfd, input_section, data, off); - (*parent)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + (*parent)->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; (*parent)->addend = 0; (*parent)->howto = &none_howto; r = bfd_reloc_ok; diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c index afd7b30..a96e43b 100644 --- a/bfd/elf64-mips.c +++ b/bfd/elf64-mips.c @@ -4080,7 +4080,7 @@ mips_elf64_slurp_one_reloc_table (bfd *abfd, asection *asect, } /* Some types require symbols, whereas some do not. */ - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; switch (type) { case R_MIPS_NONE: @@ -4113,7 +4113,7 @@ mips_elf64_slurp_one_reloc_table (bfd *abfd, asection *asect, if ((s->flags & BSF_SECTION_SYM) == 0) relent->sym_ptr_ptr = ps; else - relent->sym_ptr_ptr = s->section->symbol_ptr_ptr; + relent->sym_ptr_ptr = &s->section->symbol; } used_sym = true; diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c index 300e7fd..6f6d687 100644 --- a/bfd/elf64-sparc.c +++ b/bfd/elf64-sparc.c @@ -123,7 +123,7 @@ elf64_sparc_slurp_one_reloc_table (bfd *abfd, asection *asect, relent->address = rela.r_offset - asect->vma; if (ELF64_R_SYM (rela.r_info) == STN_UNDEF) - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; else if (/* PR 17512: file: 996185f8. */ ELF64_R_SYM (rela.r_info) > (dynamic ? bfd_get_dynamic_symcount (abfd) @@ -134,7 +134,7 @@ elf64_sparc_slurp_one_reloc_table (bfd *abfd, asection *asect, (_("%pB(%pA): relocation %d has invalid symbol index %ld"), abfd, asect, i, (long) ELF64_R_SYM (rela.r_info)); bfd_set_error (bfd_error_bad_value); - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; } else { @@ -147,7 +147,7 @@ elf64_sparc_slurp_one_reloc_table (bfd *abfd, asection *asect, if ((s->flags & BSF_SECTION_SYM) == 0) relent->sym_ptr_ptr = ps; else - relent->sym_ptr_ptr = s->section->symbol_ptr_ptr; + relent->sym_ptr_ptr = &s->section->symbol; } relent->addend = rela.r_addend; @@ -158,7 +158,7 @@ elf64_sparc_slurp_one_reloc_table (bfd *abfd, asection *asect, relent->howto = _bfd_sparc_elf_info_to_howto_ptr (abfd, R_SPARC_LO10); relent[1].address = relent->address; relent++; - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; relent->addend = ELF64_R_TYPE_DATA (rela.r_info); relent->howto = _bfd_sparc_elf_info_to_howto_ptr (abfd, R_SPARC_13); } diff --git a/bfd/elfcode.h b/bfd/elfcode.h index 3dcba4c..baf38fe 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -1593,7 +1593,7 @@ elf_slurp_reloc_table_from_section (bfd *abfd, if (ELF_R_SYM (rela.r_info) == STN_UNDEF) /* FIXME: This and the error case below mean that we have a symbol on relocs that is not elf_symbol_type. */ - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; else if (ELF_R_SYM (rela.r_info) > symcount) { _bfd_error_handler @@ -1601,7 +1601,7 @@ elf_slurp_reloc_table_from_section (bfd *abfd, (_("%pB(%pA): relocation %d has invalid symbol index %ld"), abfd, asect, i, (long) ELF_R_SYM (rela.r_info)); bfd_set_error (bfd_error_bad_value); - relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relent->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; } else { diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 59444b0..c9895aa 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -593,8 +593,6 @@ struct mips_elf_obj_tdata /* The Irix 5 support uses two virtual sections, which represent text/data symbols defined in dynamic objects. */ - asymbol *elf_data_symbol; - asymbol *elf_text_symbol; asection *elf_data_section; asection *elf_text_section; @@ -7913,11 +7911,8 @@ _bfd_mips_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, /* Initialize the section. */ mips_elf_tdata (abfd)->elf_text_section = elf_text_section; - mips_elf_tdata (abfd)->elf_text_symbol = elf_text_symbol; elf_text_section->symbol = elf_text_symbol; - elf_text_section->symbol_ptr_ptr = &mips_elf_tdata (abfd)->elf_text_symbol; - elf_text_section->name = ".text"; elf_text_section->flags = SEC_NO_FLAGS; elf_text_section->output_section = NULL; @@ -7954,11 +7949,8 @@ _bfd_mips_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, /* Initialize the section. */ mips_elf_tdata (abfd)->elf_data_section = elf_data_section; - mips_elf_tdata (abfd)->elf_data_symbol = elf_data_symbol; elf_data_section->symbol = elf_data_symbol; - elf_data_section->symbol_ptr_ptr = &mips_elf_tdata (abfd)->elf_data_symbol; - elf_data_section->name = ".data"; elf_data_section->flags = SEC_NO_FLAGS; elf_data_section->output_section = NULL; @@ -13455,7 +13447,7 @@ _bfd_elf_mips_get_relocated_section_contents * bfd_octets_per_byte (input_bfd, input_section)); _bfd_clear_contents ((*parent)->howto, input_bfd, input_section, data, off); - (*parent)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + (*parent)->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; (*parent)->addend = 0; (*parent)->howto = &none_howto; r = bfd_reloc_ok; diff --git a/bfd/i386lynx.c b/bfd/i386lynx.c index 1d4c411..f6695f9 100644 --- a/bfd/i386lynx.c +++ b/bfd/i386lynx.c @@ -285,7 +285,7 @@ NAME(lynx,swap_ext_reloc_out) (bfd *abfd, if (symbols != NULL && r_index < bfd_get_symcount (abfd)) \ cache_ptr->sym_ptr_ptr = symbols + r_index; \ else \ - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; \ cache_ptr->addend = ad; \ } \ else \ @@ -296,23 +296,23 @@ NAME(lynx,swap_ext_reloc_out) (bfd *abfd, { \ case N_TEXT: \ case N_TEXT | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_textsec(abfd)->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &obj_textsec(abfd)->symbol; \ cache_ptr->addend = ad - su->textsec->vma; \ break; \ case N_DATA: \ case N_DATA | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_datasec(abfd)->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &obj_datasec(abfd)->symbol; \ cache_ptr->addend = ad - su->datasec->vma; \ break; \ case N_BSS: \ case N_BSS | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_bsssec(abfd)->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &obj_bsssec(abfd)->symbol; \ cache_ptr->addend = ad - su->bsssec->vma; \ break; \ default: \ case N_ABS: \ case N_ABS | N_EXT: \ - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; \ cache_ptr->addend = ad; \ break; \ } \ diff --git a/bfd/linker.c b/bfd/linker.c index 21009a8..c37dc57 100644 --- a/bfd/linker.c +++ b/bfd/linker.c @@ -2373,7 +2373,7 @@ _bfd_generic_reloc_link_order (bfd *abfd, /* Get the symbol to use for the relocation. */ if (link_order->type == bfd_section_reloc_link_order) - r->sym_ptr_ptr = link_order->u.reloc.p->u.section->symbol_ptr_ptr; + r->sym_ptr_ptr = &link_order->u.reloc.p->u.section->symbol; else { struct generic_link_hash_entry *h; diff --git a/bfd/mach-o-aarch64.c b/bfd/mach-o-aarch64.c index c62aac6..81d4b95 100644 --- a/bfd/mach-o-aarch64.c +++ b/bfd/mach-o-aarch64.c @@ -170,7 +170,7 @@ bfd_mach_o_arm64_canonicalize_one_reloc (bfd * abfd, { if (reloc.r_length == 2 && reloc.r_pcrel == 0) { - res->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + res->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; res->addend = reloc.r_value; res->howto = &arm64_howto_table[10]; return true; diff --git a/bfd/mach-o.c b/bfd/mach-o.c index 49ecd13..95bb481 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -1489,9 +1489,9 @@ bfd_mach_o_canonicalize_non_scattered_reloc (bfd *abfd, { /* PR 17512: file: 8396-1185-0.004. */ if (num >= (unsigned) bfd_mach_o_count_symbols (abfd)) - sym = bfd_und_section_ptr->symbol_ptr_ptr; + sym = &bfd_und_section_ptr->symbol; else if (syms == NULL) - sym = bfd_und_section_ptr->symbol_ptr_ptr; + sym = &bfd_und_section_ptr->symbol; else /* An external symbol number. */ sym = syms + num; @@ -1503,7 +1503,7 @@ bfd_mach_o_canonicalize_non_scattered_reloc (bfd *abfd, This value is almost certainly not a valid section number, hence this specific case to avoid an assertion failure. Target specific swap_reloc_in routine should adjust that. */ - sym = bfd_abs_section_ptr->symbol_ptr_ptr; + sym = &bfd_abs_section_ptr->symbol; } else { @@ -1516,7 +1516,7 @@ malformed mach-o reloc: section index is greater than the number of sections")); } /* A section number. */ - sym = mdata->sections[num - 1]->bfdsection->symbol_ptr_ptr; + sym = &mdata->sections[num - 1]->bfdsection->symbol; /* For a symbol defined in section S, the addend (stored in the binary) contains the address of the section. To comply with bfd convention, subtract the section address. @@ -1554,7 +1554,7 @@ bfd_mach_o_pre_canonicalize_one_reloc (bfd *abfd, bfd_vma addr; addr = bfd_get_32 (abfd, raw->r_address); - res->sym_ptr_ptr = bfd_und_section_ptr->symbol_ptr_ptr; + res->sym_ptr_ptr = &bfd_und_section_ptr->symbol; res->addend = 0; if (addr & BFD_MACH_O_SR_SCATTERED) @@ -1578,7 +1578,7 @@ bfd_mach_o_pre_canonicalize_one_reloc (bfd *abfd, bfd_mach_o_section *sect = mdata->sections[j]; if (symnum >= sect->addr && symnum < sect->addr + sect->size) { - res->sym_ptr_ptr = sect->bfdsection->symbol_ptr_ptr; + res->sym_ptr_ptr = §->bfdsection->symbol; res->addend = symnum - sect->addr; break; } diff --git a/bfd/pdp11.c b/bfd/pdp11.c index 7099c0b..f65760f 100644 --- a/bfd/pdp11.c +++ b/bfd/pdp11.c @@ -1842,7 +1842,7 @@ pdp11_aout_swap_reloc_out (bfd *abfd, arelent *g, bfd_byte *natptr) if (symbols != NULL && r_index < bfd_get_symcount (abfd)) \ cache_ptr->sym_ptr_ptr = symbols + r_index; \ else \ - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; \ cache_ptr->addend = ad; \ } \ else \ @@ -1853,23 +1853,23 @@ pdp11_aout_swap_reloc_out (bfd *abfd, arelent *g, bfd_byte *natptr) { \ case N_TEXT: \ case N_TEXT | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_textsec (abfd)->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &obj_textsec (abfd)->symbol; \ cache_ptr->addend = ad - su->textsec->vma; \ break; \ case N_DATA: \ case N_DATA | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_datasec (abfd)->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &obj_datasec (abfd)->symbol; \ cache_ptr->addend = ad - su->datasec->vma; \ break; \ case N_BSS: \ case N_BSS | N_EXT: \ - cache_ptr->sym_ptr_ptr = obj_bsssec (abfd)->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &obj_bsssec (abfd)->symbol; \ cache_ptr->addend = ad - su->bsssec->vma; \ break; \ default: \ case N_ABS: \ case N_ABS | N_EXT: \ - cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; \ + cache_ptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; \ cache_ptr->addend = ad; \ break; \ } \ diff --git a/bfd/peicode.h b/bfd/peicode.h index 1a084fd..b642bd7 100644 --- a/bfd/peicode.h +++ b/bfd/peicode.h @@ -500,7 +500,7 @@ pe_ILF_make_a_reloc (pe_ILF_vars * vars, bfd_reloc_code_real_type reloc, asection_ptr sec) { - pe_ILF_make_a_symbol_reloc (vars, address, reloc, sec->symbol_ptr_ptr, + pe_ILF_make_a_symbol_reloc (vars, address, reloc, &sec->symbol, coff_section_data (vars->abfd, sec)->i); } diff --git a/bfd/reloc.c b/bfd/reloc.c index f607762..f8eb334 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -8542,7 +8542,7 @@ bfd_generic_get_relocated_section_contents (bfd *abfd, * bfd_octets_per_byte (input_bfd, input_section)); _bfd_clear_contents ((*parent)->howto, input_bfd, input_section, data, off); - (*parent)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + (*parent)->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; (*parent)->addend = 0; (*parent)->howto = &none_howto; r = bfd_reloc_ok; diff --git a/bfd/section.c b/bfd/section.c index 35e4489..07546a2 100644 --- a/bfd/section.c +++ b/bfd/section.c @@ -545,7 +545,6 @@ CODE_FRAGMENT . . {* A symbol which points at this section only. *} . struct bfd_symbol *symbol; -. struct bfd_symbol **symbol_ptr_ptr; . . {* Early in the link process, map_head and map_tail are used to build . a list of input sections attached to an output section. Later, @@ -738,8 +737,8 @@ EXTERNAL . {* target_index, used_by_bfd, constructor_chain, owner, *} \ . 0, NULL, NULL, NULL, \ . \ -. {* symbol, symbol_ptr_ptr, *} \ -. (struct bfd_symbol *) SYM, &SEC.symbol, \ +. {* symbol, *} \ +. (struct bfd_symbol *) SYM, \ . \ . {* map_head, map_tail, already_assigned, type *} \ . { NULL }, { NULL }, NULL, 0 \ @@ -828,7 +827,6 @@ _bfd_generic_new_section_hook (bfd *abfd, asection *newsect) newsect->symbol->section = newsect; newsect->symbol->flags = BSF_SECTION_SYM; - newsect->symbol_ptr_ptr = &newsect->symbol; return true; } @@ -4914,7 +4914,7 @@ som_set_reloc_info (unsigned char *fixup, rptr->address = offset; rptr->howto = &som_hppa_howto_table[op]; rptr->addend = 0; - rptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + rptr->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; } /* Set default input length to 0. Get the opcode class index diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c index 092798a..a536fc6 100644 --- a/bfd/vms-alpha.c +++ b/bfd/vms-alpha.c @@ -5586,8 +5586,7 @@ alpha_vms_slurp_relocs (bfd *abfd) { if (PRIV (sections) == NULL || cur_psidx >= (int) PRIV (section_count)) goto fail; - reloc->sym_ptr_ptr = - PRIV (sections)[cur_psidx]->symbol_ptr_ptr; + reloc->sym_ptr_ptr = &PRIV (sections)[cur_psidx]->symbol; } else reloc->sym_ptr_ptr = NULL; diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c index 6eb4529..9fb98fd 100644 --- a/bfd/xcofflink.c +++ b/bfd/xcofflink.c @@ -451,7 +451,7 @@ _bfd_xcoff_canonicalize_dynamic_reloc (bfd *abfd, return -1; } - relbuf->sym_ptr_ptr = sec->symbol_ptr_ptr; + relbuf->sym_ptr_ptr = &sec->symbol; } else if (ldrel.l_symndx - 3 < ldhdr.l_nsyms) relbuf->sym_ptr_ptr = syms + (ldrel.l_symndx - 3); @@ -461,7 +461,7 @@ _bfd_xcoff_canonicalize_dynamic_reloc (bfd *abfd, /* xgettext:c-format */ (_("%pB: warning: illegal symbol index %lu in relocs"), abfd, (unsigned long) ldrel.l_symndx); - relbuf->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + relbuf->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; } relbuf->address = ldrel.l_vaddr; diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 3782850..8e04b2c 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -1666,7 +1666,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms, keep = false; else if ((flags & BSF_KEEP) != 0 /* Used in relocation. */ || ((flags & BSF_SECTION_SYM) != 0 - && ((*bfd_asymbol_section (sym)->symbol_ptr_ptr)->flags + && (bfd_asymbol_section (sym)->symbol->flags & BSF_KEEP) != 0)) { keep = true; diff --git a/binutils/rescoff.c b/binutils/rescoff.c index ec4e2c2..d999825 100644 --- a/binutils/rescoff.c +++ b/binutils/rescoff.c @@ -481,7 +481,7 @@ write_coff_file (const char *filename, const char *target, if (sec == NULL) bfd_fatal ("bfd_make_section"); - if (! bfd_set_symtab (abfd, sec->symbol_ptr_ptr, 1)) + if (! bfd_set_symtab (abfd, &sec->symbol, 1)) bfd_fatal ("bfd_set_symtab"); /* Requiring this is probably a bug in BFD. */ @@ -498,7 +498,7 @@ write_coff_file (const char *filename, const char *target, set_windres_bfd (&wrbfd, abfd, sec, WR_KIND_BFD); cwi.wrbfd = &wrbfd; - cwi.sympp = sec->symbol_ptr_ptr; + cwi.sympp = &sec->symbol; cwi.dirsize = 0; cwi.dirstrsize = 0; cwi.dataentsize = 0; diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index bf8a247..54cc40a 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -1477,8 +1477,7 @@ tc_gen_reloc (asection *section, fixS *fixp) of two symbols. With that in mind we fill in all four relocs now and break out of the loop. */ gas_assert (i == 1); - relocs[0]->sym_ptr_ptr - = (asymbol **) bfd_abs_section_ptr->symbol_ptr_ptr; + relocs[0]->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; relocs[0]->howto = bfd_reloc_type_lookup (stdoutput, (bfd_reloc_code_real_type) *codes[0]); @@ -1498,15 +1497,13 @@ tc_gen_reloc (asection *section, fixS *fixp) (bfd_reloc_code_real_type) *codes[2]); relocs[2]->address = fixp->fx_frag->fr_address + fixp->fx_where; relocs[2]->addend = 0; - relocs[3]->sym_ptr_ptr - = (asymbol **) bfd_abs_section_ptr->symbol_ptr_ptr; + relocs[3]->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; relocs[3]->howto = bfd_reloc_type_lookup (stdoutput, (bfd_reloc_code_real_type) *codes[3]); relocs[3]->address = fixp->fx_frag->fr_address + fixp->fx_where; relocs[3]->addend = 0; - relocs[4]->sym_ptr_ptr - = (asymbol **) bfd_abs_section_ptr->symbol_ptr_ptr; + relocs[4]->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; relocs[4]->howto = bfd_reloc_type_lookup (stdoutput, (bfd_reloc_code_real_type) *codes[4]); diff --git a/gas/config/tc-m32r.c b/gas/config/tc-m32r.c index 3b0c50b..d698255 100644 --- a/gas/config/tc-m32r.c +++ b/gas/config/tc-m32r.c @@ -725,7 +725,6 @@ md_begin (void) scom_section.flags = SEC_IS_COMMON | SEC_SMALL_DATA; scom_section.output_section = & scom_section; scom_section.symbol = & scom_symbol; - scom_section.symbol_ptr_ptr = & scom_section.symbol; scom_symbol = * bfd_com_section_ptr->symbol; scom_symbol.name = ".scommon"; scom_symbol.section = & scom_section; diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c index 099d205..dffadb2 100644 --- a/gas/config/tc-mn10300.c +++ b/gas/config/tc-mn10300.c @@ -2220,7 +2220,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) if (asec == absolute_section) { reloc->addend += S_GET_VALUE (fixp->fx_addsy); - reloc->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + reloc->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; } else { @@ -2258,8 +2258,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) break; default: - reloc->sym_ptr_ptr - = (asymbol **) bfd_abs_section_ptr->symbol_ptr_ptr; + reloc->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; return relocs; } diff --git a/gas/config/tc-msp430.c b/gas/config/tc-msp430.c index 71500fb..e1d0782 100644 --- a/gas/config/tc-msp430.c +++ b/gas/config/tc-msp430.c @@ -4697,7 +4697,7 @@ tc_gen_reloc (asection * seg ATTRIBUTE_UNUSED, fixS * fixp) reloc2->addend = - S_GET_VALUE (fixp->fx_subsy); if (ssec == absolute_section) - reloc2->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + reloc2->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; else { reloc2->sym_ptr_ptr = XNEW (asymbol *); @@ -4708,7 +4708,7 @@ tc_gen_reloc (asection * seg ATTRIBUTE_UNUSED, fixS * fixp) if (asec == absolute_section) { reloc->addend += S_GET_VALUE (fixp->fx_addsy); - reloc->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + reloc->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; } else { @@ -4746,8 +4746,7 @@ tc_gen_reloc (asection * seg ATTRIBUTE_UNUSED, fixS * fixp) break; default: - reloc->sym_ptr_ptr - = (asymbol **) bfd_abs_section_ptr->symbol_ptr_ptr; + reloc->sym_ptr_ptr = &bfd_abs_section_ptr->symbol; return relocs; } diff --git a/gas/config/tc-tic6x.c b/gas/config/tc-tic6x.c index 8a2d4e3..404cb14 100644 --- a/gas/config/tc-tic6x.c +++ b/gas/config/tc-tic6x.c @@ -786,7 +786,6 @@ md_begin (void) scom_section.name = ".scommon"; scom_section.output_section = & scom_section; scom_section.symbol = & scom_symbol; - scom_section.symbol_ptr_ptr = & scom_section.symbol; scom_symbol = * bfd_com_section_ptr->symbol; scom_symbol.name = ".scommon"; scom_symbol.section = & scom_section; |