os/osinit.c, os/utils.c: Exclude sigaction code when building for MinGW
MinGW doesn't have sigaction, so this patch is needed for building. No attempt is made to actually install the fatal error signal handler, as MinGW will simply terminate the process rather than deliver a fatal signal. Also avoid using strsignal Signed-off-by: Ryan Pavlik <rpavlik@iastate.edu> Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk> Tested-by: Yaakov Selkowitz <yselkowitz@users.sourceforge.net> Reviewed-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
@@ -102,6 +102,7 @@ OsRegisterSigWrapper(OsSigWrapperPtr newSigWrapper)
|
||||
* OsSigHandler --
|
||||
* Catch unexpected signals and exit or continue cleanly.
|
||||
*/
|
||||
#if !defined(WIN32) || defined(__CYGWIN__)
|
||||
static void
|
||||
#ifdef SA_SIGINFO
|
||||
OsSigHandler(int signo, siginfo_t * sip, void *unused)
|
||||
@@ -146,6 +147,7 @@ OsSigHandler(int signo)
|
||||
FatalError("Caught signal %d (%s). Server aborting\n",
|
||||
signo, strsignal(signo));
|
||||
}
|
||||
#endif /* !WIN32 || __CYGWIN__ */
|
||||
|
||||
void
|
||||
OsInit(void)
|
||||
@@ -155,6 +157,7 @@ OsInit(void)
|
||||
char fname[PATH_MAX];
|
||||
|
||||
if (!been_here) {
|
||||
#if !defined(WIN32) || defined(__CYGWIN__)
|
||||
struct sigaction act, oact;
|
||||
int i;
|
||||
|
||||
@@ -181,6 +184,8 @@ OsInit(void)
|
||||
siglist[i], strerror(errno));
|
||||
}
|
||||
}
|
||||
#endif /* !WIN32 || __CYGWIN__ */
|
||||
|
||||
#ifdef HAVE_BACKTRACE
|
||||
/*
|
||||
* initialize the backtracer, since the ctor calls dlopen(), which
|
||||
|
||||
Reference in New Issue
Block a user