Greetings!!!

I’m seeing a CLANG-BPF build failure in tools/testing/selftests/bpf
related to conflicting prototypes of bpf_arena_* helpers between
vmlinux.h and bpf_arena_common.h, on mainline kernel.


Error log:

  In file included from progs/arena_strsearch.c:12:
  In file included from tools/testing/selftests/bpf/bpf_arena_strsearch.h:4:
  tools/testing/selftests/bpf/bpf_arena_common.h:47:15:
    error: conflicting types for 'bpf_arena_alloc_pages'
      void __arena* bpf_arena_alloc_pages(void *map,
                                          void __arena *addr,
                                          __u32 page_cnt,
                                          __u32 node_id,
                                          __u64 flags);

  tools/testing/selftests/bpf/tools/include/vmlinux.h:135295:14:
    note: previous declaration is here
      extern void *bpf_arena_alloc_pages(void *p__map,
                                         void *addr__ign,
                                         u32 page_cnt,
                                         int node_id,
                                         u64 flags) __weak __ksym;

  tools/testing/selftests/bpf/bpf_arena_common.h:49:5:
    error: conflicting types for 'bpf_arena_reserve_pages'
      int bpf_arena_reserve_pages(void *map,
                                  void __arena *addr,
                                  __u32 page_cnt) __ksym __weak;

  tools/testing/selftests/bpf/tools/include/vmlinux.h:135297:12:
    note: previous declaration is here
      extern int bpf_arena_reserve_pages(void *p__map,
                                         void *ptr__ign,
                                         u32 page_cnt) __weak __ksym;

  tools/testing/selftests/bpf/bpf_arena_common.h:50:6:
    error: conflicting types for 'bpf_arena_free_pages'
      void bpf_arena_free_pages(void *map,
                                void __arena *ptr,
                                __u32 page_cnt) __ksym __weak;

  tools/testing/selftests/bpf/tools/include/vmlinux.h:135296:13:
    note: previous declaration is here
      extern void bpf_arena_free_pages(void *p__map,
                                       void *ptr__ign,
                                       u32 page_cnt) __weak __ksym;

Tool chain Versions:

gcc (GCC) 14.2.0
# clang --version
clang version 23.0.0git (https://github.com/llvm/llvm-project.git bd6bfba3e50343c112a04b639394ab85be17c29b)

# llc --version
LLVM (http://llvm.org/):
  LLVM version 23.0.0git
  Optimized build.
  Default target: powerpc64le-unknown-linux-gnu
  Host CPU: (unknown)

  Registered Targets:
    bpf     - BPF (host endian)
    bpfeb   - BPF (big endian)
    bpfel   - BPF (little endian)
    ppc32   - PowerPC 32
    ppc32le - PowerPC 32 LE
    ppc64   - PowerPC 64
    ppc64le - PowerPC 64 LE

# objcopy --version | head -1
GNU objcopy version 2.35.2-67.el9_7.1
# ld --version | head -1
GNU ld version 2.35.2-67.el9_7.1


If you happen to fix this, please add below tag.


Reported-by: Venkat Rao Bagalkote <[email protected]>


Regards,

Venkat.



Reply via email to