[Devel] [PATCH vz10 5/5] fixup! samples/bpf: fix -Wduplicate-decl-specifier and -Wmissing-declarations

Konstantin Khorenko khorenko at virtuozzo.com
Wed Aug 26 19:49:04 MSK 2026


a kind ping

--
Best regards,

Konstantin Khorenko,
Virtuozzo Linux Kernel Team

On 8/18/26 19:00, Konstantin Khorenko wrote:
> 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 <eva.kurchatova at virtuozzo.com>
>> ---
>>  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 \
> 



More information about the Devel mailing list