diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 50d8344476..f186ff6f1d 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,10 @@ +2001-08-25 H.J. Lu + + * nm.c (print_width): New. + (display_rel_file): Set `print_width' according to + bfd_sprintf_vma. + (print_symbol_info_bsd): Check `print_width' instead of BFD64. + 2001-08-24 Alexandre Oliva * objcopy.c (use_alt_mach_code): New variable. diff --git a/binutils/nm.c b/binutils/nm.c index 3c5ca54f3f..c422e9bf8e 100644 --- a/binutils/nm.c +++ b/binutils/nm.c @@ -245,6 +245,11 @@ static char value_format[] = "%016lx"; /* We don't use value_format for this case. */ #endif #endif +#ifdef BFD64 +static int print_width = 16; +#else +static int print_width = 8; +#endif static int print_radix = 16; /* Print formats for printing stab info. */ static char other_format[] = "%02x"; @@ -939,6 +944,7 @@ display_rel_file (abfd, archive_bfd) PTR minisyms; unsigned int size; struct size_sym *symsizes; + char buf[30]; if (! dynamic) { @@ -959,6 +965,9 @@ display_rel_file (abfd, archive_bfd) return; } + bfd_sprintf_vma (abfd, buf, (bfd_vma) -1); + print_width = strlen (buf); + /* Discard the symbols we don't want to print. It's OK to do this in place; we'll free the storage anyway (after printing). */ @@ -1475,9 +1484,8 @@ print_symbol_info_bsd (info, abfd) { if (bfd_is_undefined_symclass (info->type)) { -#ifdef BFD64 - printf (" "); -#endif + if (print_width == 16) + printf (" "); printf (" "); } else