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

From: Mathieu Malaterre
Date: Mon May 28 2018 - 12:18:41 EST


On Mon, May 28, 2018 at 5:07 PM, Segher Boessenkool
<segher@xxxxxxxxxxxxxxxxxxx> wrote:
> 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.

https://patchwork.kernel.org/patch/10375607/

>
> 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