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
-   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
-   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,
 
    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 "bfd.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>
@@ -42,6 +41,9 @@
    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;
@@ -49,7 +51,7 @@ struct netbsd_core_struct
 
 /* Handle NetBSD-style core dump file.  */
 
-static const bfd_target *
+static bfd_cleanup
 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;
-  bfd_size_type amt = sizeof core;
+  size_t amt = 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;
        }
-      asect = bfd_make_section_anyway (abfd, sname);
+      asect = bfd_make_section_anyway_with_flags (abfd, sname, flags);
       if (asect == NULL)
        goto punt;
 
-      asect->flags = flags;
       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 = 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;
 
-             asect->flags = SEC_ALLOC + SEC_HAS_CONTENTS;
              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;
 
-    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;
@@ -224,7 +222,7 @@ netbsd_core_file_p (bfd *abfd)
     }
 
   /* 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);
@@ -246,14 +244,6 @@ netbsd_core_file_failing_signal (bfd *abfd)
   /*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.  */
 
@@ -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)
 
-const bfd_target netbsd_core_vec =
+const bfd_target core_netbsd_vec =
   {
     "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,                         /* 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.  */
@@ -299,12 +290,16 @@ const bfd_target netbsd_core_vec =
       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_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),
@@ -319,5 +314,5 @@ const bfd_target netbsd_core_vec =
 
     NULL,
 
-    (PTR) 0                            /* Backend_data.  */
+    NULL                               /* Backend_data.  */
   };
This page took 0.027779 seconds and 4 git commands to generate.