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.
This commit is contained in:
parent
d810ebe67b
commit
b67a7fca8c
1 changed files with 3 additions and 1 deletions
|
@ -62,8 +62,10 @@ __FBSDID("$FreeBSD: src/bin/sh/trap.c,v 1.29 2004/04/06 20:06:51 markm Exp $");
|
|||
#endif
|
||||
#include "builtins.h"
|
||||
|
||||
#if defined(__minix) && !defined(__NBSD_LIBC)
|
||||
#if defined(__minix)
|
||||
#if !defined(__NBSD_LIBC)
|
||||
#define NO_SIGINTERRUPT
|
||||
#endif
|
||||
#define NO_SYS_SIGNAME
|
||||
#define NO_SYS_SIGLIST
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue