diff --git a/toolchain/gdb/Makefile b/toolchain/gdb/Makefile
index 3b884f9e796b904a70c71870085eecf17cf04801..41ba9853fd26d5ea2ba3759946a9591c668d92e9 100644
--- a/toolchain/gdb/Makefile
+++ b/toolchain/gdb/Makefile
@@ -17,11 +17,11 @@ PKG_HASH:=7e3c2a763bf500a40c5c4591a7e22c591dafc1f214b1d514895c1096e85c883a
 GDB_DIR:=binutils-$(PKG_NAME)-$(PKG_VERSION)
 PATCH_DIR:=./patches-arc
 else
-PKG_VERSION:=8.2.1
+PKG_VERSION:=8.3.1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/gdb
-PKG_HASH:=0a6a432907a03c5c8eaad3c3cffd50c00a40c3a5e3c4039440624bae703f2202
+PKG_HASH:=1e55b4d7cdca7b34be12f4ceae651623aa73b2fd640152313f9f66a7149757c4
 GDB_DIR:=$(PKG_NAME)-$(PKG_VERSION)
 endif
 
diff --git a/toolchain/gdb/patches/100-no_extern_inline.patch b/toolchain/gdb/patches/100-no_extern_inline.patch
index 8c18c6e2e746a8a22f7010f34532aaa9066e4e7e..4036f70301a8c680f3890d211216813c31426e8b 100644
--- a/toolchain/gdb/patches/100-no_extern_inline.patch
+++ b/toolchain/gdb/patches/100-no_extern_inline.patch
@@ -1,24 +1,16 @@
 --- a/sim/common/sim-arange.c
 +++ b/sim/common/sim-arange.c
-@@ -280,11 +280,7 @@ sim_addr_range_delete (ADDR_RANGE *ar, a
+@@ -277,9 +277,7 @@ sim_addr_range_delete (ADDR_RANGE *ar, a
    build_search_tree (ar);
  }
  
--#endif /* DEFINE_NON_INLINE_P */
--
--#if DEFINE_INLINE_P
+-#else /* SIM_ARANGE_C_INCLUDED */
 -
 -SIM_ARANGE_INLINE int
 +int
  sim_addr_range_hit_p (ADDR_RANGE *ar, address_word addr)
  {
    ADDR_RANGE_TREE *t = ar->range_tree;
-@@ -301,4 +297,4 @@ sim_addr_range_hit_p (ADDR_RANGE *ar, ad
-   return 0;
- }
- 
--#endif /* DEFINE_INLINE_P */
-+#endif /* DEFINE_NON_INLINE_P */
 --- a/sim/common/sim-arange.h
 +++ b/sim/common/sim-arange.h
 @@ -73,7 +73,7 @@ extern void sim_addr_range_delete (ADDR_
diff --git a/toolchain/gdb/patches/110-no_testsuite.patch b/toolchain/gdb/patches/110-no_testsuite.patch
index bcb10e69b4a990e4c9bf03f450afce622b555c20..f4a2cde5c87259d06e403c0f5d995fc4f1023c2b 100644
--- a/toolchain/gdb/patches/110-no_testsuite.patch
+++ b/toolchain/gdb/patches/110-no_testsuite.patch
@@ -1,16 +1,16 @@
 --- a/gdb/configure
 +++ b/gdb/configure
-@@ -915,8 +915,7 @@ MAKEINFOFLAGS
+@@ -918,8 +918,7 @@ MAKEINFOFLAGS
  YACC
  YFLAGS
  XMKMF'
 -ac_subdirs_all='testsuite
 -gdbtk
 +ac_subdirs_all='gdbtk
- multi-ice
  gdbserver'
  
-@@ -6577,7 +6576,7 @@ $as_echo "$with_auto_load_safe_path" >&6
+ # Initialize some variables set by options.
+@@ -6628,7 +6627,7 @@ $as_echo "$with_auto_load_safe_path" >&6
  
  
  
diff --git a/toolchain/gdb/patches/120-fix-compile-flag-mismatch.patch b/toolchain/gdb/patches/120-fix-compile-flag-mismatch.patch
index d971e28d8862f343488a73039a2d70eff8be00e5..2b6610673ce3ba68534e9f73d98f225c6972fcd2 100644
--- a/toolchain/gdb/patches/120-fix-compile-flag-mismatch.patch
+++ b/toolchain/gdb/patches/120-fix-compile-flag-mismatch.patch
@@ -1,6 +1,6 @@
 --- a/gdb/gdbserver/configure
 +++ b/gdb/gdbserver/configure
-@@ -2508,7 +2508,7 @@ $as_echo "$as_me: error: \`$ac_var' was
+@@ -2511,7 +2511,7 @@ $as_echo "$as_me: error: \`$ac_var' was
        ac_cache_corrupted=: ;;
      ,);;
      *)