From fed590bb658baee680c11753ecff1b96f0bf3112 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 15 Nov 2007 05:20:30 +0000 Subject: [PATCH] PR 5328 * opncls.c (separate_debug_file_exists): Use fopen/fread rather than open/read and open in binary mode. --- bfd/ChangeLog | 12 +++++++++--- bfd/opncls.c | 10 +++++----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ca4f83fcda9..a5b79ed786e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2007-11-15 Alan Modra + + PR 5328 + * opncls.c (separate_debug_file_exists): Use fopen/fread + rather than open/read and open in binary mode. + 2007-11-14 Richard Sandiford * elfxx-mips.c (mips_got_page_range): New structure. @@ -561,9 +567,9 @@ (read_rangelist): Change interface to accept a callback and data to allow caller to select the action peformed on a new range list read. (scan_unit_for_symbols): Use new interface of read_rangelist. - (parse_comp_unit): Create an arange set for each new comp unit. Use new - interface of read_rangelist. Replace call to arange_add with that to - dwarf2_comp_unit_arange_add. + (parse_comp_unit): Create an arange set for each new comp unit. + Use new interface of read_rangelist. Replace call to arange_add + with that to dwarf2_comp_unit_arange_add. (comp_unit_contains_address): Replace sequential search with a call to arange_set_lookup_address, which can handles large set efficiently. (stash_copy_local_aranges, stash_maybe_enable_arange_set, diff --git a/bfd/opncls.c b/bfd/opncls.c index 1ea05575ca5..47fef7036a2 100644 --- a/bfd/opncls.c +++ b/bfd/opncls.c @@ -1175,19 +1175,19 @@ separate_debug_file_exists (const char *name, const unsigned long crc) { static unsigned char buffer [8 * 1024]; unsigned long file_crc = 0; - int fd; + FILE *f; bfd_size_type count; BFD_ASSERT (name); - fd = open (name, O_RDONLY); - if (fd < 0) + f = real_fopen (name, FOPEN_RB); + if (f == NULL) return FALSE; - while ((count = read (fd, buffer, sizeof (buffer))) > 0) + while ((count = fread (buffer, 1, sizeof (buffer), f)) > 0) file_crc = bfd_calc_gnu_debuglink_crc32 (file_crc, buffer, count); - close (fd); + fclose (f); return crc == file_crc; } -- 2.30.2