diff options
author | Michal Marek <mmarek@suse.com> | 2015-08-19 17:36:41 +0200 |
---|---|---|
committer | Michal Marek <mmarek@suse.com> | 2015-09-04 13:14:10 +0200 |
commit | 5631d9c429857194bd55d7bcd8fa5bdd1a9899a3 (patch) | |
tree | f0424c4fe42eb83bf35a0cda4204aff097a8b192 /scripts | |
parent | d179e22762fd38414c4108acedd5feca4cf7e0d8 (diff) | |
download | op-kernel-dev-5631d9c429857194bd55d7bcd8fa5bdd1a9899a3.zip op-kernel-dev-5631d9c429857194bd55d7bcd8fa5bdd1a9899a3.tar.gz |
kbuild: Fix clang detection
We cannot detect clang before including the arch Makefile, because that
can set the default cross compiler. We also cannot detect clang after
including the arch Makefile, because powerpc wants to know about clang.
Solve this by using an deferred variable. This costs us a few shell
invocations, but this is only a constant number.
Reported-by: Behan Webster <behanw@converseincode.com>
Reported-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Michal Marek <mmarek@suse.com>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Kbuild.include | 4 | ||||
-rw-r--r-- | scripts/Makefile.extrawarn | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include index d3437b8..3523df6 100644 --- a/scripts/Kbuild.include +++ b/scripts/Kbuild.include @@ -128,6 +128,10 @@ cc-option-align = $(subst -functions=0,,\ cc-disable-warning = $(call try-run,\ $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1))) +# cc-name +# Expands to either gcc or clang +cc-name = $(shell $(CC) -v 2>&1 | grep -q "clang version" && echo clang || echo gcc) + # cc-version cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh $(CC)) diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn index f734033..4efedcb 100644 --- a/scripts/Makefile.extrawarn +++ b/scripts/Makefile.extrawarn @@ -56,7 +56,7 @@ endif KBUILD_CFLAGS += $(warning) else -ifeq ($(COMPILER),clang) +ifeq ($(cc-name),clang) KBUILD_CFLAGS += $(call cc-disable-warning, initializer-overrides) KBUILD_CFLAGS += $(call cc-disable-warning, unused-value) KBUILD_CFLAGS += $(call cc-disable-warning, format) |