Add support for %x and %lx formats to the linker's vinfo() function.
This commit is contained in:
parent
0bda45b270
commit
c386bf4df5
@ -1,3 +1,7 @@
|
||||
2023-04-27 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* ldmisc.c (vfinfo): Add support for %x and %lx.
|
||||
|
||||
2023-04-18 mengqinggang <mengqinggang@loongson.cn>
|
||||
|
||||
* testsuite/ld-loongarch-elf/macro_op.d: Regenerated.
|
||||
|
18
ld/ldmisc.c
18
ld/ldmisc.c
@ -52,6 +52,7 @@
|
||||
%d integer, like printf
|
||||
%ld long, like printf
|
||||
%lu unsigned long, like printf
|
||||
%lx unsigned long, like printf
|
||||
%p native (host) void* pointer, like printf
|
||||
%pA section name from a section
|
||||
%pB filename from a bfd
|
||||
@ -63,6 +64,7 @@
|
||||
%s arbitrary string, like printf
|
||||
%u integer, like printf
|
||||
%v hex bfd_vma, no leading zeros
|
||||
%x integer, like printf
|
||||
*/
|
||||
|
||||
void
|
||||
@ -152,11 +154,12 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning)
|
||||
|
||||
case 'd':
|
||||
case 'u':
|
||||
case 'x':
|
||||
arg_type = Int;
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
if (*scan == 'd' || *scan == 'u')
|
||||
if (*scan == 'd' || *scan == 'u' || *scan == 'x')
|
||||
{
|
||||
++scan;
|
||||
arg_type = Long;
|
||||
@ -544,6 +547,12 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning)
|
||||
++arg_count;
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
/* unsigned integer, like printf */
|
||||
fprintf (fp, "%x", args[arg_no].i);
|
||||
++arg_count;
|
||||
break;
|
||||
|
||||
case 'l':
|
||||
if (*fmt == 'd')
|
||||
{
|
||||
@ -559,6 +568,13 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning)
|
||||
++fmt;
|
||||
break;
|
||||
}
|
||||
else if (*fmt == 'x')
|
||||
{
|
||||
fprintf (fp, "%lx", args[arg_no].l);
|
||||
++arg_count;
|
||||
++fmt;
|
||||
break;
|
||||
}
|
||||
/* Fallthru */
|
||||
|
||||
default:
|
||||
|
Loading…
x
Reference in New Issue
Block a user