* elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
[deliverable/binutils-gdb.git] / bfd / aoutx.h
index 246742f8a3f11e24bb4b669c44ee3b20b3cbf295..0a3c05ad6e55e90598de85d46bc646e784fc786b 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD semi-generic back-end for a.out binaries.
-   Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
+   2001
    Free Software Foundation, Inc.
    Written by Cygnus Support.
 
@@ -119,9 +120,9 @@ DESCRIPTION
 
 #define KEEPIT udata.i
 
-#include <ctype.h>
 #include "bfd.h"
 #include "sysdep.h"
+#include "safe-ctype.h"
 #include "bfdlink.h"
 
 #include "libaout.h"
@@ -138,6 +139,8 @@ static boolean translate_to_native_sym_flags
 static void adjust_o_magic PARAMS ((bfd *, struct internal_exec *));
 static void adjust_z_magic PARAMS ((bfd *, struct internal_exec *));
 static void adjust_n_magic PARAMS ((bfd *, struct internal_exec *));
+reloc_howto_type * NAME(aout,reloc_type_lookup)
+  PARAMS ((bfd *, bfd_reloc_code_real_type));
 
 /*
 SUBSECTION
@@ -155,9 +158,10 @@ DESCRIPTION
 */
 #ifndef CTOR_TABLE_RELOC_HOWTO
 #define CTOR_TABLE_RELOC_IDX 2
-#define CTOR_TABLE_RELOC_HOWTO(BFD) ((obj_reloc_entry_size(BFD) == RELOC_EXT_SIZE \
-            ? howto_table_ext : howto_table_std) \
-           + CTOR_TABLE_RELOC_IDX)
+#define CTOR_TABLE_RELOC_HOWTO(BFD)                                    \
+  ((obj_reloc_entry_size (BFD) == RELOC_EXT_SIZE                       \
+    ? howto_table_ext : howto_table_std)                               \
+   + CTOR_TABLE_RELOC_IDX)
 #endif
 
 #ifndef MY_swap_std_reloc_in
@@ -224,23 +228,23 @@ reloc_howto_type howto_table_ext[] =
 
 reloc_howto_type howto_table_std[] = {
   /* type              rs size bsz  pcrel bitpos ovrf                     sf name     part_inpl readmask  setmask    pcdone */
-HOWTO( 0,             0,  0,   8,  false, 0, complain_overflow_bitfield,0,"8",         true, 0x000000ff,0x000000ff, false),
-HOWTO( 1,             0,  1,   16, false, 0, complain_overflow_bitfield,0,"16",        true, 0x0000ffff,0x0000ffff, false),
-HOWTO( 2,             0,  2,   32, false, 0, complain_overflow_bitfield,0,"32",        true, 0xffffffff,0xffffffff, false),
-HOWTO( 3,             0,  4,   64, false, 0, complain_overflow_bitfield,0,"64",        true, 0xdeaddead,0xdeaddead, false),
-HOWTO( 4,             0,  0,   8,  true,  0, complain_overflow_signed,  0,"DISP8",     true, 0x000000ff,0x000000ff, false),
-HOWTO( 5,             0,  1,   16, true,  0, complain_overflow_signed,  0,"DISP16",    true, 0x0000ffff,0x0000ffff, false),
-HOWTO( 6,             0,  2,   32, true,  0, complain_overflow_signed,  0,"DISP32",    true, 0xffffffff,0xffffffff, false),
-HOWTO( 7,             0,  4,   64, true,  0, complain_overflow_signed,  0,"DISP64",    true, 0xfeedface,0xfeedface, false),
-HOWTO( 8,             0,  2,    0, false, 0, complain_overflow_bitfield,0,"GOT_REL",   false,         0,0x00000000, false),
-HOWTO( 9,             0,  1,   16, false, 0, complain_overflow_bitfield,0,"BASE16",    false,0xffffffff,0xffffffff, false),
-HOWTO(10,             0,  2,   32, false, 0, complain_overflow_bitfield,0,"BASE32",    false,0xffffffff,0xffffffff, false),
+HOWTO ( 0,            0,  0,   8,  false, 0, complain_overflow_bitfield,0,"8",         true, 0x000000ff,0x000000ff, false),
+HOWTO ( 1,            0,  1,   16, false, 0, complain_overflow_bitfield,0,"16",        true, 0x0000ffff,0x0000ffff, false),
+HOWTO ( 2,            0,  2,   32, false, 0, complain_overflow_bitfield,0,"32",        true, 0xffffffff,0xffffffff, false),
+HOWTO ( 3,            0,  4,   64, false, 0, complain_overflow_bitfield,0,"64",        true, 0xdeaddead,0xdeaddead, false),
+HOWTO ( 4,            0,  0,   8,  true,  0, complain_overflow_signed,  0,"DISP8",     true, 0x000000ff,0x000000ff, false),
+HOWTO ( 5,            0,  1,   16, true,  0, complain_overflow_signed,  0,"DISP16",    true, 0x0000ffff,0x0000ffff, false),
+HOWTO ( 6,            0,  2,   32, true,  0, complain_overflow_signed,  0,"DISP32",    true, 0xffffffff,0xffffffff, false),
+HOWTO ( 7,            0,  4,   64, true,  0, complain_overflow_signed,  0,"DISP64",    true, 0xfeedface,0xfeedface, false),
+HOWTO ( 8,            0,  2,    0, false, 0, complain_overflow_bitfield,0,"GOT_REL",   false,         0,0x00000000, false),
+HOWTO ( 9,            0,  1,   16, false, 0, complain_overflow_bitfield,0,"BASE16",    false,0xffffffff,0xffffffff, false),
+HOWTO (10,            0,  2,   32, false, 0, complain_overflow_bitfield,0,"BASE32",    false,0xffffffff,0xffffffff, false),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
-  HOWTO(16,           0,  2,    0, false, 0, complain_overflow_bitfield,0,"JMP_TABLE", false,         0,0x00000000, false),
+  HOWTO (16,          0,  2,    0, false, 0, complain_overflow_bitfield,0,"JMP_TABLE", false,         0,0x00000000, false),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
@@ -256,7 +260,7 @@ EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
-  HOWTO(32,           0,  2,    0, false, 0, complain_overflow_bitfield,0,"RELATIVE",  false,         0,0x00000000, false),
+  HOWTO (32,          0,  2,    0, false, 0, complain_overflow_bitfield,0,"RELATIVE",  false,         0,0x00000000, false),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
@@ -264,18 +268,18 @@ EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
 EMPTY_HOWTO (-1),
-  HOWTO(40,           0,  2,    0, false, 0, complain_overflow_bitfield,0,"BASEREL",   false,         0,0x00000000, false),
+  HOWTO (40,          0,  2,    0, false, 0, complain_overflow_bitfield,0,"BASEREL",   false,         0,0x00000000, false),
 };
 
-#define TABLE_SIZE(TABLE)      (sizeof (TABLE)/sizeof (TABLE[0]))
+#define TABLE_SIZE(TABLE)      (sizeof (TABLE) / sizeof (TABLE[0]))
 
 reloc_howto_type *
 NAME(aout,reloc_type_lookup) (abfd,code)
      bfd *abfd;
      bfd_reloc_code_real_type code;
 {
-#define EXT(i,j)       case i: return &howto_table_ext[j]
-#define STD(i,j)       case i: return &howto_table_std[j]
+#define EXT(i, j)      case i: return &howto_table_ext[j]
+#define STD(i, j)      case i: return &howto_table_std[j]
   int ext = obj_reloc_entry_size (abfd) == RELOC_EXT_SIZE;
   if (code == BFD_RELOC_CTOR)
     switch (bfd_get_arch_info (abfd)->bits_per_address)
@@ -365,7 +369,7 @@ NAME(aout,swap_exec_header_in) (abfd, raw_bytes, execp)
      are memcmp'd, and thus the contents do matter.  */
   memset ((PTR) execp, 0, sizeof (struct internal_exec));
   /* Now fill in fields in the execp, from the bytes in the raw data.  */
-  execp->a_info   = bfd_h_get_32 (abfd, bytes->e_info);
+  execp->a_info   = H_GET_32 (abfd, bytes->e_info);
   execp->a_text   = GET_WORD (abfd, bytes->e_text);
   execp->a_data   = GET_WORD (abfd, bytes->e_data);
   execp->a_bss    = GET_WORD (abfd, bytes->e_bss);
@@ -400,7 +404,7 @@ NAME(aout,swap_exec_header_out) (abfd, execp, raw_bytes)
   struct external_exec *bytes = (struct external_exec *)raw_bytes;
 
   /* Now fill in fields in the raw data, from the fields in the exec struct.  */
-  bfd_h_put_32 (abfd, execp->a_info  , bytes->e_info);
+  H_PUT_32 (abfd, execp->a_info  , bytes->e_info);
   PUT_WORD (abfd, execp->a_text  , bytes->e_text);
   PUT_WORD (abfd, execp->a_data  , bytes->e_data);
   PUT_WORD (abfd, execp->a_bss   , bytes->e_bss);
@@ -453,8 +457,9 @@ NAME(aout,some_aout_object_p) (abfd, execp, callback_to_real_object_p)
 {
   struct aout_data_struct *rawptr, *oldrawptr;
   const bfd_target *result;
+  bfd_size_type amt = sizeof (struct aout_data_struct);
 
-  rawptr = (struct aout_data_struct  *) bfd_zalloc (abfd, sizeof (struct aout_data_struct ));
+  rawptr = (struct aout_data_struct  *) bfd_zalloc (abfd, amt);
   if (rawptr == NULL)
     return 0;
 
@@ -479,7 +484,7 @@ NAME(aout,some_aout_object_p) (abfd, execp, callback_to_real_object_p)
   /* Setting of EXEC_P has been deferred to the bottom of this function */
   if (execp->a_syms)
     abfd->flags |= HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS;
-  if (N_DYNAMIC(*execp))
+  if (N_DYNAMIC (*execp))
     abfd->flags |= DYNAMIC;
 
   if (N_MAGIC (*execp) == ZMAGIC)
@@ -556,37 +561,38 @@ NAME(aout,some_aout_object_p) (abfd, execp, callback_to_real_object_p)
 
   struct exec *execp = exec_hdr (abfd);
 
-  obj_textsec (abfd)->size = N_TXTSIZE(*execp);
-  obj_textsec (abfd)->raw_size = N_TXTSIZE(*execp);
+  obj_textsec (abfd)->size = N_TXTSIZE (*execp);
+  obj_textsec (abfd)->raw_size = N_TXTSIZE (*execp);
   /* data and bss are already filled in since they're so standard */
 
   /* The virtual memory addresses of the sections */
-  obj_textsec (abfd)->vma = N_TXTADDR(*execp);
-  obj_datasec (abfd)->vma = N_DATADDR(*execp);
-  obj_bsssec  (abfd)->vma = N_BSSADDR(*execp);
+  obj_textsec (abfd)->vma = N_TXTADDR (*execp);
+  obj_datasec (abfd)->vma = N_DATADDR (*execp);
+  obj_bsssec  (abfd)->vma = N_BSSADDR (*execp);
 
   /* The file offsets of the sections */
-  obj_textsec (abfd)->filepos = N_TXTOFF(*execp);
-  obj_datasec (abfd)->filepos = N_DATOFF(*execp);
+  obj_textsec (abfd)->filepos = N_TXTOFF (*execp);
+  obj_datasec (abfd)->filepos = N_DATOFF (*execp);
 
   /* The file offsets of the relocation info */
-  obj_textsec (abfd)->rel_filepos = N_TRELOFF(*execp);
-  obj_datasec (abfd)->rel_filepos = N_DRELOFF(*execp);
+  obj_textsec (abfd)->rel_filepos = N_TRELOFF (*execp);
+  obj_datasec (abfd)->rel_filepos = N_DRELOFF (*execp);
 
   /* The file offsets of the string table and symbol table.  */
   obj_str_filepos (abfd) = N_STROFF (*execp);
   obj_sym_filepos (abfd) = N_SYMOFF (*execp);
 
   /* Determine the architecture and machine type of the object file.  */
-  switch (N_MACHTYPE (*exec_hdr (abfd))) {
-  default:
-    abfd->obj_arch = bfd_arch_obscure;
-    break;
-  }
+  switch (N_MACHTYPE (*exec_hdr (abfd)))
+    {
+    default:
+      abfd->obj_arch = bfd_arch_obscure;
+      break;
+    }
 
-  adata(abfd)->page_size = TARGET_PAGE_SIZE;
-  adata(abfd)->segment_size = SEGMENT_SIZE;
-  adata(abfd)->exec_bytes_size = EXEC_BYTES_SIZE;
+  adata (abfd)->page_size = TARGET_PAGE_SIZE;
+  adata (abfd)->segment_size = SEGMENT_SIZE;
+  adata (abfd)->exec_bytes_size = EXEC_BYTES_SIZE;
 
   return abfd->xvec;
 
@@ -618,8 +624,9 @@ NAME(aout,some_aout_object_p) (abfd, execp, callback_to_real_object_p)
      sets the entry point, and that is likely to be non-zero for most systems.  */
 
   if (execp->a_entry != 0
-      || (execp->a_entry >= obj_textsec(abfd)->vma
-         && execp->a_entry < obj_textsec(abfd)->vma + obj_textsec(abfd)->_raw_size))
+      || (execp->a_entry >= obj_textsec (abfd)->vma
+         && execp->a_entry < (obj_textsec (abfd)->vma
+                              + obj_textsec (abfd)->_raw_size)))
     abfd->flags |= EXEC_P;
 #ifdef STAT_FOR_EXEC
   else
@@ -635,7 +642,7 @@ NAME(aout,some_aout_object_p) (abfd, execp, callback_to_real_object_p)
         issue.  Many kernels are loaded at non standard addresses.  */
       if (abfd->iostream != NULL
          && (abfd->flags & BFD_IN_MEMORY) == 0
-         && (fstat(fileno((FILE *) (abfd->iostream)), &stat_buf) == 0)
+         && (fstat (fileno ((FILE *) (abfd->iostream)), &stat_buf) == 0)
          && ((stat_buf.st_mode & 0111) != 0))
        abfd->flags |= EXEC_P;
     }
@@ -672,22 +679,21 @@ boolean
 NAME(aout,mkobject) (abfd)
      bfd *abfd;
 {
-  struct aout_data_struct  *rawptr;
+  struct aout_data_struct *rawptr;
+  bfd_size_type amt = sizeof (struct aout_data_struct);
 
   bfd_set_error (bfd_error_system_call);
 
-  /* Use an intermediate variable for clarity */
-  rawptr = (struct aout_data_struct *)bfd_zalloc (abfd, sizeof (struct aout_data_struct ));
-
+  rawptr = (struct aout_data_struct *) bfd_zalloc (abfd, amt);
   if (rawptr == NULL)
     return false;
 
   abfd->tdata.aout_data = rawptr;
   exec_hdr (abfd) = &(rawptr->e);
 
-  obj_textsec (abfd) = (asection *)NULL;
-  obj_datasec (abfd) = (asection *)NULL;
-  obj_bsssec (abfd) = (asection *)NULL;
+  obj_textsec (abfd) = (asection *) NULL;
+  obj_datasec (abfd) = (asection *) NULL;
+  obj_bsssec (abfd) = (asection *) NULL;
 
   return true;
 }
@@ -722,93 +728,102 @@ NAME(aout,machine_type) (arch, machine, unknown)
   arch_flags = M_UNKNOWN;
   *unknown = true;
 
-  switch (arch) {
-  case bfd_arch_sparc:
-    if (machine == 0
-       || machine == bfd_mach_sparc
-       || machine == bfd_mach_sparc_sparclite
-       || machine == bfd_mach_sparc_sparclite_le
-       || machine == bfd_mach_sparc_v9)
-      arch_flags = M_SPARC;
-    else if (machine == bfd_mach_sparc_sparclet)
-      arch_flags = M_SPARCLET;
-    break;
-
-  case bfd_arch_m68k:
-    switch (machine) {
-    case 0:              arch_flags = M_68010; break;
-    case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = false; break;
-    case bfd_mach_m68010: arch_flags = M_68010; break;
-    case bfd_mach_m68020: arch_flags = M_68020; break;
-    default:             arch_flags = M_UNKNOWN; break;
-    }
-    break;
-
-  case bfd_arch_i386:
-    if (machine == 0)  arch_flags = M_386;
-    break;
-
-  case bfd_arch_a29k:
-    if (machine == 0)  arch_flags = M_29K;
-    break;
-
-  case bfd_arch_arm:
-    if (machine == 0)  arch_flags = M_ARM;
-    break;
-
-  case bfd_arch_mips:
-    switch (machine) {
-    case 0:
-    case bfd_mach_mips3000:
-    case bfd_mach_mips3900:
-      arch_flags = M_MIPS1;
+  switch (arch)
+    {
+    case bfd_arch_sparc:
+      if (machine == 0
+         || machine == bfd_mach_sparc
+         || machine == bfd_mach_sparc_sparclite
+         || machine == bfd_mach_sparc_sparclite_le
+         || machine == bfd_mach_sparc_v9)
+       arch_flags = M_SPARC;
+      else if (machine == bfd_mach_sparc_sparclet)
+       arch_flags = M_SPARCLET;
+      break;
+
+    case bfd_arch_m68k:
+      switch (machine)
+       {
+       case 0:               arch_flags = M_68010; break;
+       case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = false; break;
+       case bfd_mach_m68010: arch_flags = M_68010; break;
+       case bfd_mach_m68020: arch_flags = M_68020; break;
+       default:              arch_flags = M_UNKNOWN; break;
+       }
       break;
-    case bfd_mach_mips6000:
-      arch_flags = M_MIPS2;
+
+    case bfd_arch_i386:
+      if (machine == 0)
+       arch_flags = M_386;
       break;
-    case bfd_mach_mips4000:
-    case bfd_mach_mips4010:
-    case bfd_mach_mips4100:
-    case bfd_mach_mips4300:
-    case bfd_mach_mips4400:
-    case bfd_mach_mips4600:
-    case bfd_mach_mips4650:
-    case bfd_mach_mips8000:
-    case bfd_mach_mips10000:
-    case bfd_mach_mips16:
-    case bfd_mach_mips32:
-    case bfd_mach_mips32_4k:
-    case bfd_mach_mips5:
-    case bfd_mach_mips64:
-      /* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc.  */
-      arch_flags = M_MIPS2;
+
+    case bfd_arch_a29k:
+      if (machine == 0)
+       arch_flags = M_29K;
       break;
-    default:
-      arch_flags = M_UNKNOWN;
+
+    case bfd_arch_arm:
+      if (machine == 0)
+       arch_flags = M_ARM;
       break;
-    }
-    break;
-
-  case bfd_arch_ns32k:
-    switch (machine) {
-    case 0:                    arch_flags = M_NS32532; break;
-    case 32032:                arch_flags = M_NS32032; break;
-    case 32532:                arch_flags = M_NS32532; break;
-    default:           arch_flags = M_UNKNOWN; break;
-    }
-    break;
 
-  case bfd_arch_vax:
-    *unknown = false;
-    break;
+    case bfd_arch_mips:
+      switch (machine)
+       {
+       case 0:
+       case bfd_mach_mips3000:
+       case bfd_mach_mips3900:
+         arch_flags = M_MIPS1;
+         break;
+       case bfd_mach_mips6000:
+         arch_flags = M_MIPS2;
+         break;
+       case bfd_mach_mips4000:
+       case bfd_mach_mips4010:
+       case bfd_mach_mips4100:
+       case bfd_mach_mips4300:
+       case bfd_mach_mips4400:
+       case bfd_mach_mips4600:
+       case bfd_mach_mips4650:
+       case bfd_mach_mips8000:
+       case bfd_mach_mips10000:
+       case bfd_mach_mips12000:
+       case bfd_mach_mips16:
+       case bfd_mach_mipsisa32:
+       case bfd_mach_mips5:
+       case bfd_mach_mipsisa64:
+       case bfd_mach_mips_sb1:
+         /* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc.  */
+         arch_flags = M_MIPS2;
+         break;
+       default:
+         arch_flags = M_UNKNOWN;
+         break;
+       }
+      break;
 
-  case bfd_arch_cris:
-    if (machine == 0 || machine == 255)        arch_flags = M_CRIS;
-    break;
+    case bfd_arch_ns32k:
+      switch (machine)
+       {
+       case 0:         arch_flags = M_NS32532; break;
+       case 32032:     arch_flags = M_NS32032; break;
+       case 32532:     arch_flags = M_NS32532; break;
+       default:        arch_flags = M_UNKNOWN; break;
+       }
+      break;
 
-  default:
-    arch_flags = M_UNKNOWN;
-  }
+    case bfd_arch_vax:
+      *unknown = false;
+      break;
+
+    case bfd_arch_cris:
+      if (machine == 0 || machine == 255)
+       arch_flags = M_CRIS;
+      break;
+
+    default:
+      arch_flags = M_UNKNOWN;
+    }
 
   if (arch_flags != M_UNKNOWN)
     *unknown = false;
@@ -851,18 +866,19 @@ NAME(aout,set_arch_mach) (abfd, arch, machine)
     }
 
   /* Determine the size of a relocation entry */
-  switch (arch) {
-  case bfd_arch_sparc:
-  case bfd_arch_a29k:
-  case bfd_arch_mips:
-    obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;
-    break;
-  default:
-    obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
-    break;
-  }
+  switch (arch)
+    {
+    case bfd_arch_sparc:
+    case bfd_arch_a29k:
+    case bfd_arch_mips:
+      obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;
+      break;
+    default:
+      obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
+      break;
+    }
 
-  return (*aout_backend_info(abfd)->set_sizes) (abfd);
+  return (*aout_backend_info (abfd)->set_sizes) (abfd);
 }
 
 static void
@@ -875,46 +891,46 @@ adjust_o_magic (abfd, execp)
   int pad = 0;
 
   /* Text.  */
-  obj_textsec(abfd)->filepos = pos;
-  if (!obj_textsec(abfd)->user_set_vma)
-    obj_textsec(abfd)->vma = vma;
+  obj_textsec (abfd)->filepos = pos;
+  if (!obj_textsec (abfd)->user_set_vma)
+    obj_textsec (abfd)->vma = vma;
   else
-    vma = obj_textsec(abfd)->vma;
+    vma = obj_textsec (abfd)->vma;
 
-  pos += obj_textsec(abfd)->_raw_size;
-  vma += obj_textsec(abfd)->_raw_size;
+  pos += obj_textsec (abfd)->_raw_size;
+  vma += obj_textsec (abfd)->_raw_size;
 
   /* Data.  */
-  if (!obj_datasec(abfd)->user_set_vma)
+  if (!obj_datasec (abfd)->user_set_vma)
     {
 #if 0      /* ?? Does alignment in the file image really matter? */
-      pad = align_power (vma, obj_datasec(abfd)->alignment_power) - vma;
+      pad = align_power (vma, obj_datasec (abfd)->alignment_power) - vma;
 #endif
-      obj_textsec(abfd)->_raw_size += pad;
+      obj_textsec (abfd)->_raw_size += pad;
       pos += pad;
       vma += pad;
-      obj_datasec(abfd)->vma = vma;
+      obj_datasec (abfd)->vma = vma;
     }
   else
-    vma = obj_datasec(abfd)->vma;
-  obj_datasec(abfd)->filepos = pos;
-  pos += obj_datasec(abfd)->_raw_size;
-  vma += obj_datasec(abfd)->_raw_size;
+    vma = obj_datasec (abfd)->vma;
+  obj_datasec (abfd)->filepos = pos;
+  pos += obj_datasec (abfd)->_raw_size;
+  vma += obj_datasec (abfd)->_raw_size;
 
   /* BSS.  */
-  if (!obj_bsssec(abfd)->user_set_vma)
+  if (!obj_bsssec (abfd)->user_set_vma)
     {
 #if 0
-      pad = align_power (vma, obj_bsssec(abfd)->alignment_power) - vma;
+      pad = align_power (vma, obj_bsssec (abfd)->alignment_power) - vma;
 #endif
-      obj_datasec(abfd)->_raw_size += pad;
+      obj_datasec (abfd)->_raw_size += pad;
       pos += pad;
       vma += pad;
-      obj_bsssec(abfd)->vma = vma;
+      obj_bsssec (abfd)->vma = vma;
     }
   else
     {
-      /* The VMA of the .bss section is set by the the VMA of the
+      /* The VMA of the .bss section is set by the VMA of the
          .data section plus the size of the .data section.  We may
          need to add padding bytes to make this true.  */
       pad = obj_bsssec (abfd)->vma - vma;
@@ -924,12 +940,12 @@ adjust_o_magic (abfd, execp)
          pos += pad;
        }
     }
-  obj_bsssec(abfd)->filepos = pos;
+  obj_bsssec (abfd)->filepos = pos;
 
   /* Fix up the exec header.  */
-  execp->a_text = obj_textsec(abfd)->_raw_size;
-  execp->a_data = obj_datasec(abfd)->_raw_size;
-  execp->a_bss = obj_bsssec(abfd)->_raw_size;
+  execp->a_text = obj_textsec (abfd)->_raw_size;
+  execp->a_data = obj_datasec (abfd)->_raw_size;
+  execp->a_bss = obj_bsssec (abfd)->_raw_size;
   N_SET_MAGIC (*execp, OMAGIC);
 }
 
@@ -940,7 +956,7 @@ adjust_z_magic (abfd, execp)
 {
   bfd_size_type data_pad, text_pad;
   file_ptr text_end;
-  CONST struct aout_backend_data *abdp;
+  const struct aout_backend_data *abdp;
   int ztih;                    /* Nonzero if text includes exec header.  */
 
   abdp = aout_backend_info (abfd);
@@ -949,18 +965,18 @@ adjust_z_magic (abfd, execp)
   ztih = (abdp != NULL
          && (abdp->text_includes_header
              || obj_aout_subformat (abfd) == q_magic_format));
-  obj_textsec(abfd)->filepos = (ztih
-                               ? adata(abfd).exec_bytes_size
-                               : adata(abfd).zmagic_disk_block_size);
-  if (! obj_textsec(abfd)->user_set_vma)
+  obj_textsec (abfd)->filepos = (ztih
+                                ? adata (abfd).exec_bytes_size
+                                : adata (abfd).zmagic_disk_block_size);
+  if (! obj_textsec (abfd)->user_set_vma)
     {
       /* ?? Do we really need to check for relocs here?  */
-      obj_textsec(abfd)->vma = ((abfd->flags & HAS_RELOC)
-                               ? 0
-                               : (ztih
-                                  ? (abdp->default_text_vma
-                                     + adata(abfd).exec_bytes_size)
-                                  : abdp->default_text_vma));
+      obj_textsec (abfd)->vma = ((abfd->flags & HAS_RELOC)
+                                ? 0
+                                : (ztih
+                                   ? (abdp->default_text_vma
+                                      + adata (abfd).exec_bytes_size)
+                                   : abdp->default_text_vma));
       text_pad = 0;
     }
   else
@@ -991,47 +1007,51 @@ adjust_z_magic (abfd, execp)
       text_pad += BFD_ALIGN (text_end, adata (abfd).page_size) - text_end;
       text_end += obj_textsec (abfd)->filepos;
     }
-  obj_textsec(abfd)->_raw_size += text_pad;
+  obj_textsec (abfd)->_raw_size += text_pad;
   text_end += text_pad;
 
   /* Data.  */
-  if (!obj_datasec(abfd)->user_set_vma)
+  if (!obj_datasec (abfd)->user_set_vma)
     {
       bfd_vma vma;
-      vma = obj_textsec(abfd)->vma + obj_textsec(abfd)->_raw_size;
-      obj_datasec(abfd)->vma = BFD_ALIGN (vma, adata(abfd).segment_size);
+      vma = obj_textsec (abfd)->vma + obj_textsec (abfd)->_raw_size;
+      obj_datasec (abfd)->vma = BFD_ALIGN (vma, adata (abfd).segment_size);
     }
   if (abdp && abdp->zmagic_mapped_contiguous)
     {
-      text_pad = (obj_datasec(abfd)->vma
-                 - obj_textsec(abfd)->vma
-                 - obj_textsec(abfd)->_raw_size);
-      obj_textsec(abfd)->_raw_size += text_pad;
+      asection * text = obj_textsec (abfd);
+      asection * data = obj_datasec (abfd);
+
+      text_pad = data->vma - (text->vma + text->_raw_size);
+      /* Only pad the text section if the data
+        section is going to be placed after it.  */
+      if (text_pad > 0)
+       text->_raw_size += text_pad;
     }
-  obj_datasec(abfd)->filepos = (obj_textsec(abfd)->filepos
-                               + obj_textsec(abfd)->_raw_size);
+  obj_datasec (abfd)->filepos = (obj_textsec (abfd)->filepos
+                                + obj_textsec (abfd)->_raw_size);
 
   /* Fix up exec header while we're at it.  */
-  execp->a_text = obj_textsec(abfd)->_raw_size;
+  execp->a_text = obj_textsec (abfd)->_raw_size;
   if (ztih && (!abdp || (abdp && !abdp->exec_header_not_counted)))
-    execp->a_text += adata(abfd).exec_bytes_size;
+    execp->a_text += adata (abfd).exec_bytes_size;
   if (obj_aout_subformat (abfd) == q_magic_format)
     N_SET_MAGIC (*execp, QMAGIC);
   else
     N_SET_MAGIC (*execp, ZMAGIC);
 
   /* Spec says data section should be rounded up to page boundary.  */
-  obj_datasec(abfd)->_raw_size
-    = align_power (obj_datasec(abfd)->_raw_size,
-                  obj_bsssec(abfd)->alignment_power);
-  execp->a_data = BFD_ALIGN (obj_datasec(abfd)->_raw_size,
-                            adata(abfd).page_size);
-  data_pad = execp->a_data - obj_datasec(abfd)->_raw_size;
+  obj_datasec (abfd)->_raw_size
+    = align_power (obj_datasec (abfd)->_raw_size,
+                  obj_bsssec (abfd)->alignment_power);
+  execp->a_data = BFD_ALIGN (obj_datasec (abfd)->_raw_size,
+                            adata (abfd).page_size);
+  data_pad = execp->a_data - obj_datasec (abfd)->_raw_size;
 
   /* BSS.  */
-  if (!obj_bsssec(abfd)->user_set_vma)
-    obj_bsssec(abfd)->vma = (obj_datasec(abfd)->vma
-                            + obj_datasec(abfd)->_raw_size);
+  if (!obj_bsssec (abfd)->user_set_vma)
+    obj_bsssec (abfd)->vma = (obj_datasec (abfd)->vma
+                             + obj_datasec (abfd)->_raw_size);
   /* If the BSS immediately follows the data section and extra space
      in the page is left after the data section, fudge data
      in the header so that the bss section looks smaller by that
@@ -1039,12 +1059,12 @@ adjust_z_magic (abfd, execp)
      (Note that a linker script, as well as the above assignment,
      could have explicitly set the BSS vma to immediately follow
      the data section.)  */
-  if (align_power (obj_bsssec(abfd)->vma, obj_bsssec(abfd)->alignment_power)
-      == obj_datasec(abfd)->vma + obj_datasec(abfd)->_raw_size)
-    execp->a_bss = (data_pad > obj_bsssec(abfd)->_raw_size) ? 0 :
-      obj_bsssec(abfd)->_raw_size - data_pad;
+  if (align_power (obj_bsssec (abfd)->vma, obj_bsssec (abfd)->alignment_power)
+      == obj_datasec (abfd)->vma + obj_datasec (abfd)->_raw_size)
+    execp->a_bss = (data_pad > obj_bsssec (abfd)->_raw_size
+                   ? 0 : obj_bsssec (abfd)->_raw_size - data_pad);
   else
-    execp->a_bss = obj_bsssec(abfd)->_raw_size;
+    execp->a_bss = obj_bsssec (abfd)->_raw_size;
 }
 
 static void
@@ -1052,41 +1072,41 @@ adjust_n_magic (abfd, execp)
      bfd *abfd;
      struct internal_exec *execp;
 {
-  file_ptr pos = adata(abfd).exec_bytes_size;
+  file_ptr pos = adata (abfd).exec_bytes_size;
   bfd_vma vma = 0;
   int pad;
 
   /* Text.  */
-  obj_textsec(abfd)->filepos = pos;
-  if (!obj_textsec(abfd)->user_set_vma)
-    obj_textsec(abfd)->vma = vma;
+  obj_textsec (abfd)->filepos = pos;
+  if (!obj_textsec (abfd)->user_set_vma)
+    obj_textsec (abfd)->vma = vma;
   else
-    vma = obj_textsec(abfd)->vma;
-  pos += obj_textsec(abfd)->_raw_size;
-  vma += obj_textsec(abfd)->_raw_size;
+    vma = obj_textsec (abfd)->vma;
+  pos += obj_textsec (abfd)->_raw_size;
+  vma += obj_textsec (abfd)->_raw_size;
 
   /* Data.  */
-  obj_datasec(abfd)->filepos = pos;
-  if (!obj_datasec(abfd)->user_set_vma)
-    obj_datasec(abfd)->vma = BFD_ALIGN (vma, adata(abfd).segment_size);
-  vma = obj_datasec(abfd)->vma;
+  obj_datasec (abfd)->filepos = pos;
+  if (!obj_datasec (abfd)->user_set_vma)
+    obj_datasec (abfd)->vma = BFD_ALIGN (vma, adata (abfd).segment_size);
+  vma = obj_datasec (abfd)->vma;
 
   /* Since BSS follows data immediately, see if it needs alignment.  */
-  vma += obj_datasec(abfd)->_raw_size;
-  pad = align_power (vma, obj_bsssec(abfd)->alignment_power) - vma;
-  obj_datasec(abfd)->_raw_size += pad;
-  pos += obj_datasec(abfd)->_raw_size;
+  vma += obj_datasec (abfd)->_raw_size;
+  pad = align_power (vma, obj_bsssec (abfd)->alignment_power) - vma;
+  obj_datasec (abfd)->_raw_size += pad;
+  pos += obj_datasec (abfd)->_raw_size;
 
   /* BSS.  */
-  if (!obj_bsssec(abfd)->user_set_vma)
-    obj_bsssec(abfd)->vma = vma;
+  if (!obj_bsssec (abfd)->user_set_vma)
+    obj_bsssec (abfd)->vma = vma;
   else
-    vma = obj_bsssec(abfd)->vma;
+    vma = obj_bsssec (abfd)->vma;
 
   /* Fix up exec header.  */
-  execp->a_text = obj_textsec(abfd)->_raw_size;
-  execp->a_data = obj_datasec(abfd)->_raw_size;
-  execp->a_bss = obj_bsssec(abfd)->_raw_size;
+  execp->a_text = obj_textsec (abfd)->_raw_size;
+  execp->a_data = obj_datasec (abfd)->_raw_size;
+  execp->a_bss = obj_bsssec (abfd)->_raw_size;
   N_SET_MAGIC (*execp, NMAGIC);
 }
 
@@ -1101,12 +1121,12 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end)
   if (! NAME(aout,make_sections) (abfd))
     return false;
 
-  if (adata(abfd).magic != undecided_magic)
+  if (adata (abfd).magic != undecided_magic)
     return true;
 
-  obj_textsec(abfd)->_raw_size =
-    align_power(obj_textsec(abfd)->_raw_size,
-               obj_textsec(abfd)->alignment_power);
+  obj_textsec (abfd)->_raw_size =
+    align_power (obj_textsec (abfd)->_raw_size,
+                obj_textsec (abfd)->alignment_power);
 
   *text_size = obj_textsec (abfd)->_raw_size;
   /* Rule (heuristic) for when to pad to a new page.  Note that there
@@ -1127,34 +1147,35 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end)
 
   if (abfd->flags & D_PAGED)
     /* Whether or not WP_TEXT is set -- let D_PAGED override.  */
-    adata(abfd).magic = z_magic;
+    adata (abfd).magic = z_magic;
   else if (abfd->flags & WP_TEXT)
-    adata(abfd).magic = n_magic;
+    adata (abfd).magic = n_magic;
   else
-    adata(abfd).magic = o_magic;
+    adata (abfd).magic = o_magic;
 
 #ifdef BFD_AOUT_DEBUG /* requires gcc2 */
 #if __GNUC__ >= 2
   fprintf (stderr, "%s text=<%x,%x,%x> data=<%x,%x,%x> bss=<%x,%x,%x>\n",
           ({ char *str;
-             switch (adata(abfd).magic) {
-             case n_magic: str = "NMAGIC"; break;
-             case o_magic: str = "OMAGIC"; break;
-             case z_magic: str = "ZMAGIC"; break;
-             default: abort ();
-             }
+             switch (adata (abfd).magic)
+               {
+               case n_magic: str = "NMAGIC"; break;
+               case o_magic: str = "OMAGIC"; break;
+               case z_magic: str = "ZMAGIC"; break;
+               default: abort ();
+               }
              str;
            }),
-          obj_textsec(abfd)->vma, obj_textsec(abfd)->_raw_size,
-               obj_textsec(abfd)->alignment_power,
-          obj_datasec(abfd)->vma, obj_datasec(abfd)->_raw_size,
-               obj_datasec(abfd)->alignment_power,
-          obj_bsssec(abfd)->vma, obj_bsssec(abfd)->_raw_size,
-               obj_bsssec(abfd)->alignment_power);
+          obj_textsec (abfd)->vma, obj_textsec (abfd)->_raw_size,
+               obj_textsec (abfd)->alignment_power,
+          obj_datasec (abfd)->vma, obj_datasec (abfd)->_raw_size,
+               obj_datasec (abfd)->alignment_power,
+          obj_bsssec (abfd)->vma, obj_bsssec (abfd)->_raw_size,
+               obj_bsssec (abfd)->alignment_power);
 #endif
 #endif
 
-  switch (adata(abfd).magic)
+  switch (adata (abfd).magic)
     {
     case o_magic:
       adjust_o_magic (abfd, execp);
@@ -1171,11 +1192,11 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end)
 
 #ifdef BFD_AOUT_DEBUG
   fprintf (stderr, "       text=<%x,%x,%x> data=<%x,%x,%x> bss=<%x,%x>\n",
-          obj_textsec(abfd)->vma, obj_textsec(abfd)->_raw_size,
-               obj_textsec(abfd)->filepos,
-          obj_datasec(abfd)->vma, obj_datasec(abfd)->_raw_size,
-               obj_datasec(abfd)->filepos,
-          obj_bsssec(abfd)->vma, obj_bsssec(abfd)->_raw_size);
+          obj_textsec (abfd)->vma, obj_textsec (abfd)->_raw_size,
+               obj_textsec (abfd)->filepos,
+          obj_datasec (abfd)->vma, obj_datasec (abfd)->_raw_size,
+               obj_datasec (abfd)->filepos,
+          obj_bsssec (abfd)->vma, obj_bsssec (abfd)->_raw_size);
 #endif
 
   return true;
@@ -1200,24 +1221,27 @@ NAME(aout,new_section_hook) (abfd, newsect)
      asection *newsect;
 {
   /* align to double at least */
-  newsect->alignment_power = bfd_get_arch_info(abfd)->section_align_power;
+  newsect->alignment_power = bfd_get_arch_info (abfd)->section_align_power;
 
   if (bfd_get_format (abfd) == bfd_object)
   {
-    if (obj_textsec(abfd) == NULL && !strcmp(newsect->name, ".text")) {
-       obj_textsec(abfd)= newsect;
+    if (obj_textsec (abfd) == NULL && !strcmp (newsect->name, ".text"))
+      {
+       obj_textsec (abfd)= newsect;
        newsect->target_index = N_TEXT;
        return true;
       }
 
-    if (obj_datasec(abfd) == NULL && !strcmp(newsect->name, ".data")) {
-       obj_datasec(abfd) = newsect;
+    if (obj_datasec (abfd) == NULL && !strcmp (newsect->name, ".data"))
+      {
+       obj_datasec (abfd) = newsect;
        newsect->target_index = N_DATA;
        return true;
       }
 
-    if (obj_bsssec(abfd) == NULL && !strcmp(newsect->name, ".bss")) {
-       obj_bsssec(abfd) = newsect;
+    if (obj_bsssec (abfd) == NULL && !strcmp (newsect->name, ".bss"))
+      {
+       obj_bsssec (abfd) = newsect;
        newsect->target_index = N_BSS;
        return true;
       }
@@ -1264,7 +1288,7 @@ NAME(aout,set_section_contents) (abfd, section, location, offset, count)
   if (count != 0)
     {
       if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0
-         || bfd_write (location, 1, count, abfd) != count)
+         || bfd_bwrite (location, count, abfd) != count)
        return false;
     }
 
@@ -1281,6 +1305,7 @@ aout_get_external_symbols (abfd)
     {
       bfd_size_type count;
       struct external_nlist *syms;
+      bfd_size_type amt;
 
       count = exec_hdr (abfd)->a_syms / EXTERNAL_NLIST_SIZE;
 
@@ -1295,13 +1320,13 @@ aout_get_external_symbols (abfd)
         later on.  If we put them on the objalloc it might not be
         possible to free them.  */
       syms = ((struct external_nlist *)
-             bfd_malloc ((size_t) count * EXTERNAL_NLIST_SIZE));
+             bfd_malloc (count * EXTERNAL_NLIST_SIZE));
       if (syms == (struct external_nlist *) NULL && count != 0)
        return false;
 
+      amt = exec_hdr (abfd)->a_syms;
       if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0
-         || (bfd_read (syms, 1, exec_hdr (abfd)->a_syms, abfd)
-             != exec_hdr (abfd)->a_syms))
+         || bfd_bread (syms, amt, abfd) != amt)
        {
          free (syms);
          return false;
@@ -1318,11 +1343,11 @@ aout_get_external_symbols (abfd)
       unsigned char string_chars[BYTES_IN_WORD];
       bfd_size_type stringsize;
       char *strings;
+      bfd_size_type amt = BYTES_IN_WORD;
 
       /* Get the size of the strings.  */
       if (bfd_seek (abfd, obj_str_filepos (abfd), SEEK_SET) != 0
-         || (bfd_read ((PTR) string_chars, BYTES_IN_WORD, 1, abfd)
-             != BYTES_IN_WORD))
+         || bfd_bread ((PTR) string_chars, amt, abfd) != amt)
        return false;
       stringsize = GET_WORD (abfd, string_chars);
 
@@ -1332,15 +1357,14 @@ aout_get_external_symbols (abfd)
        return false;
       strings = (char *) obj_aout_string_window (abfd).data;
 #else
-      strings = (char *) bfd_malloc ((size_t) stringsize + 1);
+      strings = (char *) bfd_malloc (stringsize + 1);
       if (strings == NULL)
        return false;
 
       /* Skip space for the string count in the buffer for convenience
         when using indexes.  */
-      if (bfd_read (strings + BYTES_IN_WORD, 1, stringsize - BYTES_IN_WORD,
-                   abfd)
-         != stringsize - BYTES_IN_WORD)
+      amt = stringsize - BYTES_IN_WORD;
+      if (bfd_bread (strings + BYTES_IN_WORD, amt, abfd) != amt)
        {
          free (strings);
          return false;
@@ -1471,6 +1495,7 @@ translate_from_native_sym_flags (abfd, cache_ptr)
        asection *section;
        arelent_chain *reloc;
        asection *into_section;
+       bfd_size_type amt;
 
        /* This is a set symbol.  The name of the symbol is the name
           of the set (e.g., __CTOR_LIST__).  The value of the symbol
@@ -1487,7 +1512,8 @@ translate_from_native_sym_flags (abfd, cache_ptr)
          {
            char *copy;
 
-           copy = bfd_alloc (abfd, strlen (cache_ptr->symbol.name) + 1);
+           amt = strlen (cache_ptr->symbol.name) + 1;
+           copy = bfd_alloc (abfd, amt);
            if (copy == NULL)
              return false;
 
@@ -1497,7 +1523,8 @@ translate_from_native_sym_flags (abfd, cache_ptr)
              return false;
          }
 
-       reloc = (arelent_chain *) bfd_alloc (abfd, sizeof (arelent_chain));
+       amt = sizeof (arelent_chain);
+       reloc = (arelent_chain *) bfd_alloc (abfd, amt);
        if (reloc == NULL)
          return false;
 
@@ -1542,7 +1569,7 @@ translate_from_native_sym_flags (abfd, cache_ptr)
        reloc->relent.address = section->_raw_size;
        section->_raw_size += BYTES_IN_WORD;
 
-       reloc->relent.howto = CTOR_TABLE_RELOC_HOWTO(abfd);
+       reloc->relent.howto = CTOR_TABLE_RELOC_HOWTO (abfd);
 
 #endif /* 0 */
 
@@ -1717,7 +1744,7 @@ translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer)
       sym_pointer->e_type[0] = type;
     }
 
-  PUT_WORD(abfd, value, sym_pointer->e_value);
+  PUT_WORD (abfd, value, sym_pointer->e_value);
 
   return true;
 }
@@ -1728,8 +1755,8 @@ asymbol *
 NAME(aout,make_empty_symbol) (abfd)
      bfd *abfd;
 {
-  aout_symbol_type  *new =
-    (aout_symbol_type *)bfd_zalloc (abfd, sizeof (aout_symbol_type));
+  bfd_size_type amt = sizeof (aout_symbol_type);
+  aout_symbol_type *new = (aout_symbol_type *) bfd_zalloc (abfd, amt);
   if (!new)
     return NULL;
   new->symbol.the_bfd = abfd;
@@ -1772,9 +1799,9 @@ NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic)
        return false;
 
       in->symbol.value = GET_SWORD (abfd,  ext->e_value);
-      in->desc = bfd_h_get_16 (abfd, ext->e_desc);
-      in->other = bfd_h_get_8 (abfd, ext->e_other);
-      in->type = bfd_h_get_8 (abfd,  ext->e_type);
+      in->desc = H_GET_16 (abfd, ext->e_desc);
+      in->other = H_GET_8 (abfd, ext->e_other);
+      in->type = H_GET_8 (abfd,  ext->e_type);
       in->symbol.udata.p = NULL;
 
       if (! translate_from_native_sym_flags (abfd, in))
@@ -1797,7 +1824,7 @@ NAME(aout,slurp_symbol_table) (abfd)
 {
   struct external_nlist *old_external_syms;
   aout_symbol_type *cached;
-  size_t cached_size;
+  bfd_size_type cached_size;
 
   /* If there's no work to be done, don't do any */
   if (obj_aout_symbols (abfd) != (aout_symbol_type *) NULL)
@@ -1808,13 +1835,13 @@ NAME(aout,slurp_symbol_table) (abfd)
   if (! aout_get_external_symbols (abfd))
     return false;
 
-  cached_size = (obj_aout_external_sym_count (abfd)
-                * sizeof (aout_symbol_type));
+  cached_size = obj_aout_external_sym_count (abfd);
+  cached_size *= sizeof (aout_symbol_type);
   cached = (aout_symbol_type *) bfd_malloc (cached_size);
   if (cached == NULL && cached_size != 0)
     return false;
   if (cached_size != 0)
-    memset (cached, 0, cached_size);
+    memset (cached, 0, (size_t) cached_size);
 
   /* Convert from external symbol information to internal.  */
   if (! (NAME(aout,translate_symbol_table)
@@ -1908,10 +1935,11 @@ emit_stringtab (abfd, tab)
      struct bfd_strtab_hash *tab;
 {
   bfd_byte buffer[BYTES_IN_WORD];
+  bfd_size_type amt = BYTES_IN_WORD;
 
   /* The string table starts with the size.  */
   PUT_WORD (abfd, _bfd_stringtab_size (tab) + BYTES_IN_WORD, buffer);
-  if (bfd_write ((PTR) buffer, 1, BYTES_IN_WORD, abfd) != BYTES_IN_WORD)
+  if (bfd_bwrite ((PTR) buffer, amt, abfd) != amt)
     return false;
 
   return _bfd_stringtab_emit (abfd, tab);
@@ -1934,30 +1962,31 @@ NAME(aout,write_syms) (abfd)
       asymbol *g = generic[count];
       bfd_size_type indx;
       struct external_nlist nsp;
+      bfd_size_type amt;
 
       indx = add_to_stringtab (abfd, strtab, g->name, false);
       if (indx == (bfd_size_type) -1)
        goto error_return;
       PUT_WORD (abfd, indx, (bfd_byte *) nsp.e_strx);
 
-      if (bfd_asymbol_flavour(g) == abfd->xvec->flavour)
+      if (bfd_asymbol_flavour (g) == abfd->xvec->flavour)
        {
-         bfd_h_put_16(abfd, aout_symbol(g)->desc,  nsp.e_desc);
-         bfd_h_put_8(abfd, aout_symbol(g)->other,  nsp.e_other);
-         bfd_h_put_8(abfd, aout_symbol(g)->type,  nsp.e_type);
+         H_PUT_16 (abfd, aout_symbol (g)->desc,  nsp.e_desc);
+         H_PUT_8  (abfd, aout_symbol (g)->other, nsp.e_other);
+         H_PUT_8  (abfd, aout_symbol (g)->type,  nsp.e_type);
        }
       else
        {
-         bfd_h_put_16(abfd,0, nsp.e_desc);
-         bfd_h_put_8(abfd, 0, nsp.e_other);
-         bfd_h_put_8(abfd, 0, nsp.e_type);
+         H_PUT_16 (abfd, 0, nsp.e_desc);
+         H_PUT_8  (abfd, 0, nsp.e_other);
+         H_PUT_8  (abfd, 0, nsp.e_type);
        }
 
       if (! translate_to_native_sym_flags (abfd, g, &nsp))
        goto error_return;
 
-      if (bfd_write((PTR)&nsp,1,EXTERNAL_NLIST_SIZE, abfd)
-         != EXTERNAL_NLIST_SIZE)
+      amt = EXTERNAL_NLIST_SIZE;
+      if (bfd_bwrite ((PTR) &nsp, amt, abfd) != amt)
        goto error_return;
 
       /* NB: `KEEPIT' currently overlays `udata.p', so set this only
@@ -1976,7 +2005,6 @@ error_return:
   _bfd_stringtab_free (strtab);
   return false;
 }
-
 \f
 long
 NAME(aout,get_symtab) (abfd, location)
@@ -1989,12 +2017,13 @@ NAME(aout,get_symtab) (abfd, location)
     if (!NAME(aout,slurp_symbol_table) (abfd))
       return -1;
 
-    for (symbase = obj_aout_symbols(abfd); counter++ < bfd_get_symcount (abfd);)
-      *(location++) = (asymbol *) ( symbase++);
+    for (symbase = obj_aout_symbols (abfd);
+        counter++ < bfd_get_symcount (abfd);
+        )
+      *(location++) = (asymbol *) (symbase++);
     *location++ =0;
     return bfd_get_symcount (abfd);
 }
-
 \f
 /* Standard reloc stuff */
 /* Output standard relocation information to a file in target byte order.  */
@@ -2016,7 +2045,7 @@ NAME(aout,swap_std_reloc_out) (abfd, g, natptr)
   int r_baserel, r_jmptable, r_relative;
   asection *output_section = sym->section->output_section;
 
-  PUT_WORD(abfd, g->address, natptr->r_address);
+  PUT_WORD (abfd, g->address, natptr->r_address);
 
   r_length = g->howto->size ;  /* Size as a power of two */
   r_pcrel  = (int) g->howto->pc_relative; /* Relative to PC? */
@@ -2067,29 +2096,30 @@ NAME(aout,swap_std_reloc_out) (abfd, g, natptr)
     }
 
   /* now the fun stuff */
-  if (bfd_header_big_endian (abfd)) {
+  if (bfd_header_big_endian (abfd))
+    {
       natptr->r_index[0] = r_index >> 16;
       natptr->r_index[1] = r_index >> 8;
       natptr->r_index[2] = r_index;
-      natptr->r_type[0] =
-       (r_extern?    RELOC_STD_BITS_EXTERN_BIG: 0)
-       | (r_pcrel?     RELOC_STD_BITS_PCREL_BIG: 0)
-        | (r_baserel?   RELOC_STD_BITS_BASEREL_BIG: 0)
-         | (r_jmptable?  RELOC_STD_BITS_JMPTABLE_BIG: 0)
-          | (r_relative?  RELOC_STD_BITS_RELATIVE_BIG: 0)
-           | (r_length <<  RELOC_STD_BITS_LENGTH_SH_BIG);
-    } else {
-       natptr->r_index[2] = r_index >> 16;
-       natptr->r_index[1] = r_index >> 8;
-       natptr->r_index[0] = r_index;
-       natptr->r_type[0] =
-        (r_extern?    RELOC_STD_BITS_EXTERN_LITTLE: 0)
-         | (r_pcrel?     RELOC_STD_BITS_PCREL_LITTLE: 0)
-          | (r_baserel?   RELOC_STD_BITS_BASEREL_LITTLE: 0)
-           | (r_jmptable?  RELOC_STD_BITS_JMPTABLE_LITTLE: 0)
-            | (r_relative?  RELOC_STD_BITS_RELATIVE_LITTLE: 0)
-             | (r_length <<  RELOC_STD_BITS_LENGTH_SH_LITTLE);
-      }
+      natptr->r_type[0] = ((r_extern ? RELOC_STD_BITS_EXTERN_BIG : 0)
+                          | (r_pcrel ? RELOC_STD_BITS_PCREL_BIG : 0)
+                          | (r_baserel ? RELOC_STD_BITS_BASEREL_BIG : 0)
+                          | (r_jmptable ? RELOC_STD_BITS_JMPTABLE_BIG : 0)
+                          | (r_relative ? RELOC_STD_BITS_RELATIVE_BIG : 0)
+                          | (r_length << RELOC_STD_BITS_LENGTH_SH_BIG));
+    }
+  else
+    {
+      natptr->r_index[2] = r_index >> 16;
+      natptr->r_index[1] = r_index >> 8;
+      natptr->r_index[0] = r_index;
+      natptr->r_type[0] = ((r_extern ? RELOC_STD_BITS_EXTERN_LITTLE : 0)
+                          | (r_pcrel ? RELOC_STD_BITS_PCREL_LITTLE : 0)
+                          | (r_baserel ? RELOC_STD_BITS_BASEREL_LITTLE : 0)
+                          | (r_jmptable ? RELOC_STD_BITS_JMPTABLE_LITTLE : 0)
+                          | (r_relative ? RELOC_STD_BITS_RELATIVE_LITTLE : 0)
+                          | (r_length << RELOC_STD_BITS_LENGTH_SH_LITTLE));
+    }
 }
 
 /* Extended stuff */
@@ -2107,7 +2137,7 @@ NAME(aout,swap_ext_reloc_out) (abfd, g, natptr)
   int r_index;
   int r_extern;
   unsigned int r_type;
-  unsigned int r_addend;
+  bfd_vma r_addend;
   asymbol *sym = *(g->sym_ptr_ptr);
   asection *output_section = sym->section->output_section;
 
@@ -2148,21 +2178,22 @@ NAME(aout,swap_ext_reloc_out) (abfd, g, natptr)
     }
 
   /* now the fun stuff */
-  if (bfd_header_big_endian (abfd)) {
-    natptr->r_index[0] = r_index >> 16;
-    natptr->r_index[1] = r_index >> 8;
-    natptr->r_index[2] = r_index;
-    natptr->r_type[0] =
-      ((r_extern? RELOC_EXT_BITS_EXTERN_BIG: 0)
-       | (r_type << RELOC_EXT_BITS_TYPE_SH_BIG));
-  } else {
-    natptr->r_index[2] = r_index >> 16;
-    natptr->r_index[1] = r_index >> 8;
-    natptr->r_index[0] = r_index;
-    natptr->r_type[0] =
-     (r_extern? RELOC_EXT_BITS_EXTERN_LITTLE: 0)
-      | (r_type << RELOC_EXT_BITS_TYPE_SH_LITTLE);
-  }
+  if (bfd_header_big_endian (abfd))
+    {
+      natptr->r_index[0] = r_index >> 16;
+      natptr->r_index[1] = r_index >> 8;
+      natptr->r_index[2] = r_index;
+      natptr->r_type[0] = ((r_extern ? RELOC_EXT_BITS_EXTERN_BIG : 0)
+                          | (r_type << RELOC_EXT_BITS_TYPE_SH_BIG));
+    }
+  else
+    {
+      natptr->r_index[2] = r_index >> 16;
+      natptr->r_index[1] = r_index >> 8;
+      natptr->r_index[0] = r_index;
+      natptr->r_type[0] = ((r_extern ? RELOC_EXT_BITS_EXTERN_LITTLE : 0)
+                          | (r_type << RELOC_EXT_BITS_TYPE_SH_LITTLE));
+    }
 
   PUT_WORD (abfd, r_addend, natptr->r_addend);
 }
@@ -2173,40 +2204,44 @@ NAME(aout,swap_ext_reloc_out) (abfd, g, natptr)
 
    Aout keeps all it's symbols based from zero, so the symbol would
    contain 60. This macro subs the base of each section from the value
-   to give the true offset from the section */
-
-#define MOVE_ADDRESS(ad)                                                       \
-  if (r_extern) {                                                      \
-   /* undefined symbol */                                              \
-     cache_ptr->sym_ptr_ptr = symbols + r_index;                       \
-     cache_ptr->addend = ad;                                           \
-     } else {                                                          \
-    /* defined, section relative. replace symbol with pointer to       \
-       symbol which points to section  */                              \
-    switch (r_index) {                                                 \
-    case N_TEXT:                                                       \
-    case N_TEXT | N_EXT:                                               \
-      cache_ptr->sym_ptr_ptr  = obj_textsec(abfd)->symbol_ptr_ptr;     \
-      cache_ptr->addend = ad  - su->textsec->vma;                      \
-      break;                                                           \
-    case N_DATA:                                                       \
-    case N_DATA | N_EXT:                                               \
-      cache_ptr->sym_ptr_ptr  = obj_datasec(abfd)->symbol_ptr_ptr;     \
-      cache_ptr->addend = ad - su->datasec->vma;                       \
-      break;                                                           \
-    case N_BSS:                                                                \
-    case N_BSS | N_EXT:                                                        \
-      cache_ptr->sym_ptr_ptr  = obj_bsssec(abfd)->symbol_ptr_ptr;      \
-      cache_ptr->addend = ad - su->bsssec->vma;                                \
-      break;                                                           \
-    default:                                                           \
-    case N_ABS:                                                                \
-    case N_ABS | N_EXT:                                                        \
-     cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;     \
+   to give the true offset from the section.  */
+
+#define MOVE_ADDRESS(ad)                                               \
+  if (r_extern)                                                                \
+    {                                                                  \
+      /* Undefined symbol.  */                                         \
+      cache_ptr->sym_ptr_ptr = symbols + r_index;                      \
       cache_ptr->addend = ad;                                          \
-      break;                                                           \
     }                                                                  \
-  }                                                                    \
+   else                                                                        \
+    {                                                                  \
+      /* Defined, section relative.  Replace symbol with pointer to    \
+        symbol which points to section.  */                            \
+      switch (r_index)                                                 \
+       {                                                               \
+       case N_TEXT:                                                    \
+       case N_TEXT | N_EXT:                                            \
+         cache_ptr->sym_ptr_ptr = obj_textsec (abfd)->symbol_ptr_ptr;  \
+         cache_ptr->addend = ad - su->textsec->vma;                    \
+         break;                                                        \
+       case N_DATA:                                                    \
+       case N_DATA | N_EXT:                                            \
+         cache_ptr->sym_ptr_ptr = obj_datasec (abfd)->symbol_ptr_ptr;  \
+         cache_ptr->addend = ad - su->datasec->vma;                    \
+         break;                                                        \
+       case N_BSS:                                                     \
+       case N_BSS | N_EXT:                                             \
+         cache_ptr->sym_ptr_ptr = obj_bsssec (abfd)->symbol_ptr_ptr;   \
+         cache_ptr->addend = ad - su->bsssec->vma;                     \
+         break;                                                        \
+       default:                                                        \
+       case N_ABS:                                                     \
+       case N_ABS | N_EXT:                                             \
+         cache_ptr->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; \
+         cache_ptr->addend = ad;                                       \
+         break;                                                        \
+       }                                                               \
+    }
 
 void
 NAME(aout,swap_ext_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
@@ -2224,21 +2259,24 @@ NAME(aout,swap_ext_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
   cache_ptr->address = (GET_SWORD (abfd, bytes->r_address));
 
   /* now the fun stuff */
-  if (bfd_header_big_endian (abfd)) {
-    r_index =  (bytes->r_index[0] << 16)
-            | (bytes->r_index[1] << 8)
-            |  bytes->r_index[2];
-    r_extern = (0 != (bytes->r_type[0] & RELOC_EXT_BITS_EXTERN_BIG));
-    r_type   =       (bytes->r_type[0] & RELOC_EXT_BITS_TYPE_BIG)
-                                     >> RELOC_EXT_BITS_TYPE_SH_BIG;
-  } else {
-    r_index =  (bytes->r_index[2] << 16)
-            | (bytes->r_index[1] << 8)
-            |  bytes->r_index[0];
-    r_extern = (0 != (bytes->r_type[0] & RELOC_EXT_BITS_EXTERN_LITTLE));
-    r_type   =       (bytes->r_type[0] & RELOC_EXT_BITS_TYPE_LITTLE)
-                                     >> RELOC_EXT_BITS_TYPE_SH_LITTLE;
-  }
+  if (bfd_header_big_endian (abfd))
+    {
+      r_index = ((bytes->r_index[0] << 16)
+                | (bytes->r_index[1] << 8)
+                | bytes->r_index[2]);
+      r_extern = (0 != (bytes->r_type[0] & RELOC_EXT_BITS_EXTERN_BIG));
+      r_type = ((bytes->r_type[0] & RELOC_EXT_BITS_TYPE_BIG)
+               >> RELOC_EXT_BITS_TYPE_SH_BIG);
+    }
+  else
+    {
+      r_index =  ((bytes->r_index[2] << 16)
+                 | (bytes->r_index[1] << 8)
+                 | bytes->r_index[0]);
+      r_extern = (0 != (bytes->r_type[0] & RELOC_EXT_BITS_EXTERN_LITTLE));
+      r_type = ((bytes->r_type[0] & RELOC_EXT_BITS_TYPE_LITTLE)
+               >> RELOC_EXT_BITS_TYPE_SH_LITTLE);
+    }
 
   cache_ptr->howto =  howto_table_ext + r_type;
 
@@ -2258,7 +2296,7 @@ NAME(aout,swap_ext_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
       r_index = N_ABS;
     }
 
-  MOVE_ADDRESS(GET_SWORD(abfd, bytes->r_addend));
+  MOVE_ADDRESS (GET_SWORD (abfd, bytes->r_addend));
 }
 
 void
@@ -2277,35 +2315,38 @@ NAME(aout,swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
   struct aoutdata  *su = &(abfd->tdata.aout_data->a);
   unsigned int howto_idx;
 
-  cache_ptr->address = bfd_h_get_32 (abfd, bytes->r_address);
+  cache_ptr->address = H_GET_32 (abfd, bytes->r_address);
 
   /* now the fun stuff */
-  if (bfd_header_big_endian (abfd)) {
-    r_index =  (bytes->r_index[0] << 16)
-      | (bytes->r_index[1] << 8)
-       |  bytes->r_index[2];
-    r_extern  = (0 != (bytes->r_type[0] & RELOC_STD_BITS_EXTERN_BIG));
-    r_pcrel   = (0 != (bytes->r_type[0] & RELOC_STD_BITS_PCREL_BIG));
-    r_baserel = (0 != (bytes->r_type[0] & RELOC_STD_BITS_BASEREL_BIG));
-    r_jmptable= (0 != (bytes->r_type[0] & RELOC_STD_BITS_JMPTABLE_BIG));
-    r_relative= (0 != (bytes->r_type[0] & RELOC_STD_BITS_RELATIVE_BIG));
-    r_length  =       (bytes->r_type[0] & RELOC_STD_BITS_LENGTH_BIG)
-                       >> RELOC_STD_BITS_LENGTH_SH_BIG;
-  } else {
-    r_index =  (bytes->r_index[2] << 16)
-      | (bytes->r_index[1] << 8)
-       |  bytes->r_index[0];
-    r_extern  = (0 != (bytes->r_type[0] & RELOC_STD_BITS_EXTERN_LITTLE));
-    r_pcrel   = (0 != (bytes->r_type[0] & RELOC_STD_BITS_PCREL_LITTLE));
-    r_baserel = (0 != (bytes->r_type[0] & RELOC_STD_BITS_BASEREL_LITTLE));
-    r_jmptable= (0 != (bytes->r_type[0] & RELOC_STD_BITS_JMPTABLE_LITTLE));
-    r_relative= (0 != (bytes->r_type[0] & RELOC_STD_BITS_RELATIVE_LITTLE));
-    r_length  =       (bytes->r_type[0] & RELOC_STD_BITS_LENGTH_LITTLE)
-                       >> RELOC_STD_BITS_LENGTH_SH_LITTLE;
-  }
+  if (bfd_header_big_endian (abfd))
+    {
+      r_index = ((bytes->r_index[0] << 16)
+                | (bytes->r_index[1] << 8)
+                | bytes->r_index[2]);
+      r_extern  = (0 != (bytes->r_type[0] & RELOC_STD_BITS_EXTERN_BIG));
+      r_pcrel   = (0 != (bytes->r_type[0] & RELOC_STD_BITS_PCREL_BIG));
+      r_baserel = (0 != (bytes->r_type[0] & RELOC_STD_BITS_BASEREL_BIG));
+      r_jmptable= (0 != (bytes->r_type[0] & RELOC_STD_BITS_JMPTABLE_BIG));
+      r_relative= (0 != (bytes->r_type[0] & RELOC_STD_BITS_RELATIVE_BIG));
+      r_length  = ((bytes->r_type[0] & RELOC_STD_BITS_LENGTH_BIG)
+                  >> RELOC_STD_BITS_LENGTH_SH_BIG);
+    }
+  else
+    {
+      r_index = ((bytes->r_index[2] << 16)
+                | (bytes->r_index[1] << 8)
+                | bytes->r_index[0]);
+      r_extern  = (0 != (bytes->r_type[0] & RELOC_STD_BITS_EXTERN_LITTLE));
+      r_pcrel   = (0 != (bytes->r_type[0] & RELOC_STD_BITS_PCREL_LITTLE));
+      r_baserel = (0 != (bytes->r_type[0] & RELOC_STD_BITS_BASEREL_LITTLE));
+      r_jmptable= (0 != (bytes->r_type[0] & RELOC_STD_BITS_JMPTABLE_LITTLE));
+      r_relative= (0 != (bytes->r_type[0] & RELOC_STD_BITS_RELATIVE_LITTLE));
+      r_length  = ((bytes->r_type[0] & RELOC_STD_BITS_LENGTH_LITTLE)
+                  >> RELOC_STD_BITS_LENGTH_SH_LITTLE);
+    }
 
-  howto_idx = r_length + 4 * r_pcrel + 8 * r_baserel
-             + 16 * r_jmptable + 32 * r_relative;
+  howto_idx = (r_length + 4 * r_pcrel + 8 * r_baserel
+              + 16 * r_jmptable + 32 * r_relative);
   BFD_ASSERT (howto_idx < TABLE_SIZE (howto_table_std));
   cache_ptr->howto =  howto_table_std + howto_idx;
   BFD_ASSERT (cache_ptr->howto->type != (unsigned int) -1);
@@ -2324,7 +2365,7 @@ NAME(aout,swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
       r_index = N_ABS;
     }
 
-  MOVE_ADDRESS(0);
+  MOVE_ADDRESS (0);
 }
 
 /* Read and swap the relocs for a section.  */
@@ -2335,13 +2376,14 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
      sec_ptr asect;
      asymbol **symbols;
 {
-  unsigned int count;
+  bfd_size_type count;
   bfd_size_type reloc_size;
   PTR relocs;
   arelent *reloc_cache;
   size_t each_size;
   unsigned int counter = 0;
   arelent *cache_ptr;
+  bfd_size_type amt;
 
   if (asect->relocation)
     return true;
@@ -2350,9 +2392,9 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
     return true;
 
   if (asect == obj_datasec (abfd))
-    reloc_size = exec_hdr(abfd)->a_drsize;
+    reloc_size = exec_hdr (abfd)->a_drsize;
   else if (asect == obj_textsec (abfd))
-    reloc_size = exec_hdr(abfd)->a_trsize;
+    reloc_size = exec_hdr (abfd)->a_trsize;
   else if (asect == obj_bsssec (abfd))
     reloc_size = 0;
   else
@@ -2368,19 +2410,20 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
 
   count = reloc_size / each_size;
 
-  reloc_cache = (arelent *) bfd_malloc ((size_t) (count * sizeof (arelent)));
+  amt = count * sizeof (arelent);
+  reloc_cache = (arelent *) bfd_malloc (amt);
   if (reloc_cache == NULL && count != 0)
     return false;
-  memset (reloc_cache, 0, count * sizeof (arelent));
+  memset (reloc_cache, 0, (size_t) amt);
 
-  relocs = bfd_malloc ((size_t) reloc_size);
+  relocs = bfd_malloc (reloc_size);
   if (relocs == NULL && reloc_size != 0)
     {
       free (reloc_cache);
       return false;
     }
 
-  if (bfd_read (relocs, 1, reloc_size, abfd) != reloc_size)
+  if (bfd_bread (relocs, reloc_size, abfd) != reloc_size)
     {
       free (relocs);
       free (reloc_cache);
@@ -2390,21 +2433,19 @@ NAME(aout,slurp_reloc_table) (abfd, asect, symbols)
   cache_ptr = reloc_cache;
   if (each_size == RELOC_EXT_SIZE)
     {
-      register struct reloc_ext_external *rptr =
-       (struct reloc_ext_external *) relocs;
+      struct reloc_ext_external *rptr = (struct reloc_ext_external *) relocs;
 
       for (; counter < count; counter++, rptr++, cache_ptr++)
        MY_swap_ext_reloc_in (abfd, rptr, cache_ptr, symbols,
-                             bfd_get_symcount (abfd));
+                             (bfd_size_type) bfd_get_symcount (abfd));
     }
   else
     {
-      register struct reloc_std_external *rptr =
-       (struct reloc_std_external *) relocs;
+      struct reloc_std_external *rptr = (struct reloc_std_external *) relocs;
 
       for (; counter < count; counter++, rptr++, cache_ptr++)
        MY_swap_std_reloc_in (abfd, rptr, cache_ptr, symbols,
-                             bfd_get_symcount (abfd));
+                             (bfd_size_type) bfd_get_symcount (abfd));
     }
 
   free (relocs);
@@ -2427,13 +2468,13 @@ NAME(aout,squirt_out_relocs) (abfd, section)
   size_t each_size;
 
   unsigned int count = section->reloc_count;
-  size_t natsize;
+  bfd_size_type natsize;
 
   if (count == 0 || section->orelocation == NULL)
     return true;
 
   each_size = obj_reloc_entry_size (abfd);
-  natsize = each_size * count;
+  natsize = (bfd_size_type) each_size * count;
   native = (unsigned char *) bfd_zalloc (abfd, natsize);
   if (!native)
     return false;
@@ -2453,13 +2494,15 @@ NAME(aout,squirt_out_relocs) (abfd, section)
       for (natptr = native;
           count != 0;
           --count, natptr += each_size, ++generic)
-       MY_swap_std_reloc_out(abfd, *generic, (struct reloc_std_external *)natptr);
+       MY_swap_std_reloc_out (abfd, *generic,
+                              (struct reloc_std_external *) natptr);
     }
 
-  if ( bfd_write ((PTR) native, 1, natsize, abfd) != natsize) {
-    bfd_release(abfd, native);
-    return false;
-  }
+  if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize)
+    {
+      bfd_release (abfd, native);
+      return false;
+    }
   bfd_release (abfd, native);
 
   return true;
@@ -2485,21 +2528,24 @@ NAME(aout,canonicalize_reloc) (abfd, section, relptr, symbols)
   if (!(tblptr || NAME(aout,slurp_reloc_table) (abfd, section, symbols)))
     return -1;
 
-  if (section->flags & SEC_CONSTRUCTOR) {
-    arelent_chain *chain = section->constructor_chain;
-    for (count = 0; count < section->reloc_count; count ++) {
-      *relptr ++ = &chain->relent;
-      chain = chain->next;
+  if (section->flags & SEC_CONSTRUCTOR)
+    {
+      arelent_chain *chain = section->constructor_chain;
+      for (count = 0; count < section->reloc_count; count ++)
+       {
+         *relptr ++ = &chain->relent;
+         chain = chain->next;
+       }
     }
-  }
-  else {
-    tblptr = section->relocation;
+  else
+    {
+      tblptr = section->relocation;
 
-    for (count = 0; count++ < section->reloc_count;)
-      {
-       *relptr++ = tblptr++;
-      }
-  }
+      for (count = 0; count++ < section->reloc_count; )
+       {
+         *relptr++ = tblptr++;
+       }
+    }
   *relptr = 0;
 
   return section->reloc_count;
@@ -2510,22 +2556,24 @@ NAME(aout,get_reloc_upper_bound) (abfd, asect)
      bfd *abfd;
      sec_ptr asect;
 {
-  if (bfd_get_format (abfd) != bfd_object) {
-    bfd_set_error (bfd_error_invalid_operation);
-    return -1;
-  }
-  if (asect->flags & SEC_CONSTRUCTOR) {
-    return (sizeof (arelent *) * (asect->reloc_count+1));
-  }
+  if (bfd_get_format (abfd) != bfd_object)
+    {
+      bfd_set_error (bfd_error_invalid_operation);
+      return -1;
+    }
+  if (asect->flags & SEC_CONSTRUCTOR)
+    {
+      return (sizeof (arelent *) * (asect->reloc_count+1));
+    }
 
   if (asect == obj_datasec (abfd))
     return (sizeof (arelent *)
-           * ((exec_hdr(abfd)->a_drsize / obj_reloc_entry_size (abfd))
+           * ((exec_hdr (abfd)->a_drsize / obj_reloc_entry_size (abfd))
               + 1));
 
   if (asect == obj_textsec (abfd))
     return (sizeof (arelent *)
-           * ((exec_hdr(abfd)->a_trsize / obj_reloc_entry_size (abfd))
+           * ((exec_hdr (abfd)->a_trsize / obj_reloc_entry_size (abfd))
               + 1));
 
   if (asect == obj_bsssec (abfd))
@@ -2537,7 +2585,6 @@ NAME(aout,get_reloc_upper_bound) (abfd, asect)
   bfd_set_error (bfd_error_invalid_operation);
   return -1;
 }
-
 \f
 long
 NAME(aout,get_symtab_upper_bound) (abfd)
@@ -2549,7 +2596,7 @@ NAME(aout,get_symtab_upper_bound) (abfd)
   return (bfd_get_symcount (abfd)+1) * (sizeof (aout_symbol_type *));
 }
 
- alent *
+alent *
 NAME(aout,get_lineno) (ignore_abfd, ignore_symbol)
      bfd *ignore_abfd ATTRIBUTE_UNUSED;
      asymbol *ignore_symbol ATTRIBUTE_UNUSED;
@@ -2567,7 +2614,7 @@ NAME(aout,get_symbol_info) (ignore_abfd, symbol, ret)
 
   if (ret->type == '?')
     {
-      int type_code = aout_symbol(symbol)->type & 0xff;
+      int type_code = aout_symbol (symbol)->type & 0xff;
       const char *stab_name = bfd_get_stab_name (type_code);
       static char buf[10];
 
@@ -2578,47 +2625,49 @@ NAME(aout,get_symbol_info) (ignore_abfd, symbol, ret)
        }
       ret->type = '-';
       ret->stab_type = type_code;
-      ret->stab_other = (unsigned) (aout_symbol(symbol)->other & 0xff);
-      ret->stab_desc = (unsigned) (aout_symbol(symbol)->desc & 0xffff);
+      ret->stab_other = (unsigned) (aout_symbol (symbol)->other & 0xff);
+      ret->stab_desc = (unsigned) (aout_symbol (symbol)->desc & 0xffff);
       ret->stab_name = stab_name;
     }
 }
 
 void
-NAME(aout,print_symbol) (ignore_abfd, afile, symbol, how)
-     bfd *ignore_abfd ATTRIBUTE_UNUSED;
+NAME(aout,print_symbol) (abfd, afile, symbol, how)
+     bfd *abfd;
      PTR afile;
      asymbol *symbol;
      bfd_print_symbol_type how;
 {
   FILE *file = (FILE *)afile;
 
-  switch (how) {
-  case bfd_print_symbol_name:
-    if (symbol->name)
-      fprintf (file,"%s", symbol->name);
-    break;
-  case bfd_print_symbol_more:
-    fprintf (file,"%4x %2x %2x",(unsigned) (aout_symbol(symbol)->desc & 0xffff),
-           (unsigned) (aout_symbol(symbol)->other & 0xff),
-           (unsigned) (aout_symbol(symbol)->type));
-    break;
-  case bfd_print_symbol_all:
+  switch (how)
     {
-   CONST char *section_name = symbol->section->name;
+    case bfd_print_symbol_name:
+      if (symbol->name)
+       fprintf (file,"%s", symbol->name);
+      break;
+    case bfd_print_symbol_more:
+      fprintf (file,"%4x %2x %2x",
+              (unsigned) (aout_symbol (symbol)->desc & 0xffff),
+              (unsigned) (aout_symbol (symbol)->other & 0xff),
+              (unsigned) (aout_symbol (symbol)->type));
+      break;
+    case bfd_print_symbol_all:
+      {
+       const char *section_name = symbol->section->name;
 
-      bfd_print_symbol_vandf((PTR)file,symbol);
+       bfd_print_symbol_vandf (abfd, (PTR)file, symbol);
 
-      fprintf (file," %-5s %04x %02x %02x",
-             section_name,
-             (unsigned) (aout_symbol(symbol)->desc & 0xffff),
-             (unsigned) (aout_symbol(symbol)->other & 0xff),
-             (unsigned) (aout_symbol(symbol)->type  & 0xff));
-      if (symbol->name)
-        fprintf (file," %s", symbol->name);
+       fprintf (file," %-5s %04x %02x %02x",
+                section_name,
+                (unsigned) (aout_symbol (symbol)->desc & 0xffff),
+                (unsigned) (aout_symbol (symbol)->other & 0xff),
+                (unsigned) (aout_symbol (symbol)->type & 0xff));
+       if (symbol->name)
+         fprintf (file," %s", symbol->name);
+      }
+      break;
     }
-    break;
-  }
 }
 
 /* If we don't have to allocate more than 1MB to hold the generic
@@ -2706,123 +2755,126 @@ NAME(aout,find_nearest_line)
      asection *section;
      asymbol **symbols;
      bfd_vma offset;
-     CONST char **filename_ptr;
-     CONST char **functionname_ptr;
+     const char **filename_ptr;
+     const char **functionname_ptr;
      unsigned int *line_ptr;
 {
   /* Run down the file looking for the filename, function and linenumber */
   asymbol **p;
-  CONST char *directory_name = NULL;
-  CONST char *main_file_name = NULL;
-  CONST char *current_file_name = NULL;
-  CONST char *line_file_name = NULL; /* Value of current_file_name at line number.  */
-  CONST char *line_directory_name = NULL; /* Value of directory_name at line number.  */
+  const char *directory_name = NULL;
+  const char *main_file_name = NULL;
+  const char *current_file_name = NULL;
+  const char *line_file_name = NULL; /* Value of current_file_name at line number.  */
+  const char *line_directory_name = NULL; /* Value of directory_name at line number.  */
   bfd_vma low_line_vma = 0;
   bfd_vma low_func_vma = 0;
   asymbol *func = 0;
-  size_t filelen, funclen;
+  bfd_size_type filelen, funclen;
   char *buf;
 
   *filename_ptr = abfd->filename;
   *functionname_ptr = 0;
   *line_ptr = 0;
-  if (symbols != (asymbol **)NULL) {
-    for (p = symbols; *p; p++) {
-      aout_symbol_type  *q = (aout_symbol_type *) (*p);
-    next:
-      switch (q->type){
-      case N_TEXT:
-       /* If this looks like a file name symbol, and it comes after
-           the line number we have found so far, but before the
-           offset, then we have probably not found the right line
-           number.  */
-       if (q->symbol.value <= offset
-           && ((q->symbol.value > low_line_vma
-                && (line_file_name != NULL
-                    || *line_ptr != 0))
-               || (q->symbol.value > low_func_vma
-                   && func != NULL)))
-         {
-           const char *symname;
+  if (symbols != (asymbol **)NULL)
+    {
+      for (p = symbols; *p; p++)
+       {
+         aout_symbol_type  *q = (aout_symbol_type *) (*p);
+       next:
+         switch (q->type)
+           {
+           case N_TEXT:
+             /* If this looks like a file name symbol, and it comes after
+                the line number we have found so far, but before the
+                offset, then we have probably not found the right line
+                number.  */
+             if (q->symbol.value <= offset
+                 && ((q->symbol.value > low_line_vma
+                      && (line_file_name != NULL
+                          || *line_ptr != 0))
+                     || (q->symbol.value > low_func_vma
+                         && func != NULL)))
+               {
+                 const char *symname;
 
-           symname = q->symbol.name;
-           if (strcmp (symname + strlen (symname) - 2, ".o") == 0)
-             {
-               if (q->symbol.value > low_line_vma)
-                 {
-                   *line_ptr = 0;
-                   line_file_name = NULL;
-                 }
-               if (q->symbol.value > low_func_vma)
-                 func = NULL;
-             }
-         }
-       break;
+                 symname = q->symbol.name;
+                 if (strcmp (symname + strlen (symname) - 2, ".o") == 0)
+                   {
+                     if (q->symbol.value > low_line_vma)
+                       {
+                         *line_ptr = 0;
+                         line_file_name = NULL;
+                       }
+                     if (q->symbol.value > low_func_vma)
+                       func = NULL;
+                   }
+               }
+             break;
 
-      case N_SO:
-       /* If this symbol is less than the offset, but greater than
-           the line number we have found so far, then we have not
-           found the right line number.  */
-       if (q->symbol.value <= offset)
-         {
-           if (q->symbol.value > low_line_vma)
-             {
-               *line_ptr = 0;
-               line_file_name = NULL;
-             }
-           if (q->symbol.value > low_func_vma)
-             func = NULL;
-         }
+           case N_SO:
+             /* If this symbol is less than the offset, but greater than
+                the line number we have found so far, then we have not
+                found the right line number.  */
+             if (q->symbol.value <= offset)
+               {
+                 if (q->symbol.value > low_line_vma)
+                   {
+                     *line_ptr = 0;
+                     line_file_name = NULL;
+                   }
+                 if (q->symbol.value > low_func_vma)
+                   func = NULL;
+               }
 
-       main_file_name = current_file_name = q->symbol.name;
-       /* Look ahead to next symbol to check if that too is an N_SO.  */
-       p++;
-       if (*p == NULL)
-         break;
-       q = (aout_symbol_type *) (*p);
-       if (q->type != (int)N_SO)
-         goto next;
-
-       /* Found a second N_SO  First is directory; second is filename.  */
-       directory_name = current_file_name;
-       main_file_name = current_file_name = q->symbol.name;
-       if (obj_textsec(abfd) != section)
-         goto done;
-       break;
-      case N_SOL:
-       current_file_name = q->symbol.name;
-       break;
+             main_file_name = current_file_name = q->symbol.name;
+             /* Look ahead to next symbol to check if that too is an N_SO.  */
+             p++;
+             if (*p == NULL)
+               break;
+             q = (aout_symbol_type *) (*p);
+             if (q->type != (int)N_SO)
+               goto next;
+
+             /* Found a second N_SO  First is directory; second is filename.  */
+             directory_name = current_file_name;
+             main_file_name = current_file_name = q->symbol.name;
+             if (obj_textsec (abfd) != section)
+               goto done;
+             break;
+           case N_SOL:
+             current_file_name = q->symbol.name;
+             break;
 
-      case N_SLINE:
+           case N_SLINE:
 
-      case N_DSLINE:
-      case N_BSLINE:
-       /* We'll keep this if it resolves nearer than the one we have
-           already.  */
-       if (q->symbol.value >= low_line_vma
-           && q->symbol.value <= offset)
-         {
-           *line_ptr = q->desc;
-           low_line_vma = q->symbol.value;
-           line_file_name = current_file_name;
-           line_directory_name = directory_name;
-         }
-       break;
-      case N_FUN:
-       {
-         /* We'll keep this if it is nearer than the one we have already */
-         if (q->symbol.value >= low_func_vma &&
-             q->symbol.value <= offset) {
-           low_func_vma = q->symbol.value;
-           func = (asymbol *)q;
-         }
-         else if (q->symbol.value > offset)
-           goto done;
+           case N_DSLINE:
+           case N_BSLINE:
+             /* We'll keep this if it resolves nearer than the one we have
+                already.  */
+             if (q->symbol.value >= low_line_vma
+                 && q->symbol.value <= offset)
+               {
+                 *line_ptr = q->desc;
+                 low_line_vma = q->symbol.value;
+                 line_file_name = current_file_name;
+                 line_directory_name = directory_name;
+               }
+             break;
+           case N_FUN:
+             {
+               /* We'll keep this if it is nearer than the one we have already */
+               if (q->symbol.value >= low_func_vma &&
+                   q->symbol.value <= offset) {
+                 low_func_vma = q->symbol.value;
+                 func = (asymbol *)q;
+               }
+               else if (q->symbol.value > offset)
+                 goto done;
+             }
+             break;
+           }
        }
-       break;
-      }
     }
-  }
 
  done:
   if (*line_ptr != 0)
@@ -2869,7 +2921,7 @@ NAME(aout,find_nearest_line)
   if (func)
     {
       const char *function = func->name;
-      char *p;
+      char *colon;
 
       /* The caller expects a symbol name.  We actually have a
         function name, without the leading underscore.  Put the
@@ -2882,9 +2934,9 @@ NAME(aout,find_nearest_line)
          strcpy (buf + 1, function);
        }
       /* Have to remove : stuff */
-      p = strchr (buf, ':');
-      if (p != NULL)
-       *p = '\0';
+      colon = strchr (buf, ':');
+      if (colon != NULL)
+       *colon = '\0';
       *functionname_ptr = buf;
     }
 
@@ -2896,7 +2948,7 @@ NAME(aout,sizeof_headers) (abfd, execable)
      bfd *abfd;
      boolean execable ATTRIBUTE_UNUSED;
 {
-  return adata(abfd).exec_bytes_size;
+  return adata (abfd).exec_bytes_size;
 }
 
 /* Free all information we have cached for this BFD.  We can always
@@ -2908,7 +2960,8 @@ NAME(aout,bfd_free_cached_info) (abfd)
 {
   asection *o;
 
-  if (bfd_get_format (abfd) != bfd_object)
+  if (bfd_get_format (abfd) != bfd_object
+      || abfd->tdata.aout_data == NULL)
     return true;
 
 #define BFCI_FREE(x) if (x != NULL) { free (x); x = NULL; }
@@ -2993,9 +3046,9 @@ NAME(aout,link_hash_table_create) (abfd)
      bfd *abfd;
 {
   struct aout_link_hash_table *ret;
+  bfd_size_type amt = sizeof (struct aout_link_hash_table);
 
-  ret = ((struct aout_link_hash_table *)
-        bfd_alloc (abfd, sizeof (struct aout_link_hash_table)));
+  ret = (struct aout_link_hash_table *) bfd_alloc (abfd, amt);
   if (ret == NULL)
     return (struct bfd_link_hash_table *) NULL;
   if (! NAME(aout,link_hash_table_init) (ret, abfd,
@@ -3131,7 +3184,7 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
   strings = obj_aout_external_strings (abfd);
   for (; p < pend; p++)
     {
-      int type = bfd_h_get_8 (abfd, p->e_type);
+      int type = H_GET_8 (abfd, p->e_type);
       const char *name;
       struct bfd_link_hash_entry *h;
 
@@ -3295,6 +3348,7 @@ aout_link_add_symbols (abfd, info)
   struct aout_link_hash_entry **sym_hash;
   register struct external_nlist *p;
   struct external_nlist *pend;
+  bfd_size_type amt;
 
   syms = obj_aout_external_syms (abfd);
   sym_count = obj_aout_external_sym_count (abfd);
@@ -3315,10 +3369,8 @@ aout_link_add_symbols (abfd, info)
      to particular symbols.  We could just look them up in the hash
      table, but keeping the list is more efficient.  Perhaps this
      should be conditional on info->keep_memory.  */
-  sym_hash = ((struct aout_link_hash_entry **)
-             bfd_alloc (abfd,
-                        ((size_t) sym_count
-                         * sizeof (struct aout_link_hash_entry *))));
+  amt = sym_count * sizeof (struct aout_link_hash_entry *);
+  sym_hash = (struct aout_link_hash_entry **) bfd_alloc (abfd, amt);
   if (sym_hash == NULL && sym_count != 0)
     return false;
   obj_aout_sym_hashes (abfd) = sym_hash;
@@ -3340,7 +3392,7 @@ aout_link_add_symbols (abfd, info)
 
       *sym_hash = NULL;
 
-      type = bfd_h_get_8 (abfd, p->e_type);
+      type = H_GET_8 (abfd, p->e_type);
 
       /* Ignore debugging symbols.  */
       if ((type & N_STAB) != 0)
@@ -3524,8 +3576,8 @@ struct aout_link_includes_entry
 
 /* Look up an entry in an the header file hash table.  */
 
-#define aout_link_includes_lookup(table, string, create, copy) \
-  ((struct aout_link_includes_entry *) \
+#define aout_link_includes_lookup(table, string, create, copy)         \
+  ((struct aout_link_includes_entry *)                                 \
    bfd_hash_lookup (&(table)->root, (string), (create), (copy)))
 
 /* During the final link step we need to pass around a bunch of
@@ -3630,9 +3682,9 @@ NAME(aout,final_link) (abfd, info, callback)
   boolean includes_hash_initialized = false;
   register bfd *sub;
   bfd_size_type trsize, drsize;
-  size_t max_contents_size;
-  size_t max_relocs_size;
-  size_t max_sym_count;
+  bfd_size_type max_contents_size;
+  bfd_size_type max_relocs_size;
+  bfd_size_type max_sym_count;
   bfd_size_type text_size;
   file_ptr text_end;
   register struct bfd_link_order *p;
@@ -3664,7 +3716,7 @@ NAME(aout,final_link) (abfd, info, callback)
   max_sym_count = 0;
   for (sub = info->input_bfds; sub != NULL; sub = sub->link_next)
     {
-      size_t sz;
+      bfd_size_type sz;
 
       if (info->relocateable)
        {
@@ -3933,14 +3985,12 @@ NAME(aout,final_link) (abfd, info, callback)
           && obj_datasec (abfd)->reloc_count == 0)
     {
       bfd_byte b;
+      file_ptr pos;
 
       b = 0;
-      if (bfd_seek (abfd,
-                   (obj_datasec (abfd)->filepos
-                    + exec_hdr (abfd)->a_data
-                    - 1),
-                   SEEK_SET) != 0
-         || bfd_write (&b, 1, 1, abfd) != 1)
+      pos = obj_datasec (abfd)->filepos + exec_hdr (abfd)->a_data - 1;
+      if (bfd_seek (abfd, pos, SEEK_SET) != 0
+         || bfd_bwrite (&b, (bfd_size_type) 1, abfd) != 1)
        goto error_return;
     }
 
@@ -4061,9 +4111,9 @@ aout_link_write_symbols (finfo, input_bfd)
                              false, false) != NULL)
       && discard != discard_all)
     {
-      bfd_h_put_8 (output_bfd, N_TEXT, outsym->e_type);
-      bfd_h_put_8 (output_bfd, 0, outsym->e_other);
-      bfd_h_put_16 (output_bfd, (bfd_vma) 0, outsym->e_desc);
+      H_PUT_8 (output_bfd, N_TEXT, outsym->e_type);
+      H_PUT_8 (output_bfd, 0, outsym->e_other);
+      H_PUT_16 (output_bfd, 0, outsym->e_desc);
       strtab_index = add_to_stringtab (output_bfd, finfo->strtab,
                                       input_bfd->filename, false);
       if (strtab_index == (bfd_size_type) -1)
@@ -4084,7 +4134,7 @@ aout_link_write_symbols (finfo, input_bfd)
   sym_end = sym + sym_count;
   sym_hash = obj_aout_sym_hashes (input_bfd);
   symbol_map = finfo->symbol_map;
-  memset (symbol_map, 0, sym_count * sizeof *symbol_map);
+  memset (symbol_map, 0, (size_t) sym_count * sizeof *symbol_map);
   for (; sym < sym_end; sym++, sym_hash++, symbol_map++)
     {
       const char *name;
@@ -4107,7 +4157,7 @@ aout_link_write_symbols (finfo, input_bfd)
          we do copy the symbol over.  */
       *symbol_map = -1;
 
-      type = bfd_h_get_8 (input_bfd, sym->e_type);
+      type = H_GET_8 (input_bfd, sym->e_type);
       name = strings + GET_WORD (input_bfd, sym->e_strx);
 
       h = NULL;
@@ -4341,6 +4391,7 @@ aout_link_write_symbols (finfo, input_bfd)
              switch (discard)
                {
                case discard_none:
+               case discard_sec_merge:
                  break;
                case discard_l:
                  if ((type & N_STAB) == 0
@@ -4377,7 +4428,7 @@ aout_link_write_symbols (finfo, input_bfd)
                {
                  int incl_type;
 
-                 incl_type = bfd_h_get_8 (input_bfd, incl_sym->e_type);
+                 incl_type = H_GET_8 (input_bfd, incl_sym->e_type);
                  if (incl_type == N_EINCL)
                    {
                      if (nest == 0)
@@ -4398,7 +4449,7 @@ aout_link_write_symbols (finfo, input_bfd)
                            {
                              /* Skip the file number.  */
                              ++s;
-                             while (isdigit ((unsigned char) *s))
+                             while (ISDIGIT (*s))
                                ++s;
                              --s;
                            }
@@ -4446,7 +4497,7 @@ aout_link_write_symbols (finfo, input_bfd)
                    {
                      int incl_type;
 
-                     incl_type = bfd_h_get_8 (input_bfd, incl_sym->e_type);
+                     incl_type = H_GET_8 (input_bfd, incl_sym->e_type);
                      if (incl_type == N_EINCL)
                        {
                          if (nest == 0)
@@ -4467,11 +4518,9 @@ aout_link_write_symbols (finfo, input_bfd)
 
       /* Copy this symbol into the list of symbols we are going to
         write out.  */
-      bfd_h_put_8 (output_bfd, type, outsym->e_type);
-      bfd_h_put_8 (output_bfd, bfd_h_get_8 (input_bfd, sym->e_other),
-                  outsym->e_other);
-      bfd_h_put_16 (output_bfd, bfd_h_get_16 (input_bfd, sym->e_desc),
-                   outsym->e_desc);
+      H_PUT_8 (output_bfd, type, outsym->e_type);
+      H_PUT_8 (output_bfd, H_GET_8 (input_bfd, sym->e_other), outsym->e_other);
+      H_PUT_16 (output_bfd, H_GET_16 (input_bfd, sym->e_desc), outsym->e_desc);
       copy = false;
       if (! finfo->info->keep_memory)
        {
@@ -4497,17 +4546,16 @@ aout_link_write_symbols (finfo, input_bfd)
   /* Write out the output symbols we have just constructed.  */
   if (outsym > finfo->output_syms)
     {
-      bfd_size_type outsym_count;
+      bfd_size_type outsym_size;
 
       if (bfd_seek (output_bfd, finfo->symoff, SEEK_SET) != 0)
        return false;
-      outsym_count = outsym - finfo->output_syms;
-      if (bfd_write ((PTR) finfo->output_syms,
-                    (bfd_size_type) EXTERNAL_NLIST_SIZE,
-                    (bfd_size_type) outsym_count, output_bfd)
-         != outsym_count * EXTERNAL_NLIST_SIZE)
+      outsym_size = outsym - finfo->output_syms;
+      outsym_size *= EXTERNAL_NLIST_SIZE;
+      if (bfd_bwrite ((PTR) finfo->output_syms, outsym_size, output_bfd)
+         != outsym_size)
        return false;
-      finfo->symoff += outsym_count * EXTERNAL_NLIST_SIZE;
+      finfo->symoff += outsym_size;
     }
 
   return true;
@@ -4527,6 +4575,7 @@ aout_link_write_other_symbol (h, data)
   bfd_vma val;
   struct external_nlist outsym;
   bfd_size_type indx;
+  bfd_size_type amt;
 
   output_bfd = finfo->output_bfd;
 
@@ -4603,12 +4652,12 @@ aout_link_write_other_symbol (h, data)
       return true;
     }
 
-  bfd_h_put_8 (output_bfd, type, outsym.e_type);
-  bfd_h_put_8 (output_bfd, 0, outsym.e_other);
-  bfd_h_put_16 (output_bfd, 0, outsym.e_desc);
+  H_PUT_8 (output_bfd, type, outsym.e_type);
+  H_PUT_8 (output_bfd, 0, outsym.e_other);
+  H_PUT_16 (output_bfd, 0, outsym.e_desc);
   indx = add_to_stringtab (output_bfd, finfo->strtab, h->root.root.string,
                           false);
-  if (indx == (bfd_size_type) -1)
+  if (indx == - (bfd_size_type) 1)
     {
       /* FIXME: No way to handle errors.  */
       abort ();
@@ -4616,9 +4665,9 @@ aout_link_write_other_symbol (h, data)
   PUT_WORD (output_bfd, indx, outsym.e_strx);
   PUT_WORD (output_bfd, val, outsym.e_value);
 
+  amt = EXTERNAL_NLIST_SIZE;
   if (bfd_seek (output_bfd, finfo->symoff, SEEK_SET) != 0
-      || bfd_write ((PTR) &outsym, (bfd_size_type) EXTERNAL_NLIST_SIZE,
-                   (bfd_size_type) 1, output_bfd) != EXTERNAL_NLIST_SIZE)
+      || bfd_bwrite ((PTR) &outsym, amt, output_bfd) != amt)
     {
       /* FIXME: No way to handle errors.  */
       abort ();
@@ -4662,7 +4711,7 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
       if (rel_size > 0)
        {
          if (bfd_seek (input_bfd, input_section->rel_filepos, SEEK_SET) != 0
-             || bfd_read (relocs, 1, rel_size, input_bfd) != rel_size)
+             || bfd_bread (relocs, rel_size, input_bfd) != rel_size)
            return false;
        }
     }
@@ -4687,7 +4736,7 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
   if (! bfd_set_section_contents (finfo->output_bfd,
                                  input_section->output_section,
                                  (PTR) finfo->contents,
-                                 input_section->output_offset,
+                                 (file_ptr) input_section->output_offset,
                                  input_size))
     return false;
 
@@ -4697,8 +4746,7 @@ aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr,
     {
       if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0)
        return false;
-      if (bfd_write (relocs, (bfd_size_type) 1, rel_size, finfo->output_bfd)
-         != rel_size)
+      if (bfd_bwrite (relocs, rel_size, finfo->output_bfd) != rel_size)
        return false;
       *reloff_ptr += rel_size;
 
@@ -4797,7 +4845,7 @@ aout_link_input_section_std (finfo, input_bfd, input_section, relocs,
       r_addr = GET_SWORD (input_bfd, rel->r_address);
 
 #ifdef MY_reloc_howto
-      howto = MY_reloc_howto(input_bfd, rel, r_index, r_extern, r_pcrel);
+      howto = MY_reloc_howto (input_bfd, rel, r_index, r_extern, r_pcrel);
 #else
       {
        int r_jmptable;
@@ -5356,7 +5404,7 @@ aout_link_input_section_ext (finfo, input_bfd, input_section, relocs,
              /* For base relative relocs, r_index is always an index
                  into the symbol table, even if r_extern is 0.  */
              sym = syms + r_index;
-             type = bfd_h_get_8 (input_bfd, sym->e_type);
+             type = H_GET_8 (input_bfd, sym->e_type);
              if ((type & N_TYPE) == N_TEXT
                  || type == N_WEAKT)
                r_section = obj_textsec (input_bfd);
@@ -5517,6 +5565,7 @@ aout_link_reloc_link_order (finfo, o, p)
   struct reloc_std_external srel;
   struct reloc_ext_external erel;
   PTR rel_ptr;
+  bfd_size_type amt;
 
   pr = p->u.reloc.p;
 
@@ -5582,8 +5631,8 @@ aout_link_reloc_link_order (finfo, o, p)
   if (obj_reloc_entry_size (finfo->output_bfd) == RELOC_STD_SIZE)
     {
 #ifdef MY_put_reloc
-      MY_put_reloc(finfo->output_bfd, r_extern, r_index, p->offset, howto,
-                  &srel);
+      MY_put_reloc (finfo->output_bfd, r_extern, r_index, p->offset, howto,
+                   &srel);
 #else
       {
        int r_pcrel;
@@ -5646,7 +5695,7 @@ aout_link_reloc_link_order (finfo, o, p)
          if (buf == (bfd_byte *) NULL)
            return false;
          r = MY_relocate_contents (howto, finfo->output_bfd,
-                                     pr->addend, buf);
+                                   (bfd_vma) pr->addend, buf);
          switch (r)
            {
            case bfd_reloc_ok:
@@ -5669,10 +5718,8 @@ aout_link_reloc_link_order (finfo, o, p)
                }
              break;
            }
-         ok = bfd_set_section_contents (finfo->output_bfd, o,
-                                        (PTR) buf,
-                                        (file_ptr) p->offset,
-                                        size);
+         ok = bfd_set_section_contents (finfo->output_bfd, o, (PTR) buf,
+                                        (file_ptr) p->offset, size);
          free (buf);
          if (! ok)
            return false;
@@ -5705,17 +5752,15 @@ aout_link_reloc_link_order (finfo, o, p)
              | (howto->type << RELOC_EXT_BITS_TYPE_SH_LITTLE);
        }
 
-      PUT_WORD (finfo->output_bfd, pr->addend, erel.r_addend);
+      PUT_WORD (finfo->output_bfd, (bfd_vma) pr->addend, erel.r_addend);
 #endif /* MY_put_ext_reloc */
 
       rel_ptr = (PTR) &erel;
     }
 
+  amt = obj_reloc_entry_size (finfo->output_bfd);
   if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0
-      || (bfd_write (rel_ptr, (bfd_size_type) 1,
-                    obj_reloc_entry_size (finfo->output_bfd),
-                    finfo->output_bfd)
-         != obj_reloc_entry_size (finfo->output_bfd)))
+      || bfd_bwrite (rel_ptr, amt, finfo->output_bfd) != amt)
     return false;
 
   *reloff_ptr += obj_reloc_entry_size (finfo->output_bfd);
This page took 0.059477 seconds and 4 git commands to generate.