diff options
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.patch | 27 |
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__ |