* libbfd.c (bfd_write_bigendian_4byte_int): Return true iff success.
authorAlan Modra <amodra@gmail.com>
Mon, 18 Mar 2002 01:26:57 +0000 (01:26 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 18 Mar 2002 01:26:57 +0000 (01:26 +0000)
* libbfd.h: Regenerate.
* archive.c (coff_write_armap): Pass on failures from
bfd_write_bigendian_4byte_int.

bfd/ChangeLog
bfd/archive.c
bfd/libbfd.c
bfd/libbfd.h

index 1c396e49fa2f92f3dd17b1e285c64d3327442a94..e60d35afa03a74f9d4696ddee6b6353608b90b3b 100644 (file)
@@ -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
index fc2ba4572c38823674e4b1725f02175075604cdf..3547edef6a48cd507f18e70ec3f213b4318f1160 100644 (file)
@@ -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.  */
index 8560d2f5ff3036962de938e190a7a172b2d0a18f..a397d8215d792c756fc7f8ad3499dce27472db17 100644 (file)
@@ -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
index d864b22e24c051abb368ea8640d408c776ac98fe..e7ba1c58e4f102e05b4b583f5bb738235a273aa4 100644 (file)
@@ -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