Patch "bpf: Use -Wno-error in certain tests when building with GCC" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    bpf: Use -Wno-error in certain tests when building with GCC

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     bpf-use-wno-error-in-certain-tests-when-building-wit.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit bd5366d67aa5d67fda93b001e548d64da68927d5
Author: Jose E. Marchesi <jose.marchesi@xxxxxxxxxx>
Date:   Sat Jan 27 11:07:02 2024 +0100

    bpf: Use -Wno-error in certain tests when building with GCC
    
    [ Upstream commit 646751d523587cfd7ebcf1733298ecd470879eda ]
    
    Certain BPF selftests contain code that, albeit being legal C, trigger
    warnings in GCC that cannot be disabled.  This is the case for example
    for the tests
    
      progs/btf_dump_test_case_bitfields.c
      progs/btf_dump_test_case_namespacing.c
      progs/btf_dump_test_case_packing.c
      progs/btf_dump_test_case_padding.c
      progs/btf_dump_test_case_syntax.c
    
    which contain struct type declarations inside function parameter
    lists.  This is problematic, because:
    
    - The BPF selftests are built with -Werror.
    
    - The Clang and GCC compilers sometimes differ when it comes to handle
      warnings.  in the handling of warnings.  One compiler may emit
      warnings for code that the other compiles compiles silently, and one
      compiler may offer the possibility to disable certain warnings, while
      the other doesn't.
    
    In order to overcome this problem, this patch modifies the
    tools/testing/selftests/bpf/Makefile in order to:
    
    1. Enable the possibility of specifing per-source-file extra CFLAGS.
       This is done by defining a make variable like:
    
       <source-filename>-CFLAGS := <whateverflags>
    
       And then modifying the proper Make rule in order to use these flags
       when compiling <source-filename>.
    
    2. Use the mechanism above to add -Wno-error to CFLAGS for the
       following selftests:
    
       progs/btf_dump_test_case_bitfields.c
       progs/btf_dump_test_case_namespacing.c
       progs/btf_dump_test_case_packing.c
       progs/btf_dump_test_case_padding.c
       progs/btf_dump_test_case_syntax.c
    
       Note the corresponding -CFLAGS variables for these files are
       defined only if the selftests are being built with GCC.
    
    Note that, while compiler pragmas can generally be used to disable
    particular warnings per file, this 1) is only possible for warning
    that actually can be disabled in the command line, i.e. that have
    -Wno-FOO options, and 2) doesn't apply to -Wno-error.
    
    Tested in bpf-next master branch.
    No regressions.
    
    Signed-off-by: Jose E. Marchesi <jose.marchesi@xxxxxxxxxx>
    Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/bpf/20240127100702.21549-1-jose.marchesi@xxxxxxxxxx
    Stable-dep-of: 3ece93a4087b ("selftests/bpf: Fix wrong binary in Makefile log output")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index 598cd118dfd65..397306f5cf911 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -56,6 +56,15 @@ TEST_INST_SUBDIRS := no_alu32
 ifneq ($(BPF_GCC),)
 TEST_GEN_PROGS += test_progs-bpf_gcc
 TEST_INST_SUBDIRS += bpf_gcc
+
+# The following tests contain C code that, although technically legal,
+# triggers GCC warnings that cannot be disabled: declaration of
+# anonymous struct types in function parameter lists.
+progs/btf_dump_test_case_bitfields.c-CFLAGS := -Wno-error
+progs/btf_dump_test_case_namespacing.c-CFLAGS := -Wno-error
+progs/btf_dump_test_case_packing.c-CFLAGS := -Wno-error
+progs/btf_dump_test_case_padding.c-CFLAGS := -Wno-error
+progs/btf_dump_test_case_syntax.c-CFLAGS := -Wno-error
 endif
 
 ifneq ($(CLANG_CPUV4),)
@@ -492,7 +501,8 @@ $(TRUNNER_BPF_OBJS): $(TRUNNER_OUTPUT)/%.bpf.o:				\
 		     $(wildcard $(BPFDIR)/*.bpf.h)			\
 		     | $(TRUNNER_OUTPUT) $$(BPFOBJ)
 	$$(call $(TRUNNER_BPF_BUILD_RULE),$$<,$$@,			\
-					  $(TRUNNER_BPF_CFLAGS))
+					  $(TRUNNER_BPF_CFLAGS)         \
+					  $$($$<-CFLAGS))
 
 $(TRUNNER_BPF_SKELS): %.skel.h: %.bpf.o $(BPFTOOL) | $(TRUNNER_OUTPUT)
 	$$(call msg,GEN-SKEL,$(TRUNNER_BINARY),$$@)




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux