From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konstantin Khorenko Date: Tue, 18 Aug 2026 19:00:39 +0200 Subject: Re: [Devel] [PATCH vz10 5/5] fixup! samples/bpf: fix -Wduplicate-decl-specifier and -Wmissing-declarations In-Reply-To: <20260625181637.1555685-5-eva.kurchatova@virtuozzo.com> References: <20260625181637.1555685-1-eva.kurchatova@virtuozzo.com> <20260625181637.1555685-5-eva.kurchatova@virtuozzo.com> Message-ID: <988f6465-100e-429f-8683-d5f98335a90f@virtuozzo.com> List-Id: i have asked to send this patch to mainstream first. Please, add a link to the mainstream version of the patch to https://virtuozzo.atlassian.net/browse/VSTOR-127585 -- Best regards, Konstantin Khorenko, Virtuozzo Linux Kernel Team On 6/25/26 20:16, Eva Kurchatova wrote: > BPF programs include arch-specific headers, which use address space > qualifiers for percpu variables via __seg_gs / __seg_fs, however those > are meaningless for BPF compiler and will raise a warning > > Fix this by redefining __seg_gs and __seg_fs to a no-op attribute > > Additionally, enable ms-extensions, as generated vmlinux.h uses these > for structure layout inheritance, an acceptable practice in upstream > > https://virtuozzo.atlassian.net/browse/VSTOR-127585 > Feature: fix selftests > > Signed-off-by: Eva Kurchatova > --- > samples/bpf/Makefile | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile > index 2b93779b9cbf..39b20bb69bcd 100644 > --- a/samples/bpf/Makefile > +++ b/samples/bpf/Makefile > @@ -339,9 +339,11 @@ CLANG_SYS_INCLUDES = $(call get_sys_includes,$(CLANG)) > > $(obj)/xdp_router_ipv4.bpf.o: $(obj)/xdp_sample.bpf.o > > +# Generated vmlinux.h uses ms-extensions to inherit struct layout > $(obj)/%.bpf.o: $(src)/%.bpf.c $(obj)/vmlinux.h $(src)/xdp_sample.bpf.h $(src)/xdp_sample_shared.h > @echo " CLANG-BPF " $@ > $(Q)$(CLANG) -g -O2 --target=bpf -D__TARGET_ARCH_$(SRCARCH) \ > + -fms-extensions -Wno-microsoft-anon-tag \ > -Wno-compare-distinct-pointer-types -I$(srctree)/include \ > -I$(srctree)/samples/bpf -I$(srctree)/tools/include \ > -I$(LIBBPF_INCLUDE) $(CLANG_SYS_INCLUDES) \ > @@ -372,11 +374,13 @@ $(BPF_SKELS_LINKED): $(BPF_OBJS_LINKED) $(BPFTOOL) > # with native target, e.g., x64, arm64, etc. 'opt' does bpf CORE IR builtin > # processing (llvm12) and IR optimizations. 'llvm-dis' converts > # 'opt' output to IR, and finally 'llc' generates bpf byte code. > +# Additionally, __seg_gs and __seg_fs are ignored in BPF code > $(obj)/%.o: $(src)/%.c > @echo " CLANG-bpf " $@ > $(Q)$(CLANG) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(BPF_EXTRA_CFLAGS) \ > -I$(obj) -I$(srctree)/tools/testing/selftests/bpf/ \ > -I$(LIBBPF_INCLUDE) $(CLANG_SYS_INCLUDES) \ > + -U__seg_gs -D__seg_gs= -U__seg_fs -D__seg_fs= \ > -D__KERNEL__ -D__BPF_TRACING__ -Wno-unused-value -Wno-pointer-sign \ > -D__TARGET_ARCH_$(SRCARCH) -Wno-compare-distinct-pointer-types \ > -Wno-gnu-variable-sized-type-not-at-end \