mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 09:08:59 +00:00
PR 2434
bfd/ * elflink.c (struct elf_smash_syms_data, elf_smash_syms): Delete. (elf_link_add_object_symbols): Delete unnecessary locals. Rename hash_table -> htab. Formatting. Save entire symbol table before loading as-needed syms, and restore afterwards if lib not needed. Use bfd_hash_allocate rather than bfd_alloc for sym name. Free some buffers earlier. * bfd-in.h (struct bfd_hash_table): Add entsize. (bfd_hash_table_init, bfd_hash_table_init_n): Adjust prototype. * elf-bfd.h (_bfd_elf_link_hash_table_init): Likewise * hash.c (bfd_hash_table_init_n): Add entsize param, save to hash table. (bfd_hash_table_init): Add param, adjust calls. * aoutx.h: Adjust all hash_table_init functions and calls. * bfd.c: Likewise. * coff-arm.c: Likewise. * coff-h8300.c: Likewise. * coff-ppc.c: Likewise. * cofflink.c: Likewise. * ecoff.c: Likewise. * ecofflink.c: Likewise. * elf-m10300.c: Likewise. * elf-strtab.c: Likewise. * elf.c: Likewise. * elf32-arm.c: Likewise. * elf32-bfin.c: Likewise. * elf32-cris.c: Likewise. * elf32-frv.c: Likewise. * elf32-hppa.c: Likewise. * elf32-i386.c: Likewise. * elf32-m32r.c: Likewise. * elf32-m68hc1x.c: Likewise. * elf32-m68k.c: Likewise. * elf32-ppc.c: Likewise. * elf32-s390.c: Likewise. * elf32-sh.c: Likewise. * elf32-vax.c: Likewise. * elf64-alpha.c: Likewise. * elf64-hppa.c: Likewise. * elf64-ppc.c: Likewise. * elf64-s390.c: Likewise. * elf64-sh64.c: Likewise. * elf64-x86-64.c: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise. * elfxx-sparc.c: Likewise. * i386linux.c: Likewise. * libaout.h: Likewise. * libbfd-in.h: Likewise. * libcoff-in.h: Likewise. * linker.c: Likewise. * m68klinux.c: Likewise. * merge.c: Likewise. * opncls.c: Likewise. * pdp11.c: Likewise. * sparclinux.c: Likewise. * stabs.c: Likewise. * sunos.c: Likewise. * vms.c: Likewise. * xcofflink.c: Likewise. * section.c (struct section_hash_entry): Move to.. * libbfd-in.h: ..here. * Makefile.am: Run "make dep-am" * Makefile.in: Regenerate. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. * libcoff.h: Regenerate. binutils/ * ieee.c (write_ieee_debugging_info): Adjust bfd_hash_table_init calls. * wrstabs.c (write_stabs_in_sections_debugging_info): Likewise. ld/ * ldcref.c (add_cref): Adjust bfd_hash_table_init calls. * ldlang.c (output_statement_table_init, lang_init): Likewise. * ldmain.c (add_ysym, add_wrap, add_keepsyms_file): Likewise. (undefined_symbol): Likewise.
This commit is contained in:
22
bfd/linker.c
22
bfd/linker.c
@@ -1,6 +1,6 @@
|
||||
/* linker.c -- BFD linker routines
|
||||
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
@@ -472,14 +472,15 @@ _bfd_link_hash_table_init
|
||||
bfd *abfd,
|
||||
struct bfd_hash_entry *(*newfunc) (struct bfd_hash_entry *,
|
||||
struct bfd_hash_table *,
|
||||
const char *))
|
||||
const char *),
|
||||
unsigned int entsize)
|
||||
{
|
||||
table->creator = abfd->xvec;
|
||||
table->undefs = NULL;
|
||||
table->undefs_tail = NULL;
|
||||
table->type = bfd_link_generic_hash_table;
|
||||
|
||||
return bfd_hash_table_init (&table->table, newfunc);
|
||||
return bfd_hash_table_init (&table->table, newfunc, entsize);
|
||||
}
|
||||
|
||||
/* Look up a symbol in a link hash table. If follow is TRUE, we
|
||||
@@ -709,7 +710,8 @@ _bfd_generic_link_hash_table_create (bfd *abfd)
|
||||
if (ret == NULL)
|
||||
return NULL;
|
||||
if (! _bfd_link_hash_table_init (&ret->root, abfd,
|
||||
_bfd_generic_link_hash_newfunc))
|
||||
_bfd_generic_link_hash_newfunc,
|
||||
sizeof (struct generic_link_hash_entry)))
|
||||
{
|
||||
free (ret);
|
||||
return NULL;
|
||||
@@ -901,9 +903,10 @@ archive_hash_table_init
|
||||
(struct archive_hash_table *table,
|
||||
struct bfd_hash_entry *(*newfunc) (struct bfd_hash_entry *,
|
||||
struct bfd_hash_table *,
|
||||
const char *))
|
||||
const char *),
|
||||
unsigned int entsize)
|
||||
{
|
||||
return bfd_hash_table_init (&table->table, newfunc);
|
||||
return bfd_hash_table_init (&table->table, newfunc, entsize);
|
||||
}
|
||||
|
||||
/* Look up an entry in an archive hash table. */
|
||||
@@ -981,7 +984,8 @@ _bfd_generic_link_add_archive_symbols
|
||||
|
||||
/* In order to quickly determine whether an symbol is defined in
|
||||
this archive, we build a hash table of the symbols. */
|
||||
if (! archive_hash_table_init (&arsym_hash, archive_hash_newfunc))
|
||||
if (! archive_hash_table_init (&arsym_hash, archive_hash_newfunc,
|
||||
sizeof (struct archive_hash_entry)))
|
||||
return FALSE;
|
||||
for (arsym = arsyms, indx = 0; arsym < arsym_end; arsym++, indx++)
|
||||
{
|
||||
@@ -2952,7 +2956,9 @@ bfd_boolean
|
||||
bfd_section_already_linked_table_init (void)
|
||||
{
|
||||
return bfd_hash_table_init_n (&_bfd_section_already_linked_table,
|
||||
already_linked_newfunc, 42);
|
||||
already_linked_newfunc,
|
||||
sizeof (struct bfd_section_already_linked_hash_entry),
|
||||
42);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user