diff options
author | Alan Modra <amodra@bigpond.net.au> | 2007-11-15 05:20:30 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2007-11-15 05:20:30 +0000 |
commit | a629ee1c07e4918a18dc1f1f5a37b0c025fd6bfc (patch) | |
tree | 6f62b23f40a9a36d42329ee43bb84a28e3e51de5 | |
parent | d9fc6db75144c2cef52aa9b744823cfec4aff9aa (diff) | |
download | gdb-a629ee1c07e4918a18dc1f1f5a37b0c025fd6bfc.tar.gz |
PR 5328
* opncls.c (separate_debug_file_exists): Use fopen/fread
rather than open/read and open in binary mode.
-rw-r--r-- | bfd/ChangeLog | 12 | ||||
-rw-r--r-- | 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 <amodra@bigpond.net.au> + + 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 <richard@codesourcery.com> * 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; } |