bpftool puts bpf_fentry_test1 into vmlinux.h only because the function is in a kfunc set, which exists to let fmod_ret programs attach to it. A later patch moves it to an fmod_ret set, which does not make a function a kfunc, and the declaration disappears. The tests only compare its address. Declare it explicitly, as get_func_ip_test.c does. The declaration matches the one in vmlinux.h, so it builds both before and after. Signed-off-by: Anton Protopopov --- tools/testing/selftests/bpf/progs/fsession_test.c | 2 ++ tools/testing/selftests/bpf/progs/get_func_ip_fsession_test.c | 2 ++ tools/testing/selftests/bpf/progs/tracing_multi_check.c | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/progs/fsession_test.c b/tools/testing/selftests/bpf/progs/fsession_test.c index 86e8a2fe467e..4295f6a78dd1 100644 --- a/tools/testing/selftests/bpf/progs/fsession_test.c +++ b/tools/testing/selftests/bpf/progs/fsession_test.c @@ -4,6 +4,8 @@ #include #include +extern int bpf_fentry_test1(int a) __ksym; + char _license[] SEC("license") = "GPL"; __u64 test1_entry_result = 0; diff --git a/tools/testing/selftests/bpf/progs/get_func_ip_fsession_test.c b/tools/testing/selftests/bpf/progs/get_func_ip_fsession_test.c index bbeea0d512e3..51a7f605f9c5 100644 --- a/tools/testing/selftests/bpf/progs/get_func_ip_fsession_test.c +++ b/tools/testing/selftests/bpf/progs/get_func_ip_fsession_test.c @@ -3,6 +3,8 @@ #include #include +extern int bpf_fentry_test1(int a) __ksym; + char _license[] SEC("license") = "GPL"; __u64 test1_entry_result = 0; diff --git a/tools/testing/selftests/bpf/progs/tracing_multi_check.c b/tools/testing/selftests/bpf/progs/tracing_multi_check.c index b2959ba71179..9b008ecd6565 100644 --- a/tools/testing/selftests/bpf/progs/tracing_multi_check.c +++ b/tools/testing/selftests/bpf/progs/tracing_multi_check.c @@ -8,7 +8,7 @@ char _license[] SEC("license") = "GPL"; int pid = 0; bool test_cookies = false; -/* bpf_fentry_test1 is exported as kfunc via vmlinux.h */ +extern int bpf_fentry_test1(int a) __ksym; extern const void bpf_fentry_test2 __ksym; extern const void bpf_fentry_test3 __ksym; extern const void bpf_fentry_test4 __ksym; -- 2.43.0