X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2Fsize.c;h=dcfd9547b25cdd58db890f9fe0dc9a3ba9228d89;hb=c68c16371639f360d1b110eacf4b1a28ddb5cf53;hp=f035cab80b77be3a06142635991444c3b3399d48;hpb=32866df75ece22ec1fd88e99e3c5effe9238e072;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/size.c b/binutils/size.c index f035cab80b..dcfd9547b2 100644 --- a/binutils/size.c +++ b/binutils/size.c @@ -1,6 +1,5 @@ /* size.c -- report size of various sections of an executable file. - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -134,6 +133,7 @@ main (int argc, char **argv) program_name = *argv; xmalloc_set_program_name (program_name); + bfd_set_error_program_name (program_name); expandargv (&argc, &argv); @@ -272,7 +272,7 @@ calculate_common_size (bfd *abfd) if (storage < 0) bfd_fatal (bfd_get_filename (abfd)); if (storage) - syms = xmalloc (storage); + syms = (asymbol **) xmalloc (storage); symcount = bfd_canonicalize_symtab (abfd, syms); if (symcount < 0) @@ -366,7 +366,14 @@ display_archive (bfd *file) display_bfd (arfile); if (last_arfile != NULL) - bfd_close (last_arfile); + { + bfd_close (last_arfile); + + /* PR 17512: file: a244edbc. */ + if (last_arfile == arfile) + return; + } + last_arfile = arfile; } @@ -406,17 +413,15 @@ display_file (char *filename) } } -/* This is what lexical functions are for. */ - static int size_number (bfd_size_type num) { char buffer[40]; sprintf (buffer, - (radix == decimal ? "%lu" : - ((radix == octal) ? "0%lo" : "0x%lx")), - (unsigned long) num); + (radix == decimal ? "%" BFD_VMA_FMT "u" : + ((radix == octal) ? "0%" BFD_VMA_FMT "o" : "0x%" BFD_VMA_FMT "x")), + num); return strlen (buffer); } @@ -427,9 +432,9 @@ rprint_number (int width, bfd_size_type num) char buffer[40]; sprintf (buffer, - (radix == decimal ? "%lu" : - ((radix == octal) ? "0%lo" : "0x%lx")), - (unsigned long) num); + (radix == decimal ? "%" BFD_VMA_FMT "u" : + ((radix == octal) ? "0%" BFD_VMA_FMT "o" : "0x%" BFD_VMA_FMT "x")), + num); printf ("%*s", width, buffer); }