mirror of
https://git.yoctoproject.org/poky
synced 2026-05-01 06:32:11 +02:00
gdb: Upgrade to 9.1 release
Drop security patches which are now in 9.1 already Forward port rest of patches to 9.1 Detailed changes [1] [1] https://lists.gnu.org/archive/html/info-gnu/2020-02/msg00008.html (From OE-Core rev: 4c1c01e023b123c86a418fdeddb69be097deef86) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -19,7 +19,7 @@ PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
|
||||
GCCVERSION ?= "9.%"
|
||||
SDKGCCVERSION ?= "${GCCVERSION}"
|
||||
BINUVERSION ?= "2.33%"
|
||||
GDBVERSION ?= "8.3%"
|
||||
GDBVERSION ?= "9.%"
|
||||
GLIBCVERSION ?= "2.31"
|
||||
LINUXLIBCVERSION ?= "5.4%"
|
||||
QEMUVERSION ?= "4.2%"
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
|
||||
file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
|
||||
file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
|
||||
file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
|
||||
|
||||
SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
|
||||
file://0001-gdbserver-ctrl-c-handling.patch \
|
||||
file://0002-make-man-install-relative-to-DESTDIR.patch \
|
||||
file://0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
|
||||
file://0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
|
||||
file://0005-Add-support-for-Renesas-SH-sh4-architecture.patch \
|
||||
file://0006-Dont-disable-libreadline.a-when-using-disable-static.patch \
|
||||
file://0007-use-asm-sgidefs.h.patch \
|
||||
file://0008-Use-exorted-definitions-of-SIGRTMIN.patch \
|
||||
file://0009-Change-order-of-CFLAGS.patch \
|
||||
file://0010-resolve-restrict-keyword-conflict.patch \
|
||||
file://0011-Fix-invalid-sigprocmask-call.patch \
|
||||
file://CVE-2019-1010180.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "73b6a5d8141672c62bf851cd34c4aa83"
|
||||
SRC_URI[sha256sum] = "1e55b4d7cdca7b34be12f4ceae651623aa73b2fd640152313f9f66a7149757c4"
|
||||
21
meta/recipes-devtools/gdb/gdb-9.1.inc
Normal file
21
meta/recipes-devtools/gdb/gdb-9.1.inc
Normal file
@@ -0,0 +1,21 @@
|
||||
LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
|
||||
file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
|
||||
file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
|
||||
file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674"
|
||||
|
||||
SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \
|
||||
file://0001-make-man-install-relative-to-DESTDIR.patch \
|
||||
file://0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
|
||||
file://0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
|
||||
file://0004-Add-support-for-Renesas-SH-sh4-architecture.patch \
|
||||
file://0005-Dont-disable-libreadline.a-when-using-disable-static.patch \
|
||||
file://0006-use-asm-sgidefs.h.patch \
|
||||
file://0007-Use-exorted-definitions-of-SIGRTMIN.patch \
|
||||
file://0008-Change-order-of-CFLAGS.patch \
|
||||
file://0009-resolve-restrict-keyword-conflict.patch \
|
||||
file://0010-Fix-invalid-sigprocmask-call.patch \
|
||||
file://0011-gdbserver-ctrl-c-handling.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "f7e9f6236c425097d9e5f18a6ac40655"
|
||||
SRC_URI[sha256sum] = "699e0ec832fdd2f21c8266171ea5bf44024bd05164fdf064e4d10cc4cf0d1737"
|
||||
@@ -1,26 +0,0 @@
|
||||
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 <zhixiong.chi@windriver.com>
|
||||
|
||||
Index: gdb-8.2/gdb/gdbserver/linux-low.c
|
||||
===================================================================
|
||||
--- gdb-8.2.orig/gdb/gdbserver/linux-low.c
|
||||
+++ gdb-8.2/gdb/gdbserver/linux-low.c
|
||||
@@ -5940,9 +5940,7 @@ linux_look_up_symbols (void)
|
||||
static void
|
||||
linux_request_interrupt (void)
|
||||
{
|
||||
- /* 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);
|
||||
}
|
||||
|
||||
/* Copy LEN bytes from inferior's auxiliary vector starting at OFFSET
|
||||
@@ -1,7 +1,7 @@
|
||||
From b0209f282716bed2c230c7b496fbcc7af503d0cc Mon Sep 17 00:00:00 2001
|
||||
From 036f8e1d387f65e52cb021dbb1bd28e8b75cf017 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 2 Mar 2015 02:27:55 +0000
|
||||
Subject: [PATCH 02/11] make man install relative to DESTDIR
|
||||
Subject: [PATCH] make man install relative to DESTDIR
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
@@ -11,7 +11,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sim/common/Makefile.in b/sim/common/Makefile.in
|
||||
index 227e4cfbc2..8c3457e0bd 100644
|
||||
index c6de14122c..c4b1214946 100644
|
||||
--- a/sim/common/Makefile.in
|
||||
+++ b/sim/common/Makefile.in
|
||||
@@ -35,7 +35,7 @@ tooldir = $(libdir)/$(target_alias)
|
||||
@@ -23,6 +23,3 @@ index 227e4cfbc2..8c3457e0bd 100644
|
||||
infodir = @infodir@
|
||||
includedir = @includedir@
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From b14a57d90e1cdd8144cda4c8882bd1db44d26dab Mon Sep 17 00:00:00 2001
|
||||
From 6bff2862f9597f324a9385eb2f828e838e51a8a1 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 23 Mar 2016 06:30:09 +0000
|
||||
Subject: [PATCH 03/11] mips-linux-nat: Define _ABIO32 if not defined
|
||||
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
|
||||
@@ -16,7 +16,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
|
||||
index 32835c16b2..68a7587af2 100644
|
||||
index 104c972f24..7f575b3363 100644
|
||||
--- a/gdb/mips-linux-nat.c
|
||||
+++ b/gdb/mips-linux-nat.c
|
||||
@@ -41,6 +41,10 @@
|
||||
@@ -30,6 +30,3 @@ index 32835c16b2..68a7587af2 100644
|
||||
|
||||
class mips_linux_nat_target final : public linux_nat_trad_target
|
||||
{
|
||||
--
|
||||
2.18.0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From da30370c1e3ff7728a857e119e0529a9f097086e Mon Sep 17 00:00:00 2001
|
||||
From d5817bcf2f7313699bfa85b41220d862db327664 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 30 Apr 2016 18:32:14 -0700
|
||||
Subject: [PATCH] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC systems
|
||||
@@ -6,14 +6,13 @@ 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>
|
||||
|
||||
---
|
||||
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 1b695e53..1978347c 100644
|
||||
index 5d8d67bec2..ffcf65ab58 100644
|
||||
--- a/gdb/gdbserver/linux-ppc-low.c
|
||||
+++ b/gdb/gdbserver/linux-ppc-low.c
|
||||
@@ -23,7 +23,13 @@
|
||||
@@ -31,7 +30,7 @@ index 1b695e53..1978347c 100644
|
||||
#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 f1561b3b..40399361 100644
|
||||
index d937a65b69..1fd54b4a0e 100644
|
||||
--- a/gdb/nat/ppc-linux.h
|
||||
+++ b/gdb/nat/ppc-linux.h
|
||||
@@ -18,7 +18,13 @@
|
||||
@@ -1,7 +1,7 @@
|
||||
From 215486b53a7a6dfca064cd2e9196a9de6ed6f0c2 Mon Sep 17 00:00:00 2001
|
||||
From 505f10a0ea1a8bba0584859d9a348bb779593ec2 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 2 Mar 2015 02:31:12 +0000
|
||||
Subject: [PATCH 05/11] Add support for Renesas SH (sh4) architecture.
|
||||
Subject: [PATCH] Add support for Renesas SH (sh4) architecture.
|
||||
|
||||
gdb (7.4-1~cvs20111117.2) experimental; urgency=low
|
||||
.
|
||||
@@ -27,10 +27,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
11 files changed, 617 insertions(+), 29 deletions(-)
|
||||
|
||||
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
|
||||
index c76a4e4394..921fdadb49 100644
|
||||
index c3e074b21f..42dd7af59c 100644
|
||||
--- a/gdb/Makefile.in
|
||||
+++ b/gdb/Makefile.in
|
||||
@@ -2326,6 +2326,8 @@ ALLDEPFILES = \
|
||||
@@ -2317,6 +2317,8 @@ ALLDEPFILES = \
|
||||
sh-nbsd-nat.c \
|
||||
sh-nbsd-tdep.c \
|
||||
sh-tdep.c \
|
||||
@@ -38,12 +38,12 @@ index c76a4e4394..921fdadb49 100644
|
||||
+ sh-linux-nat.c \
|
||||
sol2-tdep.c \
|
||||
solib-aix.c \
|
||||
solib-spu.c \
|
||||
solib-svr4.c \
|
||||
diff --git a/gdb/configure.host b/gdb/configure.host
|
||||
index 23a2f16399..39a886ec53 100644
|
||||
index ce52823729..5b5173a71a 100644
|
||||
--- a/gdb/configure.host
|
||||
+++ b/gdb/configure.host
|
||||
@@ -153,6 +153,7 @@ riscv*-*-linux*) gdb_host=linux ;;
|
||||
@@ -148,6 +148,7 @@ riscv*-*-linux*) gdb_host=linux ;;
|
||||
|
||||
s390*-*-linux*) gdb_host=linux ;;
|
||||
|
||||
@@ -52,7 +52,7 @@ index 23a2f16399..39a886ec53 100644
|
||||
gdb_host=nbsd ;;
|
||||
sh*-*-openbsd*) gdb_host=nbsd ;;
|
||||
diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c
|
||||
index db93967910..4109c549e8 100644
|
||||
index 13c10eeeda..1d0d583a64 100644
|
||||
--- a/gdb/sh-linux-tdep.c
|
||||
+++ b/gdb/sh-linux-tdep.c
|
||||
@@ -18,14 +18,37 @@
|
||||
@@ -93,7 +93,7 @@ index db93967910..4109c549e8 100644
|
||||
#include "glibc-tdep.h"
|
||||
#include "sh-tdep.h"
|
||||
#include "linux-tdep.h"
|
||||
@@ -180,9 +203,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
|
||||
@@ -181,9 +204,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
|
||||
sh_linux_rt_sigreturn_init
|
||||
};
|
||||
|
||||
@@ -600,7 +600,7 @@ index db93967910..4109c549e8 100644
|
||||
|
||||
/* GNU/Linux uses SVR4-style shared libraries. */
|
||||
diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
|
||||
index fe64cf979a..4417114cd0 100644
|
||||
index e3aee0ac28..5958cf3688 100644
|
||||
--- a/gdb/sh-tdep.c
|
||||
+++ b/gdb/sh-tdep.c
|
||||
@@ -21,6 +21,9 @@
|
||||
@@ -655,7 +655,7 @@ index fe64cf979a..4417114cd0 100644
|
||||
len = TYPE_LENGTH (type);
|
||||
val = sh_justify_value_in_reg (gdbarch, args[argnum], len);
|
||||
|
||||
@@ -1834,7 +1820,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
|
||||
@@ -1835,7 +1821,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
|
||||
reg->how = DWARF2_FRAME_REG_UNDEFINED;
|
||||
}
|
||||
|
||||
@@ -664,7 +664,7 @@ index fe64cf979a..4417114cd0 100644
|
||||
sh_alloc_frame_cache (void)
|
||||
{
|
||||
struct sh_frame_cache *cache;
|
||||
@@ -1861,7 +1847,7 @@ sh_alloc_frame_cache (void)
|
||||
@@ -1862,7 +1848,7 @@ sh_alloc_frame_cache (void)
|
||||
return cache;
|
||||
}
|
||||
|
||||
@@ -673,7 +673,7 @@ index fe64cf979a..4417114cd0 100644
|
||||
sh_frame_cache (struct frame_info *this_frame, void **this_cache)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_frame_arch (this_frame);
|
||||
@@ -1928,9 +1914,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
|
||||
@@ -1929,9 +1915,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
|
||||
return cache;
|
||||
}
|
||||
|
||||
@@ -686,7 +686,7 @@ index fe64cf979a..4417114cd0 100644
|
||||
{
|
||||
struct gdbarch *gdbarch = get_frame_arch (this_frame);
|
||||
struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache);
|
||||
@@ -1944,7 +1930,7 @@ sh_frame_prev_register (struct frame_info *this_frame,
|
||||
@@ -1945,7 +1931,7 @@ sh_frame_prev_register (struct frame_info *this_frame,
|
||||
the current frame. Frob regnum so that we pull the value from
|
||||
the correct place. */
|
||||
if (regnum == gdbarch_pc_regnum (gdbarch))
|
||||
@@ -695,7 +695,7 @@ index fe64cf979a..4417114cd0 100644
|
||||
|
||||
if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1)
|
||||
return frame_unwind_got_memory (this_frame, regnum,
|
||||
@@ -2255,8 +2241,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
|
||||
@@ -2234,8 +2220,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
|
||||
static struct gdbarch *
|
||||
sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
{
|
||||
@@ -705,7 +705,7 @@ index fe64cf979a..4417114cd0 100644
|
||||
|
||||
/* If there is already a candidate, use it. */
|
||||
arches = gdbarch_list_lookup_by_info (arches, &info);
|
||||
@@ -2268,6 +2254,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
@@ -2247,6 +2233,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
tdep = XCNEW (struct gdbarch_tdep);
|
||||
gdbarch = gdbarch_alloc (&info, tdep);
|
||||
|
||||
@@ -724,7 +724,7 @@ index fe64cf979a..4417114cd0 100644
|
||||
set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||
set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
|
||||
@@ -2422,10 +2420,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
@@ -2398,10 +2396,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -738,7 +738,7 @@ index fe64cf979a..4417114cd0 100644
|
||||
frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind);
|
||||
|
||||
diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
|
||||
index 59acd35b88..be3f998d84 100644
|
||||
index 76e2e76e39..2710f63010 100644
|
||||
--- a/gdb/sh-tdep.h
|
||||
+++ b/gdb/sh-tdep.h
|
||||
@@ -21,6 +21,12 @@
|
||||
@@ -821,7 +821,7 @@ index 59acd35b88..be3f998d84 100644
|
||||
where each general-purpose register is stored inside the associated
|
||||
core file section. */
|
||||
diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
|
||||
index 9879f0ca47..cbc0e4d5f7 100644
|
||||
index 4914498f98..6e25cbed18 100644
|
||||
--- a/gdb/testsuite/gdb.asm/asm-source.exp
|
||||
+++ b/gdb/testsuite/gdb.asm/asm-source.exp
|
||||
@@ -116,6 +116,11 @@ switch -glob -- [istarget] {
|
||||
@@ -909,6 +909,3 @@ index 756606880f..1205a9bc9c 100644
|
||||
|
||||
static int count = 0;
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 5fdd42acaa965be7c420a3f2ba12b77ea503c59b Mon Sep 17 00:00:00 2001
|
||||
From d132f21d89157e980574da7d0c949f6dd17df8c3 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 30 Apr 2016 15:25:03 -0700
|
||||
Subject: [PATCH 06/11] Dont disable libreadline.a when using --disable-static
|
||||
Subject: [PATCH] Dont disable libreadline.a when using --disable-static
|
||||
|
||||
If gdb is configured with --disable-static then this is dutifully passed to
|
||||
readline which then disables libreadline.a, which causes a problem when gdb
|
||||
@@ -19,7 +19,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Makefile.def b/Makefile.def
|
||||
index 75063b6d12..c27bbe4d28 100644
|
||||
index 311feb9de3..24c0685d48 100644
|
||||
--- a/Makefile.def
|
||||
+++ b/Makefile.def
|
||||
@@ -105,7 +105,8 @@ host_modules= { module= libiconv;
|
||||
@@ -33,10 +33,10 @@ index 75063b6d12..c27bbe4d28 100644
|
||||
host_modules= { module= sim; };
|
||||
host_modules= { module= texinfo; no_install= true; };
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 7814fe745f..3b0dc7cbb0 100644
|
||||
index 1aabf6ede4..d957efde81 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -25470,7 +25470,7 @@ configure-readline:
|
||||
@@ -25510,7 +25510,7 @@ configure-readline:
|
||||
$$s/$$module_srcdir/configure \
|
||||
--srcdir=$${topdir}/$$module_srcdir \
|
||||
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
|
||||
@@ -45,6 +45,3 @@ index 7814fe745f..3b0dc7cbb0 100644
|
||||
|| exit 1
|
||||
@endif readline
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From d6e12d52f9cef7f5e6315003ceaa236f6cc7723b Mon Sep 17 00:00:00 2001
|
||||
From 329e5bf29e934ba99622372a9660865864bb0298 Mon Sep 17 00:00:00 2001
|
||||
From: Andre McCurdy <amccurdy@gmail.com>
|
||||
Date: Sat, 30 Apr 2016 15:29:06 -0700
|
||||
Subject: [PATCH 07/11] use <asm/sgidefs.h>
|
||||
Subject: [PATCH] use <asm/sgidefs.h>
|
||||
|
||||
Build fix for MIPS with musl libc
|
||||
|
||||
@@ -19,7 +19,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
|
||||
index 68a7587af2..2b77221372 100644
|
||||
index 7f575b3363..dc93a64a93 100644
|
||||
--- a/gdb/mips-linux-nat.c
|
||||
+++ b/gdb/mips-linux-nat.c
|
||||
@@ -31,7 +31,7 @@
|
||||
@@ -31,6 +31,3 @@ index 68a7587af2..2b77221372 100644
|
||||
#include "nat/gdb_ptrace.h"
|
||||
#include <asm/ptrace.h>
|
||||
#include "inf-ptrace.h"
|
||||
--
|
||||
2.18.0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
From bab0b34672727c50313eb98b8522355cbe1bde36 Mon Sep 17 00:00:00 2001
|
||||
From 782bb2ab9b104dad4bbaed1d9ac769ce7e5b9f4d Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 30 Apr 2016 15:31:40 -0700
|
||||
Subject: [PATCH] Use exorted definitions of SIGRTMIN
|
||||
@@ -14,17 +14,16 @@ https://sourceware.org/bugzilla/show_bug.cgi?id=13012
|
||||
Upstream-Status: Submitted
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
---
|
||||
gdb/linux-nat.c | 4 ++--
|
||||
gdb/nat/linux-nat.h | 4 ++++
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
|
||||
index 063afe26..fb1d2d5d 100644
|
||||
index 4484fa5c87..3bb0ee7a49 100644
|
||||
--- a/gdb/linux-nat.c
|
||||
+++ b/gdb/linux-nat.c
|
||||
@@ -4713,6 +4713,6 @@ lin_thread_get_thread_signals (sigset_t *set)
|
||||
@@ -4588,6 +4588,6 @@ lin_thread_get_thread_signals (sigset_t *set)
|
||||
/* NPTL reserves the first two RT signals, but does not provide any
|
||||
way for the debugger to query the signal numbers - fortunately
|
||||
they don't change. */
|
||||
@@ -34,10 +33,10 @@ index 063afe26..fb1d2d5d 100644
|
||||
+ sigaddset (set, SIGRTMIN + 1);
|
||||
}
|
||||
diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h
|
||||
index 1e32dd9e..b886305d 100644
|
||||
index 44dcbb7758..975d7276f6 100644
|
||||
--- a/gdb/nat/linux-nat.h
|
||||
+++ b/gdb/nat/linux-nat.h
|
||||
@@ -90,4 +90,8 @@ extern void linux_stop_lwp (struct lwp_info *lwp);
|
||||
@@ -91,4 +91,8 @@ extern void linux_stop_lwp (struct lwp_info *lwp);
|
||||
|
||||
extern int lwp_is_stepping (struct lwp_info *lwp);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From ba6ffa461fe781d44d6dcbc0fbd569237b450fdc Mon Sep 17 00:00:00 2001
|
||||
From 40c9c174590ce6fdc873b453285249fe957f376d Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 30 Apr 2016 15:35:39 -0700
|
||||
Subject: [PATCH 09/11] Change order of CFLAGS
|
||||
Subject: [PATCH] Change order of CFLAGS
|
||||
|
||||
Lets us override Werror if need be
|
||||
|
||||
@@ -13,18 +13,15 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
|
||||
index f2f8a084bd..9528db1364 100644
|
||||
index 16a9f2fd38..b9c8cd9c41 100644
|
||||
--- a/gdb/gdbserver/Makefile.in
|
||||
+++ b/gdb/gdbserver/Makefile.in
|
||||
@@ -143,7 +143,7 @@ CPPFLAGS = @CPPFLAGS@
|
||||
@@ -146,7 +146,7 @@ PTHREAD_LIBS = @PTHREAD_LIBS@
|
||||
INTERNAL_CFLAGS_BASE = ${CXXFLAGS} ${GLOBAL_CFLAGS} \
|
||||
${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS}
|
||||
${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS} $(PTHREAD_CFLAGS)
|
||||
INTERNAL_WARN_CFLAGS = ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
|
||||
-INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER
|
||||
+INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) ${COMPILER_CFLAGS} -DGDBSERVER
|
||||
|
||||
# LDFLAGS is specifically reserved for setting from the command line
|
||||
# when running make.
|
||||
--
|
||||
2.18.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 19b581056c1709f7d2872cd76b977542a0fe6142 Mon Sep 17 00:00:00 2001
|
||||
From 5b69a98f6bb7363a1f79f29bac2b25b7df6d2fdd Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 10 May 2016 08:47:05 -0700
|
||||
Subject: [PATCH 10/11] resolve restrict keyword conflict
|
||||
Subject: [PATCH] resolve restrict keyword conflict
|
||||
|
||||
GCC detects that we call 'restrict' as param name in function
|
||||
signatures and complains since both params are called 'restrict'
|
||||
@@ -11,13 +11,13 @@ Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
gdb/gnulib/import/sys_time.in.h | 8 ++++----
|
||||
gnulib/import/sys_time.in.h | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gdb/gnulib/import/sys_time.in.h b/gdb/gnulib/import/sys_time.in.h
|
||||
index b4a0e49c50..d22cea9aaf 100644
|
||||
--- a/gdb/gnulib/import/sys_time.in.h
|
||||
+++ b/gdb/gnulib/import/sys_time.in.h
|
||||
diff --git a/gnulib/import/sys_time.in.h b/gnulib/import/sys_time.in.h
|
||||
index d535a6a48b..7c34d5a1aa 100644
|
||||
--- a/gnulib/import/sys_time.in.h
|
||||
+++ b/gnulib/import/sys_time.in.h
|
||||
@@ -93,20 +93,20 @@ struct timeval
|
||||
# define gettimeofday rpl_gettimeofday
|
||||
# endif
|
||||
@@ -43,6 +43,3 @@ index b4a0e49c50..d22cea9aaf 100644
|
||||
# endif
|
||||
_GL_CXXALIASWARN (gettimeofday);
|
||||
# if defined __cplusplus && defined GNULIB_NAMESPACE
|
||||
--
|
||||
2.18.0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From b1985595e46721bb168ac38f4c841a915cc2f799 Mon Sep 17 00:00:00 2001
|
||||
From bc1f01ff5e524f7777083024bce348a9b0017a7a Mon Sep 17 00:00:00 2001
|
||||
From: Yousong Zhou <yszhou4tech@gmail.com>
|
||||
Date: Fri, 24 Mar 2017 10:36:03 +0800
|
||||
Subject: [PATCH 11/11] Fix invalid sigprocmask call
|
||||
Subject: [PATCH] Fix invalid sigprocmask call
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@@ -28,22 +28,19 @@ Upstream-Status: Pending [not author, cherry-picked from LEDE https://bugs.lede-
|
||||
Signed-off-by: André Draszik <adraszik@tycoint.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
gdb/common/signals-state-save-restore.c | 2 +-
|
||||
gdb/gdbsupport/signals-state-save-restore.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gdb/common/signals-state-save-restore.c b/gdb/common/signals-state-save-restore.c
|
||||
index 5bb66321bb..6597decbc6 100644
|
||||
--- a/gdb/common/signals-state-save-restore.c
|
||||
+++ b/gdb/common/signals-state-save-restore.c
|
||||
@@ -41,7 +41,7 @@ save_original_signals_state (bool quiet)
|
||||
diff --git a/gdb/gdbsupport/signals-state-save-restore.c b/gdb/gdbsupport/signals-state-save-restore.c
|
||||
index c292d498da..af9dcaeb08 100644
|
||||
--- a/gdb/gdbsupport/signals-state-save-restore.c
|
||||
+++ b/gdb/gdbsupport/signals-state-save-restore.c
|
||||
@@ -38,7 +38,7 @@ save_original_signals_state (bool quiet)
|
||||
int i;
|
||||
int res;
|
||||
|
||||
- res = sigprocmask (0, NULL, &original_signal_mask);
|
||||
+ res = sigprocmask (SIG_BLOCK, NULL, &original_signal_mask);
|
||||
- res = gdb_sigmask (0, NULL, &original_signal_mask);
|
||||
+ res = gdb_sigmask (SIG_BLOCK, NULL, &original_signal_mask);
|
||||
if (res == -1)
|
||||
perror_with_name (("sigprocmask"));
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From 3d6700d38153a0ec8e0800de703a5089a8cd3d2d Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 29 Nov 2018 18:00:23 -0800
|
||||
Subject: [PATCH] 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 <zhixiong.chi@windriver.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
gdb/gdbserver/linux-low.c | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
|
||||
index 4255795ea6..762f8bafb6 100644
|
||||
--- a/gdb/gdbserver/linux-low.c
|
||||
+++ b/gdb/gdbserver/linux-low.c
|
||||
@@ -5904,9 +5904,7 @@ linux_look_up_symbols (void)
|
||||
static void
|
||||
linux_request_interrupt (void)
|
||||
{
|
||||
- /* 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);
|
||||
}
|
||||
|
||||
/* Copy LEN bytes from inferior's auxiliary vector starting at OFFSET
|
||||
@@ -1,132 +0,0 @@
|
||||
From 950b74950f6020eda38647f22e9077ac7f68ca49 Mon Sep 17 00:00:00 2001
|
||||
From: Keith Seitz <keiths@redhat.com>
|
||||
Date: Wed, 16 Oct 2019 11:33:59 -0700
|
||||
Subject: [PATCH] DWARF reader: Reject sections with invalid sizes
|
||||
|
||||
This is another fuzzer bug, gdb/23567. This time, the fuzzer has
|
||||
specifically altered the size of .debug_str:
|
||||
|
||||
$ eu-readelf -S objdump
|
||||
Section Headers:
|
||||
[Nr] Name Type Addr Off Size ES Flags Lk Inf Al
|
||||
[31] .debug_str PROGBITS 0000000000000000 0057116d ffffffffffffffff 1 MS 0 0 1
|
||||
|
||||
When this file is loaded into GDB, the DWARF reader crashes attempting
|
||||
to access the string table (or it may just store a bunch of nonsense):
|
||||
|
||||
[gdb-8.3-6-fc30]
|
||||
$ gdb -nx -q objdump
|
||||
BFD: warning: /path/to/objdump has a corrupt section with a size (ffffffffffffffff) larger than the file size
|
||||
Reading symbols from /path/to/objdump...
|
||||
Segmentation fault (core dumped)
|
||||
|
||||
Nick has already committed a BFD patch to issue the warning seen above.
|
||||
|
||||
[gdb master 6acc1a0b]
|
||||
$ gdb -BFD: warning: /path/to/objdump has a corrupt section with a size (ffffffffffffffff) larger than the file size
|
||||
Reading symbols from /path/to/objdump...
|
||||
(gdb) inf func
|
||||
All defined functions:
|
||||
|
||||
File ./../include/dwarf2.def:
|
||||
186: const
|
||||
|
||||
8 *>(.:
|
||||
;'@<40>B);
|
||||
747: const
|
||||
|
||||
8 *<2A>(.:
|
||||
;'@<40>B);
|
||||
701: const
|
||||
|
||||
8 *<2A>D <20>
|
||||
(.:
|
||||
;'@<40>B);
|
||||
71: const
|
||||
|
||||
8 *(.:
|
||||
;'@<40>B);
|
||||
/* and more gibberish */
|
||||
|
||||
Consider read_indirect_string_at_offset_from:
|
||||
|
||||
static const char *
|
||||
read_indirect_string_at_offset_from (struct objfile *objfile,
|
||||
bfd *abfd, LONGEST str_offset,
|
||||
struct dwarf2_section_info *sect,
|
||||
const char *form_name,
|
||||
const char *sect_name)
|
||||
{
|
||||
dwarf2_read_section (objfile, sect);
|
||||
if (sect->buffer == NULL)
|
||||
error (_("%s used without %s section [in module %s]"),
|
||||
form_name, sect_name, bfd_get_filename (abfd));
|
||||
if (str_offset >= sect->size)
|
||||
error (_("%s pointing outside of %s section [in module %s]"),
|
||||
form_name, sect_name, bfd_get_filename (abfd));
|
||||
gdb_assert (HOST_CHAR_BIT == 8);
|
||||
if (sect->buffer[str_offset] == '\0')
|
||||
return NULL;
|
||||
return (const char *) (sect->buffer + str_offset);
|
||||
}
|
||||
|
||||
With sect_size being ginormous, the code attempts to access
|
||||
sect->buffer[GINORMOUS], and depending on the layout of memory,
|
||||
GDB either stores a bunch of gibberish strings or crashes.
|
||||
|
||||
This is an attempt to mitigate this by implementing a similar approach
|
||||
used by BFD. In our case, we simply reject the section with the invalid
|
||||
length:
|
||||
|
||||
$ ./gdb -nx -q objdump
|
||||
BFD: warning: /path/to/objdump has a corrupt section with a size (ffffffffffffffff) larger than the file size
|
||||
Reading symbols from /path/to/objdump...
|
||||
|
||||
warning: Discarding section .debug_str which has a section size (ffffffffffffffff) larger than the file size [in module /path/to/objdump]
|
||||
DW_FORM_strp used without .debug_str section [in module /path/to/objdump]
|
||||
(No debugging symbols found in /path/to/objdump)
|
||||
(gdb)
|
||||
|
||||
Unfortunately, I have not found a way to regression test this, since it
|
||||
requires poking ELF section headers.
|
||||
|
||||
gdb/ChangeLog:
|
||||
2019-10-16 Keith Seitz <keiths@redhat.com>
|
||||
|
||||
PR gdb/23567
|
||||
* dwarf2read.c (dwarf2_per_objfile::locate_sections): Discard
|
||||
sections whose size is greater than the file size.
|
||||
|
||||
Change-Id: I896ac3b4eb2207c54e8e05c16beab3051d9b4b2f
|
||||
|
||||
CVE: CVE-2019-1010180
|
||||
Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=950b74950f6020eda38647f22e9077ac7f68ca49]
|
||||
[Removed Changelog entry]
|
||||
Signed-off-by: Vinay Kumar <vinay.m.engg@gmail.com>
|
||||
---
|
||||
gdb/dwarf2read.c | 9 +++++++++
|
||||
2 files changed, 15 insertions(+)
|
||||
|
||||
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
|
||||
index 0443b55..a78f818 100644
|
||||
--- a/gdb/dwarf2read.c
|
||||
+++ b/gdb/dwarf2read.c
|
||||
@@ -2338,6 +2338,15 @@ dwarf2_per_objfile::locate_sections (bfd *abfd, asection *sectp,
|
||||
if ((aflag & SEC_HAS_CONTENTS) == 0)
|
||||
{
|
||||
}
|
||||
+ else if (elf_section_data (sectp)->this_hdr.sh_size
|
||||
+ > bfd_get_file_size (abfd))
|
||||
+ {
|
||||
+ bfd_size_type size = elf_section_data (sectp)->this_hdr.sh_size;
|
||||
+ warning (_("Discarding section %s which has a section size (%s"
|
||||
+ ") larger than the file size [in module %s]"),
|
||||
+ bfd_section_name (abfd, sectp), phex_nz (size, sizeof (size)),
|
||||
+ bfd_get_filename (abfd));
|
||||
+ }
|
||||
else if (section_is_p (sectp->name, &names.info))
|
||||
{
|
||||
this->info.s.section = sectp;
|
||||
--
|
||||
2.7.4
|
||||
|
||||
Reference in New Issue
Block a user