/* ldcref.c -- output a cross reference table
- Copyright (C) 1996-2016 Free Software Foundation, Inc.
+ Copyright (C) 1996-2019 Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@cygnus.com>
This file is part of the GNU Binutils.
#include "sysdep.h"
#include "bfd.h"
#include "bfdlink.h"
+#include "ctf-api.h"
#include "libiberty.h"
#include "demangle.h"
#include "objalloc.h"
static struct bfd_hash_entry **old_table;
static unsigned int old_size;
static unsigned int old_count;
-static void * old_tab;
-static void * alloc_mark;
+static void *old_tab;
+static void *alloc_mark;
static size_t tabsize, entsize, refsize;
static size_t old_symcount;
struct cref_hash_entry *h;
struct cref_ref *r;
- if (! cref_initialized)
+ if (!cref_initialized)
{
if (!bfd_hash_table_init (&cref_table.root, cref_hash_newfunc,
sizeof (struct cref_hash_entry)))
static int
cref_sort_array (const void *a1, const void *a2)
{
- const struct cref_hash_entry * const *p1 =
- (const struct cref_hash_entry * const *) a1;
- const struct cref_hash_entry * const *p2 =
- (const struct cref_hash_entry * const *) a2;
+ const struct cref_hash_entry *const *p1
+ = (const struct cref_hash_entry *const *) a1;
+ const struct cref_hash_entry *const *p2
+ = (const struct cref_hash_entry *const *) a2;
if (demangling)
return strcmp ((*p1)->demangled, (*p2)->demangled);
}
fprintf (fp, _("File\n"));
- if (! cref_initialized)
+ if (!cref_initialized)
{
fprintf (fp, _("No symbols\n"));
return;
hl = bfd_link_hash_lookup (link_info.hash, h->root.string, FALSE,
FALSE, TRUE);
if (hl == NULL)
- einfo ("%P: symbol `%T' missing from main hash table\n",
+ einfo (_("%P: symbol `%pT' missing from main hash table\n"),
h->root.string);
else
{
putc (' ', fp);
++len;
}
- lfinfo (fp, "%B\n", r->abfd);
+ lfinfo (fp, "%pB\n", r->abfd);
len = 0;
}
}
putc (' ', fp);
++len;
}
- lfinfo (fp, "%B\n", r->abfd);
+ lfinfo (fp, "%pB\n", r->abfd);
len = 0;
}
}
for (r = h->refs; r != NULL; r = r->next)
{
- if (! r->def && ! r->common)
+ if (!r->def && !r->common)
{
while (len < FILECOL)
{
putc (' ', fp);
++len;
}
- lfinfo (fp, "%B\n", r->abfd);
+ lfinfo (fp, "%pB\n", r->abfd);
len = 0;
}
}
void
check_nocrossrefs (void)
{
- if (! cref_initialized)
+ if (!cref_initialized)
return;
cref_hash_traverse (&cref_table, check_nocrossref, NULL);
return;
if (!bfd_generic_link_read_symbols (abfd))
- einfo (_("%B%F: could not read symbols: %E\n"), abfd);
+ einfo (_("%F%P: %pB: could not read symbols: %E\n"), abfd);
for (syms = bfd_get_outsymbols (abfd); *syms; ++syms)
{
FALSE, TRUE);
if (hl == NULL)
{
- einfo (_("%P: symbol `%T' missing from main hash table\n"),
+ einfo (_("%P: symbol `%pT' missing from main hash table\n"),
h->root.string);
return TRUE;
}
defsec = hl->u.def.section->output_section;
if (defsec == NULL)
return TRUE;
- defsecname = bfd_get_section_name (defsec->owner, defsec);
+ defsecname = bfd_section_name (defsec);
for (ncrs = nocrossref_list; ncrs != NULL; ncrs = ncrs->next)
for (ncr = ncrs->list; ncr != NULL; ncr = ncr->next)
/* The struct is used to pass information from check_refs to
check_reloc_refs through bfd_map_over_sections. */
-struct check_refs_info {
+struct check_refs_info
+{
const char *sym_name;
asection *defsec;
struct lang_nocrossrefs *ncrs;
BFD might contain a prohibited cross reference. */
if (!bfd_generic_link_read_symbols (abfd))
- einfo (_("%B%F: could not read symbols: %E\n"), abfd);
+ einfo (_("%F%P: %pB: could not read symbols: %E\n"), abfd);
info.sym_name = name;
info.global = global;
arelent **p, **pend;
outsec = sec->output_section;
- outsecname = bfd_get_section_name (outsec->owner, outsec);
+ outsecname = bfd_section_name (outsec);
outdefsec = info->defsec->output_section;
- outdefsecname = bfd_get_section_name (outdefsec->owner, outdefsec);
+ outdefsecname = bfd_section_name (outdefsec);
/* The section where the symbol is defined is permitted. */
if (strcmp (outsecname, outdefsecname) == 0)
relsize = bfd_get_reloc_upper_bound (abfd, sec);
if (relsize < 0)
- einfo (_("%B%F: could not read relocs: %E\n"), abfd);
+ einfo (_("%F%P: %pB: could not read relocs: %E\n"), abfd);
if (relsize == 0)
return;
relpp = (arelent **) xmalloc (relsize);
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
if (relcount < 0)
- einfo (_("%B%F: could not read relocs: %E\n"), abfd);
+ einfo (_("%F%P: %pB: could not read relocs: %E\n"), abfd);
p = relpp;
pend = p + relcount;
if (q->sym_ptr_ptr != NULL
&& *q->sym_ptr_ptr != NULL
&& ((global
- && (bfd_is_und_section (bfd_get_section (*q->sym_ptr_ptr))
- || bfd_is_com_section (bfd_get_section (*q->sym_ptr_ptr))
+ && (bfd_is_und_section (bfd_asymbol_section (*q->sym_ptr_ptr))
+ || bfd_is_com_section (bfd_asymbol_section (*q->sym_ptr_ptr))
|| ((*q->sym_ptr_ptr)->flags & (BSF_GLOBAL
| BSF_WEAK)) != 0))
|| (!global
&& ((*q->sym_ptr_ptr)->flags & (BSF_LOCAL
| BSF_SECTION_SYM)) != 0
- && bfd_get_section (*q->sym_ptr_ptr) == info->defsec))
+ && bfd_asymbol_section (*q->sym_ptr_ptr) == info->defsec))
&& (symname != NULL
? strcmp (bfd_asymbol_name (*q->sym_ptr_ptr), symname) == 0
: ((*q->sym_ptr_ptr)->flags & BSF_SECTION_SYM) != 0))
in OUTSECNAME. This reloc is from a section which is
mapped into a section from which references to OUTSECNAME
are prohibited. We must report an error. */
- einfo (_("%X%C: prohibited cross reference from %s to `%T' in %s\n"),
+ einfo (_("%X%P: %C: prohibited cross reference from %s to `%pT' in %s\n"),
abfd, sec, q->address, outsecname,
bfd_asymbol_name (*q->sym_ptr_ptr), outdefsecname);
}