* coff-arm.c (coff_arm_link_hash_table_create): Use bfd_zmalloc.
authorAlan Modra <amodra@gmail.com>
Sun, 10 Feb 2013 04:36:33 +0000 (04:36 +0000)
committerAlan Modra <amodra@gmail.com>
Sun, 10 Feb 2013 04:36:33 +0000 (04:36 +0000)
* coff-h8300.c (h8300_coff_link_hash_table_create): Likewise.
* m68klinux.c (linux_link_hash_table_create): Likewise.
* sparclinux.c (linux_link_hash_table_create): Likewise.
* sunos.c (sunos_link_hash_table_create): Likewise.
* xcofflink.c (_bfd_xcoff_bfd_link_hash_table_create): Likewise.
* elf-m10300.c (elf32_mn10300_link_hash_table_create): Likewise.
* elf32-arm.c (elf32_arm_link_hash_table_create): Likewise.
* elf32-avr.c (elf32_avr_link_hash_table_create): Likewise.
* elf32-cr16.c (elf32_cr16_link_hash_table_create): Likewise.
* elf32-cris.c (elf_cris_link_hash_table_create): Likewise.
* elf32-hppa.c (elf32_hppa_link_hash_table_create): Likewise.
* elf32-i386.c (elf_i386_link_hash_table_create): Likewise.
* elf32-lm32.c (lm32_elf_link_hash_table_create): Likewise.
* elf32-m32r.c (m32r_elf_link_hash_table_create): Likewise.
* elf32-m68hc1x.c (m68hc11_elf_hash_table_create): Likewise.
* elf32-m68k.c (elf_m68k_link_hash_table_create): Likewise.
* elf32-metag.c (elf_metag_link_hash_table_create): Likewise.
* elf32-nios2.c (nios2_elf32_link_hash_table_create): Likewise.
* elf32-s390.c (elf_s390_link_hash_table_create): Likewise.
* elf32-score.c (elf32_score_link_hash_table_create): Likewise.
* elf32-spu.c (spu_elf_link_hash_table_create): Likewise.
* elf32-tic6x.c (elf32_tic6x_link_hash_table_create): Likewise.
* elf32-vax.c (elf_vax_link_hash_table_create): Likewise.
* elf32-xgate.c (xgate_elf_bfd_link_hash_table_create): Likewise.
* elf32-xtensa.c (elf_xtensa_link_hash_table_create): Likewise.
* elf64-aarch64.c (elf64_aarch64_link_hash_table_create): Likewise.
* elf64-s390.c (elf_s390_link_hash_table_create): Likewise.
* elf64-sh64.c (sh64_elf64_link_hash_table_create): Likewise.
* elf64-x86-64.c (elf_x86_64_link_hash_table_create): Likewise.
* elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise.
* elflink.c (_bfd_elf_link_hash_table_create): Likewise.
(_bfd_elf_link_hash_table_init): Assume zero fill table on entry.

33 files changed:
bfd/ChangeLog
bfd/coff-arm.c
bfd/coff-h8300.c
bfd/elf-m10300.c
bfd/elf32-arm.c
bfd/elf32-avr.c
bfd/elf32-cr16.c
bfd/elf32-cris.c
bfd/elf32-hppa.c
bfd/elf32-i386.c
bfd/elf32-lm32.c
bfd/elf32-m32r.c
bfd/elf32-m68hc1x.c
bfd/elf32-m68k.c
bfd/elf32-metag.c
bfd/elf32-nios2.c
bfd/elf32-s390.c
bfd/elf32-score.c
bfd/elf32-spu.c
bfd/elf32-tic6x.c
bfd/elf32-vax.c
bfd/elf32-xgate.c
bfd/elf32-xtensa.c
bfd/elf64-aarch64.c
bfd/elf64-s390.c
bfd/elf64-sh64.c
bfd/elf64-x86-64.c
bfd/elflink.c
bfd/elfxx-mips.c
bfd/m68klinux.c
bfd/sparclinux.c
bfd/sunos.c
bfd/xcofflink.c

index 4342fa4b541f0514e71989043c51d58788acd86a..44ff6512076c40bb815ca27dea8d7184d8c30dad 100644 (file)
@@ -1,3 +1,39 @@
+2013-02-10  Alan Modra  <amodra@gmail.com>
+
+       * coff-arm.c (coff_arm_link_hash_table_create): Use bfd_zmalloc.
+       * coff-h8300.c (h8300_coff_link_hash_table_create): Likewise.
+       * m68klinux.c (linux_link_hash_table_create): Likewise.
+       * sparclinux.c (linux_link_hash_table_create): Likewise.
+       * sunos.c (sunos_link_hash_table_create): Likewise.
+       * xcofflink.c (_bfd_xcoff_bfd_link_hash_table_create): Likewise.
+       * elf-m10300.c (elf32_mn10300_link_hash_table_create): Likewise.
+       * elf32-arm.c (elf32_arm_link_hash_table_create): Likewise.
+       * elf32-avr.c (elf32_avr_link_hash_table_create): Likewise.
+       * elf32-cr16.c (elf32_cr16_link_hash_table_create): Likewise.
+       * elf32-cris.c (elf_cris_link_hash_table_create): Likewise.
+       * elf32-hppa.c (elf32_hppa_link_hash_table_create): Likewise.
+       * elf32-i386.c (elf_i386_link_hash_table_create): Likewise.
+       * elf32-lm32.c (lm32_elf_link_hash_table_create): Likewise.
+       * elf32-m32r.c (m32r_elf_link_hash_table_create): Likewise.
+       * elf32-m68hc1x.c (m68hc11_elf_hash_table_create): Likewise.
+       * elf32-m68k.c (elf_m68k_link_hash_table_create): Likewise.
+       * elf32-metag.c (elf_metag_link_hash_table_create): Likewise.
+       * elf32-nios2.c (nios2_elf32_link_hash_table_create): Likewise.
+       * elf32-s390.c (elf_s390_link_hash_table_create): Likewise.
+       * elf32-score.c (elf32_score_link_hash_table_create): Likewise.
+       * elf32-spu.c (spu_elf_link_hash_table_create): Likewise.
+       * elf32-tic6x.c (elf32_tic6x_link_hash_table_create): Likewise.
+       * elf32-vax.c (elf_vax_link_hash_table_create): Likewise.
+       * elf32-xgate.c (xgate_elf_bfd_link_hash_table_create): Likewise.
+       * elf32-xtensa.c (elf_xtensa_link_hash_table_create): Likewise.
+       * elf64-aarch64.c (elf64_aarch64_link_hash_table_create): Likewise.
+       * elf64-s390.c (elf_s390_link_hash_table_create): Likewise.
+       * elf64-sh64.c (sh64_elf64_link_hash_table_create): Likewise.
+       * elf64-x86-64.c (elf_x86_64_link_hash_table_create): Likewise.
+       * elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise.
+       * elflink.c (_bfd_elf_link_hash_table_create): Likewise.
+       (_bfd_elf_link_hash_table_init): Assume zero fill table on entry.
+
 2013-02-10  Alan Modra  <amodra@gmail.com>
 
        * i386linux.c (linux_link_hash_table_create): Allocate table
index 4cdf1acc27c498dc101741a2e5f3ef5c318e8693..efcf522a34fd20eac83466a16793de614abee429 100644 (file)
@@ -918,7 +918,7 @@ coff_arm_link_hash_table_create (bfd * abfd)
   struct coff_arm_link_hash_table * ret;
   bfd_size_type amt = sizeof (struct coff_arm_link_hash_table);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -931,10 +931,6 @@ coff_arm_link_hash_table_create (bfd * abfd)
       return NULL;
     }
 
-  ret->thumb_glue_size   = 0;
-  ret->arm_glue_size     = 0;
-  ret->bfd_of_glue_owner = NULL;
-
   return & ret->root.root;
 }
 
index 0f1de573f1c5249277fedb1de745f11fe3c3364d..1e3427502ca1776382d44f5a09ccd2c7664b8601 100644 (file)
@@ -173,7 +173,7 @@ h8300_coff_link_hash_table_create (bfd *abfd)
   struct h8300_coff_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct h8300_coff_link_hash_table);
 
-  ret = (struct h8300_coff_link_hash_table *) bfd_malloc (amt);
+  ret = (struct h8300_coff_link_hash_table *) bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
   if (!_bfd_link_hash_table_init (&ret->root.root, abfd,
@@ -184,11 +184,6 @@ h8300_coff_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  /* Initialize our data.  */
-  ret->vectors_sec = NULL;
-  ret->funcvec_hash_table = NULL;
-
-  /* OK.  Everything's initialized, return the base pointer.  */
   return &ret->root.root;
 }
 
index 1dd502039b3d77f87acb90161ecdd1820336fa37..fb38f34315104ee884d1b387a29ad48789ff213d 100644 (file)
@@ -4603,7 +4603,7 @@ elf32_mn10300_link_hash_table_create (bfd *abfd)
   struct elf32_mn10300_link_hash_table *ret;
   bfd_size_type amt = sizeof (* ret);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -4616,14 +4616,10 @@ elf32_mn10300_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->flags = 0;
-  ret->tls_ldm_got.refcount = 0;
   ret->tls_ldm_got.offset = -1;
-  ret->tls_ldm_got.got_allocated = 0;
-  ret->tls_ldm_got.rel_emitted = 0;
 
   amt = sizeof (struct elf_link_hash_table);
-  ret->static_hash_table = bfd_malloc (amt);
+  ret->static_hash_table = bfd_zmalloc (amt);
   if (ret->static_hash_table == NULL)
     {
       free (ret);
index 6197f95041a703fa8b778b19481f5d291b3a5525..ee37915d0c01be06f695274058d905d95c3d5d05 100644 (file)
@@ -3417,7 +3417,7 @@ elf32_arm_link_hash_table_create (bfd *abfd)
   struct elf32_arm_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf32_arm_link_hash_table);
 
-  ret = (struct elf32_arm_link_hash_table *) bfd_malloc (amt);
+  ret = (struct elf32_arm_link_hash_table *) bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -3430,27 +3430,7 @@ elf32_arm_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->sdynbss = NULL;
-  ret->srelbss = NULL;
-  ret->srelplt2 = NULL;
-  ret->dt_tlsdesc_plt = 0;
-  ret->dt_tlsdesc_got = 0;
-  ret->tls_trampoline = 0;
-  ret->next_tls_desc_index = 0;
-  ret->num_tls_desc = 0;
-  ret->thumb_glue_size = 0;
-  ret->arm_glue_size = 0;
-  ret->bx_glue_size = 0;
-  memset (ret->bx_glue_offset, 0, sizeof (ret->bx_glue_offset));
   ret->vfp11_fix = BFD_ARM_VFP11_FIX_NONE;
-  ret->vfp11_erratum_glue_size = 0;
-  ret->num_vfp11_fixes = 0;
-  ret->fix_cortex_a8 = 0;
-  ret->fix_arm1176 = 0;
-  ret->bfd_of_glue_owner = NULL;
-  ret->byteswap_code = 0;
-  ret->target1_is_rel = 0;
-  ret->target2_reloc = R_ARM_NONE;
 #ifdef FOUR_WORD_PLT
   ret->plt_header_size = 16;
   ret->plt_entry_size = 16;
@@ -3458,23 +3438,8 @@ elf32_arm_link_hash_table_create (bfd *abfd)
   ret->plt_header_size = 20;
   ret->plt_entry_size = 12;
 #endif
-  ret->fix_v4bx = 0;
-  ret->use_blx = 0;
-  ret->vxworks_p = 0;
-  ret->symbian_p = 0;
-  ret->nacl_p = 0;
   ret->use_rel = 1;
-  ret->sym_cache.abfd = NULL;
   ret->obfd = abfd;
-  ret->tls_ldm_got.refcount = 0;
-  ret->stub_bfd = NULL;
-  ret->add_stub_section = NULL;
-  ret->layout_sections_again = NULL;
-  ret->stub_group = NULL;
-  ret->top_id = 0;
-  ret->bfd_count = 0;
-  ret->top_index = 0;
-  ret->input_list = NULL;
 
   if (!bfd_hash_table_init (&ret->stub_hash_table, stub_hash_newfunc,
                            sizeof (struct elf32_arm_stub_hash_entry)))
index 2236fc714283da5dd7158f232bde6649d51752b1..6cec6843b16c225495a227491eae7a08eeec81b9 100644 (file)
@@ -672,7 +672,7 @@ elf32_avr_link_hash_table_create (bfd *abfd)
   struct elf32_avr_link_hash_table *htab;
   bfd_size_type amt = sizeof (*htab);
 
-  htab = bfd_malloc (amt);
+  htab = bfd_zmalloc (amt);
   if (htab == NULL)
     return NULL;
 
@@ -690,15 +690,6 @@ elf32_avr_link_hash_table_create (bfd *abfd)
                             sizeof (struct elf32_avr_stub_hash_entry)))
     return NULL;
 
-  htab->stub_bfd = NULL;
-  htab->stub_sec = NULL;
-
-  /* Initialize the address mapping table.  */
-  htab->amt_stub_offsets = NULL;
-  htab->amt_destination_addr = NULL;
-  htab->amt_entry_cnt = 0;
-  htab->amt_max_entry_cnt = 0;
-
   return &htab->etab.root;
 }
 
index 2c0502320aacbdb810b9b03df5395b7375bcd864..4b3aa733b53496678c038446712591159190cfe1 100644 (file)
@@ -1660,7 +1660,7 @@ elf32_cr16_link_hash_table_create (bfd *abfd)
   struct elf_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_link_hash_table);
 
-  ret = (struct elf_link_hash_table *) bfd_malloc (amt);
+  ret = (struct elf_link_hash_table *) bfd_zmalloc (amt);
   if (ret == (struct elf_link_hash_table *) NULL)
     return NULL;
 
index f85ba0d36e5d798b7298aed06e3f56482958ccfa..5f0eca9aad23afb38cad8176ec6c9f89cbf50332 100644 (file)
@@ -884,7 +884,7 @@ elf_cris_link_hash_table_create (bfd *abfd)
   struct elf_cris_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_cris_link_hash_table);
 
-  ret = ((struct elf_cris_link_hash_table *) bfd_malloc (amt));
+  ret = ((struct elf_cris_link_hash_table *) bfd_zmalloc (amt));
   if (ret == (struct elf_cris_link_hash_table *) NULL)
     return NULL;
 
@@ -901,9 +901,6 @@ elf_cris_link_hash_table_create (bfd *abfd)
      are used for run-time symbol evaluation.  */
   ret->next_gotplt_entry = 12;
 
-  /* We haven't seen any R_CRIS_nn_GOT_TPREL initially.  */
-  ret->dtpmod_refcount = 0;
-
   return &ret->root.root;
 }
 \f
index 9a05c381b7a7bbff85e78cae36c8ece95fedad60..2c1b9dbaebf653467342c4050fde4ea718519af0 100644 (file)
@@ -419,7 +419,7 @@ elf32_hppa_link_hash_table_create (bfd *abfd)
   struct elf32_hppa_link_hash_table *htab;
   bfd_size_type amt = sizeof (*htab);
 
-  htab = bfd_malloc (amt);
+  htab = bfd_zmalloc (amt);
   if (htab == NULL)
     return NULL;
 
@@ -436,26 +436,8 @@ elf32_hppa_link_hash_table_create (bfd *abfd)
                            sizeof (struct elf32_hppa_stub_hash_entry)))
     return NULL;
 
-  htab->stub_bfd = NULL;
-  htab->add_stub_section = NULL;
-  htab->layout_sections_again = NULL;
-  htab->stub_group = NULL;
-  htab->sgot = NULL;
-  htab->srelgot = NULL;
-  htab->splt = NULL;
-  htab->srelplt = NULL;
-  htab->sdynbss = NULL;
-  htab->srelbss = NULL;
   htab->text_segment_base = (bfd_vma) -1;
   htab->data_segment_base = (bfd_vma) -1;
-  htab->multi_subspace = 0;
-  htab->has_12bit_branch = 0;
-  htab->has_17bit_branch = 0;
-  htab->has_22bit_branch = 0;
-  htab->need_plt_stub = 0;
-  htab->sym_cache.abfd = NULL;
-  htab->tls_ldm_got.refcount = 0;
-
   return &htab->etab.root;
 }
 
index f8ad1d1c1fccf7e32a2f7b2f88cabc8038629061..b6004ef98705512895d878b801192fc19a6aee93 100644 (file)
@@ -937,7 +937,7 @@ elf_i386_link_hash_table_create (bfd *abfd)
   struct elf_i386_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_i386_link_hash_table);
 
-  ret = (struct elf_i386_link_hash_table *) bfd_malloc (amt);
+  ret = (struct elf_i386_link_hash_table *) bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -950,18 +950,6 @@ elf_i386_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->sdynbss = NULL;
-  ret->srelbss = NULL;
-  ret->plt_eh_frame = NULL;
-  ret->tls_ldm_got.refcount = 0;
-  ret->next_tls_desc_index = 0;
-  ret->sgotplt_jump_table_size = 0;
-  ret->sym_cache.abfd = NULL;
-  ret->srelplt2 = NULL;
-  ret->tls_module_base = NULL;
-  ret->next_jump_slot_index = 0;
-  ret->next_irelative_index = 0;
-
   ret->loc_hash_table = htab_try_create (1024,
                                         elf_i386_local_htab_hash,
                                         elf_i386_local_htab_eq,
index 2579034dab748dd708a9069a59ea79dad759a3e9..f5d03e57b2d464681c0f31117403f4495c49e44d 100644 (file)
@@ -159,7 +159,7 @@ lm32_elf_link_hash_table_create (bfd *abfd)
   struct elf_lm32_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_lm32_link_hash_table);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -172,16 +172,6 @@ lm32_elf_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->sgot = NULL;
-  ret->sgotplt = NULL;
-  ret->srelgot = NULL;
-  ret->sfixup32 = NULL;
-  ret->splt = NULL;
-  ret->srelplt = NULL;
-  ret->sdynbss = NULL;
-  ret->srelbss = NULL;
-  ret->relocs32 = 0;
-
   return &ret->root.root;
 }
 
index 70ddaab2055805fd7f241cfd7478aff2322c8e6a..93b5021c3c84994282ae5cd9861dace6eb92ea34 100644 (file)
@@ -1585,7 +1585,7 @@ m32r_elf_link_hash_table_create (bfd *abfd)
   struct elf_m32r_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_m32r_link_hash_table);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -1598,15 +1598,6 @@ m32r_elf_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->sgot = NULL;
-  ret->sgotplt = NULL;
-  ret->srelgot = NULL;
-  ret->splt = NULL;
-  ret->srelplt = NULL;
-  ret->sdynbss = NULL;
-  ret->srelbss = NULL;
-  ret->sym_cache.abfd = NULL;
-
   return &ret->root.root;
 }
 
index deb3c6243caa631054a925523c66f4bb964a3621..6cef46d0858d37300551d7e464cd855b32d6a2e0 100644 (file)
@@ -67,11 +67,10 @@ m68hc11_elf_hash_table_create (bfd *abfd)
   struct m68hc11_elf_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct m68hc11_elf_link_hash_table);
 
-  ret = (struct m68hc11_elf_link_hash_table *) bfd_malloc (amt);
+  ret = (struct m68hc11_elf_link_hash_table *) bfd_zmalloc (amt);
   if (ret == (struct m68hc11_elf_link_hash_table *) NULL)
     return NULL;
 
-  memset (ret, 0, amt);
   if (!_bfd_elf_link_hash_table_init (&ret->root, abfd,
                                      _bfd_elf_link_hash_newfunc,
                                      sizeof (struct elf_link_hash_entry),
@@ -93,11 +92,6 @@ m68hc11_elf_hash_table_create (bfd *abfd)
                            sizeof (struct elf32_m68hc11_stub_hash_entry)))
     return NULL;
 
-  ret->stub_bfd = NULL;
-  ret->stub_section = 0;
-  ret->add_stub_section = NULL;
-  ret->sym_cache.abfd = NULL;
-
   return ret;
 }
 
index 6946841e4458934fa8f032b60017717ade9b796d..26fef9fcacb061d2326be1105e55c06df4c2d0a5 100644 (file)
@@ -950,7 +950,7 @@ elf_m68k_link_hash_table_create (bfd *abfd)
   struct elf_m68k_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_m68k_link_hash_table);
 
-  ret = (struct elf_m68k_link_hash_table *) bfd_malloc (amt);
+  ret = (struct elf_m68k_link_hash_table *) bfd_zmalloc (amt);
   if (ret == (struct elf_m68k_link_hash_table *) NULL)
     return NULL;
 
@@ -963,12 +963,6 @@ elf_m68k_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->sym_cache.abfd = NULL;
-  ret->plt_info = NULL;
-  ret->local_gp_p = FALSE;
-  ret->use_neg_got_offsets_p = FALSE;
-  ret->allow_multigot_p = FALSE;
-  ret->multi_got_.bfd2got = NULL;
   ret->multi_got_.global_symndx = 1;
 
   return &ret->root.root;
index 8a696be0bcde552cb352271275057a38606945e0..821cea15523fb7411bfa30f20cc2ed7018274f34 100644 (file)
@@ -1027,7 +1027,7 @@ elf_metag_link_hash_table_create (bfd *abfd)
   struct elf_metag_link_hash_table *htab;
   bfd_size_type amt = sizeof (*htab);
 
-  htab = bfd_malloc (amt);
+  htab = bfd_zmalloc (amt);
   if (htab == NULL)
     return NULL;
 
@@ -1045,20 +1045,6 @@ elf_metag_link_hash_table_create (bfd *abfd)
                            sizeof (struct elf_metag_stub_hash_entry)))
     return NULL;
 
-  htab->stub_bfd = NULL;
-  htab->add_stub_section = NULL;
-  htab->layout_sections_again = NULL;
-  htab->stub_group = NULL;
-  htab->sgot = NULL;
-  htab->sgotplt = NULL;
-  htab->srelgot = NULL;
-  htab->splt = NULL;
-  htab->srelplt = NULL;
-  htab->sdynbss = NULL;
-  htab->srelbss = NULL;
-  htab->sym_cache.abfd = NULL;
-  htab->tls_ldm_got.refcount = 0;
-
   return &htab->etab.root;
 }
 
index 2d6f07a32cdb5d5447de975152e0609d74b12361..35fda54c23a4c1730a8c628af06e8ced99248f96 100644 (file)
@@ -3958,7 +3958,7 @@ nios2_elf32_link_hash_table_create (bfd *abfd)
   struct elf32_nios2_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf32_nios2_link_hash_table);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -3972,11 +3972,6 @@ nios2_elf32_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->sdynbss = NULL;
-  ret->srelbss = NULL;
-  ret->sbss = NULL;
-  ret->tls_ldm_got.refcount = 0;
-  ret->sym_cache.abfd = NULL;
   return &ret->root.root;
 }
 
index 491daf38ff2dadab0889bb0769eca34c38df6074..2c0822b96294d687ed2a8cf6d7650ca3b3902dd5 100644 (file)
@@ -786,7 +786,7 @@ elf_s390_link_hash_table_create (bfd *abfd)
   struct elf_s390_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_s390_link_hash_table);
 
-  ret = (struct elf_s390_link_hash_table *) bfd_malloc (amt);
+  ret = (struct elf_s390_link_hash_table *) bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -798,16 +798,6 @@ elf_s390_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->elf.sgot = NULL;
-  ret->elf.sgotplt = NULL;
-  ret->elf.srelgot = NULL;
-  ret->elf.splt = NULL;
-  ret->elf.srelplt = NULL;
-  ret->sdynbss = NULL;
-  ret->srelbss = NULL;
-  ret->tls_ldm_got.refcount = 0;
-  ret->sym_cache.abfd = NULL;
-
   return &ret->elf.root;
 }
 
index 7b16ea2d15a507cfe7db6893aa45f86974142840..ee3a668a1ee41ace6b78a4f47cb13aa0a882fdd1 100644 (file)
@@ -4357,7 +4357,7 @@ elf32_score_link_hash_table_create (bfd *abfd)
   struct elf_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_link_hash_table);
 
-  ret = (struct elf_link_hash_table *) bfd_malloc (amt);
+  ret = (struct elf_link_hash_table *) bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
index 97935d04541b89d4a27cd8d80c9048fff9d212a5..cb4ff525f92eb7291cb8372abbc9cd78cfdae353 100644 (file)
@@ -440,7 +440,7 @@ spu_elf_link_hash_table_create (bfd *abfd)
 {
   struct spu_link_hash_table *htab;
 
-  htab = bfd_malloc (sizeof (*htab));
+  htab = bfd_zmalloc (sizeof (*htab));
   if (htab == NULL)
     return NULL;
 
@@ -453,9 +453,6 @@ spu_elf_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  memset (&htab->ovtab, 0,
-         sizeof (*htab) - offsetof (struct spu_link_hash_table, ovtab));
-
   htab->elf.init_got_refcount.refcount = 0;
   htab->elf.init_got_refcount.glist = NULL;
   htab->elf.init_got_offset.offset = 0;
index fb30e923a52c68b69cf1d5cd3671a00d1adce73d..d376fe1d431d2d0064f753677633d975c97de9cd 100644 (file)
@@ -1570,7 +1570,7 @@ elf32_tic6x_link_hash_table_create (bfd *abfd)
   struct elf32_tic6x_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf32_tic6x_link_hash_table);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -1583,7 +1583,6 @@ elf32_tic6x_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->sym_cache.abfd = NULL;
   ret->obfd = abfd;
   ret->elf.is_relocatable_executable = 1;
 
index 3fbc2895700dbbc760acc37df6450343a340a433..0e79a2ae35baae2c014365764e3c847bc7672dc4 100644 (file)
@@ -465,7 +465,7 @@ elf_vax_link_hash_table_create (bfd *abfd)
   struct elf_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_link_hash_table);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
index 2169c569b44e4a76f5388d9cabbe6772fdadeb78..ad2190b3a2c571d6ba4f0998c053ba0df1ec3108 100644 (file)
@@ -448,11 +448,10 @@ xgate_elf_bfd_link_hash_table_create (bfd *abfd)
   struct xgate_elf_link_hash_table *ret;
   bfd_size_type amt = sizeof(struct xgate_elf_link_hash_table);
 
-  ret = (struct xgate_elf_link_hash_table *) bfd_malloc (amt);
+  ret = (struct xgate_elf_link_hash_table *) bfd_zmalloc (amt);
   if (ret == (struct xgate_elf_link_hash_table *) NULL)
     return NULL;
 
-  memset (ret, 0, amt);
   if (!_bfd_elf_link_hash_table_init (&ret->root, abfd,
       _bfd_elf_link_hash_newfunc, sizeof(struct elf_link_hash_entry),
       XGATE_ELF_DATA))
@@ -463,7 +462,7 @@ xgate_elf_bfd_link_hash_table_create (bfd *abfd)
 
   /* Init the stub hash table too.  */
   amt = sizeof(struct bfd_hash_table);
-  ret->stub_hash_table = (struct bfd_hash_table*) bfd_malloc (amt);
+  ret->stub_hash_table = (struct bfd_hash_table*) bfd_zmalloc (amt);
   if (ret->stub_hash_table == NULL)
     {
       free (ret);
@@ -472,12 +471,11 @@ xgate_elf_bfd_link_hash_table_create (bfd *abfd)
 
   if (!bfd_hash_table_init (ret->stub_hash_table, stub_hash_newfunc,
       sizeof(struct elf32_xgate_stub_hash_entry)))
-    return NULL;
-
-  ret->stub_bfd = NULL;
-  ret->stub_section = 0;
-  ret->add_stub_section = NULL;
-  ret->sym_cache.abfd = NULL;
+    {
+      free (ret->stub_hash_table);
+      free (ret);
+      return NULL;
+    }
 
   return &ret->root.root;
 }
index e48bf4b9aee4488de1f5dfddccf83e3368d94ead..1e4bb4600ee6373d2990656190746456d1d4b149 100644 (file)
@@ -655,7 +655,7 @@ elf_xtensa_link_hash_table_create (bfd *abfd)
   struct elf_xtensa_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_xtensa_link_hash_table);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -668,16 +668,6 @@ elf_xtensa_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->sgot = NULL;
-  ret->sgotplt = NULL;
-  ret->srelgot = NULL;
-  ret->splt = NULL;
-  ret->srelplt = NULL;
-  ret->sgotloc = NULL;
-  ret->spltlittbl = NULL;
-
-  ret->plt_reloc_count = 0;
-
   /* Create a hash entry for "_TLS_MODULE_BASE_" to speed up checking
      for it later.  */
   tlsbase = elf_link_hash_lookup (&ret->elf, "_TLS_MODULE_BASE_",
index e0583d730e35a541dd4b5652ceaf60b59886968e..e588d82c241e64a7d963c589bcb958fe5d1015b9 100644 (file)
@@ -2093,7 +2093,7 @@ elf64_aarch64_link_hash_table_create (bfd *abfd)
   struct elf64_aarch64_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf64_aarch64_link_hash_table);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -2105,23 +2105,9 @@ elf64_aarch64_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->sdynbss = NULL;
-  ret->srelbss = NULL;
-
   ret->plt_header_size = PLT_ENTRY_SIZE;
   ret->plt_entry_size = PLT_SMALL_ENTRY_SIZE;
-
-  ret->sym_cache.abfd = NULL;
   ret->obfd = abfd;
-
-  ret->stub_bfd = NULL;
-  ret->add_stub_section = NULL;
-  ret->layout_sections_again = NULL;
-  ret->stub_group = NULL;
-  ret->bfd_count = 0;
-  ret->top_index = 0;
-  ret->input_list = NULL;
-  ret->tlsdesc_plt = 0;
   ret->dt_tlsdesc_got = (bfd_vma) - 1;
 
   if (!bfd_hash_table_init (&ret->stub_hash_table, stub_hash_newfunc,
index 2515cb5bfc18ed118700a9326c2f89d7e735fac0..eece2c26f973225eb6d234ee81cd25885c2a843e 100644 (file)
@@ -699,7 +699,7 @@ elf_s390_link_hash_table_create (bfd *abfd)
   struct elf_s390_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_s390_link_hash_table);
 
-  ret = (struct elf_s390_link_hash_table *) bfd_malloc (amt);
+  ret = (struct elf_s390_link_hash_table *) bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -711,16 +711,6 @@ elf_s390_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->elf.sgot = NULL;
-  ret->elf.sgotplt = NULL;
-  ret->elf.srelgot = NULL;
-  ret->elf.splt = NULL;
-  ret->elf.srelplt = NULL;
-  ret->sdynbss = NULL;
-  ret->srelbss = NULL;
-  ret->tls_ldm_got.refcount = 0;
-  ret->sym_cache.abfd = NULL;
-
   return &ret->elf.root;
 }
 
index 3e6d081f7745ec6cd962a440f5881921409f730d..7a9297cf329ff1fcf5aaccca3b01fd78fa6e5aad 100644 (file)
@@ -3069,7 +3069,7 @@ sh64_elf64_link_hash_table_create (bfd *abfd)
 {
   struct elf_link_hash_table *ret;
 
-  ret = (struct elf_link_hash_table *) bfd_malloc (sizeof (* ret));
+  ret = (struct elf_link_hash_table *) bfd_zmalloc (sizeof (* ret));
   if (ret == (struct elf_link_hash_table *) NULL)
     return NULL;
 
index 79b6dc606071aa2281ab6ff90acd0228f6591d66..f709c7a0985524189a31ae062a234dbe103f9f76 100644 (file)
@@ -888,7 +888,7 @@ elf_x86_64_link_hash_table_create (bfd *abfd)
   struct elf_x86_64_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_x86_64_link_hash_table);
 
-  ret = (struct elf_x86_64_link_hash_table *) bfd_malloc (amt);
+  ret = (struct elf_x86_64_link_hash_table *) bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -901,18 +901,6 @@ elf_x86_64_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->sdynbss = NULL;
-  ret->srelbss = NULL;
-  ret->plt_eh_frame = NULL;
-  ret->sym_cache.abfd = NULL;
-  ret->tlsdesc_plt = 0;
-  ret->tlsdesc_got = 0;
-  ret->tls_ld_got.refcount = 0;
-  ret->sgotplt_jump_table_size = 0;
-  ret->tls_module_base = NULL;
-  ret->next_jump_slot_index = 0;
-  ret->next_irelative_index = 0;
-
   if (ABI_64_P (abfd))
     {
       ret->r_info = elf64_r_info;
index e6c835153fb5048abc82a09ec22933e457c0ec57..1bae437fc33260fda8338664f7a5d9cecd3e9b73 100644 (file)
@@ -6908,7 +6908,8 @@ _bfd_elf_link_hash_hide_symbol (struct bfd_link_info *info,
     }
 }
 
-/* Initialize an ELF linker hash table.  */
+/* Initialize an ELF linker hash table.  *TABLE has been zeroed by our
+   caller.  */
 
 bfd_boolean
 _bfd_elf_link_hash_table_init
@@ -6923,7 +6924,6 @@ _bfd_elf_link_hash_table_init
   bfd_boolean ret;
   int can_refcount = get_elf_backend_data (abfd)->can_refcount;
 
-  memset (table, 0, sizeof * table);
   table->init_got_refcount.refcount = can_refcount - 1;
   table->init_plt_refcount.refcount = can_refcount - 1;
   table->init_got_offset.offset = -(bfd_vma) 1;
@@ -6947,7 +6947,7 @@ _bfd_elf_link_hash_table_create (bfd *abfd)
   struct elf_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct elf_link_hash_table);
 
-  ret = (struct elf_link_hash_table *) bfd_malloc (amt);
+  ret = (struct elf_link_hash_table *) bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
index 61bd4bcbd68d0bf16635d83dad2d3661023b3dae..b281971bc53113e00fc501bc7d1688b55c524795 100644 (file)
@@ -420,11 +420,6 @@ struct mips_elf_link_hash_entry
 struct mips_elf_link_hash_table
 {
   struct elf_link_hash_table root;
-#if 0
-  /* We no longer use this.  */
-  /* String section indices for the dynamic section symbols.  */
-  bfd_size_type dynsym_sec_strindex[SIZEOF_MIPS_DYNSYM_SECNAMES];
-#endif
 
   /* The number of .rtproc entries.  */
   bfd_size_type procedure_count;
@@ -12949,7 +12944,7 @@ _bfd_mips_elf_link_hash_table_create (bfd *abfd)
   struct mips_elf_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct mips_elf_link_hash_table);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
 
@@ -12962,36 +12957,6 @@ _bfd_mips_elf_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-#if 0
-  /* We no longer use this.  */
-  for (i = 0; i < SIZEOF_MIPS_DYNSYM_SECNAMES; i++)
-    ret->dynsym_sec_strindex[i] = (bfd_size_type) -1;
-#endif
-  ret->procedure_count = 0;
-  ret->compact_rel_size = 0;
-  ret->use_rld_obj_head = FALSE;
-  ret->rld_symbol = NULL;
-  ret->mips16_stubs_seen = FALSE;
-  ret->use_plts_and_copy_relocs = FALSE;
-  ret->is_vxworks = FALSE;
-  ret->small_data_overflow_reported = FALSE;
-  ret->srelbss = NULL;
-  ret->sdynbss = NULL;
-  ret->srelplt = NULL;
-  ret->srelplt2 = NULL;
-  ret->sgotplt = NULL;
-  ret->splt = NULL;
-  ret->sstubs = NULL;
-  ret->sgot = NULL;
-  ret->got_info = NULL;
-  ret->plt_header_size = 0;
-  ret->plt_entry_size = 0;
-  ret->lazy_stub_count = 0;
-  ret->function_stub_size = 0;
-  ret->strampoline = NULL;
-  ret->la25_stubs = NULL;
-  ret->add_stub_section = NULL;
-
   return &ret->root.root;
 }
 
index 9bbbd440e37ab61c81462b826631de0c3e97fde8..f612782ac092a709a77762024a92af3ee3fbb723 100644 (file)
@@ -203,7 +203,7 @@ linux_link_hash_table_create (bfd *abfd)
   struct linux_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct linux_link_hash_table);
 
-  ret = (struct linux_link_hash_table *) bfd_malloc (amt);
+  ret = (struct linux_link_hash_table *) bfd_zmalloc (amt);
   if (ret == (struct linux_link_hash_table *) NULL)
     {
       bfd_set_error (bfd_error_no_memory);
@@ -217,11 +217,6 @@ linux_link_hash_table_create (bfd *abfd)
       return (struct bfd_link_hash_table *) NULL;
     }
 
-  ret->dynobj = NULL;
-  ret->fixup_count = 0;
-  ret->local_builtins = 0;
-  ret->fixup_list = NULL;
-
   return &ret->root.root;
 }
 
index 6edfeeb35950c71caf4811a9365c4e3efcf7a559..7ed255f41e335bb2f6a22cd1261596a115272c20 100644 (file)
@@ -200,7 +200,7 @@ linux_link_hash_table_create (bfd *abfd)
   struct linux_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct linux_link_hash_table);
 
-  ret = (struct linux_link_hash_table *) bfd_malloc (amt);
+  ret = (struct linux_link_hash_table *) bfd_zmalloc (amt);
   if (ret == (struct linux_link_hash_table *) NULL)
     return (struct bfd_link_hash_table *) NULL;
   if (!NAME(aout,link_hash_table_init) (&ret->root, abfd,
@@ -211,11 +211,6 @@ linux_link_hash_table_create (bfd *abfd)
       return (struct bfd_link_hash_table *) NULL;
     }
 
-  ret->dynobj = NULL;
-  ret->fixup_count = 0;
-  ret->local_builtins = 0;
-  ret->fixup_list = NULL;
-
   return &ret->root.root;
 }
 
index 028fb280e3b12a55a77245b74f1f8ed15d63e2aa..6d84f43fb61b690da1f586c930a48fec435ffb9c 100644 (file)
@@ -679,7 +679,7 @@ sunos_link_hash_table_create (bfd *abfd)
   struct sunos_link_hash_table *ret;
   bfd_size_type amt = sizeof (struct sunos_link_hash_table);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret ==  NULL)
     return NULL;
   if (!NAME (aout, link_hash_table_init) (&ret->root, abfd,
@@ -690,15 +690,6 @@ sunos_link_hash_table_create (bfd *abfd)
       return NULL;
     }
 
-  ret->dynobj = NULL;
-  ret->dynamic_sections_created = FALSE;
-  ret->dynamic_sections_needed = FALSE;
-  ret->got_needed = FALSE;
-  ret->dynsymcount = 0;
-  ret->bucketcount = 0;
-  ret->needed = NULL;
-  ret->got_base = 0;
-
   return &ret->root.root;
 }
 
index a409dcbf01dced0bdbe10fa5e5fe55a34c7206b1..e769e0353594b5932fbfc3a8060061609dedc176 100644 (file)
@@ -580,7 +580,7 @@ _bfd_xcoff_bfd_link_hash_table_create (bfd *abfd)
   struct xcoff_link_hash_table *ret;
   bfd_size_type amt = sizeof (* ret);
 
-  ret = bfd_malloc (amt);
+  ret = bfd_zmalloc (amt);
   if (ret == NULL)
     return NULL;
   if (!_bfd_link_hash_table_init (&ret->root, abfd, xcoff_link_hash_newfunc,
@@ -591,20 +591,8 @@ _bfd_xcoff_bfd_link_hash_table_create (bfd *abfd)
     }
 
   ret->debug_strtab = _bfd_xcoff_stringtab_init ();
-  ret->debug_section = NULL;
-  ret->loader_section = NULL;
-  ret->ldrel_count = 0;
-  memset (&ret->ldhdr, 0, sizeof (struct internal_ldhdr));
-  ret->linkage_section = NULL;
-  ret->toc_section = NULL;
-  ret->descriptor_section = NULL;
-  ret->imports = NULL;
-  ret->file_align = 0;
-  ret->textro = FALSE;
-  ret->gc = FALSE;
   ret->archive_info = htab_create (37, xcoff_archive_info_hash,
                                   xcoff_archive_info_eq, NULL);
-  memset (ret->special_sections, 0, sizeof ret->special_sections);
 
   /* The linker will always generate a full a.out header.  We need to
      record that fact now, before the sizeof_headers routine could be