package/gdb: remove support for 9.2
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
parent
a493f6288b
commit
5c89b00a20
@ -144,6 +144,14 @@ endif
|
||||
|
||||
###############################################################################
|
||||
|
||||
comment "Legacy options removed in 2022.11"
|
||||
|
||||
config BR2_GDB_VERSION_9_2
|
||||
bool "gdb 9.2 removed"
|
||||
help
|
||||
Support for GDB 9.2 has been removed. A new version has
|
||||
automatically been selected.
|
||||
|
||||
comment "Legacy options removed in 2022.08"
|
||||
|
||||
config BR2_ECLIPSE_REGISTER
|
||||
|
@ -1,55 +0,0 @@
|
||||
From 72ee19f54fd35595465b2e35eccf1f3d65fe21c6 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 6 Aug 2016 17:32:50 -0700
|
||||
Subject: [PATCH] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC systems
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
[Rebase on gdb 8.3]
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
---
|
||||
gdb/gdbserver/linux-ppc-low.c | 6 ++++++
|
||||
gdb/nat/ppc-linux.h | 6 ++++++
|
||||
2 files changed, 12 insertions(+)
|
||||
|
||||
diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c
|
||||
index 1b695e53fe9..1978347c02c 100644
|
||||
--- a/gdb/gdbserver/linux-ppc-low.c
|
||||
+++ b/gdb/gdbserver/linux-ppc-low.c
|
||||
@@ -23,7 +23,13 @@
|
||||
#include "elf/common.h"
|
||||
#include <sys/uio.h>
|
||||
#include <elf.h>
|
||||
+#if !defined(__GLIBC__)
|
||||
+# define pt_regs uapi_pt_regs
|
||||
+#endif
|
||||
#include <asm/ptrace.h>
|
||||
+#if !defined(__GLIBC__)
|
||||
+# undef pt_regs
|
||||
+#endif
|
||||
|
||||
#include "arch/ppc-linux-common.h"
|
||||
#include "arch/ppc-linux-tdesc.h"
|
||||
diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h
|
||||
index f1561b3b357..40399361c09 100644
|
||||
--- a/gdb/nat/ppc-linux.h
|
||||
+++ b/gdb/nat/ppc-linux.h
|
||||
@@ -18,7 +18,13 @@
|
||||
#ifndef NAT_PPC_LINUX_H
|
||||
#define NAT_PPC_LINUX_H
|
||||
|
||||
+#if !defined(__GLIBC__)
|
||||
+# define pt_regs uapi_pt_regs
|
||||
+#endif
|
||||
#include <asm/ptrace.h>
|
||||
+#if !defined(__GLIBC__)
|
||||
+# undef pt_regs
|
||||
+#endif
|
||||
#include <asm/cputable.h>
|
||||
|
||||
/* This sometimes isn't defined. */
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,43 +0,0 @@
|
||||
From ef630288fdc2d4d22651702672f9d5c9cd767e5b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Sat, 3 Jun 2017 21:23:52 +0200
|
||||
Subject: [PATCH] sh/ptrace: Define pt_{dsp,}regs uapi_pt_{dsp,}regs on !GLIBC
|
||||
systems
|
||||
|
||||
Fixes a pt_{dsp,}regs redefinition when building with the musl C library
|
||||
on SuperH.
|
||||
|
||||
Inspired by
|
||||
http://git.yoctoproject.org/clean/cgit.cgi/poky/plain/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch,
|
||||
adapted for SuperH.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
[Rebase on gdb 8.0]
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
---
|
||||
gdb/gdbserver/linux-sh-low.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/gdb/gdbserver/linux-sh-low.c b/gdb/gdbserver/linux-sh-low.c
|
||||
index 0953721a190..c331c1382f7 100644
|
||||
--- a/gdb/gdbserver/linux-sh-low.c
|
||||
+++ b/gdb/gdbserver/linux-sh-low.c
|
||||
@@ -27,7 +27,15 @@ extern const struct target_desc *tdesc_sh;
|
||||
#include <sys/reg.h>
|
||||
#endif
|
||||
|
||||
+#if !defined(__GLIBC__)
|
||||
+# define pt_regs uapi_pt_regs
|
||||
+# define pt_dspregs uapi_pt_dspregs
|
||||
+#endif
|
||||
#include <asm/ptrace.h>
|
||||
+#if !defined(__GLIBC__)
|
||||
+# undef pt_regs
|
||||
+# undef pt_dspregs
|
||||
+#endif
|
||||
|
||||
#define sh_num_regs 41
|
||||
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,40 +0,0 @@
|
||||
From 19a0f664809b6858e69aa98188eb739415de044c Mon Sep 17 00:00:00 2001
|
||||
From: Andre McCurdy <amccurdy@gmail.com>
|
||||
Date: Sat, 30 Apr 2016 15:29:06 -0700
|
||||
Subject: [PATCH] use <asm/sgidefs.h>
|
||||
|
||||
Build fix for MIPS with musl libc
|
||||
|
||||
The MIPS specific header <sgidefs.h> is provided by glibc and uclibc
|
||||
but not by musl. Regardless of the libc, the kernel headers provide
|
||||
<asm/sgidefs.h> which provides the same definitions, so use that
|
||||
instead.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
[Vincent:
|
||||
Taken from: https://sourceware.org/bugzilla/show_bug.cgi?id=21070]
|
||||
|
||||
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
---
|
||||
gdb/mips-linux-nat.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
|
||||
index e68ed1e4da9..bc42aa59685 100644
|
||||
--- a/gdb/mips-linux-nat.c
|
||||
+++ b/gdb/mips-linux-nat.c
|
||||
@@ -31,7 +31,7 @@
|
||||
#include "gdb_proc_service.h"
|
||||
#include "gregset.h"
|
||||
|
||||
-#include <sgidefs.h>
|
||||
+#include <asm/sgidefs.h>
|
||||
#include "nat/gdb_ptrace.h"
|
||||
#include <asm/ptrace.h>
|
||||
#include "inf-ptrace.h"
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,62 +0,0 @@
|
||||
From 448e481aab86c823d908530038e20a14213db0a2 Mon Sep 17 00:00:00 2001
|
||||
From: Romain Naour <romain.naour@gmail.com>
|
||||
Date: Fri, 22 Jun 2018 22:40:26 +0200
|
||||
Subject: [PATCH] gdbserver: fix build for m68k
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
As for strace [1], when <sys/reg.h> is included after <linux/ptrace.h>,
|
||||
the build fails on m68k with the following diagnostics:
|
||||
|
||||
In file included from ./../nat/linux-ptrace.h:28:0,
|
||||
from linux-low.h:27,
|
||||
from linux-m68k-low.c:20:
|
||||
[...]/usr/include/sys/reg.h:26:3: error: expected identifier before numeric constant
|
||||
PT_D1 = 0,
|
||||
^
|
||||
[...]usr/include/sys/reg.h:26:3: error: expected « } » before numeric constant
|
||||
[...]usr/include/sys/reg.h:26:3: error: expected unqualified-id before numeric constant
|
||||
In file included from linux-m68k-low.c:27:0:
|
||||
[...]usr/include/sys/reg.h:99:1: error: expected declaration before « } » token
|
||||
};
|
||||
^
|
||||
|
||||
Fix this by moving <sys/reg.h> on top of "linux-low.h".
|
||||
|
||||
[1] https://github.com/strace/strace/commit/6ebf6c4f9e5ebca123a5b5f24afe67cf0473cf92
|
||||
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
---
|
||||
gdb/gdbserver/linux-m68k-low.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gdb/gdbserver/linux-m68k-low.c b/gdb/gdbserver/linux-m68k-low.c
|
||||
index 16f639d02fc..969d9973737 100644
|
||||
--- a/gdb/gdbserver/linux-m68k-low.c
|
||||
+++ b/gdb/gdbserver/linux-m68k-low.c
|
||||
@@ -17,16 +17,17 @@
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
#include "server.h"
|
||||
+
|
||||
+#ifdef HAVE_SYS_REG_H
|
||||
+#include <sys/reg.h>
|
||||
+#endif
|
||||
+
|
||||
#include "linux-low.h"
|
||||
|
||||
/* Defined in auto-generated file reg-m68k.c. */
|
||||
void init_registers_m68k (void);
|
||||
extern const struct target_desc *tdesc_m68k;
|
||||
|
||||
-#ifdef HAVE_SYS_REG_H
|
||||
-#include <sys/reg.h>
|
||||
-#endif
|
||||
-
|
||||
#define m68k_num_regs 29
|
||||
#define m68k_num_gregs 18
|
||||
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,53 +0,0 @@
|
||||
From d84ecfa3a8c8fbade89229ac66c09f2a97ab00fb Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
Date: Sun, 24 Jun 2018 23:33:55 +0200
|
||||
Subject: [PATCH] nat/fork-inferior: include linux-ptrace.h
|
||||
|
||||
To decide whether fork() or vfork() should be used, fork-inferior.c
|
||||
uses the following test:
|
||||
|
||||
#if !(defined(__UCLIBC__) && defined(HAS_NOMMU))
|
||||
|
||||
However, HAS_NOMMU is never defined, because it gets defined in
|
||||
linux-ptrace.h, which is not included by fork-inferior.c. Due to this,
|
||||
gdbserver fails to build on noMMU architectures. This commit fixes
|
||||
that by simply including linux-ptrace.h.
|
||||
|
||||
This bug was introduced by commit
|
||||
2090129c36c7e582943b7d300968d19b46160d84 ("Share fork_inferior et al
|
||||
with gdbserver"). Indeed, the same fork()/vfork() selection was done,
|
||||
but in another file where linux-ptrace.h was included.
|
||||
|
||||
Fixes the following build issue:
|
||||
|
||||
../nat/fork-inferior.c: In function 'pid_t fork_inferior(const char*, const string&, char**, void (*)(), void (*)(int), void (*)(), const char*, void (*)(const char*, char* const*, char* const*))':
|
||||
../nat/fork-inferior.c:376:11: error: 'fork' was not declared in this scope
|
||||
pid = fork ();
|
||||
^~~~
|
||||
../nat/fork-inferior.c:376:11: note: suggested alternative: 'vfork'
|
||||
pid = fork ();
|
||||
^~~~
|
||||
vfork
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
||||
[Romain: rebase on gdb 8.3]
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
---
|
||||
gdb/nat/fork-inferior.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c
|
||||
index fe9360a5039..626fe7c1fbf 100644
|
||||
--- a/gdb/nat/fork-inferior.c
|
||||
+++ b/gdb/nat/fork-inferior.c
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "gdbsupport/pathstuff.h"
|
||||
#include "gdbsupport/signals-state-save-restore.h"
|
||||
#include "gdbsupport/gdb_tilde_expand.h"
|
||||
+#include "linux-ptrace.h"
|
||||
#include <vector>
|
||||
|
||||
extern char **environ;
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,101 +0,0 @@
|
||||
From ad8464f799a4c96c7ab8bdfec3f95846cf54f9b0 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||
Date: Wed, 1 Jul 2020 19:29:55 +0200
|
||||
Subject: [PATCH] sim/ppc: Fix linker error with -fno-common
|
||||
|
||||
GCC 10 enables -fno-common by default. This resulted in a multiple
|
||||
definition linker error since global variables were declared and defined
|
||||
in a header file:
|
||||
|
||||
ld: ld-insn.o:sim/ppc/ld-insn.h:221: multiple definition of
|
||||
`max_model_fields_len'; igen.o:sim/ppc/ld-insn.h:221: first defined here
|
||||
|
||||
sim/ppc
|
||||
|
||||
* ld-insn.h (last_model, last_model_data, last_model_function,
|
||||
last_model_internal, last_model_macro, last_model_static):
|
||||
Delete.
|
||||
(max_model_fields_len, model_data, model_functions,
|
||||
model_internal, model_macros, model_static, models): Declare, but do not
|
||||
define.
|
||||
* ld-insn.c (last_model, last_model_data, last_model_function,
|
||||
last_model_internal, last_model_macro, last_model_static,
|
||||
max_model_fields_len, model_data, model_functions,
|
||||
model_internal, model_macros, model_static, models): Define.
|
||||
|
||||
Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
|
||||
Fetch from: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=ad8464f799a4c96c7ab8bdfec3f95846cf54f9b0
|
||||
---
|
||||
sim/ppc/ld-insn.c | 18 ++++++++++++++++++
|
||||
sim/ppc/ld-insn.h | 24 +++++++-----------------
|
||||
2 files changed, 25 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/sim/ppc/ld-insn.c b/sim/ppc/ld-insn.c
|
||||
index e39131ca133..585071a861f 100644
|
||||
--- a/sim/ppc/ld-insn.c
|
||||
+++ b/sim/ppc/ld-insn.c
|
||||
@@ -28,6 +28,24 @@
|
||||
|
||||
#include "igen.h"
|
||||
|
||||
+static model *last_model;
|
||||
+
|
||||
+static insn *last_model_macro;
|
||||
+static insn *last_model_function;
|
||||
+static insn *last_model_internal;
|
||||
+static insn *last_model_static;
|
||||
+static insn *last_model_data;
|
||||
+
|
||||
+model *models;
|
||||
+
|
||||
+insn *model_macros;
|
||||
+insn *model_functions;
|
||||
+insn *model_internal;
|
||||
+insn *model_static;
|
||||
+insn *model_data;
|
||||
+
|
||||
+int max_model_fields_len;
|
||||
+
|
||||
static void
|
||||
update_depth(insn_table *entry,
|
||||
lf *file,
|
||||
diff --git a/sim/ppc/ld-insn.h b/sim/ppc/ld-insn.h
|
||||
index 88318ffa2b3..52baeaa2d84 100644
|
||||
--- a/sim/ppc/ld-insn.h
|
||||
+++ b/sim/ppc/ld-insn.h
|
||||
@@ -200,25 +200,15 @@ extern insn_table *load_insn_table
|
||||
table_include *includes,
|
||||
cache_table **cache_rules);
|
||||
|
||||
-model *models;
|
||||
-model *last_model;
|
||||
+extern model *models;
|
||||
|
||||
-insn *model_macros;
|
||||
-insn *last_model_macro;
|
||||
+extern insn *model_macros;
|
||||
+extern insn *model_functions;
|
||||
+extern insn *model_internal;
|
||||
+extern insn *model_static;
|
||||
+extern insn *model_data;
|
||||
|
||||
-insn *model_functions;
|
||||
-insn *last_model_function;
|
||||
-
|
||||
-insn *model_internal;
|
||||
-insn *last_model_internal;
|
||||
-
|
||||
-insn *model_static;
|
||||
-insn *last_model_static;
|
||||
-
|
||||
-insn *model_data;
|
||||
-insn *last_model_data;
|
||||
-
|
||||
-int max_model_fields_len;
|
||||
+extern int max_model_fields_len;
|
||||
|
||||
extern void insn_table_insert_insn
|
||||
(insn_table *table,
|
||||
--
|
||||
2.18.4
|
||||
|
@ -1,227 +0,0 @@
|
||||
From c47bae859a5af0d95224d90000df0e529f7c5aa0 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Buettner <kevinb@redhat.com>
|
||||
Date: Wed, 27 May 2020 20:05:40 -0700
|
||||
Subject: [PATCH] Fix Python3.9 related runtime problems
|
||||
|
||||
Python3.9b1 is now available on Rawhide. GDB w/ Python 3.9 support
|
||||
can be built using the configure switch -with-python=/usr/bin/python3.9.
|
||||
|
||||
Attempting to run gdb/Python3.9 segfaults on startup:
|
||||
|
||||
#0 0x00007ffff7b0582c in PyEval_ReleaseLock () from /lib64/libpython3.9.so.1.0
|
||||
#1 0x000000000069ccbf in do_start_initialization ()
|
||||
at worktree-test1/gdb/python/python.c:1789
|
||||
#2 _initialize_python ()
|
||||
at worktree-test1/gdb/python/python.c:1877
|
||||
#3 0x00000000007afb0a in initialize_all_files () at init.c:237
|
||||
...
|
||||
|
||||
Consulting the the documentation...
|
||||
|
||||
https://docs.python.org/3/c-api/init.html
|
||||
|
||||
...we find that PyEval_ReleaseLock() has been deprecated since version
|
||||
3.2. It recommends using PyEval_SaveThread or PyEval_ReleaseThread()
|
||||
instead. In do_start_initialization, in gdb/python/python.c, we
|
||||
can replace the calls to PyThreadState_Swap() and PyEval_ReleaseLock()
|
||||
with a single call to PyEval_SaveThread. (Thanks to Keith Seitz
|
||||
for working this out.)
|
||||
|
||||
With that in place, GDB gets a little bit further. It still dies
|
||||
on startup, but the backtrace is different:
|
||||
|
||||
#0 0x00007ffff7b04306 in PyOS_InterruptOccurred ()
|
||||
from /lib64/libpython3.9.so.1.0
|
||||
#1 0x0000000000576e86 in check_quit_flag ()
|
||||
at worktree-test1/gdb/extension.c:776
|
||||
#2 0x0000000000576f8a in set_active_ext_lang (now_active=now_active@entry=0x983c00 <extension_language_python>)
|
||||
at worktree-test1/gdb/extension.c:705
|
||||
#3 0x000000000069d399 in gdbpy_enter::gdbpy_enter (this=0x7fffffffd2d0,
|
||||
gdbarch=0x0, language=0x0)
|
||||
at worktree-test1/gdb/python/python.c:211
|
||||
#4 0x0000000000686e00 in python_new_inferior (inf=0xddeb10)
|
||||
at worktree-test1/gdb/python/py-inferior.c:251
|
||||
#5 0x00000000005d9fb9 in std::function<void (inferior*)>::operator()(inferior*) const (__args#0=<optimized out>, this=0xccad20)
|
||||
at /usr/include/c++/10/bits/std_function.h:617
|
||||
#6 gdb::observers::observable<inferior*>::notify (args#0=0xddeb10,
|
||||
this=<optimized out>)
|
||||
at worktree-test1/gdb/../gdbsupport/observable.h:106
|
||||
#7 add_inferior_silent (pid=0)
|
||||
at worktree-test1/gdb/inferior.c:113
|
||||
#8 0x00000000005dbcb8 in initialize_inferiors ()
|
||||
at worktree-test1/gdb/inferior.c:947
|
||||
...
|
||||
|
||||
We checked with some Python Developers and were told that we should
|
||||
acquire the GIL prior to calling any Python C API function. We
|
||||
definitely don't have the GIL for calls of PyOS_InterruptOccurred().
|
||||
|
||||
I moved class_gdbpy_gil earlier in the file and use it in
|
||||
gdbpy_check_quit_flag() to acquire (and automatically release) the
|
||||
GIL.
|
||||
|
||||
With those changes in place, I was able to run to a GDB prompt. But,
|
||||
when trying to quit, it segfaulted again due to due to some other
|
||||
problems with gdbpy_check_quit_flag():
|
||||
|
||||
Thread 1 "gdb" received signal SIGSEGV, Segmentation fault.
|
||||
0x00007ffff7bbab0c in new_threadstate () from /lib64/libpython3.9.so.1.0
|
||||
(top-gdb) bt 8
|
||||
#0 0x00007ffff7bbab0c in new_threadstate () from /lib64/libpython3.9.so.1.0
|
||||
#1 0x00007ffff7afa5ea in PyGILState_Ensure.cold ()
|
||||
from /lib64/libpython3.9.so.1.0
|
||||
#2 0x000000000069b58c in gdbpy_gil::gdbpy_gil (this=<synthetic pointer>)
|
||||
at worktree-test1/gdb/python/python.c:278
|
||||
#3 gdbpy_check_quit_flag (extlang=<optimized out>)
|
||||
at worktree-test1/gdb/python/python.c:278
|
||||
#4 0x0000000000576e96 in check_quit_flag ()
|
||||
at worktree-test1/gdb/extension.c:776
|
||||
#5 0x000000000057700c in restore_active_ext_lang (previous=0xe9c050)
|
||||
at worktree-test1/gdb/extension.c:729
|
||||
#6 0x000000000088913a in do_my_cleanups (
|
||||
pmy_chain=0xc31870 <final_cleanup_chain>,
|
||||
old_chain=0xae5720 <sentinel_cleanup>)
|
||||
at worktree-test1/gdbsupport/cleanups.cc:131
|
||||
#7 do_final_cleanups ()
|
||||
at worktree-test1/gdbsupport/cleanups.cc:143
|
||||
|
||||
In this case, we're trying to call a Python C API function after
|
||||
Py_Finalize() has been called from finalize_python(). I made
|
||||
finalize_python set gdb_python_initialized to false and then cause
|
||||
check_quit_flag() to return early when it's false.
|
||||
|
||||
With these changes in place, GDB seems to be working again with
|
||||
Python3.9b1. I think it likely that there are other problems lurking.
|
||||
I wouldn't be surprised to find that there are other calls into Python
|
||||
where we don't first make sure that we have the GIL. Further changes
|
||||
may well be needed.
|
||||
|
||||
I see no regressions testing on Rawhide using a GDB built with the
|
||||
default Python version (3.8.3) versus one built using Python 3.9b1.
|
||||
|
||||
I've also tested on Fedora 28, 29, 30, 31, and 32 (all x86_64) using
|
||||
the default (though updated) system installed versions of Python on
|
||||
those OSes. This means that I've tested against Python versions
|
||||
2.7.15, 2.7.17, 2.7.18, 3.7.7, 3.8.2, and 3.8.3. In each case GDB
|
||||
still builds without problem and shows no regressions after applying
|
||||
this patch.
|
||||
|
||||
gdb/ChangeLog:
|
||||
|
||||
2020-MM-DD Kevin Buettner <kevinb@redhat.com>
|
||||
Keith Seitz <keiths@redhat.com>
|
||||
|
||||
* python/python.c (do_start_initialization): For Python 3.9 and
|
||||
later, call PyEval_SaveThread instead of PyEval_ReleaseLock.
|
||||
(class gdbpy_gil): Move to earlier in file.
|
||||
(finalize_python): Set gdb_python_initialized.
|
||||
(gdbpy_check_quit_flag): Acquire GIL via gdbpy_gil. Return early
|
||||
when not initialized.
|
||||
|
||||
|
||||
[import into Buildroot, removing ChangeLog change to avoid conflict]
|
||||
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
|
||||
|
||||
---
|
||||
gdb/ChangeLog | 10 ++++++++
|
||||
gdb/python/python.c | 56 ++++++++++++++++++++++++---------------------
|
||||
2 files changed, 40 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/gdb/python/python.c b/gdb/python/python.c
|
||||
index 67f362b852d..4bdd2201abc 100644
|
||||
--- a/gdb/python/python.c
|
||||
+++ b/gdb/python/python.c
|
||||
@@ -238,6 +238,30 @@ gdbpy_enter::~gdbpy_enter ()
|
||||
PyGILState_Release (m_state);
|
||||
}
|
||||
|
||||
+/* A helper class to save and restore the GIL, but without touching
|
||||
+ the other globals that are handled by gdbpy_enter. */
|
||||
+
|
||||
+class gdbpy_gil
|
||||
+{
|
||||
+public:
|
||||
+
|
||||
+ gdbpy_gil ()
|
||||
+ : m_state (PyGILState_Ensure ())
|
||||
+ {
|
||||
+ }
|
||||
+
|
||||
+ ~gdbpy_gil ()
|
||||
+ {
|
||||
+ PyGILState_Release (m_state);
|
||||
+ }
|
||||
+
|
||||
+ DISABLE_COPY_AND_ASSIGN (gdbpy_gil);
|
||||
+
|
||||
+private:
|
||||
+
|
||||
+ PyGILState_STATE m_state;
|
||||
+};
|
||||
+
|
||||
/* Set the quit flag. */
|
||||
|
||||
static void
|
||||
@@ -251,6 +275,10 @@ gdbpy_set_quit_flag (const struct extension_language_defn *extlang)
|
||||
static int
|
||||
gdbpy_check_quit_flag (const struct extension_language_defn *extlang)
|
||||
{
|
||||
+ if (!gdb_python_initialized)
|
||||
+ return 0;
|
||||
+
|
||||
+ gdbpy_gil gil;
|
||||
return PyOS_InterruptOccurred ();
|
||||
}
|
||||
|
||||
@@ -943,30 +971,6 @@ gdbpy_source_script (const struct extension_language_defn *extlang,
|
||||
|
||||
/* Posting and handling events. */
|
||||
|
||||
-/* A helper class to save and restore the GIL, but without touching
|
||||
- the other globals that are handled by gdbpy_enter. */
|
||||
-
|
||||
-class gdbpy_gil
|
||||
-{
|
||||
-public:
|
||||
-
|
||||
- gdbpy_gil ()
|
||||
- : m_state (PyGILState_Ensure ())
|
||||
- {
|
||||
- }
|
||||
-
|
||||
- ~gdbpy_gil ()
|
||||
- {
|
||||
- PyGILState_Release (m_state);
|
||||
- }
|
||||
-
|
||||
- DISABLE_COPY_AND_ASSIGN (gdbpy_gil);
|
||||
-
|
||||
-private:
|
||||
-
|
||||
- PyGILState_STATE m_state;
|
||||
-};
|
||||
-
|
||||
/* A single event. */
|
||||
struct gdbpy_event
|
||||
{
|
||||
@@ -1616,6 +1620,7 @@ finalize_python (void *ignore)
|
||||
|
||||
Py_Finalize ();
|
||||
|
||||
+ gdb_python_initialized = false;
|
||||
restore_active_ext_lang (previous_active);
|
||||
}
|
||||
|
||||
@@ -1785,8 +1790,7 @@ do_start_initialization ()
|
||||
return false;
|
||||
|
||||
/* Release the GIL while gdb runs. */
|
||||
- PyThreadState_Swap (NULL);
|
||||
- PyEval_ReleaseLock ();
|
||||
+ PyEval_SaveThread ();
|
||||
|
||||
make_final_cleanup (finalize_python, NULL);
|
||||
|
||||
--
|
||||
2.26.3
|
||||
|
@ -1,41 +0,0 @@
|
||||
From 808601f075fe3dd8ca101e31c9121a4e87f0bfc7 Mon Sep 17 00:00:00 2001
|
||||
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
Date: Thu, 6 May 2021 07:45:00 +0200
|
||||
Subject: [PATCH] gdb/configure.tgt: build gdbserver with m68k and
|
||||
uclibc
|
||||
|
||||
Allow to build gdbserver with m68k and uclibc:
|
||||
|
||||
checking whether gdbserver is supported on this host... no
|
||||
configure: error: Automatic gdbserver build is not supported for this configuration
|
||||
|
||||
Fixes:
|
||||
- http://autobuild.buildroot.org/results/f4d6d9d8418c0da48a3db4ad5a82e19bd16eae34
|
||||
|
||||
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||
---
|
||||
gdb/configure.tgt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
|
||||
index caa42be1c01..8666bc5d0bf 100644
|
||||
--- a/gdb/configure.tgt
|
||||
+++ b/gdb/configure.tgt
|
||||
@@ -372,12 +372,12 @@ m68hc11*-*-*|m6811*-*-*)
|
||||
gdb_sim=../sim/m68hc11/libsim.a
|
||||
;;
|
||||
|
||||
-m68*-*-aout* | m68*-*-coff* | m68*-*-elf* | m68*-*-rtems* | m68*-*-uclinux* | \
|
||||
+m68*-*-aout* | m68*-*-coff* | m68*-*-elf* | m68*-*-rtems* | \
|
||||
fido-*-elf*)
|
||||
# Target: Motorola m68k embedded
|
||||
gdb_target_obs="m68k-tdep.o"
|
||||
;;
|
||||
-m68*-*-linux*)
|
||||
+m68*-*-*linux*)
|
||||
# Target: Motorola m68k with a.out and ELF
|
||||
gdb_target_obs="m68k-tdep.o m68k-linux-tdep.o solib-svr4.o \
|
||||
linux-tdep.o glibc-tdep.o symfile-mem.o"
|
||||
--
|
||||
2.30.2
|
||||
|
@ -46,11 +46,6 @@ choice
|
||||
help
|
||||
Select the version of gdb you wish to use.
|
||||
|
||||
config BR2_GDB_VERSION_9_2
|
||||
bool "gdb 9.2.x"
|
||||
# gdbserver support missing
|
||||
depends on !BR2_riscv
|
||||
|
||||
config BR2_GDB_VERSION_10
|
||||
bool "gdb 10.x"
|
||||
|
||||
@ -68,7 +63,6 @@ endif
|
||||
config BR2_GDB_VERSION
|
||||
string
|
||||
default "arc-2020.09-release-gdb" if BR2_arc
|
||||
default "9.2" if BR2_GDB_VERSION_9_2
|
||||
default "10.2" if BR2_GDB_VERSION_10 || !BR2_PACKAGE_HOST_GDB
|
||||
default "11.2" if BR2_GDB_VERSION_11
|
||||
default "12.1" if BR2_GDB_VERSION_12
|
||||
|
@ -1,5 +1,4 @@
|
||||
# From ftp://gcc.gnu.org/pub/gdb/releases/sha512.sum
|
||||
sha512 73635f00f343117aa5e2436f1e1597099e2bfb31ef7bb162b273fa1ea282c3fa9b0f52762e70bfc7ad0334addb8d159e9ac7cbe5998ca4f755ea8cf90714d274 gdb-9.2.tar.xz
|
||||
sha512 3653762ac008e065c37cd641653184c9ff7ce51ee2222ade1122bec9d6cc64dffd4fb74888ef11ac1942064a08910e96b7865112ad37f4602eb0a16bed074caa gdb-10.2.tar.xz
|
||||
sha512 07e9026423438049b11f4f784d57401ece4e940570f613bd6958b3714fe7fbc2c048470bcce3e7d7d9f93331cdf3881d30dcc964cb113a071143a02b28e5b127 gdb-11.2.tar.xz
|
||||
sha512 425568d2e84672177d0fb87b1ad7daafdde097648d605e30cf0656970f66adc6a82ca2d83375ea4be583e9683a340e5bfdf5819668ddf66728200141ae50ff2d gdb-12.1.tar.xz
|
||||
|
Loading…
Reference in New Issue
Block a user