diff options
author | Alan Modra <amodra@gmail.com> | 2002-03-18 01:26:57 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2002-03-18 01:26:57 +0000 |
commit | 4dae1ae7485e87401ae69bcc4f399c11a089b0d8 (patch) | |
tree | 3af9a3a190b020eef39b22446254ed36881493ae /bfd | |
parent | 2ef7d709f81d81bc8e4ee121ceaa2e249ce21841 (diff) | |
download | gdb-4dae1ae7485e87401ae69bcc4f399c11a089b0d8.zip gdb-4dae1ae7485e87401ae69bcc4f399c11a089b0d8.tar.gz gdb-4dae1ae7485e87401ae69bcc4f399c11a089b0d8.tar.bz2 |
* libbfd.c (bfd_write_bigendian_4byte_int): Return true iff success.
* libbfd.h: Regenerate.
* archive.c (coff_write_armap): Pass on failures from
bfd_write_bigendian_4byte_int.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/archive.c | 6 | ||||
-rw-r--r-- | bfd/libbfd.c | 7 | ||||
-rw-r--r-- | bfd/libbfd.h | 2 |
4 files changed, 15 insertions, 7 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 1c396e4..e60d35a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2002-03-18 Alan Modra <amodra@bigpond.net.au> + + * libbfd.c (bfd_write_bigendian_4byte_int): Return true iff success. + * libbfd.h: Regenerate. + * archive.c (coff_write_armap): Pass on failures from + bfd_write_bigendian_4byte_int. + 2002-03-14 H.J. Lu <hjl@gnu.org> * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set the BFD diff --git a/bfd/archive.c b/bfd/archive.c index fc2ba45..3547ede 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -2190,7 +2190,8 @@ coff_write_armap (arch, elength, map, symbol_count, stridx) != sizeof (struct ar_hdr)) return false; - bfd_write_bigendian_4byte_int (arch, symbol_count); + if (!bfd_write_bigendian_4byte_int (arch, symbol_count)) + return false; /* Two passes, first write the file offsets for each symbol - remembering that each offset is on a two byte boundary. */ @@ -2207,7 +2208,8 @@ coff_write_armap (arch, elength, map, symbol_count, stridx) while (count < symbol_count && map[count].u.abfd == current) { - bfd_write_bigendian_4byte_int (arch, archive_member_file_ptr); + if (!bfd_write_bigendian_4byte_int (arch, archive_member_file_ptr)) + return false; count++; } /* Add size of this archive entry. */ diff --git a/bfd/libbfd.c b/bfd/libbfd.c index 8560d2f..a397d82 100644 --- a/bfd/libbfd.c +++ b/bfd/libbfd.c @@ -593,7 +593,7 @@ INTERNAL_FUNCTION bfd_write_bigendian_4byte_int SYNOPSIS - void bfd_write_bigendian_4byte_int (bfd *, unsigned int); + boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); DESCRIPTION Write a 4 byte integer @var{i} to the output BFD @var{abfd}, in big @@ -601,15 +601,14 @@ DESCRIPTION archives. */ -void +boolean bfd_write_bigendian_4byte_int (abfd, i) bfd *abfd; unsigned int i; { bfd_byte buffer[4]; bfd_putb32 ((bfd_vma) i, buffer); - if (bfd_bwrite ((PTR) buffer, (bfd_size_type) 4, abfd) != 4) - abort (); + return bfd_bwrite ((PTR) buffer, (bfd_size_type) 4, abfd) == 4; } bfd_vma diff --git a/bfd/libbfd.h b/bfd/libbfd.h index d864b22..e7ba1c5 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -586,7 +586,7 @@ extern boolean _bfd_sh_align_load_span /* And more follows */ -void +boolean bfd_write_bigendian_4byte_int PARAMS ((bfd *, unsigned int)); unsigned int |