Pass dwarf2_per_bfd instead of dwarf2_per_objfile to some index-related functions
[deliverable/binutils-gdb.git] / gdb / fbsd-tdep.c
index 9422e3c1a7e1a65c76b088f42bb5986bd13a089f..acf787c706a3abd2e020ae6b559f4c3a9c12f278 100644 (file)
@@ -1,6 +1,6 @@
 /* Target-dependent code for FreeBSD, architecture-independent.
 
-   Copyright (C) 2002-2019 Free Software Foundation, Inc.
+   Copyright (C) 2002-2020 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -101,7 +101,7 @@ enum
    all architectures.
 
    Note that FreeBSD 7.0 used an older version of this structure
-   (struct kinfo_ovmentry), but the NT_FREEBSD_PROCSTAT_VMMAP core
+   (struct kinfo_vmentry), but the NT_FREEBSD_PROCSTAT_VMMAP core
    dump note wasn't introduced until FreeBSD 9.2.  As a result, the
    core dump note has always used the 7.1 and later structure
    format.  */
@@ -673,7 +673,8 @@ fbsd_corefile_thread (struct thread_info *info,
 {
   struct regcache *regcache;
 
-  regcache = get_thread_arch_regcache (info->ptid, args->gdbarch);
+  regcache = get_thread_arch_regcache (info->inf->process_target (),
+                                      info->ptid, args->gdbarch);
 
   target_fetch_registers (regcache, -1);
 
@@ -724,14 +725,14 @@ fbsd_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size)
   if (get_exec_file (0))
     {
       const char *fname = lbasename (get_exec_file (0));
-      char *psargs = xstrdup (fname);
+      std::string psargs = fname;
 
-      if (get_inferior_args ())
-       psargs = reconcat (psargs, psargs, " ", get_inferior_args (),
-                          (char *) NULL);
+      const char *infargs = get_inferior_args ();
+      if (infargs != NULL)
+       psargs = psargs + " " + infargs;
 
       note_data = elfcore_write_prpsinfo (obfd, note_data, note_size,
-                                         fname, psargs);
+                                         fname, psargs.c_str ());
     }
 
   /* Thread register information.  */
@@ -1018,12 +1019,12 @@ fbsd_info_proc_files_entry (int kf_type, int kf_fd, int kf_flags,
 
            /* For local sockets, print out the first non-nul path
               rather than both paths.  */
-           const struct fbsd_sockaddr_un *sun
+           const struct fbsd_sockaddr_un *saddr_un
              = reinterpret_cast<const struct fbsd_sockaddr_un *> (kf_sa_local);
-           if (sun->sun_path[0] == 0)
-             sun = reinterpret_cast<const struct fbsd_sockaddr_un *>
+           if (saddr_un->sun_path[0] == 0)
+             saddr_un = reinterpret_cast<const struct fbsd_sockaddr_un *>
                (kf_sa_peer);
-           printf_filtered ("%s", sun->sun_path);
+           printf_filtered ("%s", saddr_un->sun_path);
            break;
          }
        case FBSD_AF_INET:
@@ -1433,7 +1434,7 @@ fbsd_core_info_proc_status (struct gdbarch *gdbarch)
                           sec, value);
   printf_filtered ("stime, children: %s.%06d\n", plongest (sec), (int) value);
   printf_filtered ("'nice' value: %d\n",
-                  bfd_get_signed_8 (core_bfd, descdata + kp->ki_nice));
+                  (int) bfd_get_signed_8 (core_bfd, descdata + kp->ki_nice));
   fbsd_core_fetch_timeval (gdbarch, descdata + kp->ki_start, sec, value);
   printf_filtered ("Start time: %s.%06d\n", plongest (sec), (int) value);
   printf_filtered ("Virtual memory size: %s kB\n",
@@ -1596,6 +1597,7 @@ fbsd_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file,
       TAG (EHDRFLAGS, _("ELF header e_flags"), AUXV_FORMAT_HEX);
       TAG (HWCAP, _("Machine-dependent CPU capability hints"), AUXV_FORMAT_HEX);
       TAG (HWCAP2, _("Extension of AT_HWCAP"), AUXV_FORMAT_HEX);
+      TAG (BSDFLAGS, _("ELF BSD flags"), AUXV_FORMAT_HEX);
     }
 
   fprint_auxv_entry (file, name, description, format, type, val);
@@ -1627,7 +1629,7 @@ fbsd_get_siginfo_type (struct gdbarch *gdbarch)
 
   /* union sigval */
   sigval_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_UNION);
-  TYPE_NAME (sigval_type) = xstrdup ("sigval");
+  sigval_type->set_name (xstrdup ("sigval"));
   append_composite_type_field (sigval_type, "sival_int", int_type);
   append_composite_type_field (sigval_type, "sival_ptr", void_ptr_type);
 
@@ -1677,7 +1679,7 @@ fbsd_get_siginfo_type (struct gdbarch *gdbarch)
 
   /* struct siginfo */
   siginfo_type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT);
-  TYPE_NAME (siginfo_type) = xstrdup ("siginfo");
+  siginfo_type->set_name (xstrdup ("siginfo"));
   append_composite_type_field (siginfo_type, "si_signo", int_type);
   append_composite_type_field (siginfo_type, "si_errno", int_type);
   append_composite_type_field (siginfo_type, "si_code", int_type);
@@ -1981,9 +1983,9 @@ fbsd_fetch_rtld_offsets (struct gdbarch *gdbarch, struct fbsd_pspace_data *data)
                                     language_c, NULL).symbol;
       if (obj_entry_sym == NULL)
        error (_("Unable to find Struct_Obj_Entry symbol"));
-      data->off_linkmap = lookup_struct_elt (SYMBOL_TYPE(obj_entry_sym),
+      data->off_linkmap = lookup_struct_elt (SYMBOL_TYPE (obj_entry_sym),
                                             "linkmap", 0).offset / 8;
-      data->off_tlsindex = lookup_struct_elt (SYMBOL_TYPE(obj_entry_sym),
+      data->off_tlsindex = lookup_struct_elt (SYMBOL_TYPE (obj_entry_sym),
                                              "tlsindex", 0).offset / 8;
       data->rtld_offsets_valid = true;
       return;
@@ -2084,8 +2086,9 @@ fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   set_gdbarch_get_syscall_number (gdbarch, fbsd_get_syscall_number);
 }
 
+void _initialize_fbsd_tdep ();
 void
-_initialize_fbsd_tdep (void)
+_initialize_fbsd_tdep ()
 {
   fbsd_gdbarch_data_handle =
     gdbarch_data_register_post_init (init_fbsd_gdbarch_data);
This page took 0.027391 seconds and 4 git commands to generate.