On 06/21, David Daney wrote: > > On 06/21/2013 01:22 PM, Oleg Nesterov wrote: >> On 06/21, David Daney wrote: >>> >>> On 06/21/2013 06:39 AM, James Hogan wrote: >>>> Therefore add sig_to_exitcode() and exitcode_to_sig() functions which >>>> map signal numbers > 126 to exit code 126 and puts the remainder (i.e. >>>> sig - 126) in higher bits. This allows WIFSIGNALED() to return true for >>>> both SIG127 and SIG128, and allows WTERMSIG to be later updated to read >>>> the correct signal number for SIG127 and SIG128. >>> >>> I really hate this approach. >>> >>> Can we just change the ABI to reduce the number of signals so that all >>> the standard C library wait related macros don't have to be changed? >>> >>> Think about it, any user space program using signal numbers 127 and 128 >>> doesn't work correctly as things exist today, so removing those two will >>> be no great loss. >> >> Oh, I agree. >> >> Besides, this changes ABI anyway. And if we change it we can do this in >> a more clean way, afaics. MIPS should simply use 2 bytes in exit_code for >> signal number. > > Wouldn't that break *all* existing programs that use signals? Perhaps I > misunderstand what you are suggesting. Of course this will break the userspace more than the original patch, that is why I said "And yes, this means that WIFSIGNALED/etc should be updated". > I am proposing that we just reduce the number of usable signals such > that existing libc status checking macros/functions don't change in any > way. And I fully agree! Absolutely, sorry for confusion. What I tried to say, _if_ we change the ABI instead, lets make this change sane. To me this hack is not sane. And btw, the patch doesn't look complete. Say, wait_task_zombie() should do exitcode_to_sig() for ->si_status. Oleg.