FWIW, here's a WIP patch to update gdb to 8.2.1. It's still a bit rough around the edges, but working so far on amd64, i386, powerpc, hppa, and to some extent on arm and aarch64. It does *not* work on sparc64, which is a blocker. Feel free to play around with it.
Index: Makefile =================================================================== RCS file: /cvs/ports/devel/gdb/Makefile,v retrieving revision 1.58 diff -u -p -r1.58 Makefile --- Makefile 1 Nov 2018 20:36:08 -0000 1.58 +++ Makefile 23 Dec 2018 18:47:08 -0000 @@ -3,8 +3,7 @@ COMMENT= GNU debugger CATEGORIES= devel -DISTNAME= gdb-7.12.1 -REVISION= 5 +DISTNAME= gdb-8.2.1 HOMEPAGE= https://www.gnu.org/software/gdb/ @@ -19,7 +18,7 @@ EXTRACT_SUFX= .tar.xz MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC} ${WRKSRC}/gdb -WANTLIB = c expat kvm m ncurses pthread ${MODPY_WANTLIB} ${COMPILER_LIBCXX} util +WANTLIB = c expat kvm m curses pthread ${MODPY_WANTLIB} ${COMPILER_LIBCXX} util COMPILER = base-clang ports-gcc base-gcc @@ -29,6 +28,8 @@ CONFIGURE_ARGS= --program-prefix=e \ --disable-nls \ --without-guile \ --without-lzma \ + --without-gmp \ + --without-mpfr \ --enable-target=all \ --with-python=${MODPY_BIN} @@ -38,6 +39,9 @@ MODULES += lang/python LIB_DEPENDS += ${MODPY_LIB_DEPENDS} TEST_DEPENDS += devel/dejagnu MODPY_BUILDDEP = No + +# for max_align_t configure test +CFLAGS += -std=gnu11 post-install: ${MODPY_BIN} -m compileall ${PREFIX}/share/gdb/python Index: distinfo =================================================================== RCS file: /cvs/ports/devel/gdb/distinfo,v retrieving revision 1.22 diff -u -p -r1.22 distinfo --- distinfo 28 Jan 2017 21:38:15 -0000 1.22 +++ distinfo 23 Dec 2018 18:47:08 -0000 @@ -1,2 +1,2 @@ -SHA256 (gdb/gdb-7.12.1.tar.xz) = RgdoC5c9PsksMK0Cnxt9veOHaGnms6EX2KfpAIERMYY= -SIZE (gdb/gdb-7.12.1.tar.xz) = 19225392 +SHA256 (gdb/gdb-8.2.1.tar.xz) = CmpDKQegPFyOqtPDz/1QwApAw6XjxAOUQGJLrnA/IgI= +SIZE (gdb/gdb-8.2.1.tar.xz) = 20170388 Index: patches/patch-bfd_config_bfd =================================================================== RCS file: /cvs/ports/devel/gdb/patches/patch-bfd_config_bfd,v retrieving revision 1.3 diff -u -p -r1.3 patch-bfd_config_bfd --- patches/patch-bfd_config_bfd 10 Jul 2018 11:03:46 -0000 1.3 +++ patches/patch-bfd_config_bfd 23 Dec 2018 18:47:08 -0000 @@ -1,7 +1,16 @@ $OpenBSD: patch-bfd_config_bfd,v 1.3 2018/07/10 11:03:46 kettenis Exp $ ---- bfd/config.bfd.orig Sat Jan 21 05:48:42 2017 -+++ bfd/config.bfd Tue Mar 7 22:55:11 2017 -@@ -202,6 +202,11 @@ case "${targ}" in +Index: bfd/config.bfd +--- bfd/config.bfd.orig ++++ bfd/config.bfd +@@ -81,7 +81,6 @@ case $targ in + arm*-*-aout | \ + arm-*-coff | \ + arm-*-netbsd* | \ +- arm-*-openbsd* | \ + arm-*-oabi | \ + arm-*-riscix* | \ + arm-epoc-pe* | \ +@@ -259,6 +258,11 @@ case "${targ}" in targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec" want64=true ;; @@ -13,3 +22,12 @@ $OpenBSD: patch-bfd_config_bfd,v 1.3 201 aarch64_be-*-linux*) targ_defvec=aarch64_elf64_be_vec targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec" +@@ -354,7 +358,7 @@ case "${targ}" in + targ_defvec=arm_elf32_be_vec + targ_selvecs="arm_elf32_le_vec" + ;; +- arm-*-netbsdelf*) ++ arm-*-netbsdelf* | arm-*-openbsd*) + targ_defvec=arm_elf32_le_vec + targ_selvecs="arm_elf32_be_vec" + ;; Index: patches/patch-bfd_elf_c =================================================================== RCS file: /cvs/ports/devel/gdb/patches/patch-bfd_elf_c,v retrieving revision 1.9 diff -u -p -r1.9 patch-bfd_elf_c --- patches/patch-bfd_elf_c 9 Oct 2016 11:39:20 -0000 1.9 +++ patches/patch-bfd_elf_c 23 Dec 2018 18:47:08 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-bfd_elf_c,v 1.9 2016/10/09 11:39:20 pascal Exp $ ---- bfd/elf.c.orig Fri Oct 7 19:09:21 2016 -+++ bfd/elf.c Fri Oct 7 20:53:14 2016 -@@ -9866,6 +9866,11 @@ elfcore_grok_openbsd_procinfo (bfd *abfd, Elf_Internal +Index: bfd/elf.c +--- bfd/elf.c.orig ++++ bfd/elf.c +@@ -10261,6 +10261,11 @@ elfcore_grok_openbsd_procinfo (bfd *abfd, Elf_Internal static bfd_boolean elfcore_grok_openbsd_note (bfd *abfd, Elf_Internal_Note *note) { Index: patches/patch-gdb_Makefile_in =================================================================== RCS file: /cvs/ports/devel/gdb/patches/patch-gdb_Makefile_in,v retrieving revision 1.3 diff -u -p -r1.3 patch-gdb_Makefile_in --- patches/patch-gdb_Makefile_in 10 Jul 2018 11:03:46 -0000 1.3 +++ patches/patch-gdb_Makefile_in 23 Dec 2018 18:47:08 -0000 @@ -2,23 +2,29 @@ $OpenBSD: patch-gdb_Makefile_in,v 1.3 20 Index: gdb/Makefile.in --- gdb/Makefile.in.orig +++ gdb/Makefile.in -@@ -644,7 +644,8 @@ TARGET_OBS = @TARGET_OBS@ - # All target-dependent objects files that require 64-bit CORE_ADDR - # (used with --enable-targets=all --enable-64-bit-bfd). - ALL_64_TARGET_OBS = \ -- aarch64-tdep.o aarch64-linux-tdep.o aarch64-newlib-tdep.o aarch64-insn.o \ -+ aarch64-tdep.o aarch64-linux-tdep.o \ -+ aarch64-newlib-tdep.o aarch64obsd-tdep.o aarch64-insn.o \ - alphabsd-tdep.o alphafbsd-tdep.o alpha-linux-tdep.o alpha-mdebug-tdep.o \ - alphanbsd-tdep.o alphaobsd-tdep.o alpha-tdep.o \ - amd64fbsd-tdep.o amd64-darwin-tdep.o amd64-dicos-tdep.o \ -@@ -1663,7 +1664,8 @@ MAKEOVERRIDES= +@@ -117,8 +117,6 @@ srcdir = @srcdir@ + VPATH = @srcdir@ + top_srcdir = @top_srcdir@ - ALLDEPFILES = \ - aarch64-tdep.c aarch64-linux-tdep.c aarch64-newlib-tdep.c \ -- aarch64-linux-nat.c \ -+ aarch64obsd-tdep.c \ -+ aarch64-linux-nat.c aarch64obsd-nat.c \ +-include $(srcdir)/silent-rules.mk +- + # Note that these are overridden by GNU make-specific code below if + # GNU make is used. The overrides implement dependency tracking. + COMPILE.pre = $(CXX) -x c++ $(CXX_DIALECT) +@@ -646,6 +644,7 @@ ALL_64_TARGET_OBS = \ + aarch64-fbsd-tdep.o \ + aarch64-linux-tdep.o \ + aarch64-newlib-tdep.o \ ++ aarch64-obsd-tdep.o \ + aarch64-tdep.o \ + alpha-bsd-tdep.o \ + alpha-linux-tdep.o \ +@@ -2187,6 +2186,8 @@ ALLDEPFILES = \ + aarch64-linux-nat.c \ + aarch64-linux-tdep.c \ + aarch64-newlib-tdep.c \ ++ aarch64-obsd-nat.c \ ++ aarch64-obsd-tdep.c \ + aarch64-tdep.c \ aix-thread.c \ - alphabsd-nat.c alpha-linux-nat.c \ - alpha-tdep.c alpha-mdebug-tdep.c \ + alpha-bsd-nat.c \ Index: patches/patch-gdb_aarch64-obsd-nat_c =================================================================== RCS file: patches/patch-gdb_aarch64-obsd-nat_c diff -N patches/patch-gdb_aarch64-obsd-nat_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_aarch64-obsd-nat_c 23 Dec 2018 18:47:08 -0000 @@ -0,0 +1,211 @@ +$OpenBSD$ + +Index: gdb/aarch64-obsd-nat.c +--- gdb/aarch64-obsd-nat.c.orig ++++ gdb/aarch64-obsd-nat.c +@@ -0,0 +1,205 @@ ++/* Native-dependent code for OpenBSD/arm64 (AArch64) ++ ++ Copyright (C) 2011-2017 Free Software Foundation, Inc. ++ ++ This file is part of GDB. ++ ++ 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 3 of the License, or ++ (at your option) any later version. ++ ++ 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 this program. If not, see <http://www.gnu.org/licenses/>. */ ++ ++#include "defs.h" ++#include "gdbcore.h" ++#include "inferior.h" ++#include "regcache.h" ++#include <sys/types.h> ++#include <sys/ptrace.h> ++#include <machine/reg.h> ++ ++#include "aarch64-tdep.h" ++#include "inf-ptrace.h" ++ ++/* Fill GDB's register array with the general-purpose register values ++ from the current thread. */ ++ ++static void ++fetch_gregs_from_thread (struct regcache *regcache) ++{ ++ struct reg regs; ++ pid_t pid; ++ int regno; ++ int ret; ++ ++ pid = ptid_get_pid (inferior_ptid); ++ ++ ret = ptrace(PT_GETREGS, pid, (caddr_t)®s, 0); ++ if (ret < 0) ++ perror_with_name (_("Unable to fetch general registers.")); ++ ++ for (regno = AARCH64_X0_REGNUM; regno <= AARCH64_FP_REGNUM; regno++) ++ regcache_raw_supply (regcache, regno, ®s.r_reg[regno]); ++ regcache_raw_supply (regcache, AARCH64_LR_REGNUM, ®s.r_lr); ++ regcache_raw_supply (regcache, AARCH64_SP_REGNUM, ®s.r_sp); ++ regcache_raw_supply (regcache, AARCH64_PC_REGNUM, ®s.r_pc); ++ regcache_raw_supply (regcache, AARCH64_CPSR_REGNUM, ®s.r_spsr); ++} ++ ++/* Store to the current thread the valid general-purpose register ++ values in the GDB's register array. */ ++ ++static void ++store_gregs_to_thread (const struct regcache *regcache) ++{ ++ struct reg regs; ++ pid_t pid; ++ int regno; ++ int ret; ++ ++ pid = ptid_get_pid (inferior_ptid); ++ ++ // fetch old values as only 'valid' entries will be replaced. ++ ret = ptrace(PT_GETREGS, pid, (caddr_t)®s, 0); ++ if (ret < 0) { ++ perror_with_name (_("Unable to store general registers.")); ++ return; ++ } ++ ++ for (regno = AARCH64_X0_REGNUM; regno <= AARCH64_FP_REGNUM; regno++) ++ if (REG_VALID == regcache_register_status (regcache, regno)) ++ regcache_raw_collect (regcache, regno, ®s.r_reg[regno]); ++ if (REG_VALID == regcache_register_status (regcache, AARCH64_LR_REGNUM)) ++ regcache_raw_collect (regcache, AARCH64_LR_REGNUM, ®s.r_lr); ++ if (REG_VALID == regcache_register_status (regcache, AARCH64_SP_REGNUM)) ++ regcache_raw_collect (regcache, AARCH64_SP_REGNUM, ®s.r_sp); ++ if (REG_VALID == regcache_register_status (regcache, AARCH64_PC_REGNUM)) ++ regcache_raw_collect (regcache, AARCH64_PC_REGNUM, ®s.r_pc); ++ if (REG_VALID == regcache_register_status (regcache, AARCH64_CPSR_REGNUM)) ++ regcache_raw_collect (regcache, AARCH64_CPSR_REGNUM, ®s.r_spsr); ++ ++ ret = ptrace(PT_SETREGS, pid, (caddr_t)®s, 0); ++ if (ret < 0) ++ perror_with_name (_("Unable to store general registers.")); ++} ++ ++/* Fill GDB's register array with the fp/simd register values ++ from the current thread. */ ++ ++static void ++fetch_fpregs_from_thread (struct regcache *regcache) ++{ ++ int ret; ++ pid_t pid; ++ int regno; ++ struct fpreg fpregs; ++ ++ pid = ptid_get_pid (inferior_ptid); ++ ++ ret = ptrace(PT_GETFPREGS, pid, (caddr_t)&fpregs, 0); ++ if (ret < 0) { ++ perror_with_name (_("Unable to fetch general registers.")); ++ return; ++ } ++ ++ for (regno = AARCH64_V0_REGNUM; regno <= AARCH64_V31_REGNUM; regno++) ++ regcache_raw_supply (regcache, regno, &fpregs.fp_reg[regno]); ++ ++ regcache_raw_supply (regcache, AARCH64_FPSR_REGNUM, &fpregs.fp_sr); ++ regcache_raw_supply (regcache, AARCH64_FPCR_REGNUM, &fpregs.fp_cr); ++} ++ ++/* Store to the current thread the valid fp/simd register ++ values in the GDB's register array. */ ++ ++static void ++store_fpregs_to_thread (const struct regcache *regcache) ++{ ++ int ret; ++ pid_t pid; ++ int regno; ++ struct fpreg fpregs; ++ ++ pid = ptid_get_pid (inferior_ptid); ++ ++ ret = ptrace(PT_GETFPREGS, pid, (caddr_t)&fpregs, 0); ++ if (ret < 0) { ++ perror_with_name (_("Unable to store general registers.")); ++ return; ++ } ++ ++ for (regno = AARCH64_V0_REGNUM; regno <= AARCH64_V31_REGNUM; regno++) ++ if (REG_VALID == regcache_register_status (regcache, regno)) ++ regcache_raw_collect (regcache, regno, &fpregs.fp_reg[regno]); ++ ++ if (REG_VALID == regcache_register_status (regcache, AARCH64_FPSR_REGNUM)) ++ regcache_raw_collect (regcache, AARCH64_FPSR_REGNUM, &fpregs.fp_sr); ++ if (REG_VALID == regcache_register_status (regcache, AARCH64_FPCR_REGNUM)) ++ regcache_raw_collect (regcache, AARCH64_FPCR_REGNUM, &fpregs.fp_cr); ++ ++ ret = ptrace(PT_SETFPREGS, pid, (caddr_t)&fpregs, 0); ++ if (ret < 0) ++ perror_with_name (_("Unable to store general registers.")); ++} ++ ++/* Implement the "to_fetch_register" target_ops method. */ ++ ++static void ++aarch64_obsd_fetch_inferior_registers (struct target_ops *ops, ++ struct regcache *regcache, ++ int regno) ++{ ++ if (regno == -1) ++ { ++ fetch_gregs_from_thread (regcache); ++ fetch_fpregs_from_thread (regcache); ++ } ++ else if (regno < AARCH64_V0_REGNUM) ++ fetch_gregs_from_thread (regcache); ++ else ++ fetch_fpregs_from_thread (regcache); ++} ++ ++/* Implement the "to_store_register" target_ops method. */ ++ ++static void ++aarch64_obsd_store_inferior_registers (struct target_ops *ops, ++ struct regcache *regcache, ++ int regno) ++{ ++ if (regno == -1) ++ { ++ store_gregs_to_thread (regcache); ++ store_fpregs_to_thread (regcache); ++ } ++ else if (regno < AARCH64_V0_REGNUM) ++ store_gregs_to_thread (regcache); ++ else ++ store_fpregs_to_thread (regcache); ++} ++ ++ ++/* -Wmissing-prototypes. */ ++void _initialize_aarch64_obsd_nat (void); ++ ++void ++_initialize_aarch64_obsd_nat (void) ++{ ++ struct target_ops *t; ++ ++ t = inf_ptrace_target (); ++ ++ /* Add our register access methods. */ ++ t->to_fetch_registers = aarch64_obsd_fetch_inferior_registers; ++ t->to_store_registers = aarch64_obsd_store_inferior_registers; ++ ++ /* Register the target. */ ++ add_target (t); ++} Index: patches/patch-gdb_aarch64-obsd-tdep_c =================================================================== RCS file: patches/patch-gdb_aarch64-obsd-tdep_c diff -N patches/patch-gdb_aarch64-obsd-tdep_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_aarch64-obsd-tdep_c 23 Dec 2018 18:47:08 -0000 @@ -0,0 +1,117 @@ +$OpenBSD$ + +Index: gdb/aarch64-obsd-tdep.c +--- gdb/aarch64-obsd-tdep.c.orig ++++ gdb/aarch64-obsd-tdep.c +@@ -0,0 +1,111 @@ ++/* Target-dependent code for OpenBSD/aarch64. ++ ++ Copyright (C) 2006-2017 Free Software Foundation, Inc. ++ ++ This file is part of GDB. ++ ++ 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 3 of the License, or ++ (at your option) any later version. ++ ++ 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 this program. If not, see <http://www.gnu.org/licenses/>. */ ++ ++#include "defs.h" ++#include "osabi.h" ++#include "regset.h" ++#include "trad-frame.h" ++#include "tramp-frame.h" ++ ++#include "aarch64-tdep.h" ++#include "obsd-tdep.h" ++#include "solib-svr4.h" ++ ++/* The general-purpose regset consists of 31 X registers, plus SP, PC, ++ and SPSR and TPIDR registers. */ ++#define AARCH64_OBSD_SIZEOF_GREGSET (35 * X_REGISTER_SIZE) ++ ++/* The fp regset consists of 32 V registers, plus FPSR and FPCR which ++ are 4 bytes wide each, and the whole structure is padded to 128 bit ++ alignment. */ ++#define AARCH64_OBSD_SIZEOF_FPREGSET (33 * V_REGISTER_SIZE) ++ ++/* Register maps. */ ++ ++static const struct regcache_map_entry aarch64_obsd_gregmap[] = ++ { ++ { 31, AARCH64_X0_REGNUM, 8 }, /* x0 ... x30 */ ++ { 1, AARCH64_SP_REGNUM, 8 }, ++ { 1, AARCH64_PC_REGNUM, 8 }, ++ { 1, AARCH64_CPSR_REGNUM, 8 }, ++ { 0 } ++ }; ++ ++static const struct regcache_map_entry aarch64_obsd_fpregmap[] = ++ { ++ { 32, AARCH64_V0_REGNUM, 16 }, /* v0 ... v31 */ ++ { 1, AARCH64_FPSR_REGNUM, 4 }, ++ { 1, AARCH64_FPCR_REGNUM, 4 }, ++ { 0 } ++ }; ++ ++/* Register set definitions. */ ++ ++const struct regset aarch64_obsd_gregset = ++ { ++ aarch64_obsd_gregmap, ++ regcache_supply_regset, regcache_collect_regset ++ }; ++ ++const struct regset aarch64_obsd_fpregset = ++ { ++ aarch64_obsd_fpregmap, ++ regcache_supply_regset, regcache_collect_regset ++ }; ++ ++static void ++aarch64_obsd_iterate_over_regset_sections (struct gdbarch *gdbarch, ++ iterate_over_regset_sections_cb *cb, ++ void *cb_data, ++ const struct regcache *regcache) ++{ ++ cb (".reg", AARCH64_OBSD_SIZEOF_GREGSET, AARCH64_OBSD_SIZEOF_GREGSET, ++ &aarch64_obsd_gregset, NULL, cb_data); ++ cb (".reg2", AARCH64_OBSD_SIZEOF_FPREGSET, AARCH64_OBSD_SIZEOF_FPREGSET, ++ &aarch64_obsd_fpregset, NULL, cb_data); ++} ++ ++ ++static void ++aarch64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) ++{ ++ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); ++ ++ /* OpenBSD/aarch64 uses SVR4-style shared libraries. */ ++ set_solib_svr4_fetch_link_map_offsets ++ (gdbarch, svr4_lp64_fetch_link_map_offsets); ++ set_gdbarch_skip_solib_resolver (gdbarch, obsd_skip_solib_resolver); ++ ++ /* Enable longjmp. */ ++ tdep->jb_pc = 13; ++ ++ set_gdbarch_iterate_over_regset_sections ++ (gdbarch, aarch64_obsd_iterate_over_regset_sections); ++} ++ ++ ++/* Provide a prototype to silence -Wmissing-prototypes. */ ++extern initialize_file_ftype _initialize_aarch64obsd_tdep; ++ ++void ++_initialize_aarch64obsd_tdep (void) ++{ ++ gdbarch_register_osabi (bfd_arch_aarch64, 0, GDB_OSABI_OPENBSD, ++ aarch64obsd_init_abi); ++} Index: patches/patch-gdb_aarch64obsd-nat_c =================================================================== RCS file: patches/patch-gdb_aarch64obsd-nat_c diff -N patches/patch-gdb_aarch64obsd-nat_c --- patches/patch-gdb_aarch64obsd-nat_c 10 Jul 2018 11:03:46 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,210 +0,0 @@ -$OpenBSD: patch-gdb_aarch64obsd-nat_c,v 1.1 2018/07/10 11:03:46 kettenis Exp $ -Index: gdb/aarch64obsd-nat.c ---- gdb/aarch64obsd-nat.c.orig -+++ gdb/aarch64obsd-nat.c -@@ -0,0 +1,205 @@ -+/* Native-dependent code for OpenBSD/arm64 (AArch64) -+ -+ Copyright (C) 2011-2017 Free Software Foundation, Inc. -+ -+ This file is part of GDB. -+ -+ 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 3 of the License, or -+ (at your option) any later version. -+ -+ 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 this program. If not, see <http://www.gnu.org/licenses/>. */ -+ -+#include "defs.h" -+#include "gdbcore.h" -+#include "inferior.h" -+#include "regcache.h" -+#include <sys/types.h> -+#include <sys/ptrace.h> -+#include <machine/reg.h> -+ -+#include "aarch64-tdep.h" -+#include "inf-ptrace.h" -+ -+/* Fill GDB's register array with the general-purpose register values -+ from the current thread. */ -+ -+static void -+fetch_gregs_from_thread (struct regcache *regcache) -+{ -+ struct reg regs; -+ pid_t pid; -+ int regno; -+ int ret; -+ -+ pid = ptid_get_pid (inferior_ptid); -+ -+ ret = ptrace(PT_GETREGS, pid, (caddr_t)®s, 0); -+ if (ret < 0) -+ perror_with_name (_("Unable to fetch general registers.")); -+ -+ for (regno = AARCH64_X0_REGNUM; regno <= AARCH64_FP_REGNUM; regno++) -+ regcache_raw_supply (regcache, regno, ®s.r_reg[regno]); -+ regcache_raw_supply (regcache, AARCH64_LR_REGNUM, ®s.r_lr); -+ regcache_raw_supply (regcache, AARCH64_SP_REGNUM, ®s.r_sp); -+ regcache_raw_supply (regcache, AARCH64_PC_REGNUM, ®s.r_pc); -+ regcache_raw_supply (regcache, AARCH64_CPSR_REGNUM, ®s.r_spsr); -+} -+ -+/* Store to the current thread the valid general-purpose register -+ values in the GDB's register array. */ -+ -+static void -+store_gregs_to_thread (const struct regcache *regcache) -+{ -+ struct reg regs; -+ pid_t pid; -+ int regno; -+ int ret; -+ -+ pid = ptid_get_pid (inferior_ptid); -+ -+ // fetch old values as only 'valid' entries will be replaced. -+ ret = ptrace(PT_GETREGS, pid, (caddr_t)®s, 0); -+ if (ret < 0) { -+ perror_with_name (_("Unable to store general registers.")); -+ return; -+ } -+ -+ for (regno = AARCH64_X0_REGNUM; regno <= AARCH64_FP_REGNUM; regno++) -+ if (REG_VALID == regcache_register_status (regcache, regno)) -+ regcache_raw_collect (regcache, regno, ®s.r_reg[regno]); -+ if (REG_VALID == regcache_register_status (regcache, AARCH64_LR_REGNUM)) -+ regcache_raw_collect (regcache, AARCH64_LR_REGNUM, ®s.r_lr); -+ if (REG_VALID == regcache_register_status (regcache, AARCH64_SP_REGNUM)) -+ regcache_raw_collect (regcache, AARCH64_SP_REGNUM, ®s.r_sp); -+ if (REG_VALID == regcache_register_status (regcache, AARCH64_PC_REGNUM)) -+ regcache_raw_collect (regcache, AARCH64_PC_REGNUM, ®s.r_pc); -+ if (REG_VALID == regcache_register_status (regcache, AARCH64_CPSR_REGNUM)) -+ regcache_raw_collect (regcache, AARCH64_CPSR_REGNUM, ®s.r_spsr); -+ -+ ret = ptrace(PT_SETREGS, pid, (caddr_t)®s, 0); -+ if (ret < 0) -+ perror_with_name (_("Unable to store general registers.")); -+} -+ -+/* Fill GDB's register array with the fp/simd register values -+ from the current thread. */ -+ -+static void -+fetch_fpregs_from_thread (struct regcache *regcache) -+{ -+ int ret; -+ pid_t pid; -+ int regno; -+ struct fpreg fpregs; -+ -+ pid = ptid_get_pid (inferior_ptid); -+ -+ ret = ptrace(PT_GETFPREGS, pid, (caddr_t)&fpregs, 0); -+ if (ret < 0) { -+ perror_with_name (_("Unable to fetch general registers.")); -+ return; -+ } -+ -+ for (regno = AARCH64_V0_REGNUM; regno <= AARCH64_V31_REGNUM; regno++) -+ regcache_raw_supply (regcache, regno, &fpregs.fp_reg[regno]); -+ -+ regcache_raw_supply (regcache, AARCH64_FPSR_REGNUM, &fpregs.fp_sr); -+ regcache_raw_supply (regcache, AARCH64_FPCR_REGNUM, &fpregs.fp_cr); -+} -+ -+/* Store to the current thread the valid fp/simd register -+ values in the GDB's register array. */ -+ -+static void -+store_fpregs_to_thread (const struct regcache *regcache) -+{ -+ int ret; -+ pid_t pid; -+ int regno; -+ struct fpreg fpregs; -+ -+ pid = ptid_get_pid (inferior_ptid); -+ -+ ret = ptrace(PT_GETFPREGS, pid, (caddr_t)&fpregs, 0); -+ if (ret < 0) { -+ perror_with_name (_("Unable to store general registers.")); -+ return; -+ } -+ -+ for (regno = AARCH64_V0_REGNUM; regno <= AARCH64_V31_REGNUM; regno++) -+ if (REG_VALID == regcache_register_status (regcache, regno)) -+ regcache_raw_collect (regcache, regno, &fpregs.fp_reg[regno]); -+ -+ if (REG_VALID == regcache_register_status (regcache, AARCH64_FPSR_REGNUM)) -+ regcache_raw_collect (regcache, AARCH64_FPSR_REGNUM, &fpregs.fp_sr); -+ if (REG_VALID == regcache_register_status (regcache, AARCH64_FPCR_REGNUM)) -+ regcache_raw_collect (regcache, AARCH64_FPCR_REGNUM, &fpregs.fp_cr); -+ -+ ret = ptrace(PT_SETFPREGS, pid, (caddr_t)&fpregs, 0); -+ if (ret < 0) -+ perror_with_name (_("Unable to store general registers.")); -+} -+ -+/* Implement the "to_fetch_register" target_ops method. */ -+ -+static void -+aarch64_obsd_fetch_inferior_registers (struct target_ops *ops, -+ struct regcache *regcache, -+ int regno) -+{ -+ if (regno == -1) -+ { -+ fetch_gregs_from_thread (regcache); -+ fetch_fpregs_from_thread (regcache); -+ } -+ else if (regno < AARCH64_V0_REGNUM) -+ fetch_gregs_from_thread (regcache); -+ else -+ fetch_fpregs_from_thread (regcache); -+} -+ -+/* Implement the "to_store_register" target_ops method. */ -+ -+static void -+aarch64_obsd_store_inferior_registers (struct target_ops *ops, -+ struct regcache *regcache, -+ int regno) -+{ -+ if (regno == -1) -+ { -+ store_gregs_to_thread (regcache); -+ store_fpregs_to_thread (regcache); -+ } -+ else if (regno < AARCH64_V0_REGNUM) -+ store_gregs_to_thread (regcache); -+ else -+ store_fpregs_to_thread (regcache); -+} -+ -+ -+/* -Wmissing-prototypes. */ -+void _initialize_aarch64_obsd_nat (void); -+ -+void -+_initialize_aarch64_obsd_nat (void) -+{ -+ struct target_ops *t; -+ -+ t = inf_ptrace_target (); -+ -+ /* Add our register access methods. */ -+ t->to_fetch_registers = aarch64_obsd_fetch_inferior_registers; -+ t->to_store_registers = aarch64_obsd_store_inferior_registers; -+ -+ /* Register the target. */ -+ add_target (t); -+} Index: patches/patch-gdb_aarch64obsd-tdep_c =================================================================== RCS file: patches/patch-gdb_aarch64obsd-tdep_c diff -N patches/patch-gdb_aarch64obsd-tdep_c --- patches/patch-gdb_aarch64obsd-tdep_c 10 Jul 2018 11:03:46 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,116 +0,0 @@ -$OpenBSD: patch-gdb_aarch64obsd-tdep_c,v 1.1 2018/07/10 11:03:46 kettenis Exp $ -Index: gdb/aarch64obsd-tdep.c ---- gdb/aarch64obsd-tdep.c.orig -+++ gdb/aarch64obsd-tdep.c -@@ -0,0 +1,111 @@ -+/* Target-dependent code for OpenBSD/aarch64. -+ -+ Copyright (C) 2006-2017 Free Software Foundation, Inc. -+ -+ This file is part of GDB. -+ -+ 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 3 of the License, or -+ (at your option) any later version. -+ -+ 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 this program. If not, see <http://www.gnu.org/licenses/>. */ -+ -+#include "defs.h" -+#include "osabi.h" -+#include "regset.h" -+#include "trad-frame.h" -+#include "tramp-frame.h" -+ -+#include "aarch64-tdep.h" -+#include "obsd-tdep.h" -+#include "solib-svr4.h" -+ -+/* The general-purpose regset consists of 31 X registers, plus SP, PC, -+ and SPSR and TPIDR registers. */ -+#define AARCH64_OBSD_SIZEOF_GREGSET (35 * X_REGISTER_SIZE) -+ -+/* The fp regset consists of 32 V registers, plus FPSR and FPCR which -+ are 4 bytes wide each, and the whole structure is padded to 128 bit -+ alignment. */ -+#define AARCH64_OBSD_SIZEOF_FPREGSET (33 * V_REGISTER_SIZE) -+ -+/* Register maps. */ -+ -+static const struct regcache_map_entry aarch64_obsd_gregmap[] = -+ { -+ { 31, AARCH64_X0_REGNUM, 8 }, /* x0 ... x30 */ -+ { 1, AARCH64_SP_REGNUM, 8 }, -+ { 1, AARCH64_PC_REGNUM, 8 }, -+ { 1, AARCH64_CPSR_REGNUM, 8 }, -+ { 0 } -+ }; -+ -+static const struct regcache_map_entry aarch64_obsd_fpregmap[] = -+ { -+ { 32, AARCH64_V0_REGNUM, 16 }, /* v0 ... v31 */ -+ { 1, AARCH64_FPSR_REGNUM, 4 }, -+ { 1, AARCH64_FPCR_REGNUM, 4 }, -+ { 0 } -+ }; -+ -+/* Register set definitions. */ -+ -+const struct regset aarch64_obsd_gregset = -+ { -+ aarch64_obsd_gregmap, -+ regcache_supply_regset, regcache_collect_regset -+ }; -+ -+const struct regset aarch64_obsd_fpregset = -+ { -+ aarch64_obsd_fpregmap, -+ regcache_supply_regset, regcache_collect_regset -+ }; -+ -+static void -+aarch64_obsd_iterate_over_regset_sections (struct gdbarch *gdbarch, -+ iterate_over_regset_sections_cb *cb, -+ void *cb_data, -+ const struct regcache *regcache) -+{ -+ cb (".reg", AARCH64_OBSD_SIZEOF_GREGSET, &aarch64_obsd_gregset, -+ NULL, cb_data); -+ cb (".reg2", AARCH64_OBSD_SIZEOF_FPREGSET, &aarch64_obsd_fpregset, -+ NULL, cb_data); -+} -+ -+ -+static void -+aarch64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) -+{ -+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); -+ -+ /* OpenBSD/aarch64 uses SVR4-style shared libraries. */ -+ set_solib_svr4_fetch_link_map_offsets -+ (gdbarch, svr4_lp64_fetch_link_map_offsets); -+ set_gdbarch_skip_solib_resolver (gdbarch, obsd_skip_solib_resolver); -+ -+ /* Enable longjmp. */ -+ tdep->jb_pc = 13; -+ -+ set_gdbarch_iterate_over_regset_sections -+ (gdbarch, aarch64_obsd_iterate_over_regset_sections); -+} -+ -+ -+/* Provide a prototype to silence -Wmissing-prototypes. */ -+extern initialize_file_ftype _initialize_aarch64obsd_tdep; -+ -+void -+_initialize_aarch64obsd_tdep (void) -+{ -+ gdbarch_register_osabi (bfd_arch_aarch64, 0, GDB_OSABI_OPENBSD_ELF, -+ aarch64obsd_init_abi); -+} Index: patches/patch-gdb_alpha-bsd-nat_c =================================================================== RCS file: patches/patch-gdb_alpha-bsd-nat_c diff -N patches/patch-gdb_alpha-bsd-nat_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_alpha-bsd-nat_c 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,55 @@ +$OpenBSD$ + +Index: gdb/alpha-bsd-nat.c +--- gdb/alpha-bsd-nat.c.orig ++++ gdb/alpha-bsd-nat.c +@@ -98,7 +98,7 @@ alpha_bsd_nat_target::fetch_registers (struct regcache + { + struct reg gregs; + +- if (ptrace (PT_GETREGS, regcache->ptid ().pid (), ++ if (ptrace (PT_GETREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &gregs, 0) == -1) + perror_with_name (_("Couldn't get registers")); + +@@ -112,7 +112,7 @@ alpha_bsd_nat_target::fetch_registers (struct regcache + { + struct fpreg fpregs; + +- if (ptrace (PT_GETFPREGS, regcache->ptid ().pid (), ++ if (ptrace (PT_GETFPREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) + perror_with_name (_("Couldn't get floating point status")); + +@@ -129,13 +129,13 @@ alpha_bsd_nat_target::store_registers (struct regcache + if (regno == -1 || getregs_supplies (regno)) + { + struct reg gregs; +- if (ptrace (PT_GETREGS, regcache->ptid ().pid (), ++ if (ptrace (PT_GETREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &gregs, 0) == -1) + perror_with_name (_("Couldn't get registers")); + + alphabsd_fill_reg (regcache, (char *) &gregs, regno); + +- if (ptrace (PT_SETREGS, regcache->ptid ().pid (), ++ if (ptrace (PT_SETREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &gregs, 0) == -1) + perror_with_name (_("Couldn't write registers")); + +@@ -148,13 +148,13 @@ alpha_bsd_nat_target::store_registers (struct regcache + { + struct fpreg fpregs; + +- if (ptrace (PT_GETFPREGS, regcache->ptid ().pid (), ++ if (ptrace (PT_GETFPREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) + perror_with_name (_("Couldn't get floating point status")); + + alphabsd_fill_fpreg (regcache, (char *) &fpregs, regno); + +- if (ptrace (PT_SETFPREGS, regcache->ptid ().pid (), ++ if (ptrace (PT_SETFPREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) + perror_with_name (_("Couldn't write floating point status")); + } Index: patches/patch-gdb_alphabsd-nat_c =================================================================== RCS file: patches/patch-gdb_alphabsd-nat_c diff -N patches/patch-gdb_alphabsd-nat_c --- patches/patch-gdb_alphabsd-nat_c 3 Sep 2016 13:48:39 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,53 +0,0 @@ -$OpenBSD: patch-gdb_alphabsd-nat_c,v 1.1 2016/09/03 13:48:39 jca Exp $ ---- gdb/alphabsd-nat.c.orig Wed Feb 10 04:19:39 2016 -+++ gdb/alphabsd-nat.c Sat May 14 22:54:35 2016 -@@ -91,7 +91,7 @@ alphabsd_fetch_inferior_registers (struct target_ops * - { - struct reg gregs; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &gregs, 0) == -1) - perror_with_name (_("Couldn't get registers")); - -@@ -105,7 +105,7 @@ alphabsd_fetch_inferior_registers (struct target_ops * - { - struct fpreg fpregs; - -- if (ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) - perror_with_name (_("Couldn't get floating point status")); - -@@ -123,13 +123,13 @@ alphabsd_store_inferior_registers (struct target_ops * - if (regno == -1 || getregs_supplies (regno)) - { - struct reg gregs; -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &gregs, 0) == -1) - perror_with_name (_("Couldn't get registers")); - - alphabsd_fill_reg (regcache, (char *) &gregs, regno); - -- if (ptrace (PT_SETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &gregs, 0) == -1) - perror_with_name (_("Couldn't write registers")); - -@@ -142,13 +142,13 @@ alphabsd_store_inferior_registers (struct target_ops * - { - struct fpreg fpregs; - -- if (ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) - perror_with_name (_("Couldn't get floating point status")); - - alphabsd_fill_fpreg (regcache, (char *) &fpregs, regno); - -- if (ptrace (PT_SETFPREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_SETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) - perror_with_name (_("Couldn't write floating point status")); - } Index: patches/patch-gdb_arm-bsd-tdep_c =================================================================== RCS file: patches/patch-gdb_arm-bsd-tdep_c diff -N patches/patch-gdb_arm-bsd-tdep_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_arm-bsd-tdep_c 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,41 @@ +$OpenBSD$ + +Index: gdb/arm-bsd-tdep.c +--- gdb/arm-bsd-tdep.c.orig ++++ gdb/arm-bsd-tdep.c +@@ -30,15 +30,12 @@ + #define ARMBSD_SIZEOF_GREGS (17 * 4) + + /* Sizeof `struct fpreg' in <machine/reg.h. */ +-#define ARMBSD_SIZEOF_FPREGS ((1 + (8 * 3)) * 4) ++#define ARMBSD_SIZEOF_FPREGS (32 * 8 + 4 + 4) + + static int + armbsd_fpreg_offset (int regnum) + { +- if (regnum == ARM_FPS_REGNUM) +- return 0; +- +- return 4 + (regnum - ARM_F0_REGNUM) * 12; ++ return (regnum - ARM_D0_REGNUM) * 8; + } + + /* Supply register REGNUM from the buffer specified by FPREGS and LEN +@@ -55,7 +52,7 @@ armbsd_supply_fpregset (const struct regset *regset, + + gdb_assert (len >= ARMBSD_SIZEOF_FPREGS); + +- for (i = ARM_F0_REGNUM; i <= ARM_FPS_REGNUM; i++) ++ for (i = ARM_D0_REGNUM; i <= ARM_FPSCR_REGNUM; i++) + { + if (regnum == i || regnum == -1) + regcache->raw_supply (i, regs + armbsd_fpreg_offset (i)); +@@ -83,7 +80,7 @@ armbsd_supply_gregset (const struct regset *regset, + } + + if (regnum == ARM_PS_REGNUM || regnum == -1) +- regcache->raw_supply (i, regs + 16 * 4); ++ regcache->raw_supply (ARM_PS_REGNUM, regs + 16 * 4); + + if (len >= ARMBSD_SIZEOF_GREGS + ARMBSD_SIZEOF_FPREGS) + { Index: patches/patch-gdb_arm-nbsd-nat_c =================================================================== RCS file: patches/patch-gdb_arm-nbsd-nat_c diff -N patches/patch-gdb_arm-nbsd-nat_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_arm-nbsd-nat_c 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,158 @@ +$OpenBSD$ + +Index: gdb/arm-nbsd-nat.c +--- gdb/arm-nbsd-nat.c.orig ++++ gdb/arm-nbsd-nat.c +@@ -71,9 +71,9 @@ arm_supply_fparegset (struct regcache *regcache, struc + + for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++) + regcache->raw_supply (regno, +- (char *) &fparegset->fpr[regno - ARM_F0_REGNUM]); ++ (char *) &fparegset->fp_reg[regno - ARM_F0_REGNUM]); + +- regcache->raw_supply (ARM_FPS_REGNUM, (char *) &fparegset->fpr_fpsr); ++ regcache->raw_supply (ARM_FPS_REGNUM, (char *) &fparegset->fp_scr); + } + + static void +@@ -82,7 +82,7 @@ fetch_register (struct regcache *regcache, int regno) + struct reg inferior_registers; + int ret; + +- ret = ptrace (PT_GETREGS, regcache->ptid ().pid (), ++ ret = ptrace (PT_GETREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &inferior_registers, 0); + + if (ret < 0) +@@ -131,7 +131,7 @@ fetch_regs (struct regcache *regcache) + int ret; + int regno; + +- ret = ptrace (PT_GETREGS, regcache->ptid ().pid (), ++ ret = ptrace (PT_GETREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &inferior_registers, 0); + + if (ret < 0) +@@ -149,7 +149,7 @@ fetch_fp_register (struct regcache *regcache, int regn + struct fpreg inferior_fp_registers; + int ret; + +- ret = ptrace (PT_GETFPREGS, regcache->ptid ().pid (), ++ ret = ptrace (PT_GETFPREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); + + if (ret < 0) +@@ -162,12 +162,12 @@ fetch_fp_register (struct regcache *regcache, int regn + { + case ARM_FPS_REGNUM: + regcache->raw_supply (ARM_FPS_REGNUM, +- (char *) &inferior_fp_registers.fpr_fpsr); ++ (char *) &inferior_fp_registers.fp_scr); + break; + + default: + regcache->raw_supply +- (regno, (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); ++ (regno, (char *) &inferior_fp_registers.fp_reg[regno - ARM_F0_REGNUM]); + break; + } + } +@@ -179,7 +179,7 @@ fetch_fp_regs (struct regcache *regcache) + int ret; + int regno; + +- ret = ptrace (PT_GETFPREGS, regcache->ptid ().pid (), ++ ret = ptrace (PT_GETFPREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); + + if (ret < 0) +@@ -192,7 +192,7 @@ fetch_fp_regs (struct regcache *regcache) + } + + void +-arm_nbsd_nat_target::fetch_registers (struct regcache *regcache, int regno) ++arm_netbsd_nat_target::fetch_registers (struct regcache *regcache, int regno) + { + if (regno >= 0) + { +@@ -216,7 +216,7 @@ store_register (const struct regcache *regcache, int r + struct reg inferior_registers; + int ret; + +- ret = ptrace (PT_GETREGS, regcache->ptid ().pid (), ++ ret = ptrace (PT_GETREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &inferior_registers, 0); + + if (ret < 0) +@@ -274,7 +274,7 @@ store_register (const struct regcache *regcache, int r + break; + } + +- ret = ptrace (PT_SETREGS, regcache->ptid ().pid (), ++ ret = ptrace (PT_SETREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &inferior_registers, 0); + + if (ret < 0) +@@ -316,7 +316,7 @@ store_regs (const struct regcache *regcache) + inferior_registers.r_pc = pc_val | psr_val; + } + +- ret = ptrace (PT_SETREGS, regcache->ptid ().pid (), ++ ret = ptrace (PT_SETREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &inferior_registers, 0); + + if (ret < 0) +@@ -329,7 +329,7 @@ store_fp_register (const struct regcache *regcache, in + struct fpreg inferior_fp_registers; + int ret; + +- ret = ptrace (PT_GETFPREGS, regcache->ptid ().pid (), ++ ret = ptrace (PT_GETFPREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); + + if (ret < 0) +@@ -342,16 +342,16 @@ store_fp_register (const struct regcache *regcache, in + { + case ARM_FPS_REGNUM: + regcache->raw_collect (ARM_FPS_REGNUM, +- (char *) &inferior_fp_registers.fpr_fpsr); ++ (char *) &inferior_fp_registers.fp_scr); + break; + + default: + regcache->raw_collect +- (regno, (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); ++ (regno, (char *) &inferior_fp_registers.fp_reg[regno - ARM_F0_REGNUM]); + break; + } + +- ret = ptrace (PT_SETFPREGS, regcache->ptid ().pid (), ++ ret = ptrace (PT_SETFPREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); + + if (ret < 0) +@@ -368,12 +368,12 @@ store_fp_regs (const struct regcache *regcache) + + for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++) + regcache->raw_collect +- (regno, (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); ++ (regno, (char *) &inferior_fp_registers.fp_reg[regno - ARM_F0_REGNUM]); + + regcache->raw_collect (ARM_FPS_REGNUM, +- (char *) &inferior_fp_registers.fpr_fpsr); ++ (char *) &inferior_fp_registers.fp_scr); + +- ret = ptrace (PT_SETFPREGS, regcache->ptid ().pid (), ++ ret = ptrace (PT_SETFPREGS, get_ptrace_pid (regcache->ptid ()), + (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); + + if (ret < 0) +@@ -381,7 +381,7 @@ store_fp_regs (const struct regcache *regcache) + } + + void +-arm_nbsd_nat_target::store_registers (struct regcache *regcache, int regno) ++arm_netbsd_nat_target::store_registers (struct regcache *regcache, int regno) + { + if (regno >= 0) + { Index: patches/patch-gdb_armbsd-tdep_c =================================================================== RCS file: patches/patch-gdb_armbsd-tdep_c diff -N patches/patch-gdb_armbsd-tdep_c --- patches/patch-gdb_armbsd-tdep_c 18 Jun 2018 14:53:12 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,41 +0,0 @@ -$OpenBSD: patch-gdb_armbsd-tdep_c,v 1.1 2018/06/18 14:53:12 kettenis Exp $ - -Index: gdb/armbsd-tdep.c ---- gdb/armbsd-tdep.c.orig -+++ gdb/armbsd-tdep.c -@@ -30,15 +30,12 @@ - #define ARMBSD_SIZEOF_GREGS (17 * 4) - - /* Sizeof `struct fpreg' in <machine/reg.h. */ --#define ARMBSD_SIZEOF_FPREGS ((1 + (8 * 3)) * 4) -+#define ARMBSD_SIZEOF_FPREGS (32 * 8 + 4 + 4) - - static int - armbsd_fpreg_offset (int regnum) - { -- if (regnum == ARM_FPS_REGNUM) -- return 0; -- -- return 4 + (regnum - ARM_F0_REGNUM) * 12; -+ return (regnum - ARM_D0_REGNUM) * 8; - } - - /* Supply register REGNUM from the buffer specified by FPREGS and LEN -@@ -55,7 +52,7 @@ armbsd_supply_fpregset (const struct regset *regset, - - gdb_assert (len >= ARMBSD_SIZEOF_FPREGS); - -- for (i = ARM_F0_REGNUM; i <= ARM_FPS_REGNUM; i++) -+ for (i = ARM_D0_REGNUM; i <= ARM_FPSCR_REGNUM; i++) - { - if (regnum == i || regnum == -1) - regcache_raw_supply (regcache, i, regs + armbsd_fpreg_offset (i)); -@@ -83,7 +80,7 @@ armbsd_supply_gregset (const struct regset *regset, - } - - if (regnum == ARM_PS_REGNUM || regnum == -1) -- regcache_raw_supply (regcache, i, regs + 16 * 4); -+ regcache_raw_supply (regcache, ARM_PS_REGNUM, regs + 16 * 4); - - if (len >= ARMBSD_SIZEOF_GREGS + ARMBSD_SIZEOF_FPREGS) - { Index: patches/patch-gdb_armnbsd-nat_c =================================================================== RCS file: patches/patch-gdb_armnbsd-nat_c diff -N patches/patch-gdb_armnbsd-nat_c --- patches/patch-gdb_armnbsd-nat_c 24 Jan 2018 00:19:56 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,140 +0,0 @@ -$OpenBSD: patch-gdb_armnbsd-nat_c,v 1.2 2018/01/24 00:19:56 jca Exp $ -Index: gdb/armnbsd-nat.c ---- gdb/armnbsd-nat.c.orig -+++ gdb/armnbsd-nat.c -@@ -65,10 +65,10 @@ arm_supply_fparegset (struct regcache *regcache, struc - - for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++) - regcache_raw_supply (regcache, regno, -- (char *) &fparegset->fpr[regno - ARM_F0_REGNUM]); -+ (char *) &fparegset->fp_reg[regno - ARM_F0_REGNUM]); - - regcache_raw_supply (regcache, ARM_FPS_REGNUM, -- (char *) &fparegset->fpr_fpsr); -+ (char *) &fparegset->fp_scr); - } - - static void -@@ -77,7 +77,7 @@ fetch_register (struct regcache *regcache, int regno) - struct reg inferior_registers; - int ret; - -- ret = ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ ret = ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_registers, 0); - - if (ret < 0) -@@ -130,7 +130,7 @@ fetch_regs (struct regcache *regcache) - int ret; - int regno; - -- ret = ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ ret = ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_registers, 0); - - if (ret < 0) -@@ -148,7 +148,7 @@ fetch_fp_register (struct regcache *regcache, int regn - struct fpreg inferior_fp_registers; - int ret; - -- ret = ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid), -+ ret = ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); - - if (ret < 0) -@@ -161,12 +161,12 @@ fetch_fp_register (struct regcache *regcache, int regn - { - case ARM_FPS_REGNUM: - regcache_raw_supply (regcache, ARM_FPS_REGNUM, -- (char *) &inferior_fp_registers.fpr_fpsr); -+ (char *) &inferior_fp_registers.fp_scr); - break; - - default: - regcache_raw_supply (regcache, regno, -- (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); -+ (char *) &inferior_fp_registers.fp_reg[regno - ARM_F0_REGNUM]); - break; - } - } -@@ -178,7 +178,7 @@ fetch_fp_regs (struct regcache *regcache) - int ret; - int regno; - -- ret = ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid), -+ ret = ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); - - if (ret < 0) -@@ -216,7 +216,7 @@ store_register (const struct regcache *regcache, int r - struct reg inferior_registers; - int ret; - -- ret = ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ ret = ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_registers, 0); - - if (ret < 0) -@@ -279,7 +279,7 @@ store_register (const struct regcache *regcache, int r - break; - } - -- ret = ptrace (PT_SETREGS, ptid_get_pid (inferior_ptid), -+ ret = ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_registers, 0); - - if (ret < 0) -@@ -327,7 +327,7 @@ store_regs (const struct regcache *regcache) - inferior_registers.r_pc = pc_val | psr_val; - } - -- ret = ptrace (PT_SETREGS, ptid_get_pid (inferior_ptid), -+ ret = ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_registers, 0); - - if (ret < 0) -@@ -340,7 +340,7 @@ store_fp_register (const struct regcache *regcache, in - struct fpreg inferior_fp_registers; - int ret; - -- ret = ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid), -+ ret = ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); - - if (ret < 0) -@@ -353,16 +353,16 @@ store_fp_register (const struct regcache *regcache, in - { - case ARM_FPS_REGNUM: - regcache_raw_collect (regcache, ARM_FPS_REGNUM, -- (char *) &inferior_fp_registers.fpr_fpsr); -+ (char *) &inferior_fp_registers.fp_scr); - break; - - default: - regcache_raw_collect (regcache, regno, -- (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); -+ (char *) &inferior_fp_registers.fp_reg[regno - ARM_F0_REGNUM]); - break; - } - -- ret = ptrace (PT_SETFPREGS, ptid_get_pid (inferior_ptid), -+ ret = ptrace (PT_SETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); - - if (ret < 0) -@@ -379,12 +379,12 @@ store_fp_regs (const struct regcache *regcache) - - for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++) - regcache_raw_collect (regcache, regno, -- (char *) &inferior_fp_registers.fpr[regno - ARM_F0_REGNUM]); -+ (char *) &inferior_fp_registers.fp_reg[regno - ARM_F0_REGNUM]); - - regcache_raw_collect (regcache, ARM_FPS_REGNUM, -- (char *) &inferior_fp_registers.fpr_fpsr); -+ (char *) &inferior_fp_registers.fp_scr); - -- ret = ptrace (PT_SETFPREGS, ptid_get_pid (inferior_ptid), -+ ret = ptrace (PT_SETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_fp_registers, 0); - - if (ret < 0) Index: patches/patch-gdb_configure_host =================================================================== RCS file: /cvs/ports/devel/gdb/patches/patch-gdb_configure_host,v retrieving revision 1.1 diff -u -p -r1.1 patch-gdb_configure_host --- patches/patch-gdb_configure_host 10 Jul 2018 11:03:46 -0000 1.1 +++ patches/patch-gdb_configure_host 23 Dec 2018 18:47:09 -0000 @@ -1,11 +1,12 @@ $OpenBSD: patch-gdb_configure_host,v 1.1 2018/07/10 11:03:46 kettenis Exp $ ---- gdb/configure.host.orig Sat Jan 21 05:48:42 2017 -+++ gdb/configure.host Tue Mar 7 23:52:43 2017 -@@ -82,6 +82,7 @@ case "${host}" in - *-*-darwin*) gdb_host=darwin ;; +Index: gdb/configure.host +--- gdb/configure.host.orig ++++ gdb/configure.host +@@ -85,6 +85,7 @@ case "${host}" in aarch64*-*-linux*) gdb_host=linux ;; + aarch64*-*-freebsd*) gdb_host=fbsd ;; +aarch64*-*-openbsd*) gdb_host=obsd ;; alpha*-*-linux*) gdb_host=alpha-linux ;; - alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) + alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu) Index: patches/patch-gdb_configure_tgt =================================================================== RCS file: /cvs/ports/devel/gdb/patches/patch-gdb_configure_tgt,v retrieving revision 1.1 diff -u -p -r1.1 patch-gdb_configure_tgt --- patches/patch-gdb_configure_tgt 10 Jul 2018 11:03:46 -0000 1.1 +++ patches/patch-gdb_configure_tgt 23 Dec 2018 18:47:09 -0000 @@ -2,17 +2,17 @@ $OpenBSD: patch-gdb_configure_tgt,v 1.1 Index: gdb/configure.tgt --- gdb/configure.tgt.orig +++ gdb/configure.tgt -@@ -51,6 +51,13 @@ aarch64*-*-linux*) +@@ -124,6 +124,13 @@ aarch64*-*-linux*) build_gdbserver=yes ;; +aarch64*-*-openbsd*) + # Target: OpenBSD/arm64 -+ gdb_target_obs="aarch64-tdep.o aarch64obsd-tdep.o aarch64-insn.o \ ++ gdb_target_obs="aarch64-tdep.o aarch64-obsd-tdep.o \ + obsd-tdep.o solib-svr4.o \ -+ symfile-mem.o aarch64-insn.o" ++ symfile-mem.o" + ;; + alpha*-*-linux*) # Target: Little-endian Alpha running Linux - gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alpha-linux-tdep.o \ + gdb_target_obs="alpha-mdebug-tdep.o alpha-linux-tdep.o \ Index: patches/patch-gdb_data-directory_Makefile_in =================================================================== RCS file: /cvs/ports/devel/gdb/patches/patch-gdb_data-directory_Makefile_in,v retrieving revision 1.9 diff -u -p -r1.9 patch-gdb_data-directory_Makefile_in --- patches/patch-gdb_data-directory_Makefile_in 9 Oct 2016 11:39:20 -0000 1.9 +++ patches/patch-gdb_data-directory_Makefile_in 23 Dec 2018 18:47:09 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-gdb_data-directory_Makefile_in,v 1.9 2016/10/09 11:39:20 pascal Exp $ ---- gdb/data-directory/Makefile.in.orig Mon Aug 1 17:50:20 2016 -+++ gdb/data-directory/Makefile.in Fri Oct 7 20:53:14 2016 -@@ -187,7 +187,7 @@ stamp-syscalls: Makefile $(SYSCALLS_FILES) +Index: gdb/data-directory/Makefile.in +--- gdb/data-directory/Makefile.in.orig ++++ gdb/data-directory/Makefile.in +@@ -198,7 +198,7 @@ stamp-syscalls: Makefile $(SYSCALLS_FILES) for file in $$files ; do \ f=$(SYSCALLS_SRCDIR)/$$file ; \ if test -f $$f ; then \ @@ -10,7 +11,7 @@ $OpenBSD: patch-gdb_data-directory_Makef fi ; \ done touch $@ -@@ -229,8 +229,8 @@ stamp-python: Makefile $(PYTHON_FILES) +@@ -240,8 +240,8 @@ stamp-python: Makefile $(PYTHON_FILES) if test "x$$files" != x ; then \ for file in $$files ; do \ dir=`echo "$$file" | sed 's,/[^/]*$$,,'` ; \ @@ -21,7 +22,7 @@ $OpenBSD: patch-gdb_data-directory_Makef done ; \ fi touch $@ -@@ -323,7 +323,7 @@ stamp-system-gdbinit: Makefile $(SYSTEM_GDBINIT_FILES) +@@ -334,7 +334,7 @@ stamp-system-gdbinit: Makefile $(SYSTEM_GDBINIT_FILES) for file in $$files ; do \ f=$(SYSTEM_GDBINIT_SRCDIR)/$$file ; \ if test -f $$f ; then \ Index: patches/patch-gdb_hppa-obsd-nat_c =================================================================== RCS file: patches/patch-gdb_hppa-obsd-nat_c diff -N patches/patch-gdb_hppa-obsd-nat_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_hppa-obsd-nat_c 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,59 @@ +$OpenBSD$ + +Index: gdb/hppa-obsd-nat.c +--- gdb/hppa-obsd-nat.c.orig ++++ gdb/hppa-obsd-nat.c +@@ -57,7 +57,7 @@ static void + hppaobsd_supply_gregset (struct regcache *regcache, const void *gregs) + { + gdb_byte zero[4] = { 0 }; +- const char *regs = gregs; ++ const char *regs = (const char *)gregs; + int regnum; + + regcache->raw_supply (HPPA_R0_REGNUM, &zero); +@@ -96,7 +96,7 @@ hppaobsd_supply_gregset (struct regcache *regcache, co + static void + hppaobsd_supply_fpregset (struct regcache *regcache, const void *fpregs) + { +- const char *regs = fpregs; ++ const char *regs = (const char *)fpregs; + int regnum; + + for (regnum = HPPA_FP0_REGNUM; regnum <= HPPA_FP31R_REGNUM; +@@ -114,7 +114,7 @@ static void + hppaobsd_collect_gregset (const struct regcache *regcache, + void *gregs, int regnum) + { +- char *regs = gregs; ++ char *regs = (char *)gregs; + int i; + + for (i = HPPA_R1_REGNUM; i <= HPPA_R31_REGNUM; i++) +@@ -176,7 +176,7 @@ static void + hppaobsd_collect_fpregset (struct regcache *regcache, + void *fpregs, int regnum) + { +- char *regs = fpregs; ++ char *regs = (char *)fpregs; + int i; + + for (i = HPPA_FP0_REGNUM; i <= HPPA_FP31R_REGNUM; i += 2, regs += 8) +@@ -196,7 +196,7 @@ hppaobsd_collect_fpregset (struct regcache *regcache, + void + hppa_obsd_nat_target::fetch_registers (struct regcache *regcache, int regnum) + { +- pid_t pid = regcache->ptid ().pid (); ++ pid_t pid = get_ptrace_pid (regcache->ptid ()); + + if (regnum == -1 || hppaobsd_gregset_supplies_p (regnum)) + { +@@ -225,6 +225,8 @@ hppa_obsd_nat_target::fetch_registers (struct regcache + void + hppa_obsd_nat_target::store_registers (struct regcache *regcache, int regnum) + { ++ pid_t pid = get_ptrace_pid (regcache->ptid ()); ++ + if (regnum == -1 || hppaobsd_gregset_supplies_p (regnum)) + { + struct reg regs; Index: patches/patch-gdb_hppaobsd-nat_c =================================================================== RCS file: patches/patch-gdb_hppaobsd-nat_c diff -N patches/patch-gdb_hppaobsd-nat_c --- patches/patch-gdb_hppaobsd-nat_c 3 Sep 2016 13:48:39 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,53 +0,0 @@ -$OpenBSD: patch-gdb_hppaobsd-nat_c,v 1.1 2016/09/03 13:48:39 jca Exp $ ---- gdb/hppaobsd-nat.c.orig Wed Feb 10 04:19:39 2016 -+++ gdb/hppaobsd-nat.c Sat May 14 22:54:35 2016 -@@ -193,7 +193,7 @@ hppaobsd_fetch_registers (struct target_ops *ops, - { - struct reg regs; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't get registers")); - -@@ -204,7 +204,7 @@ hppaobsd_fetch_registers (struct target_ops *ops, - { - struct fpreg fpregs; - -- if (ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) - perror_with_name (_("Couldn't get floating point status")); - -@@ -223,13 +223,13 @@ hppaobsd_store_registers (struct target_ops *ops, - { - struct reg regs; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't get registers")); - - hppaobsd_collect_gregset (regcache, ®s, regnum); - -- if (ptrace (PT_SETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't write registers")); - } -@@ -238,13 +238,13 @@ hppaobsd_store_registers (struct target_ops *ops, - { - struct fpreg fpregs; - -- if (ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) - perror_with_name (_("Couldn't get floating point status")); - - hppaobsd_collect_fpregset (regcache, &fpregs, regnum); - -- if (ptrace (PT_SETFPREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_SETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) - perror_with_name (_("Couldn't write floating point status")); - } Index: patches/patch-gdb_i386-bsd-nat_h =================================================================== RCS file: patches/patch-gdb_i386-bsd-nat_h diff -N patches/patch-gdb_i386-bsd-nat_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_i386-bsd-nat_h 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ + +Index: gdb/i386-bsd-nat.h +--- gdb/i386-bsd-nat.h.orig ++++ gdb/i386-bsd-nat.h +@@ -20,6 +20,8 @@ + #ifndef I386_BSD_NAT_H + #define I386_BSD_NAT_H + ++#include "x86-bsd-nat.h" ++ + /* Helper functions. See definitions. */ + extern void i386bsd_fetch_inferior_registers (struct regcache *regcache, + int regnum); Index: patches/patch-gdb_i386-obsd-nat_c =================================================================== RCS file: patches/patch-gdb_i386-obsd-nat_c diff -N patches/patch-gdb_i386-obsd-nat_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_i386-obsd-nat_c 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ + +Index: gdb/i386-obsd-nat.c +--- gdb/i386-obsd-nat.c.orig ++++ gdb/i386-obsd-nat.c +@@ -93,7 +93,7 @@ static i386_bsd_nat_target<obsd_nat_target> the_i386_o + void + _initialize_i386obsd_nat (void) + { +- add_inf_child_target (&i386_obsd_nat_target); ++ add_inf_child_target (&the_i386_obsd_nat_target); + + /* Support debugging kernel virtual memory images. */ + bsd_kvm_add_target (i386obsd_supply_pcb); Index: patches/patch-gdb_m88kbsd-nat_c =================================================================== RCS file: patches/patch-gdb_m88kbsd-nat_c diff -N patches/patch-gdb_m88kbsd-nat_c --- patches/patch-gdb_m88kbsd-nat_c 3 Sep 2016 13:48:39 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,28 +0,0 @@ -$OpenBSD: patch-gdb_m88kbsd-nat_c,v 1.1 2016/09/03 13:48:39 jca Exp $ ---- gdb/m88kbsd-nat.c.orig Wed Feb 10 04:19:39 2016 -+++ gdb/m88kbsd-nat.c Sat May 14 22:54:35 2016 -@@ -68,7 +68,7 @@ m88kbsd_fetch_inferior_registers (struct target_ops *o - { - struct reg regs; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't get registers")); - -@@ -84,13 +84,13 @@ m88kbsd_store_inferior_registers (struct target_ops *o - { - struct reg regs; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't get registers")); - - m88kbsd_collect_gregset (regcache, ®s, regnum); - -- if (ptrace (PT_SETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't write registers")); - } Index: patches/patch-gdb_mips64-obsd-nat_c =================================================================== RCS file: patches/patch-gdb_mips64-obsd-nat_c diff -N patches/patch-gdb_mips64-obsd-nat_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_mips64-obsd-nat_c 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,41 @@ +$OpenBSD$ + +Index: gdb/mips64-obsd-nat.c +--- gdb/mips64-obsd-nat.c.orig ++++ gdb/mips64-obsd-nat.c +@@ -48,7 +48,7 @@ static mips64_obsd_nat_target the_mips64_obsd_nat_targ + static void + mips64obsd_supply_gregset (struct regcache *regcache, const void *gregs) + { +- const char *regs = gregs; ++ const char *regs = (const char *) gregs; + int regnum; + + for (regnum = MIPS_ZERO_REGNUM; regnum <= MIPS_PC_REGNUM; regnum++) +@@ -65,7 +65,7 @@ static void + mips64obsd_collect_gregset (const struct regcache *regcache, + void *gregs, int regnum) + { +- char *regs = gregs; ++ char *regs = (char *) gregs; + int i; + + for (i = MIPS_ZERO_REGNUM; i <= MIPS_PC_REGNUM; i++) +@@ -89,7 +89,7 @@ void + mips64_obsd_nat_target::fetch_registers (struct regcache *regcache, int regnum) + { + struct reg regs; +- pid_t pid = regcache->ptid ().pid (); ++ pid_t pid = get_ptrace_pid (regcache->ptid ()), + + if (ptrace (PT_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) == -1) + perror_with_name (_("Couldn't get registers")); +@@ -104,7 +104,7 @@ static void + mips64_obsd_nat_target::store_registers (struct regcache *regcache, int regnum) + { + struct reg regs; +- pid_t pid = regcache->ptid ().pid (); ++ pid_t pid = get_ptrace_pid (regcache->ptid ()), + + if (ptrace (PT_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) == -1) + perror_with_name (_("Couldn't get registers")); Index: patches/patch-gdb_mips64obsd-nat_c =================================================================== RCS file: patches/patch-gdb_mips64obsd-nat_c diff -N patches/patch-gdb_mips64obsd-nat_c --- patches/patch-gdb_mips64obsd-nat_c 21 Oct 2016 13:13:31 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,46 +0,0 @@ -$OpenBSD: patch-gdb_mips64obsd-nat_c,v 1.2 2016/10/21 13:13:31 visa Exp $ ---- gdb/mips64obsd-nat.c.orig Mon Aug 1 09:50:20 2016 -+++ gdb/mips64obsd-nat.c Tue Oct 18 07:24:31 2016 -@@ -40,7 +40,7 @@ - static void - mips64obsd_supply_gregset (struct regcache *regcache, const void *gregs) - { -- const char *regs = gregs; -+ const char *regs = (const char *) gregs; - int regnum; - - for (regnum = MIPS_ZERO_REGNUM; regnum <= MIPS_PC_REGNUM; regnum++) -@@ -57,7 +57,7 @@ static void - mips64obsd_collect_gregset (const struct regcache *regcache, - void *gregs, int regnum) - { -- char *regs = gregs; -+ char *regs = (char *) gregs; - int i; - - for (i = MIPS_ZERO_REGNUM; i <= MIPS_PC_REGNUM; i++) -@@ -83,7 +83,7 @@ mips64obsd_fetch_inferior_registers (struct target_ops - { - struct reg regs; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't get registers")); - -@@ -99,13 +99,13 @@ mips64obsd_store_inferior_registers (struct target_ops - { - struct reg regs; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't get registers")); - - mips64obsd_collect_gregset (regcache, ®s, regnum); - -- if (ptrace (PT_SETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't write registers")); - } Index: patches/patch-gdb_ppc-obsd-nat_c =================================================================== RCS file: patches/patch-gdb_ppc-obsd-nat_c diff -N patches/patch-gdb_ppc-obsd-nat_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_ppc-obsd-nat_c 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,23 @@ +$OpenBSD$ + +Index: gdb/ppc-obsd-nat.c +--- gdb/ppc-obsd-nat.c.orig ++++ gdb/ppc-obsd-nat.c +@@ -82,7 +82,7 @@ void + ppc_obsd_nat_target::fetch_registers (struct regcache *regcache, int regnum) + { + struct reg regs; +- pid_t pid = regcache->ptid ().pid (); ++ pid_t pid = get_ptrace_pid (regcache->ptid ()); + + if (ptrace (PT_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) == -1) + perror_with_name (_("Couldn't get registers")); +@@ -116,7 +116,7 @@ void + ppc_obsd_nat_target::store_registers (struct regcache *regcache, int regnum) + { + struct reg regs; +- pid_t pid = regcache->ptid ().pid (); ++ pid_t pid = get_ptrace_pid (regcache->ptid ()); + + if (ptrace (PT_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) == -1) + perror_with_name (_("Couldn't get registers")); Index: patches/patch-gdb_ppcobsd-nat_c =================================================================== RCS file: patches/patch-gdb_ppcobsd-nat_c diff -N patches/patch-gdb_ppcobsd-nat_c --- patches/patch-gdb_ppcobsd-nat_c 3 Sep 2016 13:48:39 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,56 +0,0 @@ -$OpenBSD: patch-gdb_ppcobsd-nat_c,v 1.1 2016/09/03 13:48:39 jca Exp $ ---- gdb/ppcobsd-nat.c.orig Wed Feb 10 04:19:39 2016 -+++ gdb/ppcobsd-nat.c Sat May 14 22:54:35 2016 -@@ -76,7 +76,7 @@ ppcobsd_fetch_registers (struct target_ops *ops, - { - struct reg regs; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't get registers")); - -@@ -93,7 +93,7 @@ ppcobsd_fetch_registers (struct target_ops *ops, - { - struct fpreg fpregs; - -- if (ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) - perror_with_name (_("Couldn't get floating point status")); - -@@ -112,7 +112,7 @@ ppcobsd_store_registers (struct target_ops *ops, - { - struct reg regs; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't get registers")); - -@@ -123,7 +123,7 @@ ppcobsd_store_registers (struct target_ops *ops, - regnum, ®s, sizeof regs); - #endif - -- if (ptrace (PT_SETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) ®s, 0) == -1) - perror_with_name (_("Couldn't write registers")); - -@@ -133,14 +133,14 @@ ppcobsd_store_registers (struct target_ops *ops, - { - struct fpreg fpregs; - -- if (ptrace (PT_GETFPREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) - perror_with_name (_("Couldn't get floating point status")); - - ppc_collect_fpregset (&ppcobsd_fpregset, regcache, - regnum, &fpregs, sizeof fpregs); - -- if (ptrace (PT_SETFPREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_SETFPREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &fpregs, 0) == -1) - perror_with_name (_("Couldn't write floating point status")); - } Index: patches/patch-gdb_python_python-config_py =================================================================== RCS file: /cvs/ports/devel/gdb/patches/patch-gdb_python_python-config_py,v retrieving revision 1.3 diff -u -p -r1.3 patch-gdb_python_python-config_py --- patches/patch-gdb_python_python-config_py 4 May 2013 21:27:11 -0000 1.3 +++ patches/patch-gdb_python_python-config_py 23 Dec 2018 18:47:09 -0000 @@ -1,7 +1,8 @@ $OpenBSD: patch-gdb_python_python-config_py,v 1.3 2013/05/04 21:27:11 pascal Exp $ ---- gdb/python/python-config.py.orig Wed Dec 12 17:47:30 2012 -+++ gdb/python/python-config.py Mon Apr 29 20:28:12 2013 -@@ -72,6 +72,8 @@ for opt in opt_flags: +Index: gdb/python/python-config.py +--- gdb/python/python-config.py.orig ++++ gdb/python/python-config.py +@@ -71,6 +71,8 @@ for opt in opt_flags: libs.insert(0, '-L' + getvar('LIBPL')) elif os.name == 'nt': libs.insert(0, '-L' + sysconfig.PREFIX + '/libs') Index: patches/patch-gdb_sh-nbsd-nat_c =================================================================== RCS file: patches/patch-gdb_sh-nbsd-nat_c diff -N patches/patch-gdb_sh-nbsd-nat_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_sh-nbsd-nat_c 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,23 @@ +$OpenBSD$ + +Index: gdb/sh-nbsd-nat.c +--- gdb/sh-nbsd-nat.c.orig ++++ gdb/sh-nbsd-nat.c +@@ -51,7 +51,7 @@ static sh_nbsd_nat_target the_sh_nbsd_nat_target; + void + sh_nbsd_nat_target::fetch_registers (struct regcache *regcache, int regno) + { +- pid_t pid = regcache->ptid ().pid (); ++ pid_t pid = get_ptrace_pid (regcache->ptid ()), + + if (regno == -1 || GETREGS_SUPPLIES (regcache->arch (), regno)) + { +@@ -73,7 +73,7 @@ sh_nbsd_nat_target::fetch_registers (struct regcache * + void + sh_nbsd_nat_target::store_registers (struct regcache *regcache, int regno) + { +- pid_t pid = regcache->ptid ().pid (); ++ pid_t pid = get_ptrace_pid (regcache->ptid ()), + + if (regno == -1 || GETREGS_SUPPLIES (regcache->arch (), regno)) + { Index: patches/patch-gdb_shnbsd-nat_c =================================================================== RCS file: patches/patch-gdb_shnbsd-nat_c diff -N patches/patch-gdb_shnbsd-nat_c --- patches/patch-gdb_shnbsd-nat_c 3 Sep 2016 13:48:39 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,30 +0,0 @@ -$OpenBSD: patch-gdb_shnbsd-nat_c,v 1.1 2016/09/03 13:48:39 jca Exp $ ---- gdb/shnbsd-nat.c.orig Wed Feb 10 04:19:39 2016 -+++ gdb/shnbsd-nat.c Sat May 14 22:54:35 2016 -@@ -49,7 +49,7 @@ shnbsd_fetch_inferior_registers (struct target_ops *op - { - struct reg inferior_registers; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_registers, 0) == -1) - perror_with_name (_("Couldn't get registers")); - -@@ -70,7 +70,7 @@ shnbsd_store_inferior_registers (struct target_ops *op - { - struct reg inferior_registers; - -- if (ptrace (PT_GETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_registers, 0) == -1) - perror_with_name (_("Couldn't get registers")); - -@@ -78,7 +78,7 @@ shnbsd_store_inferior_registers (struct target_ops *op - (char *) &inferior_registers, - SHNBSD_SIZEOF_GREGS); - -- if (ptrace (PT_SETREGS, ptid_get_pid (inferior_ptid), -+ if (ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &inferior_registers, 0) == -1) - perror_with_name (_("Couldn't set registers")); - Index: patches/patch-gdb_sparc-nat_h =================================================================== RCS file: patches/patch-gdb_sparc-nat_h diff -N patches/patch-gdb_sparc-nat_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_sparc-nat_h 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,26 @@ +$OpenBSD$ + +Index: gdb/sparc-nat.h +--- gdb/sparc-nat.h.orig ++++ gdb/sparc-nat.h +@@ -64,20 +64,6 @@ struct sparc_target : public BaseTarget + void store_registers (struct regcache *regcache, int regnum) override + { sparc_store_inferior_registers (regcache, regnum); } + +- enum target_xfer_status xfer_partial (enum target_object object, +- const char *annex, +- gdb_byte *readbuf, +- const gdb_byte *writebuf, +- ULONGEST offset, ULONGEST len, +- ULONGEST *xfered_len) override +- { +- if (object == TARGET_OBJECT_WCOOKIE) +- return sparc_xfer_wcookie (object, annex, readbuf, writebuf, +- offset, len, xfered_len); +- +- return BaseTarget (object, annex, readbuf, writebuf, +- offset, len, xfered_len); +- } + }; + + #endif /* sparc-nat.h */ Index: patches/patch-gdb_x86-nat_h =================================================================== RCS file: patches/patch-gdb_x86-nat_h diff -N patches/patch-gdb_x86-nat_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-gdb_x86-nat_h 23 Dec 2018 18:47:09 -0000 @@ -0,0 +1,47 @@ +$OpenBSD$ + +Index: gdb/x86-nat.h +--- gdb/x86-nat.h.orig ++++ gdb/x86-nat.h +@@ -79,41 +79,6 @@ struct x86_nat_target : public BaseTarget + bool have_continuable_watchpoint () override + { return true; } + +- int can_use_hw_breakpoint (enum bptype type, int cnt, int othertype) override +- { return x86_can_use_hw_breakpoint (type, cnt, othertype); } +- +- int region_ok_for_hw_watchpoint (CORE_ADDR addr, int len) override +- { return x86_region_ok_for_hw_watchpoint (addr, len); } +- +- int insert_watchpoint (CORE_ADDR addr, int len, +- enum target_hw_bp_type type, +- struct expression *cond) override +- { return x86_insert_watchpoint (addr, len, type, cond); } +- +- int remove_watchpoint (CORE_ADDR addr, int len, +- enum target_hw_bp_type type, +- struct expression *cond) override +- { return x86_remove_watchpoint (addr, len, type, cond); } +- +- int insert_hw_breakpoint (struct gdbarch *gdbarch, +- struct bp_target_info *bp_tgt) override +- { return x86_insert_hw_breakpoint (gdbarch, bp_tgt); } +- +- int remove_hw_breakpoint (struct gdbarch *gdbarch, +- struct bp_target_info *bp_tgt) override +- { return x86_remove_hw_breakpoint (gdbarch, bp_tgt); } +- +- bool stopped_by_watchpoint () override +- { return x86_stopped_by_watchpoint (); } +- +- bool stopped_data_address (CORE_ADDR *addr_p) override +- { return x86_stopped_data_address (addr_p); } +- +- /* A target must provide an implementation of the +- "supports_stopped_by_hw_breakpoint" target method before this +- callback will be used. */ +- bool stopped_by_hw_breakpoint () override +- { return x86_stopped_by_hw_breakpoint (); } + }; + + #endif /* X86_NAT_H */ Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/devel/gdb/pkg/PLIST,v retrieving revision 1.19 diff -u -p -r1.19 PLIST --- pkg/PLIST 1 Nov 2018 20:36:09 -0000 1.19 +++ pkg/PLIST 23 Dec 2018 18:47:09 -0000 @@ -2,9 +2,11 @@ @conflict arm-none-eabi-gdb-* @conflict libbfd-* @bin bin/egdb +bin/egdb-add-index include/ansidecl.h include/bfd.h include/bfdlink.h +include/diagnostics.h include/dis-asm.h include/gdb/ include/gdb/jit-reader.h @@ -19,6 +21,7 @@ lib/libbfd.a lib/libbfd.la lib/libopcodes.a lib/libopcodes.la +@man man/man1/egdb-add-index.1 @man man/man1/egdb.1 @man man/man1/egdbserver.1 @man man/man5/egdbinit.5
