lkml.org 
[lkml]   [2018]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 135/140] kbuild: move cc-option and cc-disable-warning after incl. arch Makefile
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Masahiro Yamada <yamada.masahiro@socionext.com>

    commit cfe17c9bbe6a673fdafdab179c32b355ed447f66 upstream.

    Geert reported commit ae6b289a3789 ("kbuild: Set KBUILD_CFLAGS before
    incl. arch Makefile") broke cross-compilation using a cross-compiler
    that supports less compiler options than the host compiler.

    For example,

    cc1: error: unrecognized command line option "-Wno-unused-but-set-variable"

    This problem happens on architectures that setup CROSS_COMPILE in their
    arch/*/Makefile.

    Move the cc-option and cc-disable-warning back to the original position,
    but keep the Clang target options untouched.

    Fixes: ae6b289a3789 ("kbuild: Set KBUILD_CFLAGS before incl. arch Makefile")
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    Makefile | 43 +++++++++++++++++++++++--------------------
    1 file changed, 23 insertions(+), 20 deletions(-)

    --- a/Makefile
    +++ b/Makefile
    @@ -492,26 +492,6 @@ CLANG_GCC_TC := --gcc-toolchain=$(GCC_TO
    endif
    KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
    KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
    -KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
    -KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
    -KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
    -KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
    -KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
    -# Quiet clang warning: comparison of unsigned expression < 0 is always false
    -KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
    -# CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the
    -# source of a reference will be _MergedGlobals and not on of the whitelisted names.
    -# See modpost pattern 2
    -KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
    -KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
    -KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
    -KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
    -else
    -
    -# These warnings generated too much noise in a regular build.
    -# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
    -KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
    -KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
    endif

    ifeq ($(config-targets),1)
    @@ -724,6 +704,29 @@ ifdef CONFIG_CC_STACKPROTECTOR
    endif
    KBUILD_CFLAGS += $(stackp-flag)

    +ifeq ($(cc-name),clang)
    +KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
    +KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
    +KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
    +KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
    +KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
    +# Quiet clang warning: comparison of unsigned expression < 0 is always false
    +KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
    +# CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the
    +# source of a reference will be _MergedGlobals and not on of the whitelisted names.
    +# See modpost pattern 2
    +KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
    +KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
    +KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
    +KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
    +else
    +
    +# These warnings generated too much noise in a regular build.
    +# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
    +KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
    +KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
    +endif
    +
    ifdef CONFIG_FRAME_POINTER
    KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
    else

    \
     
     \ /
      Last update: 2018-03-13 16:45    [W:2.150 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site