From beddcfdc30e734df52c588ef4862de45b1af7235 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sat, 28 Mar 2020 16:55:45 -0700 Subject: [PATCH] gdb: update to 10.2 Replace some OpenWrt patches with openembedded ones for easier maintainability. Remove several outdated ones as well. Replace PKG_RELEASE with AUTORELEASE to avoid manual bumps. Remove !arc dependency as it is supported upstream now. Signed-off-by: Rosen Penev --- package/devel/gdb/Makefile | 7 ++- .../gdb/patches/010-aarch64-headers.patch | 38 ------------- package/devel/gdb/patches/100-musl_fix.patch | 53 ------------------- .../devel/gdb/patches/130-gdb-ctrl-c.patch | 35 ++++++++++++ .../devel/gdb/patches/130-uclibc-fix.patch | 11 ---- package/devel/gdb/patches/140-sgidefs.patch | 30 +++++++++++ package/devel/gdb/patches/150-mips64.patch | 32 +++++++++++ 7 files changed, 100 insertions(+), 106 deletions(-) delete mode 100644 package/devel/gdb/patches/010-aarch64-headers.patch delete mode 100644 package/devel/gdb/patches/100-musl_fix.patch create mode 100644 package/devel/gdb/patches/130-gdb-ctrl-c.patch delete mode 100644 package/devel/gdb/patches/130-uclibc-fix.patch create mode 100644 package/devel/gdb/patches/140-sgidefs.patch create mode 100644 package/devel/gdb/patches/150-mips64.patch diff --git a/package/devel/gdb/Makefile b/package/devel/gdb/Makefile index 17b2bb8481..a357996991 100644 --- a/package/devel/gdb/Makefile +++ b/package/devel/gdb/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gdb -PKG_VERSION:=10.1 -PKG_RELEASE:=1 +PKG_VERSION:=10.2 +PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@GNU/gdb -PKG_HASH:=f82f1eceeec14a3afa2de8d9b0d3c91d5a3820e23e0a01bbb70ef9f0276b62c0 +PKG_HASH:=aaa1223d534c9b700a8bec952d9748ee1977513f178727e1bee520ee000b4f29 PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 @@ -45,7 +45,6 @@ endef define Package/gdbserver $(call Package/gdb/Default) TITLE:=Remote server for GNU Debugger - DEPENDS+=@!arc endef define Package/gdbserver/description diff --git a/package/devel/gdb/patches/010-aarch64-headers.patch b/package/devel/gdb/patches/010-aarch64-headers.patch deleted file mode 100644 index 8f05738298..0000000000 --- a/package/devel/gdb/patches/010-aarch64-headers.patch +++ /dev/null @@ -1,38 +0,0 @@ -The signal definitions of musl and gdb collide - -The kernel defines "struct sigcontext" in asm/sigcontext.h and musl libc -defines it in signal.h which collides. -Kernel 4.14 misses the definitions of struct user_sve_header so we still -have to use the aarch64-sve-linux-sigcontext.h header file which also -provides that and make sure aarch64-sve-linux-sigcontext.h does not -provide the same headers as the kernel or musl. - ---- a/gdb/nat/aarch64-sve-linux-ptrace.h -+++ b/gdb/nat/aarch64-sve-linux-ptrace.h -@@ -25,7 +25,7 @@ - #include - #include - --#ifndef SVE_SIG_ZREGS_SIZE -+#ifndef SVE_PT_REGS_SVE - #include "aarch64-sve-linux-sigcontext.h" - #endif - ---- a/gdb/nat/aarch64-sve-linux-sigcontext.h -+++ b/gdb/nat/aarch64-sve-linux-sigcontext.h -@@ -19,6 +19,7 @@ - #ifndef NAT_AARCH64_SVE_LINUX_SIGCONTEXT_H - #define NAT_AARCH64_SVE_LINUX_SIGCONTEXT_H - -+#ifndef SVE_MAGIC - #define SVE_MAGIC 0x53564501 - - struct sve_context { -@@ -128,6 +129,7 @@ struct sve_context { - (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET) - - #define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq)) -+#endif - - /* SVE/FP/SIMD state (NT_ARM_SVE) */ - diff --git a/package/devel/gdb/patches/100-musl_fix.patch b/package/devel/gdb/patches/100-musl_fix.patch deleted file mode 100644 index e0d871d291..0000000000 --- a/package/devel/gdb/patches/100-musl_fix.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- a/gdb/linux-nat.c -+++ b/gdb/linux-nat.c -@@ -17,6 +17,7 @@ - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -+#include "stopcode.h" - #include "defs.h" - #include "inferior.h" - #include "infrun.h" -@@ -70,6 +71,10 @@ - #include "gdbsupport/gdb-sigmask.h" - #include "debug.h" - -+#ifndef __SIGRTMIN -+#define __SIGRTMIN SIGRTMIN -+#endif -+ - /* This comment documents high-level logic of this file. - - Waiting for events in sync mode ---- /dev/null -+++ b/gdb/stopcode.h -@@ -0,0 +1,4 @@ -+#ifndef W_STOPCODE -+#define W_STOPCODE(sig) ((sig) << 8 | 0x7f) -+#endif -+ ---- a/gdb/nat/ppc-linux.h -+++ b/gdb/nat/ppc-linux.h -@@ -18,7 +18,10 @@ - #ifndef NAT_PPC_LINUX_H - #define NAT_PPC_LINUX_H - -+#define pt_regs __pt_regs - #include -+#undef pt_regs -+ - #include - - /* This sometimes isn't defined. */ ---- a/gdbserver/linux-ppc-low.cc -+++ b/gdbserver/linux-ppc-low.cc -@@ -23,7 +23,9 @@ - #include "elf/common.h" - #include - #include -+#define pt_regs __pt_regs - #include -+#undef pt_regs - - #include "arch/ppc-linux-common.h" - #include "arch/ppc-linux-tdesc.h" diff --git a/package/devel/gdb/patches/130-gdb-ctrl-c.patch b/package/devel/gdb/patches/130-gdb-ctrl-c.patch new file mode 100644 index 0000000000..88b5de9d8c --- /dev/null +++ b/package/devel/gdb/patches/130-gdb-ctrl-c.patch @@ -0,0 +1,35 @@ +From 63df98fa78c8a6e12b40ebdc5c155838d2bf8b5f Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 29 Nov 2018 18:00:23 -0800 +Subject: [PATCH 11/11] gdbserver ctrl-c handling + +This problem was created by the upstream commit 78708b7c8c +After applying the commit, it will send SIGINT to the process +group(-signal_pid). +But if we use gdbserver send SIGINT, and the attached process is not a +process +group leader, then the "kill (-signal_pid, SIGINT)" returns error and +fails to +interrupt the attached process. + +Upstream-Status: Submitted +[https://sourceware.org/bugzilla/show_bug.cgi?id=18945] + +Author: Josh Gao +Signed-off-by: Zhixiong Chi +Signed-off-by: Khem Raj +--- + gdbserver/linux-low.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/gdbserver/linux-low.cc ++++ b/gdbserver/linux-low.cc +@@ -5714,7 +5714,7 @@ linux_process_target::request_interrupt + { + /* Send a SIGINT to the process group. This acts just like the user + typed a ^C on the controlling terminal. */ +- ::kill (-signal_pid, SIGINT); ++ ::kill (signal_pid, SIGINT); + } + + bool diff --git a/package/devel/gdb/patches/130-uclibc-fix.patch b/package/devel/gdb/patches/130-uclibc-fix.patch deleted file mode 100644 index a4c339ebe0..0000000000 --- a/package/devel/gdb/patches/130-uclibc-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/gdb/dwarf2/index-write.c -+++ b/gdb/dwarf2/index-write.c -@@ -777,7 +777,7 @@ public: - gdb_assert (m_abbrev_table.empty ()); - const size_t name_count = m_name_to_value_set.size (); - m_bucket_table.resize -- (std::pow (2, std::ceil (std::log2 (name_count * 4 / 3)))); -+ (std::pow (2, std::ceil (log2 (name_count * 4 / 3)))); - m_hash_table.reserve (name_count); - m_name_table_string_offs.reserve (name_count); - m_name_table_entry_offs.reserve (name_count); diff --git a/package/devel/gdb/patches/140-sgidefs.patch b/package/devel/gdb/patches/140-sgidefs.patch new file mode 100644 index 0000000000..05b30f5242 --- /dev/null +++ b/package/devel/gdb/patches/140-sgidefs.patch @@ -0,0 +1,30 @@ +From 677b5b56135141c0d259e370aacd0e11c810aa15 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy +Date: Fri, 5 Feb 2016 14:00:00 -0800 +Subject: [PATCH] use + +Build fix for MIPS with musl libc + +The MIPS specific header is provided by glibc and uclibc +but not by musl. Regardless of the libc, the kernel headers provide + which provides the same definitions, so use that +instead. + +Upstream-Status: Pending + +Signed-off-by: Andre McCurdy +--- + gdb/mips-linux-nat.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- 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 ++#include + #include "nat/gdb_ptrace.h" + #include + #include "inf-ptrace.h" diff --git a/package/devel/gdb/patches/150-mips64.patch b/package/devel/gdb/patches/150-mips64.patch new file mode 100644 index 0000000000..65418fd290 --- /dev/null +++ b/package/devel/gdb/patches/150-mips64.patch @@ -0,0 +1,32 @@ +From e92f8932ef488de2a56db4299131ce6a4eb170bd Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 23 Mar 2016 06:30:09 +0000 +Subject: [PATCH] mips-linux-nat: Define _ABIO32 if not defined + +This helps building gdb on mips64 on musl, since +musl does not provide sgidefs.h this define is +only defined when GCC is using o32 ABI, in that +case gcc emits it as built-in define and hence +it works ok for mips32 + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + gdb/mips-linux-nat.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/gdb/mips-linux-nat.c ++++ b/gdb/mips-linux-nat.c +@@ -42,6 +42,11 @@ + #define PTRACE_GET_THREAD_AREA 25 + #endif + ++/* musl does not define and relies on compiler built-in macros for it */ ++#ifndef _ABIO32 ++#define _ABIO32 1 ++#endif ++ + class mips_linux_nat_target final : public linux_nat_trad_target + { + public: -- 2.30.2