X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2Fnm.c;h=04067b158130b7cb2caa716e678acd4b6b9c156f;hb=8729a6f6a5148fb4dcb280a95dc0bdc35f02b96e;hp=862b2b95ae76ef526a2591f8b4781a8cb4628d69;hpb=a4b8af353975485fc9c8b9cfd7b199729420fd0d;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/nm.c b/binutils/nm.c index 862b2b95ae..04067b1581 100644 --- a/binutils/nm.c +++ b/binutils/nm.c @@ -164,7 +164,11 @@ static char value_format_32bit[] = "%08lx"; #if BFD_HOST_64BIT_LONG static char value_format_64bit[] = "%016lx"; #elif BFD_HOST_64BIT_LONG_LONG +#ifndef __MSVCRT__ static char value_format_64bit[] = "%016llx"; +#else +static char value_format_64bit[] = "%016I64x"; +#endif #endif static int print_width = 0; static int print_radix = 16; @@ -285,7 +289,11 @@ set_print_radix (char *radix) #if BFD_HOST_64BIT_LONG value_format_64bit[5] = *radix; #elif BFD_HOST_64BIT_LONG_LONG +#ifndef __MSVCRT__ value_format_64bit[6] = *radix; +#else + value_format_64bit[7] = *radix; +#endif #endif other_format[3] = desc_format[3] = *radix; break; @@ -428,6 +436,8 @@ filter_symbols (bfd *abfd, bfd_boolean is_dynamic, void *minisyms, else if (external_only) keep = ((sym->flags & BSF_GLOBAL) != 0 || (sym->flags & BSF_WEAK) != 0 + /* PR binutls/12753: Unique symbols are global too. */ + || (sym->flags & BSF_GNU_UNIQUE) != 0 || bfd_is_und_section (sym->section) || bfd_is_com_section (sym->section)); else @@ -1093,6 +1103,7 @@ display_rel_file (bfd *abfd, bfd *archive_bfd) print_size_symbols (abfd, dynamic, symsizes, symcount, archive_bfd); free (minisyms); + free (symsizes); } static void @@ -1191,6 +1202,10 @@ display_file (char *filename) return FALSE; } + /* If printing line numbers, decompress the debug sections. */ + if (line_numbers) + file->flags |= BFD_DECOMPRESS; + if (bfd_check_format (file, bfd_archive)) { display_archive (file);