1 --- signal.c.orig 2009-11-07 14:51:38.000000000 -0800
2 +++ signal.c 2009-11-07 14:51:40.000000000 -0800
3 @@ -43,10 +43,13 @@ __FBSDID("$FreeBSD: src/lib/libc/gen/sig
5 sigset_t _sigintr; /* shared with siginterrupt */
9 +extern int _sigaction_nobind (int sig, const struct sigaction *nsv, struct sigaction *osv);
17 struct sigaction sa, osa;
19 @@ -55,7 +58,34 @@ signal(s, a)
21 if (!sigismember(&_sigintr, s))
22 sa.sa_flags |= SA_RESTART;
23 +#if defined(__DYNAMIC__)
25 +#endif /* __DYNAMIC__ */
26 if (_sigaction(s, &sa, &osa) < 0)
28 +#if defined(__DYNAMIC__)
30 + if (_sigaction_nobind(s, &sa, &osa) < 0)
33 +#endif /* __DYNAMIC__ */
34 return (osa.sa_handler);
42 + return signal__(s, a, 1);
45 +#if defined(__DYNAMIC__)
51 + return signal__(s, a, 0);
53 +#endif /* __DYNAMIC__ */