From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Romain Naour <romain.naour@gmail.com>,
Buildroot List <buildroot@buildroot.org>
Subject: Re: [Buildroot] [PATCH 2/4] package/gdb: remove support for 9.2
Date: Sun, 14 Aug 2022 17:59:18 +0200 [thread overview]
Message-ID: <20220814155918.GM2775145@scaer> (raw)
In-Reply-To: <20220813083521.1382565-2-thomas.petazzoni@bootlin.com>
Thomas, All,
On 2022-08-13 10:35 +0200, Thomas Petazzoni via buildroot spake thusly:
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Applied to master, thanks.
Regards,
Yann E. MORIN.
> ---
> Config.in.legacy | 8 +
> ...e-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch | 55 -----
> ...-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch | 43 ----
> package/gdb/9.2/0003-use-asm-sgidefs.h.patch | 40 ---
> .../0004-gdbserver-fix-build-for-m68k.patch | 62 -----
> ...fork-inferior-include-linux-ptrace.h.patch | 53 ----
> ...ppc-Fix-linker-error-with-fno-common.patch | 101 --------
> ...x-Python3.9-related-runtime-problems.patch | 227 ------------------
> ...t-build-gdbserver-with-m68k-and-ucli.patch | 41 ----
> package/gdb/Config.in.host | 6 -
> package/gdb/gdb.hash | 1 -
> 11 files changed, 8 insertions(+), 629 deletions(-)
> delete mode 100644 package/gdb/9.2/0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
> delete mode 100644 package/gdb/9.2/0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch
> delete mode 100644 package/gdb/9.2/0003-use-asm-sgidefs.h.patch
> delete mode 100644 package/gdb/9.2/0004-gdbserver-fix-build-for-m68k.patch
> delete mode 100644 package/gdb/9.2/0005-nat-fork-inferior-include-linux-ptrace.h.patch
> delete mode 100644 package/gdb/9.2/0006-sim-ppc-Fix-linker-error-with-fno-common.patch
> delete mode 100644 package/gdb/9.2/0007-Fix-Python3.9-related-runtime-problems.patch
> delete mode 100644 package/gdb/9.2/0007-gdb-configure.tgt-build-gdbserver-with-m68k-and-ucli.patch
>
> diff --git a/Config.in.legacy b/Config.in.legacy
> index 80c443d9fb..3b6e875c0c 100644
> --- a/Config.in.legacy
> +++ b/Config.in.legacy
> @@ -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
> diff --git a/package/gdb/9.2/0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch b/package/gdb/9.2/0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
> deleted file mode 100644
> index ab8dc626f0..0000000000
> --- a/package/gdb/9.2/0001-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
> +++ /dev/null
> @@ -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
> -
> diff --git a/package/gdb/9.2/0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch b/package/gdb/9.2/0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch
> deleted file mode 100644
> index 9d508fbf1e..0000000000
> --- a/package/gdb/9.2/0002-sh-ptrace-Define-pt_-dsp-regs-uapi_pt_-dsp-regs-on-G.patch
> +++ /dev/null
> @@ -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
> -
> diff --git a/package/gdb/9.2/0003-use-asm-sgidefs.h.patch b/package/gdb/9.2/0003-use-asm-sgidefs.h.patch
> deleted file mode 100644
> index 2909f62c68..0000000000
> --- a/package/gdb/9.2/0003-use-asm-sgidefs.h.patch
> +++ /dev/null
> @@ -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
> -
> diff --git a/package/gdb/9.2/0004-gdbserver-fix-build-for-m68k.patch b/package/gdb/9.2/0004-gdbserver-fix-build-for-m68k.patch
> deleted file mode 100644
> index d718293899..0000000000
> --- a/package/gdb/9.2/0004-gdbserver-fix-build-for-m68k.patch
> +++ /dev/null
> @@ -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
> -
> diff --git a/package/gdb/9.2/0005-nat-fork-inferior-include-linux-ptrace.h.patch b/package/gdb/9.2/0005-nat-fork-inferior-include-linux-ptrace.h.patch
> deleted file mode 100644
> index 1df5452682..0000000000
> --- a/package/gdb/9.2/0005-nat-fork-inferior-include-linux-ptrace.h.patch
> +++ /dev/null
> @@ -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
> -
> diff --git a/package/gdb/9.2/0006-sim-ppc-Fix-linker-error-with-fno-common.patch b/package/gdb/9.2/0006-sim-ppc-Fix-linker-error-with-fno-common.patch
> deleted file mode 100644
> index 813a1054a5..0000000000
> --- a/package/gdb/9.2/0006-sim-ppc-Fix-linker-error-with-fno-common.patch
> +++ /dev/null
> @@ -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
> -
> diff --git a/package/gdb/9.2/0007-Fix-Python3.9-related-runtime-problems.patch b/package/gdb/9.2/0007-Fix-Python3.9-related-runtime-problems.patch
> deleted file mode 100644
> index 89b0cdc4a0..0000000000
> --- a/package/gdb/9.2/0007-Fix-Python3.9-related-runtime-problems.patch
> +++ /dev/null
> @@ -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
> -
> diff --git a/package/gdb/9.2/0007-gdb-configure.tgt-build-gdbserver-with-m68k-and-ucli.patch b/package/gdb/9.2/0007-gdb-configure.tgt-build-gdbserver-with-m68k-and-ucli.patch
> deleted file mode 100644
> index 5cdafae7a8..0000000000
> --- a/package/gdb/9.2/0007-gdb-configure.tgt-build-gdbserver-with-m68k-and-ucli.patch
> +++ /dev/null
> @@ -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
> -
> diff --git a/package/gdb/Config.in.host b/package/gdb/Config.in.host
> index 9ee0b3f913..9876c4e8bc 100644
> --- a/package/gdb/Config.in.host
> +++ b/package/gdb/Config.in.host
> @@ -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
> diff --git a/package/gdb/gdb.hash b/package/gdb/gdb.hash
> index 3a1027dbb5..04c7d02d2f 100644
> --- a/package/gdb/gdb.hash
> +++ b/package/gdb/gdb.hash
> @@ -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
> --
> 2.37.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2022-08-14 15:59 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-13 8:35 [Buildroot] [PATCH 1/4] package/gdb: add support for version 12.1 Thomas Petazzoni via buildroot
2022-08-13 8:35 ` [Buildroot] [PATCH 2/4] package/gdb: remove support for 9.2 Thomas Petazzoni via buildroot
2022-08-14 15:59 ` Yann E. MORIN [this message]
2022-08-13 8:35 ` [Buildroot] [PATCH 3/4] package/gdb: switch to GDB 11.x as the default version Thomas Petazzoni via buildroot
2022-08-14 15:58 ` Yann E. MORIN
2022-08-13 8:35 ` [Buildroot] [PATCH 4/4] package/gdb: remove BR2_PACKAGE_GDB_TOPLEVEL Thomas Petazzoni via buildroot
2022-08-14 16:08 ` Yann E. MORIN
2022-08-14 15:59 ` [Buildroot] [PATCH 1/4] package/gdb: add support for version 12.1 Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220814155918.GM2775145@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@buildroot.org \
--cc=romain.naour@gmail.com \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox