commit:     e9d3ab7ee243c49191b72e042128dea375e67305
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 25 20:57:24 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Apr 25 20:57:44 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e9d3ab7e

sys-devel/gdb: fix sparc-nat build

Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 sys-devel/gdb/files/gdb-10.2-sparc-nat.patch | 47 ++++++++++++++++++++++++++++
 sys-devel/gdb/gdb-10.2.ebuild                |  1 +
 2 files changed, 48 insertions(+)

diff --git a/sys-devel/gdb/files/gdb-10.2-sparc-nat.patch 
b/sys-devel/gdb/files/gdb-10.2-sparc-nat.patch
new file mode 100644
index 00000000000..5e71efa0d33
--- /dev/null
+++ b/sys-devel/gdb/files/gdb-10.2-sparc-nat.patch
@@ -0,0 +1,47 @@
+From 288e3189fce8f466ca60411c27e8f1c0dac5d582 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <siarh...@google.com>
+Date: Sun, 25 Apr 2021 20:50:38 +0100
+Subject: [PATCH] gdb: fix sparc build failure of linux-nat
+
+On sparc build failed as:
+
+```
+gdb/sparc-linux-nat.c: In member function
+  'virtual void sparc_linux_nat_target::fetch_registers(regcache*, int)':
+gdb/sparc-linux-nat.c:36:37:
+  error: cannot convert 'regcache*' to 'process_stratum_target*'
+   36 |   { sparc_fetch_inferior_registers (regcache, regnum); }
+      |                                     ^~~~~~~~
+      |                                     |
+      |                                     regcache*
+```
+
+The fix adopts gdb/sparc-nat.h API change in d1e93af64a6
+("gdb: set current thread in sparc_{fetch,collect}_inferior_registers").
+
+gdb/ChangeLog:
+
+       * sparc-linux-nat.c (sparc_linux_nat_target): fix sparc build
+       by passing `process_stratum_target*` parameter.
+---
+ gdb/sparc-linux-nat.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/gdb/sparc-linux-nat.c
++++ b/gdb/sparc-linux-nat.c
+@@ -33,10 +33,10 @@ class sparc_linux_nat_target final : public 
linux_nat_target
+ public:
+   /* Add our register access methods.  */
+   void fetch_registers (struct regcache *regcache, int regnum) override
+-  { sparc_fetch_inferior_registers (regcache, regnum); }
++  { sparc_fetch_inferior_registers (this, regcache, regnum); }
+ 
+   void store_registers (struct regcache *regcache, int regnum) override
+-  { sparc_store_inferior_registers (regcache, regnum); }
++  { sparc_store_inferior_registers (this, regcache, regnum); }
+ };
+ 
+ static sparc_linux_nat_target the_sparc_linux_nat_target;
+-- 
+2.31.1
+

diff --git a/sys-devel/gdb/gdb-10.2.ebuild b/sys-devel/gdb/gdb-10.2.ebuild
index 520501f0023..f826ccb7083 100644
--- a/sys-devel/gdb/gdb-10.2.ebuild
+++ b/sys-devel/gdb/gdb-10.2.ebuild
@@ -86,6 +86,7 @@ BDEPEND="
 PATCHES=(
        "${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
        "${FILESDIR}"/${PN}-10.1-cet.patch
+       "${FILESDIR}"/${PN}-10.2-sparc-nat.patch
 )
 
 pkg_setup() {

Reply via email to