• Maciej W. Rozycki's avatar
    MIPS: VDSO: Build with `-fno-strict-aliasing' · 94cc36b8
    Maciej W. Rozycki authored
    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 ebb5e78c
     ("MIPS: Initial implementation of a VDSO").
    Thanks to Tejun for diagnosing this properly!
    Signed-off-by: default avatarMaciej W. Rozycki <macro@imgtec.com>
    Reviewed-by: default avatarJames Hogan <james.hogan@imgtec.com>
    Fixes: ebb5e78c ("MIPS: Initial implementation of a VDSO")
    Cc: Tejun Heo <tj@kernel.org>
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org # v4.3+
    Patchwork: https://patchwork.linux-mips.org/patch/13357/
    Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>