[PATCH] linux-user: Remove local FUTEX_CMD_MASK definition

Cédric Le Goater posted 1 patch 2 days, 23 hours ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260722083253.528442-1-clg@redhat.com
Maintainers: Laurent Vivier <laurent@vivier.eu>, Helge Deller <deller@gmx.de>, Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
linux-user/syscall_defs.h | 1 -
1 file changed, 1 deletion(-)
[PATCH] linux-user: Remove local FUTEX_CMD_MASK definition
Posted by Cédric Le Goater 2 days, 23 hours ago
Building linux-user on a host with Linux 7.2 kernel headers fails with
a macro redefinition error for FUTEX_CMD_MASK. The kernel commit
3ca9595d9fb6 ("futex: Add support for unlocking robust futexes")
expanded the mask to include the new FUTEX_ROBUST_UNLOCK and
FUTEX_ROBUST_LIST32 flags, which conflicts with QEMU's local
definition.

Since the host FUTEX_CMD_MASK is always available, remove the local
copy.

Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 linux-user/syscall_defs.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 5799769f832fd953fe731a33ad7746113dff9957..c17013beac6f6b6407290c318310b7bb820c590b 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2593,7 +2593,6 @@ struct target_drm_i915_getparam {
 
 #define FUTEX_PRIVATE_FLAG      128
 #define FUTEX_CLOCK_REALTIME    256
-#define FUTEX_CMD_MASK          ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
 
 #if defined(TARGET_X86_64)
 #define TARGET_EPOLL_PACKED QEMU_PACKED
-- 
2.55.0


Re: [PATCH] linux-user: Remove local FUTEX_CMD_MASK definition
Posted by Laurent Vivier 2 days, 20 hours ago
On 7/22/26 10:32, Cédric Le Goater wrote:
> Building linux-user on a host with Linux 7.2 kernel headers fails with
> a macro redefinition error for FUTEX_CMD_MASK. The kernel commit
> 3ca9595d9fb6 ("futex: Add support for unlocking robust futexes")
> expanded the mask to include the new FUTEX_ROBUST_UNLOCK and
> FUTEX_ROBUST_LIST32 flags, which conflicts with QEMU's local
> definition.
> 
> Since the host FUTEX_CMD_MASK is always available, remove the local
> copy.
> 
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
>   linux-user/syscall_defs.h | 1 -
>   1 file changed, 1 deletion(-)
> 
> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> index 5799769f832fd953fe731a33ad7746113dff9957..c17013beac6f6b6407290c318310b7bb820c590b 100644
> --- a/linux-user/syscall_defs.h
> +++ b/linux-user/syscall_defs.h
> @@ -2593,7 +2593,6 @@ struct target_drm_i915_getparam {
>   
>   #define FUTEX_PRIVATE_FLAG      128
>   #define FUTEX_CLOCK_REALTIME    256
> -#define FUTEX_CMD_MASK          ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)

To build with older kernel, I think we need to have:

#ifndef FUTEX_CMD_MASK
#define FUTEX_CMD_MASK          ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
#endif

Thanks,
Laurent
>   
>   #if defined(TARGET_X86_64)
>   #define TARGET_EPOLL_PACKED QEMU_PACKED