Messages in this thread | | | Subject | Re: syscalls: incompatible types and aliases on i386 | From | Randy Dunlap <> | Date | Sun, 24 Jun 2018 19:22:44 -0700 |
| |
On 06/24/2018 04:51 PM, Randy Dunlap wrote: > Hi, > > I'm seeing lots of this type of warning in 4.18-rc2 (maybe even before, > but this is on x86_32/i386, so maybe people aren't checking it so much?): > > In file included from ../arch/x86/kernel/process_32.c:40: > ../include/linux/syscalls.h:234:18: warning: 'sys_arch_prctl' alias between functions of incompatible types 'long int(int, long unsigned int)' and 'long int(long int, long int)' [-Wattribute-alias] > asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ > ^~~ > ../include/linux/syscalls.h:223: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_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__) > ^~~~~~~~~~~~~~~ > ../arch/x86/kernel/process_32.c:310:1: note: in expansion of macro 'SYSCALL_DEFINE2' > SYSCALL_DEFINE2(arch_prctl, int, option, unsigned long, arg2) > ^~~~~~~~~~~~~~~ > ../include/linux/syscalls.h:239:18: note: aliased declaration here > asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ > ^~~~~~~~ > ../include/linux/syscalls.h:223: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_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__) > ^~~~~~~~~~~~~~~ > ../arch/x86/kernel/process_32.c:310:1: note: in expansion of macro 'SYSCALL_DEFINE2' > SYSCALL_DEFINE2(arch_prctl, int, option, unsigned long, arg2) > ^~~~~~~~~~~~~~~ > > > > I see around 300 of these. > Using: gcc (SUSE Linux) 8.1.1 20180523 [gcc-8-branch revision 260570] > > Is there a patch for this?
Found it.
thnx, -- ~Randy
| |