Download raw body.
Update to gdb-13.2 - tests wanted
On Sat, 9 Nov 2024 11:50:12 +0100
Jeremie Courreges-Anglas <jca@wxcvbn.org> wrote:
> I propose I commit this update,
> and then you add your runtime fix for powerpc64 on top.
Here's my diff on top, with the powerpc thread-switching fix, and the
powerpc64 runtime fixes. Also, "make update-patches" wants to trim
some empty lines from patch*aarch64*. Is this ok?
WRKSRC/gdb/make-init-c was not finding the _initialize_ppc64obsd_*
functions; change their style to what make-init-c expects. Get rid of
inferior_ptid, which had pid 0. Drop 32-bit bfd_arch_rs6000.
I also want to report that 32-bit archs (powerpc but not powerpc64)
give lots of this warning,
| /usr/local/include/xxhash.h:617:16: warning: unknown attribute
| 'rpl_malloc' ignored [-Wunknown-attributes]
because <xxhash.h> has "__attribute__((malloc))" but
WRKSRC/gnulib/import/stdlib.h does "#define malloc rpl_malloc", after
WRKSRC/gnulib/import/m4/malloc.m4 checks "whether malloc is ptrdiff_t
safe", which is "no" on 32-bit archs.
--gkoehler
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/gdb/Makefile,v
diff -u -p -r1.86 Makefile
--- Makefile 9 Nov 2024 13:33:19 -0000 1.86
+++ Makefile 9 Nov 2024 21:39:17 -0000
@@ -2,6 +2,7 @@ COMMENT= GNU debugger
CATEGORIES= devel
DISTNAME= gdb-13.2
+REVISION= 0
HOMEPAGE= https://www.gnu.org/software/gdb/
Index: patches/patch-gdb_aarch64-obsd-nat_c
===================================================================
RCS file: /cvs/ports/devel/gdb/patches/patch-gdb_aarch64-obsd-nat_c,v
diff -u -p -r1.4 patch-gdb_aarch64-obsd-nat_c
--- patches/patch-gdb_aarch64-obsd-nat_c 9 Nov 2024 13:33:19 -0000 1.4
+++ patches/patch-gdb_aarch64-obsd-nat_c 9 Nov 2024 21:39:17 -0000
@@ -172,5 +172,3 @@ Index: gdb/aarch64-obsd-nat.c
+{
+ add_inf_child_target (&the_aarch64_obsd_nat_target);
+}
-
-
Index: patches/patch-gdb_aarch64-obsd-tdep_c
===================================================================
RCS file: /cvs/ports/devel/gdb/patches/patch-gdb_aarch64-obsd-tdep_c,v
diff -u -p -r1.4 patch-gdb_aarch64-obsd-tdep_c
--- patches/patch-gdb_aarch64-obsd-tdep_c 9 Nov 2024 13:33:19 -0000 1.4
+++ patches/patch-gdb_aarch64-obsd-tdep_c 9 Nov 2024 21:39:18 -0000
@@ -340,4 +340,3 @@ Index: gdb/aarch64-obsd-tdep.c
+ gdbarch_register_osabi (bfd_arch_aarch64, 0, GDB_OSABI_OPENBSD,
+ aarch64obsd_init_abi);
+}
-
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 9 Nov 2024 21:39:18 -0000
@@ -0,0 +1,23 @@
+When switching threads, use the correct registers.
+
+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_ppc64-obsd-nat_c
===================================================================
RCS file: /cvs/ports/devel/gdb/patches/patch-gdb_ppc64-obsd-nat_c,v
diff -u -p -r1.2 patch-gdb_ppc64-obsd-nat_c
--- patches/patch-gdb_ppc64-obsd-nat_c 11 Mar 2022 18:50:04 -0000 1.2
+++ patches/patch-gdb_ppc64-obsd-nat_c 9 Nov 2024 21:39:18 -0000
@@ -1,7 +1,7 @@
Index: gdb/ppc64-obsd-nat.c
--- gdb/ppc64-obsd-nat.c.orig
+++ gdb/ppc64-obsd-nat.c
-@@ -0,0 +1,219 @@
+@@ -0,0 +1,213 @@
+/* Native-dependent code for OpenBSD/powerpc64.
+
+ Copyright (C) 2004-2020 Free Software Foundation, Inc.
@@ -83,9 +83,9 @@ Index: gdb/ppc64-obsd-nat.c
+ppc64_obsd_nat_target::fetch_registers (struct regcache *regcache, int regnum)
+{
+ struct reg regs;
++ pid_t pid = get_ptrace_pid (regcache->ptid ());
+
-+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid),
-+ (PTRACE_TYPE_ARG3) ®s, 0) == -1)
++ if (ptrace (PT_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) == -1)
+ perror_with_name (_("Couldn't get registers"));
+
+ ppc64obsd_supply_gregset (&ppc64obsd_gregset, regcache, -1,
@@ -97,8 +97,7 @@ Index: gdb/ppc64-obsd-nat.c
+ {
+ struct fpreg fpregs;
+
-+ if (ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid),
-+ (PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
++ if (ptrace (PT_GETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
+ perror_with_name (_("Couldn't get floating point status"));
+
+ ppc64obsd_supply_fpregset (&ppc64obsd_fpregset, regcache, -1,
@@ -114,16 +113,15 @@ Index: gdb/ppc64-obsd-nat.c
+ppc64_obsd_nat_target::store_registers (struct regcache *regcache, int regnum)
+{
+ struct reg regs;
++ pid_t pid = get_ptrace_pid (regcache->ptid ());
+
-+ if (ptrace (PT_GETREGS, get_ptrace_pid (inferior_ptid),
-+ (PTRACE_TYPE_ARG3) ®s, 0) == -1)
++ if (ptrace (PT_GETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) == -1)
+ perror_with_name (_("Couldn't get registers"));
+
+ ppc64obsd_collect_gregset (&ppc64obsd_gregset, regcache,
+ regnum, ®s, sizeof regs);
+
-+ if (ptrace (PT_SETREGS, get_ptrace_pid (inferior_ptid),
-+ (PTRACE_TYPE_ARG3) ®s, 0) == -1)
++ if (ptrace (PT_SETREGS, pid, (PTRACE_TYPE_ARG3) ®s, 0) == -1)
+ perror_with_name (_("Couldn't write registers"));
+
+#if 0
@@ -132,15 +130,13 @@ Index: gdb/ppc64-obsd-nat.c
+ {
+ struct fpreg fpregs;
+
-+ if (ptrace (PT_GETFPREGS, get_ptrace_pid (inferior_ptid),
-+ (PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
++ if (ptrace (PT_GETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
+ perror_with_name (_("Couldn't get floating point status"));
+
+ ppc64obsd_collect_fpregset (&ppc64obsd_fpregset, regcache,
+ regnum, &fpregs, sizeof fpregs);
+
-+ if (ptrace (PT_SETFPREGS, get_ptrace_pid (inferior_ptid),
-+ (PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
++ if (ptrace (PT_SETFPREGS, pid, (PTRACE_TYPE_ARG3) &fpregs, 0) == -1)
+ perror_with_name (_("Couldn't write floating point status"));
+ }
+#endif
@@ -189,11 +185,9 @@ Index: gdb/ppc64-obsd-nat.c
+#endif
+␌
+
-+/* Provide a prototype to silence -Wmissing-prototypes. */
-+void _initialize_ppc64obsd_nat (void);
-+
++void _initialize_ppc64obsd_nat ();
+void
-+_initialize_ppc64obsd_nat (void)
++_initialize_ppc64obsd_nat ()
+{
+ add_inf_child_target (&the_ppc64_obsd_nat_target);
+
Index: patches/patch-gdb_ppc64-obsd-tdep_c
===================================================================
RCS file: /cvs/ports/devel/gdb/patches/patch-gdb_ppc64-obsd-tdep_c,v
diff -u -p -r1.3 patch-gdb_ppc64-obsd-tdep_c
--- patches/patch-gdb_ppc64-obsd-tdep_c 9 Nov 2024 13:33:19 -0000 1.3
+++ patches/patch-gdb_ppc64-obsd-tdep_c 9 Nov 2024 21:39:18 -0000
@@ -1,7 +1,7 @@
Index: gdb/ppc64-obsd-tdep.c
--- gdb/ppc64-obsd-tdep.c.orig
+++ gdb/ppc64-obsd-tdep.c
-@@ -0,0 +1,411 @@
+@@ -0,0 +1,407 @@
+/* Target-dependent code for OpenBSD/powerpc64.
+
+ Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -375,14 +375,10 @@ Index: gdb/ppc64-obsd-tdep.c
+}
+␌
+
-+/* Provide a prototype to silence -Wmissing-prototypes. */
-+void _initialize_ppc64obsd_tdep (void);
-+
++void _initialize_ppc64obsd_tdep ();
+void
-+_initialize_ppc64obsd_tdep (void)
++_initialize_ppc64obsd_tdep ()
+{
-+ gdbarch_register_osabi (bfd_arch_rs6000, 0, GDB_OSABI_OPENBSD,
-+ ppc64obsd_init_abi);
+ gdbarch_register_osabi (bfd_arch_powerpc, bfd_mach_ppc64,
+ GDB_OSABI_OPENBSD, ppc64obsd_init_abi);
+
Update to gdb-13.2 - tests wanted