From 87870682f3a7fc29208026dfa4aac75b195cc990 Mon Sep 17 00:00:00 2001 From: Jozef Lawrynowicz Date: Fri, 28 Aug 2020 13:56:53 +0100 Subject: [PATCH] LD: Add new %pU vfinfo format for printing linker script name The %pT vfinfo format prints the linker script name with a line number, however sometimes it may be necessary to print the linker script name without any associated line number. ld/ChangeLog: * ldmisc.c (vfinfo): Support new "%pU" format specifier. --- ld/ChangeLog | 4 ++++ ld/ldmisc.c | 9 ++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 16274e8327e..e2ca7f0df3d 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2020-08-28 Jozef Lawrynowicz + + * ldmisc.c (vfinfo): Support new "%pU" format specifier. + 2020-08-28 Cooper Qu * emulparams/cskyelf.sh: Support attribute section. diff --git a/ld/ldmisc.c b/ld/ldmisc.c index 418e8d5c6ed..9074a8333c8 100644 --- a/ld/ldmisc.c +++ b/ld/ldmisc.c @@ -59,6 +59,7 @@ %pR info about a relent %pS print script file and linenumber from etree_type. %pT symbol name + %pU print script file without linenumber from etree_type. %s arbitrary string, like printf %u integer, like printf %v hex bfd_vma, no leading zeros @@ -483,9 +484,9 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning) relent->addend, relent->howto->name); } - else if (*fmt == 'S') + else if (*fmt == 'S' || *fmt == 'U') { - /* Print script file and linenumber. */ + /* Print script file and perhaps the associated linenumber. */ etree_type node; etree_type *tp = (etree_type *) args[arg_no].p; @@ -497,8 +498,10 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bfd_boolean is_warning) tp->type.filename = ldlex_filename (); tp->type.lineno = lineno; } - if (tp->type.filename != NULL) + if (tp->type.filename != NULL && fmt[-1] == 'S') fprintf (fp, "%s:%u", tp->type.filename, tp->type.lineno); + else if (tp->type.filename != NULL && fmt[-1] == 'U') + fprintf (fp, "%s", tp->type.filename); } else if (*fmt == 'T') { -- 2.39.5