diff --git a/package/directfb/0007-libdirect-define-__NR_futex-on-32bit-architectures-u.patch b/package/directfb/0007-libdirect-define-__NR_futex-on-32bit-architectures-u.patch new file mode 100644 index 0000000000..4cbbc5dcc3 --- /dev/null +++ b/package/directfb/0007-libdirect-define-__NR_futex-on-32bit-architectures-u.patch @@ -0,0 +1,43 @@ +From 8ffd68a8dfa1e8671dd8c01b96faffd681deca4e Mon Sep 17 00:00:00 2001 +From: Steffen Persvold +Date: Tue, 25 Jun 2024 14:14:49 +0200 +Subject: [PATCH] libdirect: define __NR_futex on 32bit architectures using + 64-bit time_t + +Newer 32bit architectures like RISCV32 and ARC are using 64bit time_t +from the get go unlike other 32bit architectures, therefore aliasing +__NR_futex to __NR_futex_time64 helps avoid the below errors : + +system.c:242:21: error: '__NR_futex' undeclared (first use in this function) + 242 | ret = syscall( __NR_futex, uaddr, op, val, timeout, uaddr2, val3 ); + | ^~~~~~~~~~ + +Upstream: dead +Signed-off-by: Steffen Persvold +--- + lib/direct/os/linux/glibc/system.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/lib/direct/os/linux/glibc/system.c b/lib/direct/os/linux/glibc/system.c +index 32086a25..7143442b 100644 +--- a/lib/direct/os/linux/glibc/system.c ++++ b/lib/direct/os/linux/glibc/system.c +@@ -213,6 +213,10 @@ direct_getenv( const char *name ) + + /**********************************************************************************************************************/ + ++#if defined(__NR_futex_time64) && !defined(__NR_futex) ++#define __NR_futex __NR_futex_time64 ++#endif ++ + DirectResult + direct_futex( int *uaddr, int op, int val, const struct timespec *timeout, int *uaddr2, int val3 ) + { +@@ -245,4 +249,3 @@ direct_futex( int *uaddr, int op, int val, const struct timespec *timeout, int * + + return DR_OK; + } +- +-- +2.40.1 + diff --git a/package/directfb/Config.in b/package/directfb/Config.in index f4d6b8cbd1..20481f56da 100644 --- a/package/directfb/Config.in +++ b/package/directfb/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_DIRECTFB bool "directfb" - depends on !BR2_RISCV_32 depends on !BR2_STATIC_LIBS # static link issues depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL depends on BR2_INSTALL_LIBSTDCPP @@ -162,7 +161,6 @@ config BR2_PACKAGE_DIRECTFB_TESTS endif # BR2_PACKAGE_DIRECTFB comment "directfb needs a glibc or uClibc toolchain w/ C++, NPTL, gcc >= 4.5, dynamic library" - depends on !BR2_RISCV_32 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_INSTALL_LIBSTDCPP || \ !BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || BR2_TOOLCHAIN_USES_MUSL || \