@@ -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; \
} \
@@ -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 \
@@ -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;
@@ -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];
}
@@ -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;
@@ -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);
}
@@ -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);
}
@@ -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;
@@ -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;
@@ -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;
}
@@ -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
@@ -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;
@@ -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;
@@ -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);
}
@@ -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
{
@@ -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;
@@ -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; \
} \
@@ -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;
@@ -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;
@@ -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;
}
@@ -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; \
} \
@@ -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);
}
@@ -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;
@@ -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
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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]);
@@ -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;
@@ -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;
}
@@ -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;
}
@@ -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;