Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tools/sched_ext: Add -fms-extensions to bpf build flags

Similar to commit 835a50753579 ("selftests/bpf: Add -fms-extensions to
bpf build flags") and commit 639f58a0f480 ("bpftool: Fix build warnings
due to MS extensions")

The kernel is now built with -fms-extensions, therefore
generated vmlinux.h contains types like:
struct aes_key {
struct aes_enckey;
union aes_invkey_arch inv_k;
};

struct ns_common {
...
union {
struct ns_tree;
struct callback_head ns_rcu;
};
};

Which raise warning like below when building scx scheduler:

tools/sched_ext/build/include/vmlinux.h:50533:3: warning:
declaration does not declare anything [-Wmissing-declarations]
50533 | struct ns_tree;
| ^
Fix it by using -fms-extensions and -Wno-microsoft-anon-tag flags
to build bpf programs that #include "vmlinux.h"

Signed-off-by: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>

authored by

Zhao Mengmeng and committed by
Tejun Heo
9af832c0 3f27958b

+2
+2
tools/sched_ext/Makefile
··· 122 122 -I../../include \ 123 123 $(call get_sys_includes,$(CLANG)) \ 124 124 -Wall -Wno-compare-distinct-pointer-types \ 125 + -Wno-microsoft-anon-tag \ 126 + -fms-extensions \ 125 127 -O2 -mcpu=v3 126 128 127 129 # sort removes libbpf duplicates when not cross-building