diff --git a/toolchain/gdb/Makefile b/toolchain/gdb/Makefile
index 10de1f883ff16f683c44f6b0d18b84027d383e61..d3f1e8c0aad2f6c6b2626c8eaa9a7243a855b90a 100644
--- a/toolchain/gdb/Makefile
+++ b/toolchain/gdb/Makefile
@@ -7,13 +7,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gdb
-PKG_REV:=7.6-2013.05
-PKG_VERSION_MAJOR:=7.6
-PKG_VERSION:=linaro-$(PKG_REV)
+PKG_VERSION:=7.8
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_MD5SUM:=816290b91cff03912320089d353e8a12
-PKG_SOURCE_URL:=https://releases.linaro.org/13.05/components/toolchain/gdb-linaro/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=@GNU/gdb
+PKG_MD5SUM:=bd958fe9019d7c7896f29f6724a764ed
 
 HOST_BUILD_PARALLEL:=1
 
diff --git a/toolchain/gdb/patches/110-no_extern_inline.patch b/toolchain/gdb/patches/100-no_extern_inline.patch
similarity index 100%
rename from toolchain/gdb/patches/110-no_extern_inline.patch
rename to toolchain/gdb/patches/100-no_extern_inline.patch
diff --git a/toolchain/gdb/patches/100-ppc_compile_fix.patch b/toolchain/gdb/patches/100-ppc_compile_fix.patch
deleted file mode 100644
index 9ecaaed8e4364c502e8180468913ee95b29a846b..0000000000000000000000000000000000000000
--- a/toolchain/gdb/patches/100-ppc_compile_fix.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/sim/ppc/Makefile.in
-+++ b/sim/ppc/Makefile.in
-@@ -550,7 +550,7 @@ PACKAGE_SRC = @sim_pk_src@
- PACKAGE_OBJ = @sim_pk_obj@
- 
- 
--psim: $(TARGETLIB) main.o $(LIBIBERTY_LIB) $(BFD_LIB) $(LIBS) $(LIBINTL_DEP)
-+psim: $(TARGETLIB) main.o $(LIBIBERTY_LIB) $(BFD_LIB) $(LIBINTL_DEP)
- 	$(CC) $(CFLAGS) $(SIM_CFLAGS) $(LDFLAGS) -o psim$(EXEEXT) main.o $(TARGETLIB) $(BFD_LIB) $(LIBINTL) $(LIBIBERTY_LIB) $(LIBS)
- 
- run: psim
diff --git a/toolchain/gdb/patches/110-no_testsuite.patch b/toolchain/gdb/patches/110-no_testsuite.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5c5d15c5b8c05a078414a3e9a3107ab335b30935
--- /dev/null
+++ b/toolchain/gdb/patches/110-no_testsuite.patch
@@ -0,0 +1,21 @@
+--- a/gdb/configure
++++ b/gdb/configure
+@@ -855,8 +855,7 @@ MAKEINFOFLAGS
+ YACC
+ YFLAGS
+ XMKMF'
+-ac_subdirs_all='testsuite
+-gdbtk
++ac_subdirs_all='gdbtk
+ multi-ice
+ gdbserver'
+ 
+@@ -5168,7 +5167,7 @@ $as_echo "$with_auto_load_safe_path" >&6
+ 
+ 
+ 
+-subdirs="$subdirs testsuite"
++subdirs="$subdirs"
+ 
+ 
+ # Check whether to support alternative target configurations
diff --git a/toolchain/gdb/patches/120-fix-compile-flag-mismatch.patch b/toolchain/gdb/patches/120-fix-compile-flag-mismatch.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ce34c95b1994c3bda968602b29856990c0ae4c4c
--- /dev/null
+++ b/toolchain/gdb/patches/120-fix-compile-flag-mismatch.patch
@@ -0,0 +1,11 @@
+--- a/gdb/gdbserver/configure
++++ b/gdb/gdbserver/configure
+@@ -2183,7 +2183,7 @@ $as_echo "$as_me: error: \`$ac_var' was
+       ac_cache_corrupted=: ;;
+     ,);;
+     *)
+-      if test "x$ac_old_val" != "x$ac_new_val"; then
++      if test "`echo x$ac_old_val`" != "`echo x$ac_new_val`"; then
+ 	# differences in whitespace do not lead to failure.
+ 	ac_old_val_w=`echo x $ac_old_val`
+ 	ac_new_val_w=`echo x $ac_new_val`
diff --git a/toolchain/gdb/patches/600-fix-compile-flag-mismatch.patch b/toolchain/gdb/patches/600-fix-compile-flag-mismatch.patch
deleted file mode 100644
index 127bee46d8dde19327f015c12de7259cbf6e407b..0000000000000000000000000000000000000000
--- a/toolchain/gdb/patches/600-fix-compile-flag-mismatch.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- a/gdb/configure
-+++ b/gdb/configure
-@@ -834,8 +834,7 @@ MAKEINFOFLAGS
- YACC
- YFLAGS
- XMKMF'
--ac_subdirs_all='testsuite
--gdbtk
-+ac_subdirs_all='gdbtk
- multi-ice
- gdbserver'
- 
-@@ -5033,7 +5032,7 @@ $as_echo "$with_auto_load_safe_path" >&6
- 
- 
- 
--subdirs="$subdirs testsuite"
-+subdirs="$subdirs"
- 
- 
- # Check whether to support alternative target configurations
---- a/gdb/gdbserver/configure
-+++ b/gdb/gdbserver/configure
-@@ -2181,7 +2181,7 @@ $as_echo "$as_me: error: \`$ac_var' was
-       ac_cache_corrupted=: ;;
-     ,);;
-     *)
--      if test "x$ac_old_val" != "x$ac_new_val"; then
-+      if test "`echo x$ac_old_val`" != "`echo x$ac_new_val`"; then
- 	# differences in whitespace do not lead to failure.
- 	ac_old_val_w=`echo x $ac_old_val`
- 	ac_new_val_w=`echo x $ac_new_val`