平台
ubuntu20.04
问题
在linux内核源码目录下执行下面的命令时:
root@ubuntu-vm:/mnt/linux-6.5/tools/testing/selftests/bpf# make
报如下错误:
progs/verifier_netfilter_retcode.c:41:1: error: unknown attribute 'btf_decl_tag' ignored [-Werror,-Wunknown-attributes] __description("bpf_exit with invalid return code. test4") ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ progs/bpf_misc.h:64:44: note: expanded from macro '__description' #define __description(desc) __attribute__((btf_decl_tag("comment:test_description=" desc))) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
原因
目前我是用的是clang12,而btf_decl_tag是在clang14才开始支持的:
https://releases.llvm.org/14.0.0/tools/clang/docs/AttributeReference.html#btf-decl-tag
解决
- LLVM Debian/Ubuntu nightly packages
- 在Ubuntu上配置clang-14的环境
- https://releases.llvm.org/
根据自己的平台架构,下载对应的clang版本,我的是x86_64,下载的是:
clang+llvm-16.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz