From fb5b547845302fe64f118f9bc5eb0ef636cfafb7 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 13 Oct 2004 14:33:51 +0000 Subject: * strings.c (statbuf): New typedef. (file_stat): Define. (strings_object_file): Avoid using get_file_size, instead do the checks here, using file_stat. * configure.in (HAVE_STAT64): New test. * configure: Rebuilt. * config.in: Rebuilt. --- binutils/strings.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'binutils/strings.c') diff --git a/binutils/strings.c b/binutils/strings.c index 8a27fa8..17dbc7c 100644 --- a/binutils/strings.c +++ b/binutils/strings.c @@ -104,6 +104,13 @@ typedef off64_t file_off; typedef off_t file_off; #define file_open(s,m) fopen(s, m) #endif +#ifdef HAVE_STAT64 +typedef struct stat64 statbuf; +#define file_stat(f,s) stat64(f, s) +#else +typedef struct stat statbuf; +#define file_stat(f,s) stat(f, s) +#endif /* Radix for printing addresses (must be 8, 10 or 16). */ static int address_radix; @@ -370,8 +377,17 @@ strings_object_file (const char *file) static bfd_boolean strings_file (char *file) { - if (get_file_size (file) < 1) - return FALSE; + statbuf st; + + if (file_stat (file, &st) < 0) + { + if (errno == ENOENT) + non_fatal (_("'%s': No such file"), file); + else + non_fatal (_("Warning: could not locate '%s'. reason: %s"), + file, strerror (errno)); + return FALSE; + } /* If we weren't told to scan the whole file, try to open it as an object file and only look at -- cgit v1.1