Message ID | 1540905994-6073-1-git-send-email-yamada.masahiro@socionext.com |
---|---|
State | Accepted |
Commit | 076f421da5d4594d0a3e60c032ccf02ba55e868a |
Headers | show |
Series | [v2,1/2] kbuild: replace cc-name test with CONFIG_CC_IS_CLANG | expand |
Hi Masahiro, On Tue, Oct 30, 2018 at 10:26:33PM +0900, Masahiro Yamada wrote: > Evaluating cc-name invokes the compiler every time even when you are > not compiling anything, like 'make help'. This is not efficient. > > The compiler type has been already detected in the Kconfig stage. > Use CONFIG_CC_IS_CLANG, instead. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc) Looks good to me: Acked-by: Paul Burton <paul.burton@mips.com> (MIPS) Thanks, Paul
On Tue, 30 Oct 2018 at 23:58, Masahiro Yamada <yamada.masahiro@socionext.com> wrote: > > Evaluating cc-name invokes the compiler every time even when you are > not compiling anything, like 'make help'. This is not efficient. > > The compiler type has been already detected in the Kconfig stage. > Use CONFIG_CC_IS_CLANG, instead. Thanks, I didn't know about this. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc) Acked-by: Joel Stanley <joel@jms.id.au> Cheers, Joel
diff --git a/Makefile b/Makefile index 0a42d06..1c0696d 100644 --- a/Makefile +++ b/Makefile @@ -707,7 +707,7 @@ stackp-flags-$(CONFIG_STACKPROTECTOR_STRONG) := -fstack-protector-strong KBUILD_CFLAGS += $(stackp-flags-y) -ifeq ($(cc-name),clang) +ifdef CONFIG_CC_IS_CLANG KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,) KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier) KBUILD_CFLAGS += $(call cc-disable-warning, gnu) diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 15a84cf..6841049 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@ -128,7 +128,7 @@ cflags-y += -ffreestanding # clang's output will be based upon the build machine. So for clang we simply # unconditionally specify -EB or -EL as appropriate. # -ifeq ($(cc-name),clang) +ifdef CONFIG_CC_IS_CLANG cflags-$(CONFIG_CPU_BIG_ENDIAN) += -EB cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -EL else diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile index 34605ca..58a0315 100644 --- a/arch/mips/vdso/Makefile +++ b/arch/mips/vdso/Makefile @@ -10,7 +10,7 @@ ccflags-vdso := \ $(filter -march=%,$(KBUILD_CFLAGS)) \ -D__VDSO__ -ifeq ($(cc-name),clang) +ifdef CONFIG_CC_IS_CLANG ccflags-vdso += $(filter --target=%,$(KBUILD_CFLAGS)) endif diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 17be664..8a2ce14 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -96,7 +96,7 @@ aflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mabi=elfv1) aflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mabi=elfv2 endif -ifneq ($(cc-name),clang) +ifndef CONFIG_CC_IS_CLANG cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mno-strict-align endif @@ -175,7 +175,7 @@ endif # Work around gcc code-gen bugs with -pg / -fno-omit-frame-pointer in gcc <= 4.8 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44199 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52828 -ifneq ($(cc-name),clang) +ifndef CONFIG_CC_IS_CLANG CC_FLAGS_FTRACE += $(call cc-ifversion, -lt, 0409, -mno-sched-epilog) endif endif diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn index 24b2fb1..800a10f 100644 --- a/scripts/Makefile.extrawarn +++ b/scripts/Makefile.extrawarn @@ -64,7 +64,7 @@ endif KBUILD_CFLAGS += $(warning) else -ifeq ($(cc-name),clang) +ifdef CONFIG_CC_IS_CLANG KBUILD_CFLAGS += $(call cc-disable-warning, initializer-overrides) KBUILD_CFLAGS += $(call cc-disable-warning, unused-value) KBUILD_CFLAGS += $(call cc-disable-warning, format)