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

Configure Feed

Select the types of activity you want to include in your feed.

bpftool: Fix build warnings due to MS extensions

The kernel is now built with -fms-extensions. Anonymous structs or
unions permitted by these extensions have been used in several places,
and can end up in the generated vmlinux.h file, for example:

struct ns_tree {
[...]
};

[...]

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

Trying to include this header for compiling a tool may result in build
warnings, if the compiler does not expect these extensions. This is the
case, for example, with bpftool:

In file included from skeleton/pid_iter.bpf.c:3:
.../tools/testing/selftests/bpf/tools/build/bpftool/vmlinux.h:64057:3:
warning: declaration does not declare anything
[-Wmissing-declarations]
64057 | struct ns_tree;
| ^~~~~~~~~~~~~~

Fix these build warnings in bpftool by turning on Microsoft extensions
when compiling the two BPF programs that rely on vmlinux.h.

Reported-by: Alexei Starovoitov <ast@kernel.org>
Closes: https://lore.kernel.org/bpf/CAADnVQK9ZkPC7+R5VXKHVdtj8tumpMXm7BTp0u9CoiFLz_aPTg@mail.gmail.com/
Signed-off-by: Quentin Monnet <qmo@kernel.org>
Link: https://lore.kernel.org/r/20251208130748.68371-1-qmo@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>

authored by

Quentin Monnet and committed by
Alexei Starovoitov
639f58a0 861111b6

+2
+2
tools/bpf/bpftool/Makefile
··· 224 224 225 225 $(OUTPUT)%.bpf.o: skeleton/%.bpf.c $(OUTPUT)vmlinux.h $(LIBBPF_BOOTSTRAP) 226 226 $(QUIET_CLANG)$(CLANG) \ 227 + -Wno-microsoft-anon-tag \ 228 + -fms-extensions \ 227 229 -I$(or $(OUTPUT),.) \ 228 230 -I$(srctree)/tools/include/uapi/ \ 229 231 -I$(LIBBPF_BOOTSTRAP_INCLUDE) \