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.
This commit is contained in:
Jozef Lawrynowicz 2020-08-28 13:56:53 +01:00
parent 7ca371dba5
commit 87870682f3
2 changed files with 10 additions and 3 deletions

View File

@ -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.

View File

@ -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')
{