[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b45f82d0-8bc1-7050-a939-4f5791c6981e@fb.com>
Date: Fri, 4 Jun 2021 08:52:30 -0700
From: Yonghong Song <yhs@...com>
To: kernel test robot <lkp@...el.com>
CC: <kbuild-all@...ts.01.org>, <linux-kernel@...r.kernel.org>,
Daniel Borkmann <daniel@...earbox.net>
Subject: Re: net/bpf/test_run.c:154:14: warning: no previous prototype for
'bpf_fentry_test7'
On 6/4/21 12:50 AM, kernel test robot wrote:
> Hi Yonghong,
>
> FYI, the error/warning still remains.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: f88cd3fb9df228e5ce4e13ec3dbad671ddb2146e
> commit: d923021c2ce12acb50dc7086a1bf66eed82adf6a bpf: Add tests for PTR_TO_BTF_ID vs. null comparison
> date: 11 months ago
> config: x86_64-rhel (attached as .config)
> compiler: gcc-6 (Ubuntu 6.4.0-17ubuntu1) 6.4.0 20180424
> reproduce (this is a W=1 build):
> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d923021c2ce12acb50dc7086a1bf66eed82adf6a
> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout d923021c2ce12acb50dc7086a1bf66eed82adf6a
> # save the attached .config to linux build tree
> make W=1 ARCH=x86_64
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@...el.com>
>
> All warnings (new ones prefixed by >>):
>
> net/bpf/test_run.c:120:14: warning: no previous prototype for 'bpf_fentry_test1' [-Wmissing-prototypes]
> int noinline bpf_fentry_test1(int a)
> ^~~~~~~~~~~~~~~~
> net/bpf/test_run.c:125:14: warning: no previous prototype for 'bpf_fentry_test2' [-Wmissing-prototypes]
> int noinline bpf_fentry_test2(int a, u64 b)
> ^~~~~~~~~~~~~~~~
> net/bpf/test_run.c:130:14: warning: no previous prototype for 'bpf_fentry_test3' [-Wmissing-prototypes]
> int noinline bpf_fentry_test3(char a, int b, u64 c)
> ^~~~~~~~~~~~~~~~
> net/bpf/test_run.c:135:14: warning: no previous prototype for 'bpf_fentry_test4' [-Wmissing-prototypes]
> int noinline bpf_fentry_test4(void *a, char b, int c, u64 d)
> ^~~~~~~~~~~~~~~~
> net/bpf/test_run.c:140:14: warning: no previous prototype for 'bpf_fentry_test5' [-Wmissing-prototypes]
> int noinline bpf_fentry_test5(u64 a, void *b, short c, int d, u64 e)
> ^~~~~~~~~~~~~~~~
> net/bpf/test_run.c:145:14: warning: no previous prototype for 'bpf_fentry_test6' [-Wmissing-prototypes]
> int noinline bpf_fentry_test6(u64 a, void *b, short c, int d, void *e, u64 f)
> ^~~~~~~~~~~~~~~~
>>> net/bpf/test_run.c:154:14: warning: no previous prototype for 'bpf_fentry_test7' [-Wmissing-prototypes]
> int noinline bpf_fentry_test7(struct bpf_fentry_test_t *arg)
> ^~~~~~~~~~~~~~~~
>>> net/bpf/test_run.c:159:14: warning: no previous prototype for 'bpf_fentry_test8' [-Wmissing-prototypes]
> int noinline bpf_fentry_test8(struct bpf_fentry_test_t *arg)
> ^~~~~~~~~~~~~~~~
> net/bpf/test_run.c:164:14: warning: no previous prototype for 'bpf_modify_return_test' [-Wmissing-prototypes]
> int noinline bpf_modify_return_test(int a, int *b)
> ^~~~~~~~~~~~~~~~~~~~~~
I think this has been discussed earlier.
In net/bpf/test_run.c, we have,
__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)
{
return a + 1;
}
...
Unfortunately, the __diag_ignore macro only effective for gcc8 and later.
So for gcc6, the above warning will be emitted. Is it possible for the
tool to check and ignore this error if the gcc version is less than 8?
>
> vim +/bpf_fentry_test7 +154 net/bpf/test_run.c
>
> 153
> > 154 int noinline bpf_fentry_test7(struct bpf_fentry_test_t *arg)
> 155 {
> 156 return (long)arg;
> 157 }
> 158
> > 159 int noinline bpf_fentry_test8(struct bpf_fentry_test_t *arg)
> 160 {
> 161 return (long)arg->a;
> 162 }
> 163
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
>
Powered by blists - more mailing lists