mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-05 21:50:21 +08:00
bfd/
* bfd.c (struct _bfd): Correct outsymbols comment. * bfd-in2.h: Regenerate. * linker.c (bfd_generic_link_read_symbols): Renamed from.. (generic_link_read_symbols): ..this, and made global. include/ * bfdlink.h (bfd_generic_link_read_symbols): Declare. ld/ PR 6478 * ldcref.c (check_local_sym_xref): Use bfd_generic_link_read_symbols. Don't free symbol pointer array. (check_refs): Likewise. * ldmain.c (warning_callback): Likewise. * ldmisc.c (vfinfo): Likewise. * pe-dll.c (process_def_file): Likewise. (pe_walk_relocs_of_symbol, generate_reloc): Likewise. * emultempl/pe.em (pe_find_data_imports): Likewise. (gld_${EMULATION_NAME}_after_open): Likewise. * emultempl/pep.em (pep_find_data_imports): Likewise. (gld_${EMULATION_NAME}_after_open): Likewise. * ldlang.h (lang_input_statement_type): Delete asymbols, symbol_count, passive_position, closed. * ldlang.c (new_afile): Don't set asymbols and symbol_count. * ldmain.c (add_archive_element): xcalloc lang_input_statement_type.
This commit is contained in:
37
ld/ldmisc.c
37
ld/ldmisc.c
@ -269,8 +269,7 @@ vfinfo (FILE *fp, const char *fmt, va_list arg, bfd_boolean is_warning)
|
||||
bfd *abfd;
|
||||
asection *section;
|
||||
bfd_vma offset;
|
||||
lang_input_statement_type *entry;
|
||||
asymbol **asymbols;
|
||||
asymbol **asymbols = NULL;
|
||||
const char *filename;
|
||||
const char *functionname;
|
||||
unsigned int linenumber;
|
||||
@ -280,35 +279,12 @@ vfinfo (FILE *fp, const char *fmt, va_list arg, bfd_boolean is_warning)
|
||||
section = va_arg (arg, asection *);
|
||||
offset = va_arg (arg, bfd_vma);
|
||||
|
||||
if (abfd == NULL)
|
||||
if (abfd != NULL)
|
||||
{
|
||||
entry = NULL;
|
||||
asymbols = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
entry = (lang_input_statement_type *) abfd->usrdata;
|
||||
if (entry != (lang_input_statement_type *) NULL
|
||||
&& entry->asymbols != (asymbol **) NULL)
|
||||
asymbols = entry->asymbols;
|
||||
else
|
||||
{
|
||||
long symsize;
|
||||
long sym_count;
|
||||
if (!bfd_generic_link_read_symbols (abfd))
|
||||
einfo (_("%B%F: could not read symbols: %E\n"), abfd);
|
||||
|
||||
symsize = bfd_get_symtab_upper_bound (abfd);
|
||||
if (symsize < 0)
|
||||
einfo (_("%B%F: could not read symbols\n"), abfd);
|
||||
asymbols = xmalloc (symsize);
|
||||
sym_count = bfd_canonicalize_symtab (abfd, asymbols);
|
||||
if (sym_count < 0)
|
||||
einfo (_("%B%F: could not read symbols\n"), abfd);
|
||||
if (entry != (lang_input_statement_type *) NULL)
|
||||
{
|
||||
entry->asymbols = asymbols;
|
||||
entry->symbol_count = sym_count;
|
||||
}
|
||||
}
|
||||
asymbols = bfd_get_outsymbols (abfd);
|
||||
}
|
||||
|
||||
/* The GNU Coding Standard requires that error messages
|
||||
@ -375,9 +351,6 @@ vfinfo (FILE *fp, const char *fmt, va_list arg, bfd_boolean is_warning)
|
||||
else
|
||||
lfinfo (fp, "%B:(%A+0x%v)", abfd, section, offset);
|
||||
|
||||
if (asymbols != NULL && entry == NULL)
|
||||
free (asymbols);
|
||||
|
||||
if (discard_last)
|
||||
{
|
||||
last_bfd = NULL;
|
||||
|
Reference in New Issue
Block a user