Signed-off-by: Khem Raj <[email protected]>
---
 ...-Use-SYS_futex-instead-of-__NR_futex.patch | 46 +++++++++++++++++++
 .../recipes-multimedia/vlc/vlc_3.0.11.1.bb    |  1 +
 2 files changed, 47 insertions(+)
 create mode 100644 
meta-multimedia/recipes-multimedia/vlc/vlc/0001-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch

diff --git 
a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch
 
b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch
new file mode 100644
index 0000000000..405490dcfc
--- /dev/null
+++ 
b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch
@@ -0,0 +1,46 @@
+From f7957c35654222e5bd1038341612bbb40a88e98b Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Mon, 16 Nov 2020 12:08:43 -0800
+Subject: [PATCH] linux/thread: Use SYS_futex instead of __NR_futex
+
+SYS_futex it expected from system C library.
+in glibc (/usr/include/bits/syscall.h defines it in terms of of NR_futex)
+some newer 32bit architectures e.g. riscv32 are using 64bit time_t from
+get go unlike other 32bit architectures in glibc, therefore it wont have
+NR_futex defined but just NR_futex_time64 this aliases it to NR_futex so
+that SYS_futex is then defined for rv32
+
+Upstream-Status: Submitted [https://github.com/videolan/vlc/pull/117]
+Signed-off-by: Khem Raj <[email protected]>
+---
+ src/linux/thread.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/linux/thread.c b/src/linux/thread.c
+index 20da296..30639a3 100644
+--- a/src/linux/thread.c
++++ b/src/linux/thread.c
+@@ -30,6 +30,11 @@
+ #include <sys/syscall.h>
+ #include <linux/futex.h>
+ 
++/* 32bit architectures with 64bit time_t do not define __NR_futex syscall */
++#if !defined(SYS_futex) && defined(SYS_futex_time64)
++#define SYS_futex SYS_futex_time64
++#endif
++
+ #ifndef FUTEX_PRIVATE_FLAG
+ #define FUTEX_WAKE_PRIVATE FUTEX_WAKE
+ #define FUTEX_WAIT_PRIVATE FUTEX_WAIT
+@@ -50,7 +55,7 @@ unsigned long vlc_thread_id(void)
+ static int sys_futex(void *addr, int op, unsigned val,
+                      const struct timespec *to, void *addr2, int val3)
+ {
+-    return syscall(__NR_futex, addr, op, val, to, addr2, val3);
++    return syscall(SYS_futex, addr, op, val, to, addr2, val3);
+ }
+ 
+ static int vlc_futex_wake(void *addr, int nr)
+-- 
+2.29.2
+
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.11.1.bb 
b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.11.1.bb
index 44178a10d1..83cb176cc4 100644
--- a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.11.1.bb
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.11.1.bb
@@ -24,6 +24,7 @@ SRC_URI = 
"http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz \
            file://0003-fix-luaL-checkint.patch \
            file://0004-Use-packageconfig-to-detect-mmal-support.patch \
            file://0005-Fix-build-with-Qt-5.15.patch \
+           file://0001-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch \
 "
 SRC_URI[sha256sum] = 
"189311d28aa814f106a7b3645211ac52c0b3e2b9f4b348de2f63bab3218086b8"
 
-- 
2.29.2

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#87967): 
https://lists.openembedded.org/g/openembedded-devel/message/87967
Mute This Topic: https://lists.openembedded.org/mt/78301660/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to