https://github.com/valkey-io/valkey/pull/436 diff --git src/config.h src/config.h index 2468110f8..4646f653e 100644 --- src/config.h +++ src/config.h @@ -42,7 +42,7 @@ #include #endif -#if defined(__APPLE__) && defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 +#if defined(__APPLE__) && defined(MAC_OS_X_VERSION_MAX_ALLOWED) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 #define MAC_OS_10_6_DETECTED #endif @@ -217,12 +217,13 @@ void setproctitle(const char *fmt, ...); #if defined(sel) || defined(pyr) || defined(mc68000) || defined(sparc) || \ defined(is68k) || defined(tahoe) || defined(ibm032) || defined(ibm370) || \ - defined(MIPSEB) || defined(_MIPSEB) || defined(_IBMR2) || defined(DGUX) ||\ + defined(MIPSEB) || defined(_MIPSEB) || defined(_IBMR2) || defined(DGUX) || \ defined(apollo) || defined(__convex__) || defined(_CRAY) || \ defined(__hppa) || defined(__hp9000) || \ defined(__hp9000s300) || defined(__hp9000s700) || \ - defined (BIT_ZERO_ON_LEFT) || defined(m68k) || defined(__sparc) -#define BYTE_ORDER BIG_ENDIAN + defined (BIT_ZERO_ON_LEFT) || defined(m68k) || defined(__sparc) || \ + (defined(__APPLE__) && defined(__POWERPC__)) +#define BYTE_ORDER BIG_ENDIAN #endif #endif /* linux */ #endif /* BSD */ @@ -304,7 +305,7 @@ void setproctitle(const char *fmt, ...); #include #define valkey_set_thread_title(name) rename_thread(find_thread(0), name) #else -#if (defined __APPLE__ && defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1070) +#if (defined __APPLE__ && defined(MAC_OS_X_VERSION_MAX_ALLOWED) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070) int pthread_setname_np(const char *name); #include #define valkey_set_thread_title(name) pthread_setname_np(name) diff --git src/debug.c src/debug.c index 33d145b28..5fa9a70d5 100644 --- src/debug.c +++ src/debug.c @@ -1192,6 +1192,7 @@ static void* getAndSetMcontextEip(ucontext_t *uc, void *eip) { #elif defined(__i386__) GET_SET_RETURN(uc->uc_mcontext->__ss.__eip, eip); #else + /* OSX PowerPC */ GET_SET_RETURN(uc->uc_mcontext->__ss.__srr0, eip); #endif #elif defined(__APPLE__) && defined(MAC_OS_10_6_DETECTED) @@ -1200,6 +1201,8 @@ static void* getAndSetMcontextEip(ucontext_t *uc, void *eip) { GET_SET_RETURN(uc->uc_mcontext->__ss.__rip, eip); #elif defined(__i386__) GET_SET_RETURN(uc->uc_mcontext->__ss.__eip, eip); + #elif defined(__ppc__) + GET_SET_RETURN(uc->uc_mcontext->__ss.__srr0, eip); #else /* OSX ARM64 */ void *old_val = (void*)arm_thread_state64_get_pc(uc->uc_mcontext->__ss); @@ -1344,7 +1347,7 @@ void logRegisters(ucontext_t *uc) { (unsigned long) uc->uc_mcontext->__ss.__gs ); logStackContent((void**)uc->uc_mcontext->__ss.__esp); - #else + #elif defined(__arm64__) /* OSX ARM64 */ serverLog(LL_WARNING, "\n" @@ -1393,6 +1396,9 @@ void logRegisters(ucontext_t *uc) { (unsigned long) uc->uc_mcontext->__ss.__cpsr ); logStackContent((void**) arm_thread_state64_get_sp(uc->uc_mcontext->__ss)); + #else + /* At the moment we do not implement this for PowerPC */ + NOT_SUPPORTED(); #endif /* Linux */ #elif defined(__linux__)