diff --git a/CMakeLists.txt b/CMakeLists.txt index 81bea32039..8f1ad0fb67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,6 +148,7 @@ endif() if(NOT ENABLE_GENERIC) if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^x86" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "i.86" OR + ${CMAKE_SYSTEM_PROCESSOR} MATCHES "amd64" OR APPLE) if(_ARCH_64) set(_M_X86 1) diff --git a/Source/Core/Core/MemTools.cpp b/Source/Core/Core/MemTools.cpp index e028b40faa..2c1f688d5b 100644 --- a/Source/Core/Core/MemTools.cpp +++ b/Source/Core/Core/MemTools.cpp @@ -18,6 +18,9 @@ #ifndef _M_GENERIC #include "Core/PowerPC/JitCommon/JitBase.h" #endif +#ifdef __FreeBSD__ +#include +#endif namespace EMM { @@ -256,7 +259,11 @@ static void sigsegv_handler(int sig, siginfo_t *info, void *raw_context) void InstallExceptionHandler() { stack_t signal_stack; +#ifdef __FreeBSD__ + signal_stack.ss_sp = (char*)malloc(SIGSTKSZ); +#else signal_stack.ss_sp = malloc(SIGSTKSZ); +#endif signal_stack.ss_size = SIGSTKSZ; signal_stack.ss_flags = 0; if (sigaltstack(&signal_stack, nullptr))