]> Zhao Yanbai Git Server - minix.git/commit
ash: don't rely on libc signal names
authorAntoine Leca <antoine.leca.1@gmail.com>
Tue, 26 Jul 2011 11:49:20 +0000 (13:49 +0200)
committerBen Gras <ben@minix3.org>
Tue, 26 Jul 2011 16:59:52 +0000 (18:59 +0200)
commitb67a7fca8c3bdabc2fc28220b2f7e8c5212d4a43
treedf4d2da54fcc04955a82551e7d84df80be266b1b
parentd810ebe67b49292e37e0886824ba01fecf846499
ash: don't rely on libc signal names

The bsd signal names are out-of-order compared to the minix ones.

I found out (the hard way) that the (MINIX-descending) ordered list of
signals in <sys/signal.h> does not match the (BSD-descending) ordered
list of signals in usr/src/lib/libc/nbsd_libc/gen/sig{name,list}.c

Beyond being unfortunate, it prevents the trap command of ash to handle
correctly a named signal; a funny test case is
        #!/bin/sh
        trap 'echo trapping signal BUS' BUS
        trap 'echo trapping signal 10 (USR1)' 10
        trap # show me what is currently trapped

As a quick workaround, I disabled the use of the libc-provided
sys_sig{name,list} arrays for ash, and reverted to the hand-made array
which is used by the less capable MINIX libc. It allowed me to use
pkgsrc.
commands/ash/trap.c