aboutsummaryrefslogtreecommitdiff
path: root/ld/ldmisc.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2018-10-29 18:10:06 +1030
committerAlan Modra <amodra@gmail.com>2018-10-29 18:21:05 +1030
commit727a29badd95a68d08b86fec0b98702ce756c660 (patch)
tree83df8737f89d9e8cee74c6d1e98db4475a7555fb /ld/ldmisc.c
parent5c87f94bb85e5b8e715aa7f947ecc602960f20ee (diff)
downloadgdb-727a29badd95a68d08b86fec0b98702ce756c660.zip
gdb-727a29badd95a68d08b86fec0b98702ce756c660.tar.gz
gdb-727a29badd95a68d08b86fec0b98702ce756c660.tar.bz2
Report scripts and libraries searched for ld --trace
The idea of this change is to make -t output useful for users wanting to package all the object files involved in linking for a bug report. Something like the following should do the trick. gcc hello.c -save-temps -Wl,-t | xargs realpath | sort | uniq > files tar cJf test.tar.xz `cat files` * ldlang.c (load_symbols): When -t, print file names for script files and archives. * ldmain.c (trace_files): Make an int. (add_archive_element): Print archive elements only with multiple -t options, or when archive is thin. * ldmain.h (trace_files): Update. * ldmisc.c (vfinfo): Don't print both original path and path in sysroot. * lexsup.c (parse_args <t>): Increment trace_files.
Diffstat (limited to 'ld/ldmisc.c')
-rw-r--r--ld/ldmisc.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/ld/ldmisc.c b/ld/ldmisc.c
index 3e2a190..fd6a388 100644
--- a/ld/ldmisc.c
+++ b/ld/ldmisc.c
@@ -476,15 +476,13 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning)
fmt++;
i = (lang_input_statement_type *) args[arg_no].p;
++arg_count;
- if (i->the_bfd->my_archive != NULL
+ if (i->the_bfd != NULL
+ && i->the_bfd->my_archive != NULL
&& !bfd_is_thin_archive (i->the_bfd->my_archive))
- fprintf (fp, "(%s)",
- bfd_get_filename (i->the_bfd->my_archive));
- fprintf (fp, "%s", i->local_sym_name);
- 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);
+ fprintf (fp, "(%s)%s", i->the_bfd->my_archive->filename,
+ i->local_sym_name);
+ else
+ fprintf (fp, "%s", i->filename);
}
else if (*fmt == 'R')
{