[uclibc-ng-devel] __WIFSTOPPED macro for MIPS

Denys Vlasenko vda.linux at googlemail.com
Thu Jun 14 16:29:35 CEST 2018


On Sun, Jun 10, 2018 at 7:20 PM, Waldemar Brodkorb <wbx at 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.


More information about the devel mailing list