mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Matthias Kaehlcke <mka@chromium.org>
To: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H . Peter Anvin" <hpa@zytor.com>,
	"H . J . Lu" <hjl.tools@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Michal Marek <mmarek@suse.com>
Cc: x86@kernel.org, linux-kbuild@vger.kernel.org,
	linux-kernel@vger.kernel.org, Michael Davidson <md@google.com>,
	Greg Hackmann <ghackmann@google.com>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Stephen Hines <srhines@google.com>,
	Kees Cook <keescook@chromium.org>, Arnd Bergmann <arnd@arndb.de>,
	Bernhard.Rosenkranzer@linaro.org,
	Peter Foley <pefoley2@pefoley.com>,
	Behan Webster <behanw@converseincode.com>,
	Douglas Anderson <dianders@chromium.org>,
	Matthias Kaehlcke <mka@chromium.org>
Subject: [PATCH v2 1/4] kbuild: Add cc-option-raw macro
Date: Tue, 13 Jun 2017 16:08:51 -0700	[thread overview]
Message-ID: <20170613230854.112282-2-mka@chromium.org> (raw)
In-Reply-To: <20170613230854.112282-1-mka@chromium.org>

cc-option uses KBUILD_CFLAGS and KBUILD_CPPFLAGS when it determines
whether an option is supported or not. This is fine for options used to
build the kernel itself, however some components like the x86 boot code
use a different set of flags.

Add the new macro cc-option-raw which serves the same purpose as
cc-option but has additional parameters. One parameter is the compiler
with which the check should be performed, the other the compiler options
to be used instead KBUILD_C*FLAGS. The compiler parameter allows other
macros like hostcc-option to be implemented on top of cc-option-raw.

Also rework cc-option to make use of cc-option-raw.

Suggested-by: Arnd Bergmann <arnd@arndb.de>
Suggested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
---
Changes in v2:
- Changed macro name from Add cc-option-no-kbuild to cc-option-raw
- Added compiler as parameter to the macro
- Reworked cc-option to make use of cc-option-raw
- Updated commit message

 scripts/Kbuild.include | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 61f87a99bf0a..6dd0d1a921d6 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -108,6 +108,11 @@ as-option = $(call try-run,\
 as-instr = $(call try-run,\
 	printf "%b\n" "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -x assembler -o "$$TMP" -,$(2),$(3))
 
+# cc-option-raw
+# Usage: MY_CFLAGS += $(call cc-option-raw,$(CC),$(MY_CFLAGS),-march=winchip-c6,-march=i586)
+cc-option-raw = $(call try-run,\
+	$(1) -Werror $(2) $(3) -c -x c /dev/null -o "$$TMP",$(3),$(4))
+
 # Do not attempt to build with gcc plugins during cc-option tests.
 # (And this uses delayed resolution so the flags will be up to date.)
 CC_OPTION_CFLAGS = $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
@@ -115,8 +120,8 @@ CC_OPTION_CFLAGS = $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
 # cc-option
 # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
 
-cc-option = $(call try-run,\
-	$(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
+cc-option = $(call cc-option-raw, $(CC), $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS),\
+	$(1), $(2))
 
 # cc-option-yn
 # Usage: flag := $(call cc-option-yn,-march=winchip-c6)
-- 
2.13.1.518.g3df882009-goog

  reply	other threads:[~2017-06-13 23:10 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-13 23:08 [PATCH v2 0/4] x86: stack alignment for boot code and clang Matthias Kaehlcke
2017-06-13 23:08 ` Matthias Kaehlcke [this message]
2017-06-14  1:27   ` [PATCH v2 1/4] kbuild: Add cc-option-raw macro Masahiro Yamada
2017-06-14  7:31     ` Arnd Bergmann
2017-06-14  7:44       ` Masahiro Yamada
2017-06-14  8:32       ` Michal Marek
2017-06-14 16:38         ` Matthias Kaehlcke
2017-06-13 23:08 ` [PATCH v2 2/4] kbuild: Add hostcc-option macro Matthias Kaehlcke
2017-06-14  1:28   ` Masahiro Yamada
2017-06-14  7:26   ` Arnd Bergmann
2017-06-14  7:40     ` Masahiro Yamada
2017-06-13 23:08 ` [PATCH v2 3/4] x86/build: Use cc-option-raw for boot code compiler options Matthias Kaehlcke
2017-06-13 23:08 ` [PATCH v2 4/4] x86/build: Specify stack alignment for clang Matthias Kaehlcke
2017-06-14  1:30 ` [PATCH v2 0/4] x86: stack alignment for boot code and clang Masahiro Yamada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170613230854.112282-2-mka@chromium.org \
    --to=mka@chromium.org \
    --cc=Bernhard.Rosenkranzer@linaro.org \
    --cc=arnd@arndb.de \
    --cc=behanw@converseincode.com \
    --cc=dianders@chromium.org \
    --cc=dwmw2@infradead.org \
    --cc=ghackmann@google.com \
    --cc=hjl.tools@gmail.com \
    --cc=hpa@zytor.com \
    --cc=keescook@chromium.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=md@google.com \
    --cc=mingo@redhat.com \
    --cc=mmarek@suse.com \
    --cc=ndesaulniers@google.com \
    --cc=pefoley2@pefoley.com \
    --cc=srhines@google.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®