[binutils-gdb] LD: Add new %pU vfinfo format for printing linker script name

Jozef Lawrynowicz jozefl@sourceware.org
Fri Aug 28 13:02:03 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=87870682f3a7fc29208026dfa4aac75b195cc990

commit 87870682f3a7fc29208026dfa4aac75b195cc990
Author: Jozef Lawrynowicz <jozef.l@mittosystems.com>
Date:   Fri Aug 28 13:56:53 2020 +0100

    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.

Diff:
---
 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  <jozef.l@mittosystems.com>
+
+	* ldmisc.c (vfinfo): Support new "%pU" format specifier.
+
 2020-08-28  Cooper Qu  <cooper.qu@linux.alibaba.com>
 
 	* 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')
 		{


More information about the Binutils-cvs mailing list