Touches most files in bfd/, so likely will be blamed for everything..
[deliverable/binutils-gdb.git] / bfd / i386lynx.c
index a999dd0f6aec5f8878507c5e4ca31bd7eec446cf..13c0f74ed0d82fda862587c96ff008ae523c5bda 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for i386 a.out binaries under LynxOS.
 /* BFD back-end for i386 a.out binaries under LynxOS.
-   Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 1999
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 2001
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -50,31 +50,31 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
                           obj_reloc_entry_size (abfd));                      \
        NAME(aout,swap_exec_header_out) (abfd, execp, &exec_bytes);           \
                                                                              \
                           obj_reloc_entry_size (abfd));                      \
        NAME(aout,swap_exec_header_out) (abfd, execp, &exec_bytes);           \
                                                                              \
-       if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) return false;       \
-       if (bfd_write ((PTR) &exec_bytes, 1, EXEC_BYTES_SIZE, abfd)           \
-           != EXEC_BYTES_SIZE)                                               \
+       if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0                      \
+           || bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, \
+                         abfd) != EXEC_BYTES_SIZE)                           \
          return false;                                                       \
        /* Now write out reloc info, followed by syms and strings */          \
                                                                              \
        if (bfd_get_symcount (abfd) != 0)                                     \
            {                                                                 \
          return false;                                                       \
        /* Now write out reloc info, followed by syms and strings */          \
                                                                              \
        if (bfd_get_symcount (abfd) != 0)                                     \
            {                                                                 \
-             if (bfd_seek (abfd, (file_ptr)(N_SYMOFF(*execp)), SEEK_SET)     \
+             if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*execp)), SEEK_SET)    \
                  != 0)                                                       \
                return false;                                                 \
                                                                              \
                  != 0)                                                       \
                return false;                                                 \
                                                                              \
-             if (! NAME(aout,write_syms)(abfd)) return false;                \
+             if (! NAME(aout,write_syms) (abfd)) return false;               \
                                                                              \
                                                                              \
-             if (bfd_seek (abfd, (file_ptr)(N_TRELOFF(*execp)), SEEK_SET)    \
+             if (bfd_seek (abfd, (file_ptr) (N_TRELOFF(*execp)), SEEK_SET)   \
                  != 0)                                                       \
                return false;                                                 \
                                                                              \
              if (!NAME(lynx,squirt_out_relocs) (abfd, obj_textsec (abfd)))   \
                return false;                                                 \
                  != 0)                                                       \
                return false;                                                 \
                                                                              \
              if (!NAME(lynx,squirt_out_relocs) (abfd, obj_textsec (abfd)))   \
                return false;                                                 \
-             if (bfd_seek (abfd, (file_ptr)(N_DRELOFF(*execp)), SEEK_SET)    \
+             if (bfd_seek (abfd, (file_ptr) (N_DRELOFF(*execp)), SEEK_SET)   \
                  != 0)                                                       \
                return 0;                                                     \
                                                                              \
                  != 0)                                                       \
                return 0;                                                     \
                                                                              \
-             if (!NAME(lynx,squirt_out_relocs)(abfd, obj_datasec (abfd)))    \
+             if (!NAME(lynx,squirt_out_relocs) (abfd, obj_datasec (abfd)))   \
                return false;                                                 \
            }                                                                 \
       }
                return false;                                                 \
            }                                                                 \
       }
@@ -83,6 +83,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #include "libaout.h"
 #include "aout/aout64.h"
 
 #include "libaout.h"
 #include "aout/aout64.h"
 
+void NAME (lynx,swap_std_reloc_out) PARAMS ((bfd *, arelent *, struct reloc_std_external *));
+void NAME (lynx,swap_ext_reloc_out) PARAMS ((bfd *, arelent *, struct reloc_ext_external *));
+void NAME (lynx,swap_ext_reloc_in)  PARAMS ((bfd *, struct reloc_ext_external *, arelent *, asymbol **, bfd_size_type));
+void NAME (lynx,swap_std_reloc_in)  PARAMS ((bfd *, struct reloc_std_external *, arelent *, asymbol **, bfd_size_type));
+boolean NAME (lynx,slurp_reloc_table) PARAMS ((bfd *, sec_ptr, asymbol **));
+boolean NAME (lynx,squirt_out_relocs) PARAMS ((bfd *, asection *));
+long NAME (lynx,canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
+
 #ifdef LYNX_CORE
 
 char *lynx_core_file_failing_command ();
 #ifdef LYNX_CORE
 
 char *lynx_core_file_failing_command ();
@@ -358,7 +366,7 @@ NAME(lynx,swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
   int r_baserel, r_jmptable, r_relative;
   struct aoutdata *su = &(abfd->tdata.aout_data->a);
 
   int r_baserel, r_jmptable, r_relative;
   struct aoutdata *su = &(abfd->tdata.aout_data->a);
 
-  cache_ptr->address = bfd_h_get_32 (abfd, bytes->r_address);
+  cache_ptr->address = H_GET_32 (abfd, bytes->r_address);
 
   r_index = bytes->r_index[1];
   r_extern = (0 != (bytes->r_index[0] & RELOC_STD_BITS_EXTERN_BIG));
 
   r_index = bytes->r_index[1];
   r_extern = (0 != (bytes->r_index[0] & RELOC_STD_BITS_EXTERN_BIG));
@@ -383,7 +391,7 @@ NAME(lynx,slurp_reloc_table) (abfd, asect, symbols)
      sec_ptr asect;
      asymbol **symbols;
 {
      sec_ptr asect;
      asymbol **symbols;
 {
-  unsigned int count;
+  bfd_size_type count;
   bfd_size_type reloc_size;
   PTR relocs;
   arelent *reloc_cache;
   bfd_size_type reloc_size;
   PTR relocs;
   arelent *reloc_cache;
@@ -421,7 +429,7 @@ doit:
   reloc_cache = (arelent *) bfd_malloc (count * sizeof (arelent));
   if (!reloc_cache && count != 0)
     return false;
   reloc_cache = (arelent *) bfd_malloc (count * sizeof (arelent));
   if (!reloc_cache && count != 0)
     return false;
-  memset (reloc_cache, 0, count * sizeof (arelent));
+  memset (reloc_cache, 0, (size_t) count * sizeof (arelent));
 
   relocs = (PTR) bfd_alloc (abfd, reloc_size);
   if (!relocs && reloc_size != 0)
 
   relocs = (PTR) bfd_alloc (abfd, reloc_size);
   if (!relocs && reloc_size != 0)
@@ -430,7 +438,7 @@ doit:
       return false;
     }
 
       return false;
     }
 
-  if (bfd_read (relocs, 1, reloc_size, abfd) != reloc_size)
+  if (bfd_bread (relocs, reloc_size, abfd) != reloc_size)
     {
       bfd_release (abfd, relocs);
       free (reloc_cache);
     {
       bfd_release (abfd, relocs);
       free (reloc_cache);
@@ -446,7 +454,7 @@ doit:
       for (; counter < count; counter++, rptr++, cache_ptr++)
        {
          NAME(lynx,swap_ext_reloc_in) (abfd, rptr, cache_ptr, symbols,
       for (; counter < count; counter++, rptr++, cache_ptr++)
        {
          NAME(lynx,swap_ext_reloc_in) (abfd, rptr, cache_ptr, symbols,
-                                       bfd_get_symcount (abfd));
+                                       (bfd_size_type) bfd_get_symcount (abfd));
        }
     }
   else
        }
     }
   else
@@ -458,7 +466,7 @@ doit:
       for (; counter < count; counter++, rptr++, cache_ptr++)
        {
          NAME(lynx,swap_std_reloc_in) (abfd, rptr, cache_ptr, symbols,
       for (; counter < count; counter++, rptr++, cache_ptr++)
        {
          NAME(lynx,swap_std_reloc_in) (abfd, rptr, cache_ptr, symbols,
-                                       bfd_get_symcount (abfd));
+                                       (bfd_size_type) bfd_get_symcount (abfd));
        }
 
     }
        }
 
     }
@@ -483,13 +491,14 @@ NAME(lynx,squirt_out_relocs) (abfd, section)
   size_t each_size;
 
   unsigned int count = section->reloc_count;
   size_t each_size;
 
   unsigned int count = section->reloc_count;
-  size_t natsize;
+  bfd_size_type natsize;
 
   if (count == 0)
     return true;
 
   each_size = obj_reloc_entry_size (abfd);
 
   if (count == 0)
     return true;
 
   each_size = obj_reloc_entry_size (abfd);
-  natsize = each_size * count;
+  natsize = count;
+  natsize *= each_size;
   native = (unsigned char *) bfd_zalloc (abfd, natsize);
   if (!native)
     return false;
   native = (unsigned char *) bfd_zalloc (abfd, natsize);
   if (!native)
     return false;
@@ -511,7 +520,7 @@ NAME(lynx,squirt_out_relocs) (abfd, section)
        NAME(lynx,swap_std_reloc_out) (abfd, *generic, (struct reloc_std_external *) natptr);
     }
 
        NAME(lynx,swap_std_reloc_out) (abfd, *generic, (struct reloc_std_external *) natptr);
     }
 
-  if (bfd_write ((PTR) native, 1, natsize, abfd) != natsize)
+  if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize)
     {
       bfd_release (abfd, native);
       return false;
     {
       bfd_release (abfd, native);
       return false;
This page took 0.027923 seconds and 4 git commands to generate.