summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch')
-rw-r--r--meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch27
1 files changed, 14 insertions, 13 deletions
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch
index 3277a3eee..3244ab8da 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch
@@ -1,22 +1,23 @@
- Use SYS_futex for syscall
+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>
-
+
+--- a/storage/innobase/sync/srw_lock.cc
++++ b/storage/innobase/sync/srw_lock.cc
+@@ -210,6 +210,12 @@ void ssux_lock_low::wake() { WakeByAddre
+ # ifdef __linux__
+ # 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
++# 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 {
+ # define SRW_FUTEX(a,op,n) \
+ syscall(SYS_futex, a, FUTEX_ ## op ## _PRIVATE, n, nullptr, nullptr, 0)
+ # elif defined __OpenBSD__