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
new file mode 100644
index 0000000000000000000000000000000000000000..c462399bb5a0b06883e19f01d0f30ba7e1e0b55f
--- /dev/null
+++ b/package/devel/gdb/patches/001-gdb-pr14523-mips-signal-number.patch
@@ -0,0 +1,16 @@
+See http://sourceware.org/bugzilla/show_bug.cgi?id=14523
+---
+--- gdb-7.5.org/gdb/common/signals.c	2012-05-24 18:51:37.000000000 +0200
++++ gdb-7.5.org/gdb/common/signals.c	2012-08-29 22:32:07.000000000 +0200
+@@ -346,6 +346,11 @@ 
+       else if (64 <= hostsig && hostsig <= 127)
+ 	return (enum gdb_signal)
+ 	  (hostsig - 64 + (int) GDB_SIGNAL_REALTIME_64);
++      else if (hostsig == 128)
++	/* Some platforms, such as Linux MIPS, have NSIG == 128, in which case
++	   signal 128 is the highest realtime signal. There is no constant for
++	   that though. */
++	return GDB_SIGNAL_UNKNOWN;
+       else
+ 	error (_("GDB bug: target.c (gdb_signal_from_host): "
+ 	       "unrecognized real-time signal"));