]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Delete asection.symbol_ptr_ptr
authorAlan Modra <amodra@gmail.com>
Sat, 14 Dec 2024 00:56:45 +0000 (11:26 +1030)
committerAlan Modra <amodra@gmail.com>
Sat, 14 Dec 2024 08:49:32 +0000 (19:19 +1030)
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.

35 files changed:
bfd/aoutx.h
bfd/bfd-in2.h
bfd/coff-alpha.c
bfd/coff-mips.c
bfd/coff-tic30.c
bfd/coff-tic4x.c
bfd/coff-tic54x.c
bfd/coff-z80.c
bfd/coff-z8k.c
bfd/coffcode.h
bfd/ecoff.c
bfd/elf.c
bfd/elf32-nds32.c
bfd/elf64-mips.c
bfd/elf64-sparc.c
bfd/elfcode.h
bfd/elfxx-mips.c
bfd/i386lynx.c
bfd/linker.c
bfd/mach-o-aarch64.c
bfd/mach-o.c
bfd/pdp11.c
bfd/peicode.h
bfd/reloc.c
bfd/section.c
bfd/som.c
bfd/vms-alpha.c
bfd/xcofflink.c
binutils/objcopy.c
binutils/rescoff.c
gas/config/tc-hppa.c
gas/config/tc-m32r.c
gas/config/tc-mn10300.c
gas/config/tc-msp430.c
gas/config/tc-tic6x.c

index 13a5d82f8ebd85d88c5c7971cbb637926dd8a792..5f62ac67cfd0c2cd922e32c8777298b905caf8cc 100644 (file)
@@ -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;                                                        \
        }                                                               \
index 8cc255b83541b357e7556c8085cd226b0255de0a..a2f75b258c4cbdf9bc9c430917b9817afdc33dfb 100644 (file)
@@ -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                           \
index 38d2c10ade3951069206a32b778de6cfdb7adb74..0329be68b6976d95bd01e6aadf24f6f966d1cac2 100644 (file)
@@ -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;
index ae7b6e0024effca1191b206f7cf7b874faa2a485..145fb6583b244f791d343d7d2124c0db9d6802d8 100644 (file)
@@ -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];
 }
index deca0a48feb8da4eede99b4626df4295851464e5..7590a3402b9a49141a5fda473313cd2e99ea3c63 100644 (file)
@@ -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;
index 8d70b4657243fc959798132497b52f32849e4ffc..323d58604454cc2825e777258ad18162100634d5 100644 (file)
@@ -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 = &section->symbol;
       ptr = *(relent->sym_ptr_ptr);
     }
 
index 424a3b13654f2c6b131946578c33db7ef230ba1b..37124c26b6c8b7221daa924fa5b09cc1514be3e0 100644 (file)
@@ -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 = &section->symbol;
       ptr = *(relent->sym_ptr_ptr);
     }
 
index fd33b5a758fdb04b94d48f7b62097df15f5f55bc..cc6e9956a78045306ca969dad0c7ec5c3ebe29d4 100644 (file)
@@ -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;
index 0b4e3b63aaffb2b7a76fb2b03c7671a894ab7f39..2a768f2d88c9353224e9fc54903d0d9c7a219a0f 100644 (file)
@@ -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;
index ebf4f513fdea90bc776e2964c71acd2ba7f78eff..929470ab341ba0726870c3cdfc49389c3be6e69b 100644 (file)
@@ -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;
        }
 
index d0cb9e18aaa479f2e563bf3cff32f1a63fd81666..e8804bf2236fbd07c1cadc4dcafb72b327d0977e 100644 (file)
@@ -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 = &section->symbol;
     }
   else
     {
index bd9525959c1a514568ff3c72a8a6b055ae9ba7f1..318677df32aa67fc54008dc53a7e3140a7445b21 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -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
index b0b9b9bc9fd83c8fc32499477ada3a699c2b38a8..eb3e241acacfe7c067e2e7305f2f7dc9a80330de 100644 (file)
@@ -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;
index afd7b30f13452e3e59787ebda7dc545342017bc4..a96e43bd00de96cdc0a42ce9085fd31fce8804dc 100644 (file)
@@ -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;
index 300e7fdb72cd442cad5f4aeab12ccb6c5b80e9d8..6f6d6873db7146a7d9d8256862f8f9face226153 100644 (file)
@@ -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);
        }
index 3dcba4c4fd7728db09684f75a77804dc8ab507e4..baf38fef5a51250eb2ddded1c2036a6012a35014 100644 (file)
@@ -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
        {
index 59444b063a440b457e67e35d9640d830cc276f9d..c9895aa660f413cdd043c69d358fbf236a671d08 100644 (file)
@@ -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;
index 1d4c411a6ed410355736290acc900623d8d02758..f6695f91177cd93c17aacfe41ad0b43f6cd8ffe4 100644 (file)
@@ -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;                                                        \
        }                                                               \
index 21009a838bc9180120fdf7b1ed98f35680333632..c37dc5731382632c40d874509e69c06fde6df4b0 100644 (file)
@@ -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;
index c62aac62c20d1852ecf95409b587068bc38805d4..81d4b95f476b89f53431f213d371d3ea5697740b 100644 (file)
@@ -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;
index 49ecd13f736235b81d5810a502c584a5a94ec7fc..95bb48180436cea73ee70b4718d7358826a95c8c 100644 (file)
@@ -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 = &sect->bfdsection->symbol;
              res->addend = symnum - sect->addr;
              break;
            }
index 7099c0b15dda30f235f53ff051ec69b6042d3265..f65760f9ee69da4fd608f3f439c400076be2725a 100644 (file)
@@ -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;                                                        \
        }                                                               \
index 1a084fda05b73adc81859a40e3466109481e0421..b642bd7bfe6c7719b0478e4ec0db8a134a4c9d29 100644 (file)
@@ -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);
 }
 
index f60776299c863f2ed88a9262bf990aa979ee3cb5..f8eb3344b4267021552c8e8b008c400abc728de0 100644 (file)
@@ -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;
index 35e4489c47562bab76909d1aeda1c07f03a19c12..07546a23c9d2a68199d2eaf68521e22f80fb9bf4 100644 (file)
@@ -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;
 }
 
index 3a3cbd3dfd70aef6d01631bfb40241bbe4d55ce9..86f7f4121e4427d92e207f7e375dbaf2918ba794 100644 (file)
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -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
index 092798a51a26b751c2dec08071bef04a7bcafb60..a536fc606fc9edde9a2380144e0f4f92e0f8a443 100644 (file)
@@ -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;
index 6eb4529b85a1359ccc7f9fa92e048f5b9808c4a4..9fb98fd996f3f4e3229a567a6a5c1b5657c8a767 100644 (file)
@@ -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;
index 378285062b21e6d14b546cb615c8eb766f126a9d..8e04b2cbeeb34aae1c08d3b24087983c8f0ee5e5 100644 (file)
@@ -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;
index ec4e2c2c34cfec0b752019e61613d227d90bb07c..d999825444203c83acd89e884c6164bbca40756d 100644 (file)
@@ -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;
index bf8a247c7171aafbb39bddd968ff213ff34eeb1d..54cc40a78ca6c62d8c1c82df8581c82b34098505 100644 (file)
@@ -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]);
index 3b0c50b34dadb6007e2386bf1bc69b7699be819d..d698255d306979b2f2459514ad275d59aea6790e 100644 (file)
@@ -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;
index 099d20580268c80fc219d1ffe61fdef76e79ce2c..dffadb2c15e0b507769460b5c8a0bbae703f8641 100644 (file)
@@ -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;
            }
 
index 71500fb70038a68f9f6e1b94fd8d0bf8db0da9df..e1d0782d6e8f2df168770a184957966903c7dfc3 100644 (file)
@@ -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;
            }
 
index 8a2d4e3bb969302bcbe817df0e56266e61e0017c..404cb14bf595b0ab2d72ecb35ecac8f301c700e2 100644 (file)
@@ -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;