lkml.org 
[lkml]   [2018]   [Nov]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 33/70] x86/build: Use __cc-option for boot code compiler options
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

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

    From: Matthias Kaehlcke <mka@chromium.org>

    commit 032a2c4f65a2f81c93e161a11197ba19bc14a909 upstream.

    cc-option is used to enable compiler options for the boot code if they
    are available. The macro uses KBUILD_CFLAGS and KBUILD_CPPFLAGS for the
    check, however these flags aren't used to build the boot code, in
    consequence cc-option can yield wrong results. For example
    -mpreferred-stack-boundary=2 is never set with a 64-bit compiler,
    since the setting is only valid for 16 and 32-bit binaries. This
    is also the case for 32-bit kernel builds, because the option -m32 is
    added to KBUILD_CFLAGS after the assignment of REALMODE_CFLAGS.

    Use __cc-option instead of cc-option for the boot mode options.
    The macro receives the compiler options as parameter instead of using
    KBUILD_C*FLAGS, for the boot code we pass REALMODE_CFLAGS.

    Also use separate statements for the __cc-option checks instead
    of performing them in the initial assignment of REALMODE_CFLAGS since
    the variable is an input of the macro.

    Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    arch/x86/Makefile | 9 +++++----
    1 file changed, 5 insertions(+), 4 deletions(-)

    --- a/arch/x86/Makefile
    +++ b/arch/x86/Makefile
    @@ -24,10 +24,11 @@ REALMODE_CFLAGS := $(M16_CFLAGS) -g -Os
    -DDISABLE_BRANCH_PROFILING \
    -Wall -Wstrict-prototypes -march=i386 -mregparm=3 \
    -fno-strict-aliasing -fomit-frame-pointer -fno-pic \
    - -mno-mmx -mno-sse \
    - $(call cc-option, -ffreestanding) \
    - $(call cc-option, -fno-stack-protector) \
    - $(call cc-option, -mpreferred-stack-boundary=2)
    + -mno-mmx -mno-sse
    +
    +REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -ffreestanding)
    +REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -fno-stack-protector)
    +REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -mpreferred-stack-boundary=2)
    export REALMODE_CFLAGS

    # BITS is used as extension for files which are available in a 32 bit

    \
     
     \ /
      Last update: 2018-11-26 12:26    [W:5.511 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site