Does anyone know why __WIFSTOPPED macro redefined for MIPS architecture as

#if !defined(__mips__)                                                       
#define    __WIFSTOPPED(status)    (((status) & 0xff) == 0x7f)               
#else                                                                        
#define    __WIFSTOPPED(status)    (((status) & 0xff) == 0x7f && ((status) & 0xff00))
#endif

?

The problem with this definition is in that newer gdb versions (>= 7.0) expect that WIFSTOPPED(W_STOPCODE(0)) is true (see [1]), otherwise a debugger erroneously blocks a child process in a trace status until gdb exit.

In the glibc [2] this macro expansion is the same for all architectures.

Is this a gdb or uClibc-ng bug?

1. https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob;f=gdb/linux-nat.c;h=445b59fa4adadbb2890a9e2debffb5330f1e09e4;hb=HEAD#l497
2. https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=blob;f=bits/waitstatus.h;h=a1c232612cd13e758f222ade6b27bc2c85ab8f8f;hb=HEAD#l44