Re: [PATCH] powerpc/Makefile: fix build failure by disabling attribute-alias warning

From: Segher Boessenkool
Date: Mon May 28 2018 - 11:08:24 EST


On Mon, May 28, 2018 at 02:39:37PM +0000, Christophe Leroy wrote:
> In file included from arch/powerpc/kernel/syscalls.c:24:
> ./include/linux/syscalls.h:233:18: warning: 'sys_mmap2' alias between
> functions of incompatible types 'long int(long unsigned int, size_t,
> long unsigned int, long unsigned int, long unsigned int, long
> unsigned int)' {aka 'long int(long unsigned int, unsigned int, long
> unsigned int, long unsigned int, long unsigned int, long unsigned
> int)'} and 'long int(long int, long int, long int, long int, long
> int, long int)' [-Wattribute-alias]

So yes, these are actually different (int vs. long).

> In file included from arch/powerpc/kernel/signal_32.c:29:
> ./include/linux/syscalls.h:233:18: warning: 'sys_swapcontext' alias
> between functions of incompatible types 'long int(struct ucontext *,
> struct ucontext *, long int)' and 'long int(long int, long int, long
> int)' [-Wattribute-alias]

And this one is quite spectacularly different.


Try putting this before the wacko aliases:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wattribute-alias"

and this after:

#pragma GCC diagnostic pop

so that you will get this quite useful warning for all other code.


Segher