diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/runtime_linux.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/runtime_linux.cc b/src/runtime_linux.cc index 15a5fff00b..42140033c0 100644 --- a/src/runtime_linux.cc +++ b/src/runtime_linux.cc @@ -135,13 +135,19 @@ static const char* GetSignalCodeName(int signal_number, int signal_code) { // Then the other codes... switch (signal_code) { case SI_USER: return "SI_USER"; +#if defined(SI_KERNEL) case SI_KERNEL: return "SI_KERNEL"; +#endif case SI_QUEUE: return "SI_QUEUE"; case SI_TIMER: return "SI_TIMER"; case SI_MESGQ: return "SI_MESGQ"; case SI_ASYNCIO: return "SI_ASYNCIO"; +#if defined(SI_SIGIO) case SI_SIGIO: return "SI_SIGIO"; +#endif +#if defined(SI_TKILL) case SI_TKILL: return "SI_TKILL"; +#endif } // Then give up... return "?"; @@ -166,8 +172,10 @@ static void HandleUnexpectedSignal(int signal_number, siginfo_t* info, void*) { } else if (signal_number == SIGSEGV) { signal_name = "SIGSEGV"; has_address = true; +#if defined(SIGSTKFLT) } else if (signal_number == SIGSTKFLT) { signal_name = "SIGSTKFLT"; +#endif } else if (signal_number == SIGPIPE) { signal_name = "SIGPIPE"; } @@ -210,7 +218,9 @@ void Runtime::InitPlatformSignalHandlers() { rc += sigaction(SIGBUS, &action, NULL); rc += sigaction(SIGFPE, &action, NULL); rc += sigaction(SIGSEGV, &action, NULL); +#if defined(SIGSTKFLT) rc += sigaction(SIGSTKFLT, &action, NULL); +#endif rc += sigaction(SIGPIPE, &action, NULL); CHECK_EQ(rc, 0); } |