diff --git a/engine/platform/platform.h b/engine/platform/platform.h index 5ea88313..ab855aaa 100644 --- a/engine/platform/platform.h +++ b/engine/platform/platform.h @@ -178,7 +178,7 @@ static inline void Platform_Sleep( int msec ) #endif } -#if XASH_WIN32 || XASH_FREEBSD || XASH_NETBSD || XASH_OPENBSD || XASH_ANDROID || XASH_LINUX +#if XASH_WIN32 || XASH_FREEBSD || XASH_NETBSD || XASH_OPENBSD || XASH_ANDROID || XASH_LINUX || XASH_APPLE void Sys_SetupCrashHandler( void ); void Sys_RestoreCrashHandler( void ); #else diff --git a/engine/platform/posix/crash_glibc.c b/engine/platform/posix/crash_glibc.c index 7e518b91..671c0c70 100644 --- a/engine/platform/posix/crash_glibc.c +++ b/engine/platform/posix/crash_glibc.c @@ -33,7 +33,7 @@ void Sys_Crash( int signal, siginfo_t *si, void *context ) len = Q_snprintf( message, sizeof( message ), "Ver: " XASH_ENGINE_NAME " " XASH_VERSION " (build %i-%s, %s-%s)\n", Q_buildnum(), g_buildcommit, Q_buildos(), Q_buildarch() ); -#if !XASH_FREEBSD && !XASH_NETBSD && !XASH_OPENBSD +#if !XASH_FREEBSD && !XASH_NETBSD && !XASH_OPENBSD && !XASH_APPLE // they don't have si_ptr len += Q_snprintf( message + len, sizeof( message ) - len, "Crash: signal %d errno %d with code %d at %p %p\n", signal, si->si_errno, si->si_code, si->si_addr, si->si_ptr ); #else len += Q_snprintf( message + len, sizeof( message ) - len, "Crash: signal %d errno %d with code %d at %p\n", signal, si->si_errno, si->si_code, si->si_addr ); diff --git a/engine/platform/posix/crash_posix.c b/engine/platform/posix/crash_posix.c index 764440ab..46b35461 100644 --- a/engine/platform/posix/crash_posix.c +++ b/engine/platform/posix/crash_posix.c @@ -18,7 +18,8 @@ GNU General Public License for more details. // while this is mostly POSIX-compatible functions // the contents of ucontext_t is platform-dependent // before adding new OS here, check platform.h -#if XASH_FREEBSD || XASH_NETBSD || XASH_OPENBSD || XASH_ANDROID || XASH_LINUX +#define _XOPEN_SOURCE 1 // required for ucontext +#if XASH_FREEBSD || XASH_NETBSD || XASH_OPENBSD || XASH_ANDROID || XASH_LINUX || XASH_APPLE #ifndef XASH_OPENBSD #include #endif @@ -118,7 +119,7 @@ void Sys_Crash( int signal, siginfo_t *si, void *context ) len = Q_snprintf( message, sizeof( message ), "Ver: " XASH_ENGINE_NAME " " XASH_VERSION " (build %i-%s, %s-%s)\n", Q_buildnum(), g_buildcommit, Q_buildos(), Q_buildarch() ); -#if !XASH_FREEBSD && !XASH_NETBSD && !XASH_OPENBSD +#if !XASH_FREEBSD && !XASH_NETBSD && !XASH_OPENBSD && !XASH_APPLE len += Q_snprintf( message + len, sizeof( message ) - len, "Crash: signal %d errno %d with code %d at %p %p\n", signal, si->si_errno, si->si_code, si->si_addr, si->si_ptr ); #else len += Q_snprintf( message + len, sizeof( message ) - len, "Crash: signal %d errno %d with code %d at %p\n", signal, si->si_errno, si->si_code, si->si_addr );