On 7/18/20 4:51 AM, Wang Hai wrote:
Fix sparse build warning: net/bpf/test_run.c:120:14: warning: symbol 'bpf_fentry_test1' was not declared. Should it be static? net/bpf/test_run.c:125:14: warning: symbol 'bpf_fentry_test2' was not declared. Should it be static? net/bpf/test_run.c:130:14: warning: symbol 'bpf_fentry_test3' was not declared. Should it be static? net/bpf/test_run.c:135:14: warning: symbol 'bpf_fentry_test4' was not declared. Should it be static? net/bpf/test_run.c:140:14: warning: symbol 'bpf_fentry_test5' was not declared. Should it be static? net/bpf/test_run.c:145:14: warning: symbol 'bpf_fentry_test6' was not declared. Should it be static? net/bpf/test_run.c:154:14: warning: symbol 'bpf_fentry_test7' was not declared. Should it be static? net/bpf/test_run.c:159:14: warning: symbol 'bpf_fentry_test8' was not declared. Should it be static? net/bpf/test_run.c:164:14: warning: symbol 'bpf_modify_return_test' was not declared. Should it be static? Reported-by: Hulk Robot <[email protected]> Signed-off-by: Wang Hai <[email protected]>
Please see commit: commit e9ff9d52540a53ce8c9eff5bf8b66467fe81eb2b Author: Jean-Philippe Menil <[email protected]> Date: Fri Mar 27 21:47:13 2020 +0100 bpf: Fix build warning regarding missing prototypes Fix build warnings when building net/bpf/test_run.o with W=1 due to missing prototype for bpf_fentry_test{1..6}. Instead of declaring prototypes, turn off warnings with __diag_{push,ignore,pop} as pointed out by Alexei. You probably use an old compiler (gcc < 8) which is why the warning is emitted.
--- net/bpf/test_run.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/net/bpf/test_run.c b/net/bpf/test_run.c index b03c469cd01f..0d78bd9b6c9d 100644 --- a/net/bpf/test_run.c +++ b/net/bpf/test_run.c @@ -117,32 +117,32 @@ static int bpf_test_finish(const union bpf_attr *kattr, __diag_push(); __diag_ignore(GCC, 8, "-Wmissing-prototypes", "Global functions as their definitions will be in vmlinux BTF"); -int noinline bpf_fentry_test1(int a) +static noinline int bpf_fentry_test1(int a) { return a + 1; }-int noinline bpf_fentry_test2(int a, u64 b)+static noinline int bpf_fentry_test2(int a, u64 b) { return a + b; }-int noinline bpf_fentry_test3(char a, int b, u64 c)+static noinline int bpf_fentry_test3(char a, int b, u64 c) { return a + b + c; }
[...]

