On Tue, May 29, 2018 at 09:20:01AM +0200, Christoph Hellwig wrote: > 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__) I was seeing this type of mess when trying to build with gcc-8.1, and could not figure it out either. So I just gave up and went back to gcc-7 for the time being. I don't think it's anything new you did here. thanks, greg k-h