Andrew Geissler | 32b1199 | 2021-03-31 13:37:05 -0500 | [diff] [blame] | 1 | Remove glibc specific function dependencies |
| 2 | |
| 3 | Sourced from: https://git.alpinelinux.org/aports/tree/main/mariadb/ppc-remove-glibc-dep.patch |
| 4 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 5 | |
| 6 | --- a/include/my_cpu.h |
| 7 | +++ b/include/my_cpu.h |
| 8 | @@ -24,17 +24,16 @@ |
| 9 | */ |
| 10 | |
| 11 | #ifdef _ARCH_PWR8 |
| 12 | -#include <sys/platform/ppc.h> |
| 13 | /* Very low priority */ |
| 14 | -#define HMT_very_low() __ppc_set_ppr_very_low() |
| 15 | +#define HMT_very_low() asm volatile("or 31,31,31") |
| 16 | /* Low priority */ |
| 17 | -#define HMT_low() __ppc_set_ppr_low() |
| 18 | +#define HMT_low() asm volatile ("or 1,1,1") |
| 19 | /* Medium low priority */ |
| 20 | -#define HMT_medium_low() __ppc_set_ppr_med_low() |
| 21 | +#define HMT_medium_low() asm volatile ("or 6,6,6") |
| 22 | /* Medium priority */ |
| 23 | -#define HMT_medium() __ppc_set_ppr_med() |
| 24 | +#define HMT_medium() asm volatile ("or 2,2,2") |
| 25 | /* Medium high priority */ |
| 26 | -#define HMT_medium_high() __ppc_set_ppr_med_high() |
| 27 | +#define HMT_medium_high() asm volatile("or 5,5,5") |
| 28 | /* High priority */ |
| 29 | #define HMT_high() asm volatile("or 3,3,3") |
| 30 | #else |
| 31 | @@ -81,7 +80,7 @@ static inline void MY_RELAX_CPU(void) |
| 32 | __asm__ __volatile__ ("pause"); |
| 33 | #endif |
| 34 | #elif defined(_ARCH_PWR8) |
| 35 | - __ppc_get_timebase(); |
| 36 | + __builtin_ppc_get_timebase(); |
| 37 | #elif defined __GNUC__ && (defined __arm__ || defined __aarch64__) |
| 38 | /* Mainly, prevent the compiler from optimizing away delay loops */ |
Andrew Geissler | 6972109 | 2021-07-23 12:57:00 -0400 | [diff] [blame] | 39 | #ifdef _aarch64_ |
Andrew Geissler | 32b1199 | 2021-03-31 13:37:05 -0500 | [diff] [blame] | 40 | --- a/storage/tokudb/PerconaFT/portability/toku_time.h |
| 41 | +++ b/storage/tokudb/PerconaFT/portability/toku_time.h |
| 42 | @@ -124,7 +124,7 @@ static inline tokutime_t toku_time_now(v |
| 43 | __asm __volatile__ ("mrs %[rt], cntvct_el0" : [rt] "=r" (result)); |
| 44 | return result; |
| 45 | #elif defined(__powerpc__) |
| 46 | - return __ppc_get_timebase(); |
| 47 | + return __builtin_ppc_get_timebase(); |
| 48 | #else |
| 49 | #error No timer implementation for this platform |
| 50 | #endif |