x86/build: Use __cc-option for boot code compiler options
authorMatthias Kaehlcke <mka@chromium.org>
Wed, 21 Jun 2017 23:28:04 +0000 (16:28 -0700)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Sun, 25 Jun 2017 03:48:39 +0000 (12:48 +0900)
commit032a2c4f65a2f81c93e161a11197ba19bc14a909
tree5fc8c6c44b9d8ac92810fee860771da398342510
parent9f3f1fd299768782465cb32cdf0dd4528d11f26b
x86/build: Use __cc-option for boot code compiler options

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>
arch/x86/Makefile