@samitouri / QOSamiQemu / commits / 8268d216a0

linux-user: Guard local FUTEX_CMD_MASK definition

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. Add a #ifndef guard so the host definition takes precedence when available. The local fallback is kept for older kernel headers (pre-2.6.29) that lack FUTEX_CMD_MASK or define a mask without FUTEX_CLOCK_REALTIME. Signed-off-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com> Signed-off-by: Helge Deller <deller@gmx.de>

Cédric Le Goater committed Jul 22, 2026 at 14:35 UTC 8268d216a004d884a07db20e973158d81760a07c
1 file changed +2
linux-user/syscall_defs.h
+2
@@ -2593,7 +2593,9 @@ struct target_drm_i915_getparam {
2593
2594 #define FUTEX_PRIVATE_FLAG 128
2595 #define FUTEX_CLOCK_REALTIME 256
2596 +#ifndef FUTEX_CMD_MASK
2597 #define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
2598 +#endif
2599
2600 #if defined(TARGET_X86_64)
2601 #define TARGET_EPOLL_PACKED QEMU_PACKED