diff options
author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2008-10-01 13:26:32 +0200 |
---|---|---|
committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2008-10-01 13:26:32 +0200 |
commit | 787b261ffa5a1abca76b6ca4f8cc38373b9ccc2c (patch) | |
tree | 15b8c3d3bd4af96bf1538d26604a7f7ebd978100 | |
parent | 94c9da418edbe13963dcc5b604532e3718da233c (diff) | |
download | platform_external_libdaemon-787b261ffa5a1abca76b6ca4f8cc38373b9ccc2c.tar.gz platform_external_libdaemon-787b261ffa5a1abca76b6ca4f8cc38373b9ccc2c.tar.bz2 platform_external_libdaemon-787b261ffa5a1abca76b6ca4f8cc38373b9ccc2c.zip |
Fix building on OpenSolaris (without _NSIG definition).
On OpenSolaris, the _NSIG macro is not defined, but NSIG is; as it's
not possible to use NSIG under glibc (it would miss the SIGRT*
series), define a SIGNAL_UPPER_BOUND depending on the system (and
error out if the system lacks both NSIG and _NSIG).
-rw-r--r-- | libdaemon/dfork.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libdaemon/dfork.c b/libdaemon/dfork.c index f1ba7c1..6b94944 100644 --- a/libdaemon/dfork.c +++ b/libdaemon/dfork.c @@ -42,6 +42,14 @@ #include "dnonblock.h" #include "dlog.h" +#if defined(_NSIG) /* On glibc NSIG does not count RT signals */ +# define SIGNAL_UPPER_BOUND _NSIG +#elif defined(NSIG) /* Solaris defines just this */ +# define SIGNAL_UPPER_BOUND NSIG +#else +# error "Unknown upper bound for signals" +#endif + static int _daemon_retval_pipe[2] = { -1, -1 }; static int _null_open(int f, int fd) { @@ -665,7 +673,7 @@ int daemon_reset_sigs(int except, ...) { int daemon_reset_sigsv(const int except[]) { int sig; - for (sig = 1; sig < _NSIG; sig++) { + for (sig = 1; sig < SIGNAL_UPPER_BOUND; sig++) { int reset = 1; switch (sig) { |