From 6b9bd54c24dcf08e400e5b79a958e051ccfde30d Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 4 Aug 2022 10:12:51 +0930 Subject: Re: Get rid of fprintf_vma and sprintf_vma Commit f493c2174e messed the formatting in linker map files, particularly for 32-bit builds where a number of tests using map files regressed. I should have noticed the BFD64 conditional printing of spaces to line up output due to the original %V printing hex vmas with 16 digits when BFD64 and 8 digits when not. Besides that, it is nicer to print 32-bit vmas for 32-bit targets. So change %V back to be target dependent, now using bfd_sprintf_vma. Since minfo doesn't return the number of chars printed, that means some places that currently use %V must instead sprintf to a buffer in order to find the length printed. * ldmisc.h (print_spaces): Declare. (print_space): Change to a macro. * ldmisc.c (vfinfo): Use bfd_sprintf_vma for %V. Tidy %W case. (print_space): Delete. (print_spaces): New function. * emultempl/aix.em (print_symbol): Use print_spaces. * ldctor.c (ldctor_build_sets): Likewise. * ldmain.c (add_archive_element): Likewise. * ldlang.c (print_one_symbol, lang_print_asneeded): Likewise. (print_output_section_statement, print_data_statement): Likewise. (print_reloc_statement, print_padding_statement): Likewise. (print_assignment): Likewise. Also replace %V printing of vmas with printing to a buffer in order to properly format output. (print_input_section, lang_one_common): Likewise. --- ld/ldmain.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'ld/ldmain.c') diff --git a/ld/ldmain.c b/ld/ldmain.c index ea72b14..1bbddaa 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -990,11 +990,7 @@ add_archive_element (struct bfd_link_info *info, print_nl (); len = 0; } - while (len < 30) - { - print_space (); - ++len; - } + print_spaces (30 - len); if (from != NULL) minfo ("%pB ", from); -- cgit v1.1