Patch from minyard@bnr.ca: For empty symbol table, write out number "4" in
[deliverable/binutils-gdb.git] / bfd / coff-i386.c
index 103de4b57d2e971ff306473b791fe3d74fb1b74c..dd208ceb516c38a353bff86550cde85b6b236870 100644 (file)
@@ -1,31 +1,29 @@
-/* Copyright (C) 1990, 1991 Free Software Foundation, Inc.
+/* BFD back-end for Intel 386 COFF files.
+   Copyright (C) 1990-1991 Free Software Foundation, Inc.
+   Written by Cygnus Support.
 
-This file is part of BFD, the Binary File Diddler.
+This file is part of BFD, the Binary File Descriptor library.
 
-BFD is free software; you can redistribute it and/or modify
+This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
 
-BFD is distributed in the hope that it will be useful,
+This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with BFD; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
-
-/* $Id$ */
-
-#define I386 1
-#include <ansidecl.h>
-#include <sysdep.h>
 #include "bfd.h"
+#include "sysdep.h"
 #include "libbfd.h"
 #include "obstack.h"
-#include "i386coff.h"
+#include "coff/i386.h"
+#include "coff/internal.h"
 #include "libcoff.h"
 
 
@@ -54,13 +52,16 @@ static reloc_howto_type howto_table[] =
   HOWTO(R_PCRLONG,            0,  2,   32, true,  0, false, true,0,"DISP32",   true, 0xffffffff,0xffffffff, false),
 };
 
-
 /* Turn a howto into a reloc  nunmber */
 
 #define SELECT_RELOC(x,howto) { x = howto->type; }
 #define BADMAG(x) I386BADMAG(x)
-#include "coffcode.h"
+#define I386 1                 /* Customize coffcode.h */
+
+#define RTYPE2HOWTO(cache_ptr, dst) \
+           cache_ptr->howto = howto_table + (dst)->r_type;
 
+#include "coffcode.h"
 
 #define coff_write_armap bsd_write_armap
 
@@ -70,32 +71,32 @@ bfd *a ;
 
 bfd_target i386coff_vec =
 {
-  "i386coff",          /* name */
-  bfd_target_coff_flavour_enum,
-  false,                               /* data byte order is big */
-  false,                               /* header byte order is big */
+  "coff-i386",                 /* name */
+  bfd_target_coff_flavour,
+  false,                       /* data byte order is little */
+  false,                       /* header byte order is little */
 
   (HAS_RELOC | EXEC_P |                /* object flags */
    HAS_LINENO | HAS_DEBUG |
    HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT),
 
   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
+  0,                           /* leading underscore */
   '/',                         /* ar_pad_char */
   15,                          /* ar_max_namelen */
 
-_do_getl64, _do_putl64,  _do_getl32, _do_putl32, _do_getl16, _do_putl16, /* data */
-_do_getl64, _do_putl64,  _do_getl32, _do_putl32, _do_getl16, _do_putl16, /* hdrs */
-
-  {_bfd_dummy_target, i3coff_object_p, /* bfd_check_format */
-     bfd_generic_archive_p, _bfd_dummy_target},
-  {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */
-     bfd_false},
-  {bfd_false, coff_write_object_contents,      /* bfd_write_contents */
-     _bfd_write_archive_contents, bfd_false},
+  2,                           /* minimum alignment power */
+  _do_getl64, _do_putl64,  _do_getl32, _do_putl32, _do_getl16, _do_putl16, /* data */
+  _do_getl64, _do_putl64,  _do_getl32, _do_putl32, _do_getl16, _do_putl16, /* hdrs */
 
-     JUMP_TABLE(coff)
+/* Note that we allow an object file to be treated as a core file as well. */
+    {_bfd_dummy_target, i3coff_object_p, /* bfd_check_format */
+       bfd_generic_archive_p, i3coff_object_p},
+    {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */
+       bfd_false},
+    {bfd_false, coff_write_object_contents, /* bfd_write_contents */
+       _bfd_write_archive_contents, bfd_false},
 
+  JUMP_TABLE(coff),
+  COFF_SWAP_TABLE
   };
-
-
-
This page took 0.025226 seconds and 4 git commands to generate.