Files
meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch
Khem Raj bd8e72c139 mariadb: Fix build on newer 32bit architectures
newer 32bit arches e.g. RV32 and ARC do not have __NR_io_getevents
syscall and have started of with 64bit time_t so there is no 32bit
version

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-04-06 09:02:12 -07:00

23 lines
764 B
Diff

Use SYS_futex for syscall
glibc defines SYS_futex and on newer 32bit CPUs like RISCV-32, arc there
is no 32bit time_t therefore define SYS_futex in terms of SYS_futex_time64
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/storage/innobase/include/ib0mutex.h
+++ b/storage/innobase/include/ib0mutex.h
@@ -150,6 +150,12 @@ private:
#include <linux/futex.h>
#include <sys/syscall.h>
+/** Newer 32bit CPUs eg. RISCV-32 are defaulting to 64bit time_t from get go and
+ therefore do not define __NR_futex */
+#if !defined(SYS_futex) && defined(SYS_futex_time64)
+# define SYS_futex SYS_futex_time64
+#endif
+
/** Mutex implementation that used the Linux futex. */
template <template <typename> class Policy>
struct TTASFutexMutex {