(_bfd_elf_slurp_version_tables): Correct reading of version
[deliverable/binutils-gdb.git] / bfd / aix386-core.c
index 7f7a6bb1ccc378d070cb97f0df351ee7bcf4e01e..fb67b17081f89ab86f9be88fc1cac191f66ba4ef 100644 (file)
@@ -1,7 +1,8 @@
 /* BFD back-end for AIX on PS/2 core files.
    This was based on trad-core.c, which was written by John Gilmore of
         Cygnus Support.
-   Copyright 1988, 1989, 1991, 1992, 1993 Free Software Foundation, Inc.
+   Copyright 1988, 89, 91, 92, 93, 94, 95, 96, 97, 1998
+   Free Software Foundation, Inc.
    Written by Minh Tran-Le <TRANLE@INTELLICORP.COM>.
    Converted to back end form by Ian Lance Taylor <ian@cygnus.com>.
 
@@ -19,29 +20,17 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-/* To use this file on a particular host, configure the host with these
-   parameters in the config/h-HOST file:
-
-       HDEFINES=-DAIX386_CORE=1
-       HDEPFILES=aix386-core.o
- */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "bfd.h"
 #include "sysdep.h"
 #include "libbfd.h"
-#include "obstack.h"
 #include "coff/i386.h"
 #include "coff/internal.h"
 #include "libcoff.h"
 
-#include <stdio.h>
-#include <stddef.h>
 #include <signal.h>
 
-#include <errno.h>
-
 #if defined (_AIX) && defined (_I386)
 #define NOCHECKS               /* this is for coredump.h */
 #define _h_USER                        /* avoid including user.h from coredump.h */
@@ -75,7 +64,9 @@ struct trad_core_struct {
   asection *sections[MAX_CORE_SEGS];
 };
 
-static bfd_target *
+static void swap_abort PARAMS ((void));
+
+static const bfd_target *
 aix386_core_file_p (abfd)
      bfd *abfd;
 {
@@ -101,10 +92,7 @@ aix386_core_file_p (abfd)
 
   mergem = (struct mergem *)bfd_zalloc (abfd, sizeof (struct mergem));
   if (mergem == NULL)
-    {
-      bfd_set_error (bfd_error_no_memory);
-      return 0;
-    }
+    return 0;
 
   core = &mergem->internal_core;
 
@@ -125,7 +113,6 @@ aix386_core_file_p (abfd)
   if (core_regsec (abfd) == NULL)
     {
     loser:
-      bfd_set_error (bfd_error_no_memory);
       bfd_release (abfd, (char *)mergem);
       return 0;
     }
@@ -198,8 +185,8 @@ aix386_core_file_p (abfd)
   core_regsec (abfd)->name = ".reg";
   core_reg2sec (abfd)->name = ".reg2";
 
-  core_regsec (abfd)->flags = SEC_ALLOC + SEC_HAS_CONTENTS;
-  core_reg2sec (abfd)->flags = SEC_ALLOC + SEC_HAS_CONTENTS;
+  core_regsec (abfd)->flags = SEC_HAS_CONTENTS;
+  core_reg2sec (abfd)->flags = SEC_HAS_CONTENTS;
 
   core_regsec (abfd)->_raw_size = sizeof(core->cd_regs);
   core_reg2sec (abfd)->_raw_size = sizeof(core->cd_fpregs);
@@ -245,7 +232,7 @@ aix386_core_file_matches_executable_p (core_bfd, exec_bfd)
 }
 
 /* If somebody calls any byte-swapping routines, shoot them.  */
-void
+static void
 swap_abort()
 {
   abort(); /* This way doesn't require any declaration for ANSI to fuck up */
@@ -254,12 +241,12 @@ swap_abort()
 #define NO_GETS ((PROTO(bfd_signed_vma, (*), (const bfd_byte *))) swap_abort )
 #define        NO_PUT  ((PROTO(void,        (*), (bfd_vma, bfd_byte *))) swap_abort )
 
-bfd_target aix386_core_vec =
+const bfd_target aix386_core_vec =
   {
     "aix386-core",
     bfd_target_unknown_flavour,
-    true,                      /* target byte order */
-    true,                      /* target headers byte order */
+    BFD_ENDIAN_BIG,            /* target byte order */
+    BFD_ENDIANG_BIG,           /* target headers byte order */
   (HAS_RELOC | EXEC_P |                /* object flags */
    HAS_LINENO | HAS_DEBUG |
    HAS_SYMS | HAS_LOCALS | WP_TEXT),
@@ -268,7 +255,6 @@ bfd_target aix386_core_vec =
     0,                                         /* leading underscore */
     ' ',                                       /* ar_pad_char */
     16,                                                /* ar_max_namelen */
-    3,                                         /* minimum alignment power */
     NO_GET, NO_GETS, NO_PUT,
     NO_GET, NO_GETS, NO_PUT,
     NO_GET, NO_GETS, NO_PUT, /* data */
@@ -291,6 +277,9 @@ bfd_target aix386_core_vec =
      BFD_JUMP_TABLE_RELOCS (_bfd_norelocs),
      BFD_JUMP_TABLE_WRITE (_bfd_generic),
      BFD_JUMP_TABLE_LINK (_bfd_nolink),
+     BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
 
+    NULL,
+    
     (PTR) 0
 };
This page took 0.027865 seconds and 4 git commands to generate.