On Sun, Jun 10, 2018 at 7:20 PM, Waldemar Brodkorb <wbx(a)uclibc-ng.org> wrote:
Hio Sergey,
it was added with this commit by Denys:
4a96b948687166da26a6c327e6c6733ad2336c5c
Denys, do you remember why?
Yes.
status 00xx means "killed by signal xx".
status yy7F means "stopped by signal yy".
status 007F means "killed by signal 0x7f",
not "stopped by signal 0" (the latter does not make sense since
signal 0 does not exist).
> 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 __WIFSTOPPED(status) (((status) & 0xff) == 0x7f) would not work correctly
for status of 007F.
This is only important for the single arch (mips) which has signal numbers >64.
Looks like gdb makes an assumption which is invalid for mips arch.