gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / bfd / netbsd-core.c
index 3c3cf0abfdfbde9914d1c26df738802d0c3b14d8..83ad33060fc46f1dbd2dd566066a2572d90b78de 100644 (file)
@@ -1,14 +1,12 @@
 /* BFD back end for NetBSD style core files
 /* BFD back end for NetBSD style core files
-   Copyright 1988, 1989, 1991, 1992, 1993, 1996, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004, 2005
-   Free Software Foundation, Inc.
+   Copyright (C) 1988-2020 Free Software Foundation, Inc.
    Written by Paul Kranenburg, EUR
 
    This file is part of BFD, the Binary File Descriptor library.
 
    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
    Written by Paul Kranenburg, EUR
 
    This file is part of BFD, the Binary File Descriptor library.
 
    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 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    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., 59 Temple Place - Suite 330, Boston, MA 02110-1301, USA.  */
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 
-#include "bfd.h"
 #include "sysdep.h"
 #include "sysdep.h"
+#include "bfd.h"
 #include "libbfd.h"
 #include "libbfd.h"
-#include "libaout.h"           /* BFD a.out internal data structures.  */
+#include "libaout.h"          /* BFD a.out internal data structures.  */
 
 #include <sys/param.h>
 #include <sys/dir.h>
 
 #include <sys/param.h>
 #include <sys/dir.h>
@@ -42,6 +41,9 @@
    OpenBSD/sparc64.  */
 #define SPARC64_WCOOKIE_OFFSET 832
 
    OpenBSD/sparc64.  */
 #define SPARC64_WCOOKIE_OFFSET 832
 
+#define netbsd_core_file_matches_executable_p generic_core_file_matches_executable_p
+#define netbsd_core_file_pid _bfd_nocore_core_file_pid
+
 struct netbsd_core_struct
 {
   struct core core;
 struct netbsd_core_struct
 {
   struct core core;
@@ -49,7 +51,7 @@ struct netbsd_core_struct
 
 /* Handle NetBSD-style core dump file.  */
 
 
 /* Handle NetBSD-style core dump file.  */
 
-static const bfd_target *
+static bfd_cleanup
 netbsd_core_file_p (bfd *abfd)
 {
   int val;
 netbsd_core_file_p (bfd *abfd)
 {
   int val;
@@ -58,7 +60,7 @@ netbsd_core_file_p (bfd *abfd)
   asection *asect;
   struct core core;
   struct coreseg coreseg;
   asection *asect;
   struct core core;
   struct coreseg coreseg;
-  bfd_size_type amt = sizeof core;
+  size_t amt = sizeof core;
 
   val = bfd_bread (&core, amt, abfd);
   if (val != sizeof core)
 
   val = bfd_bread (&core, amt, abfd);
   if (val != sizeof core)
@@ -124,11 +126,10 @@ netbsd_core_file_p (bfd *abfd)
          flags = SEC_ALLOC + SEC_HAS_CONTENTS;
          break;
        }
          flags = SEC_ALLOC + SEC_HAS_CONTENTS;
          break;
        }
-      asect = bfd_make_section_anyway (abfd, sname);
+      asect = bfd_make_section_anyway_with_flags (abfd, sname, flags);
       if (asect == NULL)
        goto punt;
 
       if (asect == NULL)
        goto punt;
 
-      asect->flags = flags;
       asect->size = coreseg.c_size;
       asect->vma = coreseg.c_addr;
       asect->filepos = offset;
       asect->size = coreseg.c_size;
       asect->vma = coreseg.c_addr;
       asect->filepos = offset;
@@ -157,11 +158,12 @@ netbsd_core_file_p (bfd *abfd)
              asect->size = wcookie_offset;
 
              /* And create the .wcookie section.  */
              asect->size = wcookie_offset;
 
              /* And create the .wcookie section.  */
-             asect = bfd_make_section_anyway (abfd, ".wcookie");
+             flags = SEC_ALLOC + SEC_HAS_CONTENTS;
+             asect = bfd_make_section_anyway_with_flags (abfd, ".wcookie",
+                                                         flags);
              if (asect == NULL)
                goto punt;
 
              if (asect == NULL)
                goto punt;
 
-             asect->flags = SEC_ALLOC + SEC_HAS_CONTENTS;
              asect->size = coreseg.c_size - wcookie_offset;
              asect->vma = 0;
              asect->filepos = offset + wcookie_offset;
              asect->size = coreseg.c_size - wcookie_offset;
              asect->vma = 0;
              asect->filepos = offset + wcookie_offset;
@@ -196,10 +198,6 @@ netbsd_core_file_p (bfd *abfd)
       bfd_default_set_arch_mach (abfd, bfd_arch_m68k, 0);
       break;
 
       bfd_default_set_arch_mach (abfd, bfd_arch_m68k, 0);
       break;
 
-    case M_88K_OPENBSD:
-      bfd_default_set_arch_mach (abfd, bfd_arch_m88k, 0);
-      break;
-
     case M_HPPA_OPENBSD:
       bfd_default_set_arch_mach (abfd, bfd_arch_hppa, bfd_mach_hppa11);
       break;
     case M_HPPA_OPENBSD:
       bfd_default_set_arch_mach (abfd, bfd_arch_hppa, bfd_mach_hppa11);
       break;
@@ -224,7 +222,7 @@ netbsd_core_file_p (bfd *abfd)
     }
 
   /* OK, we believe you.  You're a core file (sure, sure).  */
     }
 
   /* OK, we believe you.  You're a core file (sure, sure).  */
-  return abfd->xvec;
+  return _bfd_no_cleanup;
 
  punt:
   bfd_release (abfd, abfd->tdata.any);
 
  punt:
   bfd_release (abfd, abfd->tdata.any);
@@ -246,14 +244,6 @@ netbsd_core_file_failing_signal (bfd *abfd)
   /*return core_signal (abfd);*/
   return abfd->tdata.netbsd_core_data->core.c_signo;
 }
   /*return core_signal (abfd);*/
   return abfd->tdata.netbsd_core_data->core.c_signo;
 }
-
-static bfd_boolean
-netbsd_core_file_matches_executable_p  (bfd *core_bfd ATTRIBUTE_UNUSED,
-                                       bfd *exec_bfd ATTRIBUTE_UNUSED)
-{
-  /* FIXME, We have no way of telling at this point.  */
-  return TRUE;
-}
 \f
 /* If somebody calls any byte-swapping routines, shoot them.  */
 
 \f
 /* If somebody calls any byte-swapping routines, shoot them.  */
 
@@ -271,7 +261,7 @@ swap_abort (void)
 #define        NO_PUT64 ((void (*) (bfd_uint64_t, void *)) swap_abort)
 #define        NO_GETS64 ((bfd_int64_t (*) (const void *)) swap_abort)
 
 #define        NO_PUT64 ((void (*) (bfd_uint64_t, void *)) swap_abort)
 #define        NO_GETS64 ((bfd_int64_t (*) (const void *)) swap_abort)
 
-const bfd_target netbsd_core_vec =
+const bfd_target core_netbsd_vec =
   {
     "netbsd-core",
     bfd_target_unknown_flavour,
   {
     "netbsd-core",
     bfd_target_unknown_flavour,
@@ -285,6 +275,7 @@ const bfd_target netbsd_core_vec =
     0,                         /* Symbol prefix.  */
     ' ',                       /* ar_pad_char.  */
     16,                                /* ar_max_namelen.  */
     0,                         /* Symbol prefix.  */
     ' ',                       /* ar_pad_char.  */
     16,                                /* ar_max_namelen.  */
+    0,                         /* Match priority.  */
     NO_GET64, NO_GETS64, NO_PUT64,     /* 64 bit data.  */
     NO_GET, NO_GETS, NO_PUT,           /* 32 bit data.  */
     NO_GET, NO_GETS, NO_PUT,           /* 16 bit data.  */
     NO_GET64, NO_GETS64, NO_PUT64,     /* 64 bit data.  */
     NO_GET, NO_GETS, NO_PUT,           /* 32 bit data.  */
     NO_GET, NO_GETS, NO_PUT,           /* 16 bit data.  */
@@ -299,12 +290,16 @@ const bfd_target netbsd_core_vec =
       netbsd_core_file_p               /* A core file.  */
     },
     {                                  /* bfd_set_format.  */
       netbsd_core_file_p               /* A core file.  */
     },
     {                                  /* bfd_set_format.  */
-      bfd_false, bfd_false,
-      bfd_false, bfd_false
+      _bfd_bool_bfd_false_error,
+      _bfd_bool_bfd_false_error,
+      _bfd_bool_bfd_false_error,
+      _bfd_bool_bfd_false_error
     },
     {                                  /* bfd_write_contents.  */
     },
     {                                  /* bfd_write_contents.  */
-      bfd_false, bfd_false,
-      bfd_false, bfd_false
+      _bfd_bool_bfd_false_error,
+      _bfd_bool_bfd_false_error,
+      _bfd_bool_bfd_false_error,
+      _bfd_bool_bfd_false_error
     },
 
     BFD_JUMP_TABLE_GENERIC (_bfd_generic),
     },
 
     BFD_JUMP_TABLE_GENERIC (_bfd_generic),
@@ -319,5 +314,5 @@ const bfd_target netbsd_core_vec =
 
     NULL,
 
 
     NULL,
 
-    (PTR) 0                            /* Backend_data.  */
+    NULL                               /* Backend_data.  */
   };
   };
This page took 0.026243 seconds and 4 git commands to generate.