From: Cédric Le Goater <[email protected]> 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 <[email protected]> Reviewed-by: Pierrick Bouvier <[email protected]> Reviewed-by: Philippe Mathieu-Daudé <[email protected]> Signed-off-by: Helge Deller <[email protected]> (cherry picked from commit 8268d216a004d884a07db20e973158d81760a07c) Signed-off-by: Michael Tokarev <[email protected]> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 1c546ce1a03..01f5d47b6ac 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -2591,7 +2591,9 @@ struct target_drm_i915_getparam { #define FUTEX_PRIVATE_FLAG 128 #define FUTEX_CLOCK_REALTIME 256 +#ifndef FUTEX_CMD_MASK #define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME) +#endif #ifdef CONFIG_EPOLL #if defined(TARGET_X86_64) -- 2.47.3
