[PATCH] tools/sched_ext: avoid redefining SCX_ENQ_IMMED
From: Zhao Mengmeng
Date: Thu Mar 26 2026 - 06:09:40 EST
From: Zhao Mengmeng <zhaomengmeng@xxxxxxxxxx>
Newer kernels generate SCX_ENQ_IMMED from enums.autogen.bpf.h,
while compat.bpf.h still defines a fallback macro unconditionally.
Including both headers then triggers a macro redefinition warning
when building BPF schedulers.
warning: 'SCX_ENQ_IMMED' macro redefined [-Wmacro-redefined]
Fix it by defining the compat fallback only when HAVE_SCX_ENQ_IMMED
is absent.
Fixes: 98d709cba319 ("sched_ext: Implement SCX_ENQ_IMMED")
Signed-off-by: Zhao Mengmeng <zhaomengmeng@xxxxxxxxxx>
---
tools/sched_ext/include/scx/compat.bpf.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/sched_ext/include/scx/compat.bpf.h b/tools/sched_ext/include/scx/compat.bpf.h
index 654b566bd94a..52e6fb9ea211 100644
--- a/tools/sched_ext/include/scx/compat.bpf.h
+++ b/tools/sched_ext/include/scx/compat.bpf.h
@@ -425,7 +425,9 @@ static inline void scx_bpf_dsq_reenq(u64 dsq_id, u64 reenq_flags)
/*
* v7.1: %SCX_ENQ_IMMED.
*/
+#ifndef HAVE_SCX_ENQ_IMMED
#define SCX_ENQ_IMMED __COMPAT_ENUM_OR_ZERO(enum scx_enq_flags, SCX_ENQ_IMMED)
+#endif
/*
* Define sched_ext_ops. This may be expanded to define multiple variants for
--
2.43.0