/* ldmisc.c
- Copyright (C) 1991-2014 Free Software Foundation, Inc.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
Written by Steve Chamberlain of Cygnus Support.
This file is part of the GNU Binutils.
#include "ldmain.h"
#include "ldfile.h"
#include "elf-bfd.h"
+#include "coff-bfd.h"
/*
%% literal %
if (abfd == NULL)
fprintf (fp, "%s generated", program_name);
- else if (abfd->my_archive)
+ else if (abfd->my_archive != NULL
+ && !bfd_is_thin_archive (abfd->my_archive))
fprintf (fp, "%s(%s)", abfd->my_archive->filename,
abfd->filename);
else
lang_input_statement_type *i;
i = va_arg (arg, lang_input_statement_type *);
- if (bfd_my_archive (i->the_bfd) != NULL)
+ if (i->the_bfd->my_archive != NULL
+ && !bfd_is_thin_archive (i->the_bfd->my_archive))
fprintf (fp, "(%s)",
- bfd_get_filename (bfd_my_archive (i->the_bfd)));
+ bfd_get_filename (i->the_bfd->my_archive));
fprintf (fp, "%s", i->local_sym_name);
- if (bfd_my_archive (i->the_bfd) == NULL
+ if ((i->the_bfd->my_archive == NULL
+ || bfd_is_thin_archive (i->the_bfd->my_archive))
&& filename_cmp (i->local_sym_name, i->filename) != 0)
fprintf (fp, " (%s)", i->filename);
}
The arguments are a BFD, a section, and an offset. */
{
static bfd *last_bfd;
- static char *last_file = NULL;
- static char *last_function = NULL;
+ static char *last_file;
+ static char *last_function;
bfd *abfd;
asection *section;
bfd_vma offset;
(eg emacs) to correctly locate multiple
errors in the same source file. */
if (last_bfd == NULL
- || last_file == NULL
|| last_function == NULL
|| last_bfd != abfd
+ || (last_file == NULL) != (filename == NULL)
|| (filename != NULL
&& filename_cmp (last_file, filename) != 0)
|| strcmp (last_function, functionname) != 0)
++fmt;
break;
}
- /* Fall thru */
+ /* Fallthru */
default:
fprintf (fp, "%%%c", fmt[-1]);
ld_abort (const char *file, int line, const char *fn)
{
if (fn != NULL)
- einfo (_("%P: internal error: aborting at %s line %d in %s\n"),
+ einfo (_("%P: internal error: aborting at %s:%d in %s\n"),
file, line, fn);
else
- einfo (_("%P: internal error: aborting at %s line %d\n"),
+ einfo (_("%P: internal error: aborting at %s:%d\n"),
file, line);
einfo (_("%P%F: please report this bug\n"));
xexit (1);