[jolsa-perf:bpf/batch 16/27] include/linux/bpf_verifier.h:513: undefined reference to `btf_obj_id'

From: kernel test robot
Date: Sat Aug 28 2021 - 19:59:02 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/batch
head: b81b17307e02f8e6d4abf87e7ec2d7e5aea1e0b5
commit: 2c1de2c23766232f27faf7c1af1a892c83e89377 [16/27] bpf: Add bpf_trampoline_multi_get/put functions
config: i386-randconfig-a016-20210829 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/commit/?id=2c1de2c23766232f27faf7c1af1a892c83e89377
git remote add jolsa-perf https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
git fetch --no-tags jolsa-perf bpf/batch
git checkout 2c1de2c23766232f27faf7c1af1a892c83e89377
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

ld: kernel/bpf/trampoline.o: in function `bpf_trampoline_compute_key':
>> include/linux/bpf_verifier.h:513: undefined reference to `btf_obj_id'
ld: kernel/bpf/trampoline.o: in function `bpf_trampoline_multi_get':
>> kernel/bpf/trampoline.c:672: undefined reference to `bpf_check_attach_target'


vim +513 include/linux/bpf_verifier.h

ab3f0063c48c26 Jakub Kicinski 2017-11-03 500
51c39bb1d5d105 Alexei Starovoitov 2020-01-09 501 int check_ctx_reg(struct bpf_verifier_env *env,
51c39bb1d5d105 Alexei Starovoitov 2020-01-09 502 const struct bpf_reg_state *reg, int regno);
e5069b9c23b385 Dmitrii Banshchikov 2021-02-13 503 int check_mem_reg(struct bpf_verifier_env *env, struct bpf_reg_state *reg,
e5069b9c23b385 Dmitrii Banshchikov 2021-02-13 504 u32 regno, u32 mem_size);
51c39bb1d5d105 Alexei Starovoitov 2020-01-09 505
f7b12b6fea0098 Toke Høiland-Jørgensen 2020-09-25 506 /* this lives here instead of in bpf.h because it needs to dereference tgt_prog */
f7b12b6fea0098 Toke Høiland-Jørgensen 2020-09-25 507 static inline u64 bpf_trampoline_compute_key(const struct bpf_prog *tgt_prog,
22dc4a0f5ed11b Andrii Nakryiko 2020-12-03 508 struct btf *btf, u32 btf_id)
f7b12b6fea0098 Toke Høiland-Jørgensen 2020-09-25 509 {
22dc4a0f5ed11b Andrii Nakryiko 2020-12-03 510 if (tgt_prog)
22dc4a0f5ed11b Andrii Nakryiko 2020-12-03 511 return ((u64)tgt_prog->aux->id << 32) | btf_id;
22dc4a0f5ed11b Andrii Nakryiko 2020-12-03 512 else
22dc4a0f5ed11b Andrii Nakryiko 2020-12-03 @513 return ((u64)btf_obj_id(btf) << 32) | 0x80000000 | btf_id;
f7b12b6fea0098 Toke Høiland-Jørgensen 2020-09-25 514 }
f7b12b6fea0098 Toke Høiland-Jørgensen 2020-09-25 515

:::::: The code at line 513 was first introduced by commit
:::::: 22dc4a0f5ed11b6dc8fd73a0892fa0ea1a4c3cdf bpf: Remove hard-coded btf_vmlinux assumption from BPF verifier

:::::: TO: Andrii Nakryiko <andrii@xxxxxxxxxx>
:::::: CC: Alexei Starovoitov <ast@xxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip