From 089b4f16aa3bec4b2231ca53cd4a3a0f4f6929a2 Mon Sep 17 00:00:00 2001 From: Koen Vandeputte Date: Mon, 14 Oct 2019 17:37:28 +0200 Subject: [PATCH] gdb: bump to 8.3.1 GDB 8.3.1 brings the following fixes and enhancements over GDB 8.3: PR c++/20020 (GDB segfault on printing objects) PR gdb/24454 (nat/x86-linux-dregs.c failed assertion) PR breakpoints/24541 (Incorrect evaluation of systemtap probes due to register being signed and probe expression assuming unsigned) PR symtab/24545 (Symbol loading performance regression with cc1) PR gdb/24592 (amd64->i386 linux syscall restart problem) PR gdb/25009 (terminate called after throwing an instance of 'srchilite::ParserException') PR gdb/25010 (Calls to error () can cause SIGTTOU to send gdb to the background) PR breakpoints/25011 (Breakpoints on file reloads broken for PIE binaries) This corrective release also brings the following testsuite fixes and enhancements: PR testsuite/25005 (gdb-caching-proc.exp takes a lot of time on skip_opencl_tests) PR testsuite/25016 (Test-case failures for -pie) GDB 8.3 includes the following changes and enhancements: * Support for new native configurations (also available as a target configuration): - RISC-V GNU/Linux (riscv*-*-linux*) - RISC-V FreeBSD (riscv*-*-freebsd*) * Support for new target configurations: - CSKY ELF (csky*-*-elf) - CSKY GNU/Linux (csky*-*-linux) - NXP S12Z ELF (s12z-*-elf) - OpenRISC GNU/Linux (or1k*-*-linux*) * Native Windows debugging is only supported on Windows XP or later. * The Python API in GDB now requires Python 2.6 or later. * GDB now supports terminal styling for the CLI and TUI. Source highlighting is also supported by building GDB with GNU Highlight. * Experimental support for compilation and injection of C++ source code into the inferior (requires GCC 7.1 or higher, built with libcp1.so). * GDB and GDBserver now support IPv6 connections. * Target description support on RISC-V targets. * Various enhancements to several commands: - "frame", "select-frame" and "info frame" commands - "info functions", "info types", "info variables" - "info thread" - "info proc" - System call alias catchpoint support on FreeBSD - "target remote" support for Unix Domain sockets. * Support for displaying all files opened by a process * DWARF index cache: GDB can now automatically save indices of DWARF symbols on disk to speed up further loading of the same binaries. * Various GDB/MI enhancements. * GDBserver on PowerPC GNU/Linux now supports access to the PPR, DSCR, TAR, EBB/PMU, and HTM registers. * Ada task switching support when debugging programs built with the Ravenscar profile added to aarch64-elf. * GDB in batch mode now exits with status 1 if the last executed command failed. * Support for building GDB with GCC's Undefined Behavior Sanitizer. Signed-off-by: Koen Vandeputte --- package/devel/gdb/Makefile | 9 +++++---- .../001-gdb-pr14523-mips-signal-number.patch | 2 +- .../gdb/patches/010-aarch64-headers.patch | 12 +++-------- package/devel/gdb/patches/100-musl_fix.patch | 12 +++++------ .../devel/gdb/patches/110-shared_libgcc.patch | 20 +++++++++---------- .../devel/gdb/patches/130-uclibc-fix.patch | 2 +- 6 files changed, 26 insertions(+), 31 deletions(-) diff --git a/package/devel/gdb/Makefile b/package/devel/gdb/Makefile index a5b752326a..fd5ac7eb67 100644 --- a/package/devel/gdb/Makefile +++ b/package/devel/gdb/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gdb -PKG_VERSION:=8.2.1 -PKG_RELEASE:=2 +PKG_VERSION:=8.3.1 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@GNU/gdb -PKG_HASH:=0a6a432907a03c5c8eaad3c3cffd50c00a40c3a5e3c4039440624bae703f2202 +PKG_HASH:=1e55b4d7cdca7b34be12f4ceae651623aa73b2fd640152313f9f66a7149757c4 PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 @@ -57,7 +57,8 @@ CONFIGURE_ARGS+= \ --without-expat \ --without-lzma \ --disable-sim \ - --disable-werror + --disable-werror \ + --disable-source-highlight CONFIGURE_VARS+= \ ac_cv_search_tgetent="$(TARGET_LDFLAGS) -lncurses -lreadline" diff --git a/package/devel/gdb/patches/001-gdb-pr14523-mips-signal-number.patch b/package/devel/gdb/patches/001-gdb-pr14523-mips-signal-number.patch index 25ac86fd91..f78c7ed315 100644 --- a/package/devel/gdb/patches/001-gdb-pr14523-mips-signal-number.patch +++ b/package/devel/gdb/patches/001-gdb-pr14523-mips-signal-number.patch @@ -1,5 +1,5 @@ See http://sourceware.org/bugzilla/show_bug.cgi?id=14523 ---- + --- a/gdb/common/signals.c +++ b/gdb/common/signals.c @@ -348,6 +348,11 @@ gdb_signal_from_host (int hostsig) diff --git a/package/devel/gdb/patches/010-aarch64-headers.patch b/package/devel/gdb/patches/010-aarch64-headers.patch index a718a8c6a4..8f05738298 100644 --- a/package/devel/gdb/patches/010-aarch64-headers.patch +++ b/package/devel/gdb/patches/010-aarch64-headers.patch @@ -9,13 +9,7 @@ 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 -@@ -20,12 +20,12 @@ - #ifndef AARCH64_SVE_LINUX_PTRACE_H - #define AARCH64_SVE_LINUX_PTRACE_H - --#include -+#include - #include +@@ -25,7 +25,7 @@ #include #include @@ -27,8 +21,8 @@ provide the same headers as the kernel or musl. --- a/gdb/nat/aarch64-sve-linux-sigcontext.h +++ b/gdb/nat/aarch64-sve-linux-sigcontext.h @@ -19,6 +19,7 @@ - #ifndef AARCH64_SVE_LINUX_SIGCONTEXT_H - #define AARCH64_SVE_LINUX_SIGCONTEXT_H + #ifndef NAT_AARCH64_SVE_LINUX_SIGCONTEXT_H + #define NAT_AARCH64_SVE_LINUX_SIGCONTEXT_H +#ifndef SVE_MAGIC #define SVE_MAGIC 0x53564501 diff --git a/package/devel/gdb/patches/100-musl_fix.patch b/package/devel/gdb/patches/100-musl_fix.patch index 356d8c4111..8ba6d46900 100644 --- a/package/devel/gdb/patches/100-musl_fix.patch +++ b/package/devel/gdb/patches/100-musl_fix.patch @@ -8,7 +8,7 @@ #include "defs.h" #include "inferior.h" #include "infrun.h" -@@ -71,6 +72,10 @@ +@@ -72,6 +73,10 @@ #define SPUFS_MAGIC 0x23c9b64e #endif @@ -29,8 +29,8 @@ --- a/gdb/nat/ppc-linux.h +++ b/gdb/nat/ppc-linux.h @@ -18,7 +18,10 @@ - #ifndef PPC_LINUX_H - #define PPC_LINUX_H 1 + #ifndef NAT_PPC_LINUX_H + #define NAT_PPC_LINUX_H +#define pt_regs __pt_regs #include @@ -41,9 +41,9 @@ /* This sometimes isn't defined. */ --- a/gdb/gdbserver/linux-ppc-low.c +++ b/gdb/gdbserver/linux-ppc-low.c -@@ -21,7 +21,9 @@ - #include "linux-low.h" - +@@ -23,7 +23,9 @@ + #include "elf/common.h" + #include #include +#define pt_regs __pt_regs #include diff --git a/package/devel/gdb/patches/110-shared_libgcc.patch b/package/devel/gdb/patches/110-shared_libgcc.patch index c8ddfde5cc..f07ac8ca24 100644 --- a/package/devel/gdb/patches/110-shared_libgcc.patch +++ b/package/devel/gdb/patches/110-shared_libgcc.patch @@ -1,6 +1,6 @@ --- a/configure.ac +++ b/configure.ac -@@ -1277,13 +1277,13 @@ if test -z "$LD"; then +@@ -1283,13 +1283,13 @@ if test -z "$LD"; then fi fi @@ -17,16 +17,16 @@ AC_LANG_PUSH(C++) AC_LINK_IFELSE([AC_LANG_SOURCE([ #if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) -@@ -1609,7 +1609,7 @@ AC_ARG_WITH(stage1-ldflags, - # if supported. But if the user explicitly specified the libraries to use, +@@ -1629,7 +1629,7 @@ AC_ARG_WITH(stage1-ldflags, # trust that they are doing what they want. - if test "$stage1_libs" = "" -a "$have_static_libs" = yes; then + if test "$with_static_standard_libraries" = yes -a "$stage1_libs" = "" \ + -a "$have_static_libs" = yes; then - stage1_ldflags="-static-libstdc++ -static-libgcc" + stage1_ldflags="-static-libstdc++" fi]) AC_SUBST(stage1_ldflags) -@@ -1638,7 +1638,7 @@ AC_ARG_WITH(boot-ldflags, +@@ -1658,7 +1658,7 @@ AC_ARG_WITH(boot-ldflags, # statically. But if the user explicitly specified the libraries to # use, trust that they are doing what they want. if test "$poststage1_libs" = ""; then @@ -37,7 +37,7 @@ --- a/configure +++ b/configure -@@ -5043,14 +5043,14 @@ if test -z "$LD"; then +@@ -5053,14 +5053,14 @@ if test -z "$LD"; then fi fi @@ -56,16 +56,16 @@ ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -@@ -5833,7 +5833,7 @@ else - # if supported. But if the user explicitly specified the libraries to use, +@@ -5861,7 +5861,7 @@ else # trust that they are doing what they want. - if test "$stage1_libs" = "" -a "$have_static_libs" = yes; then + if test "$with_static_standard_libraries" = yes -a "$stage1_libs" = "" \ + -a "$have_static_libs" = yes; then - stage1_ldflags="-static-libstdc++ -static-libgcc" + stage1_ldflags="-static-libstdc++" fi fi -@@ -5869,7 +5869,7 @@ else +@@ -5897,7 +5897,7 @@ else # statically. But if the user explicitly specified the libraries to # use, trust that they are doing what they want. if test "$poststage1_libs" = ""; then diff --git a/package/devel/gdb/patches/130-uclibc-fix.patch b/package/devel/gdb/patches/130-uclibc-fix.patch index ea39acac21..4925e665c5 100644 --- a/package/devel/gdb/patches/130-uclibc-fix.patch +++ b/package/devel/gdb/patches/130-uclibc-fix.patch @@ -1,6 +1,6 @@ --- a/gdb/dwarf-index-write.c +++ b/gdb/dwarf-index-write.c -@@ -705,7 +705,7 @@ public: +@@ -701,7 +701,7 @@ public: gdb_assert (m_abbrev_table.empty ()); const size_t name_count = m_name_to_value_set.size (); m_bucket_table.resize -- 2.25.1