Re: [vfs:hch.aio 7/40] include/linux/syscalls.h:233:18: warning: 'sys_io_pgetevents' alias between functions of incompatible types 'long int(aio_context_t, long int, long int, struct io_event *, struct timespec *, const struct __aio_sigset *)' and 'long int(long int, long int, long int, long int, long int, long int)'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm not seeing anything like this in my i386 builds.  Is this
something new in gcc 8.1?  Also it seems deeply hidden in the syscall
macros, so I might need some help understanding those.

On Tue, May 29, 2018 at 11:12:31AM +0800, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git hch.aio
> head:   89b310a2b28dafbf3958e292785d51b7017da19e
> commit: 7a074e96dee62586c935c80cecd931431bfdd0be [7/40] aio: implement io_pgetevents
> config: i386-randconfig-c0-05290848 (attached as .config)
> compiler: gcc-8 (Debian 8.1.0-3) 8.1.0
> reproduce:
>         git checkout 7a074e96dee62586c935c80cecd931431bfdd0be
>         # save the attached .config to linux build tree
>         make ARCH=i386 
> 
> All warnings (new ones prefixed by >>):
> 
>    In file included from fs/aio.c:19:
>    include/linux/syscalls.h:233:18: warning: 'sys_io_setup' alias between functions of incompatible types 'long int(unsigned int,  aio_context_t *)' and 'long int(long int,  long int)' [-Wattribute-alias]
>      asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
>                      ^~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>      ^~~~~~~~~~~~~~~~~
>    include/linux/syscalls.h:212:36: note: in expansion of macro 'SYSCALL_DEFINEx'
>     #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
>                                        ^~~~~~~~~~~~~~~
>    fs/aio.c:1322:1: note: in expansion of macro 'SYSCALL_DEFINE2'
>     SYSCALL_DEFINE2(io_setup, unsigned, nr_events, aio_context_t __user *, ctxp)
>     ^~~~~~~~~~~~~~~
>    include/linux/syscalls.h:238:18: note: aliased declaration here
>      asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
>                      ^~~~~~~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>      ^~~~~~~~~~~~~~~~~
>    include/linux/syscalls.h:212:36: note: in expansion of macro 'SYSCALL_DEFINEx'
>     #define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
>                                        ^~~~~~~~~~~~~~~
>    fs/aio.c:1322:1: note: in expansion of macro 'SYSCALL_DEFINE2'
>     SYSCALL_DEFINE2(io_setup, unsigned, nr_events, aio_context_t __user *, ctxp)
>     ^~~~~~~~~~~~~~~
> >> include/linux/syscalls.h:233:18: warning: 'sys_io_pgetevents' alias between functions of incompatible types 'long int(aio_context_t,  long int,  long int,  struct io_event *, struct timespec *, const struct __aio_sigset *)' and 'long int(long int,  long int,  long int,  long int,  long int,  long int)' [-Wattribute-alias]
>      asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
>                      ^~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>      ^~~~~~~~~~~~~~~~~
>    include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
>     #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
>                                        ^~~~~~~~~~~~~~~
>    fs/aio.c:1931:1: note: in expansion of macro 'SYSCALL_DEFINE6'
>     SYSCALL_DEFINE6(io_pgetevents,
>     ^~~~~~~~~~~~~~~
>    include/linux/syscalls.h:238:18: note: aliased declaration here
>      asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
>                      ^~~~~~~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>      ^~~~~~~~~~~~~~~~~
>    include/linux/syscalls.h:216:36: note: in expansion of macro 'SYSCALL_DEFINEx'
>     #define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
>                                        ^~~~~~~~~~~~~~~
>    fs/aio.c:1931:1: note: in expansion of macro 'SYSCALL_DEFINE6'
>     SYSCALL_DEFINE6(io_pgetevents,
>     ^~~~~~~~~~~~~~~
>    include/linux/syscalls.h:233:18: warning: 'sys_io_getevents' alias between functions of incompatible types 'long int(aio_context_t,  long int,  long int,  struct io_event *, struct timespec *)' and 'long int(long int,  long int,  long int,  long int,  long int)' [-Wattribute-alias]
>      asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
>                      ^~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>      ^~~~~~~~~~~~~~~~~
>    include/linux/syscalls.h:215:36: note: in expansion of macro 'SYSCALL_DEFINEx'
>     #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
>                                        ^~~~~~~~~~~~~~~
>    fs/aio.c:1913:1: note: in expansion of macro 'SYSCALL_DEFINE5'
>     SYSCALL_DEFINE5(io_getevents, aio_context_t, ctx_id,
>     ^~~~~~~~~~~~~~~
>    include/linux/syscalls.h:238:18: note: aliased declaration here
>      asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
>                      ^~~~~~~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>      ^~~~~~~~~~~~~~~~~
>    include/linux/syscalls.h:215:36: note: in expansion of macro 'SYSCALL_DEFINEx'
>     #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
>                                        ^~~~~~~~~~~~~~~
>    fs/aio.c:1913:1: note: in expansion of macro 'SYSCALL_DEFINE5'
>     SYSCALL_DEFINE5(io_getevents, aio_context_t, ctx_id,
>     ^~~~~~~~~~~~~~~
>    include/linux/syscalls.h:233:18: warning: 'sys_io_cancel' alias between functions of incompatible types 'long int(aio_context_t,  struct iocb *, struct io_event *)' and 'long int(long int,  long int,  long int)' [-Wattribute-alias]
>      asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
>                      ^~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>      ^~~~~~~~~~~~~~~~~
>    include/linux/syscalls.h:213:36: note: in expansion of macro 'SYSCALL_DEFINEx'
>     #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
>                                        ^~~~~~~~~~~~~~~
>    fs/aio.c:1842:1: note: in expansion of macro 'SYSCALL_DEFINE3'
>     SYSCALL_DEFINE3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb,
>     ^~~~~~~~~~~~~~~
>    include/linux/syscalls.h:238:18: note: aliased declaration here
>      asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
>                      ^~~~~~~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>      ^~~~~~~~~~~~~~~~~
>    include/linux/syscalls.h:213:36: note: in expansion of macro 'SYSCALL_DEFINEx'
>     #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
>                                        ^~~~~~~~~~~~~~~
>    fs/aio.c:1842:1: note: in expansion of macro 'SYSCALL_DEFINE3'
>     SYSCALL_DEFINE3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb,
>     ^~~~~~~~~~~~~~~
>    include/linux/syscalls.h:233:18: warning: 'sys_io_submit' alias between functions of incompatible types 'long int(aio_context_t,  long int,  struct iocb **)' and 'long int(long int,  long int,  long int)' [-Wattribute-alias]
>      asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
>                      ^~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>      ^~~~~~~~~~~~~~~~~
>    include/linux/syscalls.h:213:36: note: in expansion of macro 'SYSCALL_DEFINEx'
>     #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
>                                        ^~~~~~~~~~~~~~~
>    fs/aio.c:1767:1: note: in expansion of macro 'SYSCALL_DEFINE3'
>     SYSCALL_DEFINE3(io_submit, aio_context_t, ctx_id, long, nr,
>     ^~~~~~~~~~~~~~~
>    include/linux/syscalls.h:238:18: note: aliased declaration here
>      asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
>                      ^~~~~~~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
>      ^~~~~~~~~~~~~~~~~
>    include/linux/syscalls.h:213:36: note: in expansion of macro 'SYSCALL_DEFINEx'
>     #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
>                                        ^~~~~~~~~~~~~~~
>    fs/aio.c:1767:1: note: in expansion of macro 'SYSCALL_DEFINE3'
>     SYSCALL_DEFINE3(io_submit, aio_context_t, ctx_id, long, nr,
>     ^~~~~~~~~~~~~~~
>    include/linux/syscalls.h:233:18: warning: 'sys_io_destroy' alias between functions of incompatible types 'long int(aio_context_t)' and 'long int(long int)' [-Wattribute-alias]
>      asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \
>                      ^~~
>    include/linux/syscalls.h:222:2: note: in expansion of macro '__SYSCALL_DEFINEx'
>      __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
> 
> vim +233 include/linux/syscalls.h
> 
> 609320c8a Yonghong Song       2017-09-07  219  
> bed1ffca0 Frederic Weisbecker 2009-03-13  220  #define SYSCALL_DEFINEx(x, sname, ...)				\
> 99e621f79 Al Viro             2013-03-05  221  	SYSCALL_METADATA(sname, x, __VA_ARGS__)			\
> bed1ffca0 Frederic Weisbecker 2009-03-13 @222  	__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
> bed1ffca0 Frederic Weisbecker 2009-03-13  223  
> 2cf096668 Al Viro             2013-01-21  224  #define __PROTECT(...) asmlinkage_protect(__VA_ARGS__)
> 1bd21c6c2 Dominik Brodowski   2018-04-05  225  
> e145242ea Dominik Brodowski   2018-04-09  226  /*
> e145242ea Dominik Brodowski   2018-04-09  227   * The asmlinkage stub is aliased to a function named __se_sys_*() which
> e145242ea Dominik Brodowski   2018-04-09  228   * sign-extends 32-bit ints to longs whenever needed. The actual work is
> e145242ea Dominik Brodowski   2018-04-09  229   * done within __do_sys_*().
> e145242ea Dominik Brodowski   2018-04-09  230   */
> 1bd21c6c2 Dominik Brodowski   2018-04-05  231  #ifndef __SYSCALL_DEFINEx
> bed1ffca0 Frederic Weisbecker 2009-03-13  232  #define __SYSCALL_DEFINEx(x, name, ...)					\
> 83460ec8d Andi Kleen          2013-11-12 @233  	asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))	\
> e145242ea Dominik Brodowski   2018-04-09  234  		__attribute__((alias(__stringify(__se_sys##name))));	\
> c9a211951 Howard McLauchlan   2018-03-21  235  	ALLOW_ERROR_INJECTION(sys##name, ERRNO);			\
> e145242ea Dominik Brodowski   2018-04-09  236  	static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
> e145242ea Dominik Brodowski   2018-04-09  237  	asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));	\
> e145242ea Dominik Brodowski   2018-04-09  238  	asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__))	\
> 1a94bc347 Heiko Carstens      2009-01-14  239  	{								\
> e145242ea Dominik Brodowski   2018-04-09  240  		long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
> 07fe6e00f Al Viro             2013-01-21  241  		__MAP(x,__SC_TEST,__VA_ARGS__);				\
> 2cf096668 Al Viro             2013-01-21  242  		__PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__));	\
> 2cf096668 Al Viro             2013-01-21  243  		return ret;						\
> 1a94bc347 Heiko Carstens      2009-01-14  244  	}								\
> e145242ea Dominik Brodowski   2018-04-09  245  	static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
> 1bd21c6c2 Dominik Brodowski   2018-04-05  246  #endif /* __SYSCALL_DEFINEx */
> 1a94bc347 Heiko Carstens      2009-01-14  247  
> 
> :::::: The code at line 233 was first introduced by commit
> :::::: 83460ec8dcac14142e7860a01fa59c267ac4657c syscalls.h: use gcc alias instead of assembler aliases for syscalls
> 
> :::::: TO: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> :::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation


---end quoted text---



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux