tree: https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git syscall-tbl-6.11 head: 9a99991d90521113a738c2a4761a4147fe4b31ca commit: 39f4c859d147bb7d48fa363687c5afa2ab9b2893 [60/98] ARM: OABI SYSCALL_DEFINEx config: arm-allyesconfig (https://download.01.org/0day-ci/archive/20240718/202407181356.BxLqHh6I-lkp@xxxxxxxxx/config) compiler: arm-linux-gnueabi-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240718/202407181356.BxLqHh6I-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202407181356.BxLqHh6I-lkp@xxxxxxxxx/ All error/warnings (new ones prefixed by >>): In file included from arch/arm/kernel/sys_oabi-compat.c:75: >> include/linux/syscalls.h:250:25: error: conflicting types for 'sys_oabi_ipc'; have 'long int(uint, int, int, int, void *)' {aka 'long int(unsigned int, int, int, int, void *)'} 250 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ | ^~~ include/linux/syscalls.h:236:9: note: in expansion of macro '__SYSCALL_DEFINEx' 236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__) | ^~~~~~~~~~~~~~~~~ include/linux/syscalls.h:227:36: note: in expansion of macro 'SYSCALL_DEFINEx' 227 | #define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__) | ^~~~~~~~~~~~~~~ arch/arm/kernel/sys_oabi-compat.c:389:1: note: in expansion of macro 'SYSCALL_DEFINE5' 389 | SYSCALL_DEFINE5(oabi_ipc, uint, call, int, first, int, second, int, third, | ^~~~~~~~~~~~~~~ In file included from arch/arm/kernel/sys_oabi-compat.c:13: arch/arm/include/asm/syscalls.h:36:16: note: previous declaration of 'sys_oabi_ipc' with type 'int(uint, int, int, int, void *, long int)' {aka 'int(unsigned int, int, int, int, void *, long int)'} 36 | asmlinkage int sys_oabi_ipc(uint call, int first, int second, int third, | ^~~~~~~~~~~~ arch/arm/kernel/sys_oabi-compat.c: In function '__do_sys_oabi_ipc': >> arch/arm/kernel/sys_oabi-compat.c:401:83: error: 'fifth' undeclared (first use in this function) 401 | (const struct old_timespec32 __user *)fifth); | ^~~~~ arch/arm/kernel/sys_oabi-compat.c:401:83: note: each undeclared identifier is reported only once for each function it appears in arch/arm/kernel/sys_oabi-compat.c: At top level: >> include/linux/syscalls.h:250:25: error: conflicting types for 'sys_oabi_sendto'; have 'long int(int, void *, size_t, unsigned int)' {aka 'long int(int, void *, unsigned int, unsigned int)'} 250 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ | ^~~ include/linux/syscalls.h:236:9: note: in expansion of macro '__SYSCALL_DEFINEx' 236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__) | ^~~~~~~~~~~~~~~~~ include/linux/syscalls.h:226:36: note: in expansion of macro 'SYSCALL_DEFINEx' 226 | #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__) | ^~~~~~~~~~~~~~~ arch/arm/kernel/sys_oabi-compat.c:448:1: note: in expansion of macro 'SYSCALL_DEFINE4' 448 | SYSCALL_DEFINE4(oabi_sendto, int, fd, void __user *, buff, size_t, len, | ^~~~~~~~~~~~~~~ arch/arm/include/asm/syscalls.h:41:17: note: previous declaration of 'sys_oabi_sendto' with type 'long int(int, void *, size_t, unsigned int, struct sockaddr *, int)' {aka 'long int(int, void *, unsigned int, unsigned int, struct sockaddr *, int)'} 41 | asmlinkage long sys_oabi_sendto(int fd, void __user *buff, | ^~~~~~~~~~~~~~~ arch/arm/kernel/sys_oabi-compat.c: In function '__do_sys_oabi_sendto': >> arch/arm/kernel/sys_oabi-compat.c:452:13: error: 'addrlen' undeclared (first use in this function) 452 | if (addrlen == 112 && | ^~~~~~~ In file included from include/linux/uaccess.h:11, from include/linux/sched/task.h:13, from include/linux/sched/signal.h:9, from include/linux/rcuwait.h:6, from include/linux/percpu-rwsem.h:7, from include/linux/fs.h:33, from include/uapi/linux/aio_abi.h:31, from include/linux/syscalls.h:82: >> arch/arm/kernel/sys_oabi-compat.c:453:34: error: 'addr' undeclared (first use in this function) 453 | get_user(sa_family, &addr->sa_family) == 0 && | ^~~~ arch/arm/include/asm/uaccess.h:184:35: note: in definition of macro '__get_user_check' 184 | register typeof(*(p)) __user *__p asm("r0") = (p); \ | ^ arch/arm/kernel/sys_oabi-compat.c:453:13: note: in expansion of macro 'get_user' 453 | get_user(sa_family, &addr->sa_family) == 0 && | ^~~~~~~~ arch/arm/kernel/sys_oabi-compat.c: In function '__do_sys_oabi_sendmsg': >> arch/arm/kernel/sys_oabi-compat.c:483:16: error: too few arguments to function '__sys_sendmsg' 483 | return __sys_sendmsg(fd, msg, flags); | ^~~~~~~~~~~~~ In file included from arch/arm/kernel/sys_oabi-compat.c:83: include/linux/socket.h:411:13: note: declared here 411 | extern long __sys_sendmsg(int fd, struct user_msghdr __user *msg, | ^~~~~~~~~~~~~ arch/arm/kernel/sys_oabi-compat.c: In function '__do_sys_oabi_socketcall': >> arch/arm/kernel/sys_oabi-compat.c:501:29: error: too many arguments to function 'sys_oabi_sendto' 501 | r = sys_oabi_sendto(a[0], (void __user *)a[1], a[2], a[3], | ^~~~~~~~~~~~~~~ include/linux/syscalls.h:250:25: note: declared here 250 | asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ | ^~~ include/linux/syscalls.h:236:9: note: in expansion of macro '__SYSCALL_DEFINEx' 236 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__) | ^~~~~~~~~~~~~~~~~ include/linux/syscalls.h:226:36: note: in expansion of macro 'SYSCALL_DEFINEx' 226 | #define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__) | ^~~~~~~~~~~~~~~ arch/arm/kernel/sys_oabi-compat.c:448:1: note: in expansion of macro 'SYSCALL_DEFINE4' 448 | SYSCALL_DEFINE4(oabi_sendto, int, fd, void __user *, buff, size_t, len, | ^~~~~~~~~~~~~~~ arch/arm/kernel/sys_oabi-compat.c: In function '__do_sys_oabi_ipc': >> arch/arm/kernel/sys_oabi-compat.c:405:1: warning: control reaches end of non-void function [-Wreturn-type] 405 | } | ^ arch/arm/kernel/sys_oabi-compat.c: In function '__do_sys_oabi_sendto': arch/arm/kernel/sys_oabi-compat.c:457:1: warning: control reaches end of non-void function [-Wreturn-type] 457 | } | ^ arch/arm/kernel/sys_oabi-compat.c: In function '__do_sys_oabi_sendmsg': arch/arm/kernel/sys_oabi-compat.c:484:1: warning: control reaches end of non-void function [-Wreturn-type] 484 | } | ^ vim +250 include/linux/syscalls.h 1bd21c6c21e848 Dominik Brodowski 2018-04-05 239 e145242ea0df6b Dominik Brodowski 2018-04-09 240 /* e145242ea0df6b Dominik Brodowski 2018-04-09 241 * The asmlinkage stub is aliased to a function named __se_sys_*() which e145242ea0df6b Dominik Brodowski 2018-04-09 242 * sign-extends 32-bit ints to longs whenever needed. The actual work is e145242ea0df6b Dominik Brodowski 2018-04-09 243 * done within __do_sys_*(). e145242ea0df6b Dominik Brodowski 2018-04-09 244 */ 1bd21c6c21e848 Dominik Brodowski 2018-04-05 245 #ifndef __SYSCALL_DEFINEx bed1ffca022cc8 Frederic Weisbecker 2009-03-13 246 #define __SYSCALL_DEFINEx(x, name, ...) \ bee20031772af3 Arnd Bergmann 2018-06-19 247 __diag_push(); \ bee20031772af3 Arnd Bergmann 2018-06-19 248 __diag_ignore(GCC, 8, "-Wattribute-alias", \ bee20031772af3 Arnd Bergmann 2018-06-19 249 "Type aliasing is used to sanitize syscall arguments");\ 83460ec8dcac14 Andi Kleen 2013-11-12 @250 asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ e145242ea0df6b Dominik Brodowski 2018-04-09 251 __attribute__((alias(__stringify(__se_sys##name)))); \ c9a211951c7c79 Howard McLauchlan 2018-03-21 252 ALLOW_ERROR_INJECTION(sys##name, ERRNO); \ e145242ea0df6b Dominik Brodowski 2018-04-09 253 static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ e145242ea0df6b Dominik Brodowski 2018-04-09 254 asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \ e145242ea0df6b Dominik Brodowski 2018-04-09 255 asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ 1a94bc34768e46 Heiko Carstens 2009-01-14 256 { \ e145242ea0df6b Dominik Brodowski 2018-04-09 257 long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\ 07fe6e00f6cca6 Al Viro 2013-01-21 258 __MAP(x,__SC_TEST,__VA_ARGS__); \ 2cf0966683430b Al Viro 2013-01-21 259 __PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__)); \ 2cf0966683430b Al Viro 2013-01-21 260 return ret; \ 1a94bc34768e46 Heiko Carstens 2009-01-14 261 } \ bee20031772af3 Arnd Bergmann 2018-06-19 262 __diag_pop(); \ e145242ea0df6b Dominik Brodowski 2018-04-09 263 static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) 1bd21c6c21e848 Dominik Brodowski 2018-04-05 264 #endif /* __SYSCALL_DEFINEx */ 1a94bc34768e46 Heiko Carstens 2009-01-14 265 :::::: The code at line 250 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 CI Kernel Test Service https://github.com/intel/lkp-tests/wiki