diff --git a/package/devel/gdb/Makefile b/package/devel/gdb/Makefile
index a5b752326acc39013426bc6e80ca0445f86960c6..fd5ac7eb67fee62428a5d6b42f0bc8be751f27ee 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 25ac86fd913c3597652b9a3c12378ce50c331c9a..f78c7ed315fabaaa61ba42bdf952f56dd18153cd 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 a718a8c6a4e2d898f33a4f61ab1dc3228f4c3a48..8f057382986d452e4577140d977c174992302457 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 <asm/sigcontext.h>
-+#include <signal.h>
- #include <sys/utsname.h>
+@@ -25,7 +25,7 @@
  #include <sys/ptrace.h>
  #include <asm/ptrace.h>
  
@@ -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 356d8c41116d95481ed9845f358cb01225af3cf5..8ba6d46900f020d2bc80226351aa9f5e07443956 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 <asm/ptrace.h>
@@ -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 <sys/uio.h>
  #include <elf.h>
 +#define pt_regs __pt_regs
  #include <asm/ptrace.h>
diff --git a/package/devel/gdb/patches/110-shared_libgcc.patch b/package/devel/gdb/patches/110-shared_libgcc.patch
index c8ddfde5cca908f208fc9078413f8293304bdd71..f07ac8ca24ba37dc634a01e5761d1ff61eb713d7 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 ea39acac218244ca1672833279c3c1ee3bd76a5f..4925e665c53b063ecd6b81d8c3a5c5bad73cb410 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