| Remove glibc specific function dependencies |
| |
| Sourced from: https://git.alpinelinux.org/aports/tree/main/mariadb/ppc-remove-glibc-dep.patch |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| |
| --- a/include/my_cpu.h |
| +++ b/include/my_cpu.h |
| @@ -24,17 +24,16 @@ |
| */ |
| |
| #ifdef _ARCH_PWR8 |
| -#include <sys/platform/ppc.h> |
| /* Very low priority */ |
| -#define HMT_very_low() __ppc_set_ppr_very_low() |
| +#define HMT_very_low() asm volatile("or 31,31,31") |
| /* Low priority */ |
| -#define HMT_low() __ppc_set_ppr_low() |
| +#define HMT_low() asm volatile ("or 1,1,1") |
| /* Medium low priority */ |
| -#define HMT_medium_low() __ppc_set_ppr_med_low() |
| +#define HMT_medium_low() asm volatile ("or 6,6,6") |
| /* Medium priority */ |
| -#define HMT_medium() __ppc_set_ppr_med() |
| +#define HMT_medium() asm volatile ("or 2,2,2") |
| /* Medium high priority */ |
| -#define HMT_medium_high() __ppc_set_ppr_med_high() |
| +#define HMT_medium_high() asm volatile("or 5,5,5") |
| /* High priority */ |
| #define HMT_high() asm volatile("or 3,3,3") |
| #else |
| @@ -81,7 +80,7 @@ static inline void MY_RELAX_CPU(void) |
| __asm__ __volatile__ ("pause"); |
| #endif |
| #elif defined(_ARCH_PWR8) |
| - __ppc_get_timebase(); |
| + __builtin_ppc_get_timebase(); |
| #elif defined __GNUC__ && (defined __arm__ || defined __aarch64__) |
| /* Mainly, prevent the compiler from optimizing away delay loops */ |
| __asm__ __volatile__ ("":::"memory"); |
| --- a/storage/tokudb/PerconaFT/portability/toku_time.h |
| +++ b/storage/tokudb/PerconaFT/portability/toku_time.h |
| @@ -124,7 +124,7 @@ static inline tokutime_t toku_time_now(v |
| __asm __volatile__ ("mrs %[rt], cntvct_el0" : [rt] "=r" (result)); |
| return result; |
| #elif defined(__powerpc__) |
| - return __ppc_get_timebase(); |
| + return __builtin_ppc_get_timebase(); |
| #else |
| #error No timer implementation for this platform |
| #endif |