Patch "bpf: Temporarily define BPF_NO_PRESEVE_ACCESS_INDEX for 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: Temporarily define BPF_NO_PRESEVE_ACCESS_INDEX for 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-temporarily-define-bpf_no_preseve_access_index-f.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 a668f312e0722b178d4031fef62a3889a286377a
Author: Jose E. Marchesi <jose.marchesi@xxxxxxxxxx>
Date:   Tue May 7 11:50:11 2024 +0200

    bpf: Temporarily define BPF_NO_PRESEVE_ACCESS_INDEX for GCC
    
    [ Upstream commit 675b4e24bc50f4600b6bf3527fdbaa1f73498334 ]
    
    The vmlinux.h file generated by bpftool makes use of compiler pragmas
    in order to install the CO-RE preserve_access_index in all the struct
    types derived from the BTF info:
    
      #ifndef __VMLINUX_H__
      #define __VMLINUX_H__
    
      #ifndef BPF_NO_PRESERVE_ACCESS_INDEX
      #pragma clang attribute push (__attribute__((preserve_access_index)), apply_t = record
      #endif
    
      [... type definitions generated from kernel BTF ... ]
    
      #ifndef BPF_NO_PRESERVE_ACCESS_INDEX
      #pragma clang attribute pop
      #endif
    
    The `clang attribute push/pop' pragmas are specific to clang/llvm and
    are not supported by GCC.
    
    At the moment the BTF dumping services in libbpf do not support
    dicriminating between types dumped because they are directly referred
    and types dumped because they are dependencies.  A suitable API is
    being worked now. See [1] and [2].
    
    In the interim, this patch changes the selftests/bpf Makefile so it
    passes -DBPF_NO_PRESERVE_ACCESS_INDEX to GCC when it builds the
    selftests.  This workaround is temporary, and may have an impact on
    the results of the GCC-built tests.
    
    [1] https://lore.kernel.org/bpf/20240503111836.25275-1-jose.marchesi@xxxxxxxxxx/T/#u
    [2] https://lore.kernel.org/bpf/20240504205510.24785-1-jose.marchesi@xxxxxxxxxx/T/#u
    
    Tested in bpf-next master.
    No regressions.
    
    Signed-off-by: Jose E. Marchesi <jose.marchesi@xxxxxxxxxx>
    Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx>
    Link: https://lore.kernel.org/bpf/20240507095011.15867-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 e0f499794f162..24b85060df779 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -412,7 +412,7 @@ endef
 # Build BPF object using GCC
 define GCC_BPF_BUILD_RULE
 	$(call msg,GCC-BPF,$(TRUNNER_BINARY),$2)
-	$(Q)$(BPF_GCC) $3 -Wno-attributes -O2 -c $1 -o $2
+	$(Q)$(BPF_GCC) $3 -DBPF_NO_PRESERVE_ACCESS_INDEX -Wno-attributes -O2 -c $1 -o $2
 endef
 
 SKEL_BLACKLIST := btf__% test_pinning_invalid.c test_sk_assign.c




[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