--- a/include/my_cpu.h 2020-05-06 18:54:21.000000000 +0800 +++ b/include/my_cpu.h 2024-05-24 14:50:49.000000000 +0800 @@ -34,6 +34,19 @@ #define HMT_medium_high() asm volatile("or 5,5,5") /* High priority */ #define HMT_high() asm volatile("or 3,3,3") +#elif defined(__POWERPC__) +/* Very low priority */ +#define HMT_very_low() asm volatile("or r31,r31,r31") +/* Low priority */ +#define HMT_low() asm volatile("or r1,r1,r1") +/* Medium low priority */ +#define HMT_medium_low() asm volatile("or r6,r6,r6") +/* Medium priority */ +#define HMT_medium() asm volatile("or r2,r2,r2") +/* Medium high priority */ +#define HMT_medium_high() asm volatile("or r5,r5,r5") +/* High priority */ +#define HMT_high() asm volatile("or r3,r3,r3") #else #define HMT_very_low() #define HMT_low() --- a/packaging/rpm-oel/my_config.h 2020-05-06 18:54:22.000000000 +0800 +++ b/packaging/rpm-oel/my_config.h 2024-05-24 14:53:59.000000000 +0800 @@ -11,9 +11,9 @@ #include "my_config_i386.h" #elif defined(__ia64__) #include "my_config_ia64.h" -#elif defined(__powerpc__) +#elif defined(__powerpc__) || defined(__ppc__) #include "my_config_ppc.h" -#elif defined(__powerpc64__) +#elif defined(__powerpc64__) || defined(__ppc64__) #include "my_config_ppc64.h" #elif defined(__s390x__) #include "my_config_s390x.h" --- a/storage/innobase/os/os0sync.c 2020-05-06 18:54:22.000000000 +0800 +++ b/storage/innobase/os/os0sync.c 2024-05-24 14:56:58.000000000 +0800 @@ -900,7 +900,7 @@ LeaveCriticalSection(fast_mutex); #else pthread_mutex_unlock(fast_mutex); -#ifdef __powerpc__ +#if defined(__powerpc__) || defined(__POWERPC__) os_mb; #endif #endif --- a/storage/innobase/sync/sync0sync.c 2020-05-06 18:54:22.000000000 +0800 +++ b/storage/innobase/sync/sync0sync.c 2024-05-24 14:57:41.000000000 +0800 @@ -594,7 +594,7 @@ mutex_set_waiters(mutex, 1); /* Make sure waiters store won't pass over mutex_test_and_set */ -#ifdef __powerpc__ +#if defined(__powerpc__) || defined(__POWERPC__) os_mb; #endif --- a/storage/xtradb/include/os0sync.h 2020-05-06 18:54:23.000000000 +0800 +++ b/storage/xtradb/include/os0sync.h 2024-05-24 14:58:17.000000000 +0800 @@ -345,7 +345,7 @@ /**********************************************************//** Returns the old value of *ptr, atomically sets *ptr to new_val */ -#if defined(__powerpc__) || defined(__aarch64__) +#if defined(__powerpc__) || defined(__POWERPC__) || defined(__aarch64__) /* os_atomic_test_and_set_byte_release() should imply a release barrier before setting, and a full barrier after. But __sync_lock_test_and_set() is only --- a/storage/xtradb/os/os0sync.c 2020-05-06 18:54:23.000000000 +0800 +++ b/storage/xtradb/os/os0sync.c 2024-05-24 14:59:35.000000000 +0800 @@ -882,7 +882,7 @@ LeaveCriticalSection(fast_mutex); #else pthread_mutex_unlock(fast_mutex); -#ifdef __powerpc__ +#if defined(__powerpc__) || defined(__POWERPC__) os_mb; #endif #endif --- a/storage/xtradb/sync/sync0sync.c 2020-05-06 18:54:23.000000000 +0800 +++ b/storage/xtradb/sync/sync0sync.c 2024-05-24 15:00:05.000000000 +0800 @@ -589,7 +589,7 @@ mutex_set_waiters(mutex, 1); /* Make sure waiters store won't pass over mutex_test_and_set */ -#ifdef __powerpc__ +#if defined(__powerpc__) || defined(__POWERPC__) os_mb; #endif