I have some code that has to compile for multiple platforms. The following will make the code compile but I want to know where the SIGUNUSED symbol is actually defined:
Working Code
#ifdef LINUX
#define SIGEMT SIGUNUSED
#endif
…
void set_sig_trap()
{
signal( SIGHUP, Signal ); /* floating point exception */
signal( SIGINT , Signal ); /* Interrupt */
signal( SIGQUIT, Signal ); /* quit */
signal( SIGILL, Signal ); /* Illegal instruction */
signal( SIGTRAP, Signal ); /* trace trap */
signal( SIGABRT, Signal ); /* Process abort signal */
signal( SIGEMT, Signal ); /* EMT instruction */
signal( SIGFPE, Signal ); /* Floating point exception */
signal( SIGBUS, Signal ); /* bus error */
signal( SIGSEGV, Signal ); /* Segmentation violation */
signal( SIGSYS, Signal ); /* bad argument to system call */
signal( SIGPIPE, Signal ); /* write on a pipe - no one to read it */
signal( SIGTERM, Signal ); /* Software termination sig. from kill */
signal( SIGALRM, Signal ); /* alarm clock */
return;
}
…
I have looked for SIGUNUSED in /usr/include with no hits. It is not in signal.h. Where is it coming from?
Update:
I did not think the signal definition would be outside of signal.h as the response indicated a recursive search did find the definition:
me@mymachine.:/usr/include $ grep -d recurse SIGUNUSED *
asm/signal.h:#define SIGUNUSED 31
asm-arm/signal.h:#define SIGUNUSED 31
asm-ia64/signal.h:/* signal 31 is no longer "unused", but the SIGUNUSED macro remains for backwards compatibility */
asm-ia64/signal.h:#define SIGUNUSED 31
asm-parisc/signal.h:#define SIGUNUSED 31
asm-parisc/signal.h:#define SIGRESERVE SIGUNUSED
asm-powerpc/signal.h:#define SIGUNUSED 31
asm-s390/signal.h:#define SIGUNUSED 31
asm-x86/signal.h:#define SIGUNUSED 31
bits/signum.h:#define SIGUNUSED 31
Thanks!
I see it defined in
bits/signum.h, which is included fromsignal.h:Maybe you forgot to grep recursively?