Re: [PATCH bpf-next] bpf: Sync include/uapi/linux/bpf.h with tools/include/uapi/linux/bpf.h

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

 



On 8/17/22 11:21 PM, Daniel Borkmann wrote:
[ +Gustavo ]

On 8/17/22 3:05 AM, Dave Marchevsky wrote:
Commit 94dfc73e7cf4 ("treewide: uapi: Replace zero-length arrays with
flexible-array members") modified bpf_lpm_trie_key struct's data member
in include/uapi/linux/bpf.h, but didn't make the same change in tools
dir's copy. Propagate it over and fix comment indentation as well.

This is a nonfunctional change.

Signed-off-by: Dave Marchevsky <davemarchevsky@xxxxxx>

Gustavo, 94dfc73e7cf4 ("treewide: uapi: Replace zero-length arrays with flexible-array members")
breaks BPF when copied from include/uapi/linux/bpf.h to tools/include/uapi/linux/bpf.h :

CI: https://github.com/kernel-patches/bpf/runs/7885234999?check_suite_focus=true

   [...]
     CLNG-BPF [test_maps] map_ptr_kern.o
     CLNG-BPF [test_maps] btf__core_reloc_arrays___diff_arr_val_sz.o
     CLNG-BPF [test_maps] test_bpf_cookie.o
   progs/map_ptr_kern.c:314:26: error: field 'trie_key' with variable sized type 'struct bpf_lpm_trie_key' not at the end of a struct or class is a GNU extension [-Werror,-Wgnu-variable-sized-type-not-at-end]
           struct bpf_lpm_trie_key trie_key;
                                   ^
     CLNG-BPF [test_maps] btf__core_reloc_type_based___diff.o
   1 error generated.
   make: *** [Makefile:521: /tmp/runner/work/bpf/bpf/tools/testing/selftests/bpf/map_ptr_kern.o] Error 1
   make: *** Waiting for unfinished jobs....

If you look at the selftest tools/testing/selftests/bpf/progs/map_ptr_kern.c +314 :

   /* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */
   struct bpf_lpm_trie_key {
         __u32   prefixlen;      /* up to 32 for AF_INET, 128 for AF_INET6 */
         __u8    data[];         /* Arbitrary size */
   };

   struct lpm_key {
         struct bpf_lpm_trie_key trie_key;
         __u32 data;
   };

Did you try to compile the tree (or selftests) with LLVM? I doubt the UX will be nice if everyone
now has to add -Wno-gnu-variable-sized-type-not-at-end ..

Undone here until a different workaround can be found (affects both bpf and bpf-next):

  https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=3024d95a4c521c278a7504ee9e80c57c3a9750e0

Thanks,
Daniel



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux