Re: [PATCH] MIPS: VDSO: Build with `-fno-strict-aliasing'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 26, 2016 at 12:55:45PM +0100, Maciej W. Rozycki wrote:
> Avoid an aliasing issue causing a build error in VDSO:
> 
> In file included from include/linux/srcu.h:34:0,
>                  from include/linux/notifier.h:15,
>                  from ./arch/mips/include/asm/uprobes.h:9,
>                  from include/linux/uprobes.h:61,
>                  from include/linux/mm_types.h:13,
>                  from ./arch/mips/include/asm/vdso.h:14,
>                  from arch/mips/vdso/vdso.h:27,
>                  from arch/mips/vdso/gettimeofday.c:11:
> include/linux/workqueue.h: In function 'work_static':
> include/linux/workqueue.h:186:2: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
>   return *work_data_bits(work) & WORK_STRUCT_STATIC;
>   ^
> cc1: all warnings being treated as errors
> make[2]: *** [arch/mips/vdso/gettimeofday.o] Error 1
> 
> with a CONFIG_DEBUG_OBJECTS_WORK configuration and GCC 5.2.0.  Include 
> `-fno-strict-aliasing' along with compiler options used, as required for 
> kernel code, fixing a problem present since the introduction of VDSO 
> with commit ebb5e78cc634 ("MIPS: Initial implementation of a VDSO").
> 
> Thanks to Tejun for diagnosing this properly!
> 

May I suggest adding:
Fixes: ebb5e78cc634 ("MIPS: Initial implementation of a VDSO")

Patch looks good to me,
Reviewed-by: James Hogan <james.hogan@xxxxxxxxxx>

Cheers
James

> Signed-off-by: Maciej W. Rozycki <macro@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx # v4.3+
> ---
> linux-vdso-strict-aliasing.diff
> Index: linux-sfr-test/arch/mips/vdso/Makefile
> ===================================================================
> --- linux-sfr-test.orig/arch/mips/vdso/Makefile	2016-01-29 14:11:03.000000000 +0000
> +++ linux-sfr-test/arch/mips/vdso/Makefile	2016-05-26 12:37:55.327782000 +0100
> @@ -8,7 +8,8 @@ ccflags-vdso := \
>  	$(filter -march=%,$(KBUILD_CFLAGS))
>  cflags-vdso := $(ccflags-vdso) \
>  	$(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \
> -	-O2 -g -fPIC -fno-common -fno-builtin -G 0 -DDISABLE_BRANCH_PROFILING \
> +	-O2 -g -fPIC -fno-strict-aliasing -fno-common -fno-builtin -G 0 \
> +	-DDISABLE_BRANCH_PROFILING \
>  	$(call cc-option, -fno-stack-protector)
>  aflags-vdso := $(ccflags-vdso) \
>  	$(filter -I%,$(KBUILD_CFLAGS)) \
> 

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux