* [PATCH 1/7] MIPS: replace cc-option-yn uses with cc-option
[not found] <20210817002109.2736222-1-ndesaulniers@google.com>
@ 2021-08-17 0:21 ` Nick Desaulniers
2021-08-17 1:59 ` Nathan Chancellor
0 siblings, 1 reply; 2+ messages in thread
From: Nick Desaulniers @ 2021-08-17 0:21 UTC (permalink / raw)
To: Masahiro Yamada
Cc: linux-kbuild, clang-built-linux, Nick Desaulniers,
Thomas Bogendoerfer, linux-mips
cc-option-yn can be replaced with cc-option. ie.
Checking for support:
ifeq ($(call cc-option-yn,$(FLAG)),y)
becomes:
ifneq ($(call cc-option,$(FLAG)),)
Checking for lack of support:
ifeq ($(call cc-option-yn,$(FLAG)),n)
becomes:
ifeq ($(call cc-option,$(FLAG)),)
This allows us to pursue removing cc-option-yn.
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: linux-mips@vger.kernel.org
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
---
arch/mips/Makefile | 44 ++++++++++++++++++-------------------
arch/mips/sgi-ip22/Platform | 4 ++--
2 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index ea3cd080a1c7..f4b9850f17fa 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -58,9 +58,7 @@ endif
ifdef CONFIG_FUNCTION_GRAPH_TRACER
ifndef KBUILD_MCOUNT_RA_ADDRESS
- ifeq ($(call cc-option-yn,-mmcount-ra-address), y)
- cflags-y += -mmcount-ra-address -DKBUILD_MCOUNT_RA_ADDRESS
- endif
+ cflags-y += $(call cc-option,-mmcount-ra-address -DKBUILD_MCOUNT_RA_ADDRESS)
endif
endif
cflags-y += $(call cc-option, -mno-check-zero-division)
@@ -208,31 +206,33 @@ cflags-$(CONFIG_CPU_DADDI_WORKAROUNDS) += $(call cc-option,-mno-daddi,)
# been fixed properly.
mips-cflags := $(cflags-y)
ifeq ($(CONFIG_CPU_HAS_SMARTMIPS),y)
-smartmips-ase := $(call cc-option-yn,$(mips-cflags) -msmartmips)
-cflags-$(smartmips-ase) += -msmartmips -Wa,--no-warn
+cflags-y += $(call cc-option,-msmartmips -Wa$(comma)--no-warn)
endif
ifeq ($(CONFIG_CPU_MICROMIPS),y)
-micromips-ase := $(call cc-option-yn,$(mips-cflags) -mmicromips)
-cflags-$(micromips-ase) += -mmicromips
+cflags-y += $(call cc-option,-mmicromips)
endif
ifeq ($(CONFIG_CPU_HAS_MSA),y)
-toolchain-msa := $(call cc-option-yn,$(mips-cflags) -mhard-float -mfp64 -Wa$(comma)-mmsa)
-cflags-$(toolchain-msa) += -DTOOLCHAIN_SUPPORTS_MSA
+ifneq ($(call cc-option,-mhard-float -mfp64 -Wa$(comma)-mmsa),)
+cflags-y += -DTOOLCHAIN_SUPPORTS_MSA
+endif
+endif
+ifneq ($(call cc-option,-mvirt),)
+cflags-y += -DTOOLCHAIN_SUPPORTS_VIRT
endif
-toolchain-virt := $(call cc-option-yn,$(mips-cflags) -mvirt)
-cflags-$(toolchain-virt) += -DTOOLCHAIN_SUPPORTS_VIRT
# For -mmicromips, use -Wa,-fatal-warnings to catch unsupported -mxpa which
# only warns
-xpa-cflags-y := $(mips-cflags)
-xpa-cflags-$(micromips-ase) += -mmicromips -Wa$(comma)-fatal-warnings
-toolchain-xpa := $(call cc-option-yn,$(xpa-cflags-y) -mxpa)
-cflags-$(toolchain-xpa) += -DTOOLCHAIN_SUPPORTS_XPA
-toolchain-crc := $(call cc-option-yn,$(mips-cflags) -Wa$(comma)-mcrc)
-cflags-$(toolchain-crc) += -DTOOLCHAIN_SUPPORTS_CRC
-toolchain-dsp := $(call cc-option-yn,$(mips-cflags) -Wa$(comma)-mdsp)
-cflags-$(toolchain-dsp) += -DTOOLCHAIN_SUPPORTS_DSP
-toolchain-ginv := $(call cc-option-yn,$(mips-cflags) -Wa$(comma)-mginv)
-cflags-$(toolchain-ginv) += -DTOOLCHAIN_SUPPORTS_GINV
+ifneq ($(call cc-option,-mmicromips -Wa$(comma)-fatal-warnings -mxpa),)
+cflags-y += -DTOOLCHAIN_SUPPORTS_XPA
+endif
+ifneq ($(call cc-option,-Wa$(comma)-mcrc),)
+cflags-y += -DTOOLCHAIN_SUPPORTS_CRC
+endif
+ifneq ($(call cc-option,-Wa$(comma)-mdsp),)
+cflags-y += -DTOOLCHAIN_SUPPORTS_DSP
+endif
+ifneq ($(call cc-option,-Wa$(comma)-mginv),)
+cflags-y += -DTOOLCHAIN_SUPPORTS_GINV
+endif
#
# Firmware support
@@ -277,7 +277,7 @@ ifdef CONFIG_64BIT
endif
endif
- ifeq ($(KBUILD_SYM32)$(call cc-option-yn,-msym32), yy)
+ ifeq ($(KBUILD_SYM32)$(call cc-option,-msym32), y-msym32)
cflags-y += -msym32 -DKBUILD_64BIT_SYM32
else
ifeq ($(CONFIG_CPU_DADDI_WORKAROUNDS), y)
diff --git a/arch/mips/sgi-ip22/Platform b/arch/mips/sgi-ip22/Platform
index 62fa30bb959e..fd8f1d01c867 100644
--- a/arch/mips/sgi-ip22/Platform
+++ b/arch/mips/sgi-ip22/Platform
@@ -24,8 +24,8 @@ endif
# Simplified: what IP22 does at 128MB+ in ksegN, IP28 does at 512MB+ in xkphys
#
ifdef CONFIG_SGI_IP28
- ifeq ($(call cc-option-yn,-march=r10000 -mr10k-cache-barrier=store), n)
- $(error gcc doesn't support needed option -mr10k-cache-barrier=store)
+ ifeq ($(call cc-option,-march=r10000 -mr10k-cache-barrier=store),)
+ $(error $(CC) doesn't support needed option -mr10k-cache-barrier=store)
endif
endif
cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=store -I$(srctree)/arch/mips/include/asm/mach-ip28
--
2.33.0.rc1.237.g0d66db33f3-goog
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 1/7] MIPS: replace cc-option-yn uses with cc-option
2021-08-17 0:21 ` [PATCH 1/7] MIPS: replace cc-option-yn uses with cc-option Nick Desaulniers
@ 2021-08-17 1:59 ` Nathan Chancellor
0 siblings, 0 replies; 2+ messages in thread
From: Nathan Chancellor @ 2021-08-17 1:59 UTC (permalink / raw)
To: Nick Desaulniers, Masahiro Yamada
Cc: linux-kbuild, clang-built-linux, Thomas Bogendoerfer, linux-mips
On 8/16/2021 5:21 PM, 'Nick Desaulniers' via Clang Built Linux wrote:
> cc-option-yn can be replaced with cc-option. ie.
> Checking for support:
> ifeq ($(call cc-option-yn,$(FLAG)),y)
> becomes:
> ifneq ($(call cc-option,$(FLAG)),)
>
> Checking for lack of support:
> ifeq ($(call cc-option-yn,$(FLAG)),n)
> becomes:
> ifeq ($(call cc-option,$(FLAG)),)
>
> This allows us to pursue removing cc-option-yn.
>
> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
> Cc: linux-mips@vger.kernel.org
> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
> ---
> arch/mips/Makefile | 44 ++++++++++++++++++-------------------
> arch/mips/sgi-ip22/Platform | 4 ++--
> 2 files changed, 24 insertions(+), 24 deletions(-)
>
> diff --git a/arch/mips/Makefile b/arch/mips/Makefile
> index ea3cd080a1c7..f4b9850f17fa 100644
> --- a/arch/mips/Makefile
> +++ b/arch/mips/Makefile
> @@ -58,9 +58,7 @@ endif
>
> ifdef CONFIG_FUNCTION_GRAPH_TRACER
> ifndef KBUILD_MCOUNT_RA_ADDRESS
> - ifeq ($(call cc-option-yn,-mmcount-ra-address), y)
> - cflags-y += -mmcount-ra-address -DKBUILD_MCOUNT_RA_ADDRESS
> - endif
> + cflags-y += $(call cc-option,-mmcount-ra-address -DKBUILD_MCOUNT_RA_ADDRESS)
> endif
> endif
> cflags-y += $(call cc-option, -mno-check-zero-division)
> @@ -208,31 +206,33 @@ cflags-$(CONFIG_CPU_DADDI_WORKAROUNDS) += $(call cc-option,-mno-daddi,)
> # been fixed properly.
> mips-cflags := $(cflags-y)
> ifeq ($(CONFIG_CPU_HAS_SMARTMIPS),y)
> -smartmips-ase := $(call cc-option-yn,$(mips-cflags) -msmartmips)
> -cflags-$(smartmips-ase) += -msmartmips -Wa,--no-warn
> +cflags-y += $(call cc-option,-msmartmips -Wa$(comma)--no-warn)
I do not think this diff and most of the ones that follow are
equivalent, as you are no longer including the previously checked flags
in the cc-option invocation, which could change the result (options that
follow may depend on a prior selected flag).
I think that as long as you add $(cflags-y) to all of the cc-option
tests, it should be fine. I guess cflags-y could be eliminated but it
looks like this variable exists so that the flags can be added to both
KBUILD_CFLAGS and KBUILD_AFLAGS at the same time so removing it would
duplicate a lot of things.
> endif
> ifeq ($(CONFIG_CPU_MICROMIPS),y)
> -micromips-ase := $(call cc-option-yn,$(mips-cflags) -mmicromips)
> -cflags-$(micromips-ase) += -mmicromips
> +cflags-y += $(call cc-option,-mmicromips)
> endif
> ifeq ($(CONFIG_CPU_HAS_MSA),y)
> -toolchain-msa := $(call cc-option-yn,$(mips-cflags) -mhard-float -mfp64 -Wa$(comma)-mmsa)
> -cflags-$(toolchain-msa) += -DTOOLCHAIN_SUPPORTS_MSA
> +ifneq ($(call cc-option,-mhard-float -mfp64 -Wa$(comma)-mmsa),)
> +cflags-y += -DTOOLCHAIN_SUPPORTS_MSA
> +endif
> +endif
> +ifneq ($(call cc-option,-mvirt),)
> +cflags-y += -DTOOLCHAIN_SUPPORTS_VIRT
> endif
> -toolchain-virt := $(call cc-option-yn,$(mips-cflags) -mvirt)
> -cflags-$(toolchain-virt) += -DTOOLCHAIN_SUPPORTS_VIRT
> # For -mmicromips, use -Wa,-fatal-warnings to catch unsupported -mxpa which
> # only warns
> -xpa-cflags-y := $(mips-cflags)
> -xpa-cflags-$(micromips-ase) += -mmicromips -Wa$(comma)-fatal-warnings
> -toolchain-xpa := $(call cc-option-yn,$(xpa-cflags-y) -mxpa)
> -cflags-$(toolchain-xpa) += -DTOOLCHAIN_SUPPORTS_XPA
> -toolchain-crc := $(call cc-option-yn,$(mips-cflags) -Wa$(comma)-mcrc)
> -cflags-$(toolchain-crc) += -DTOOLCHAIN_SUPPORTS_CRC
> -toolchain-dsp := $(call cc-option-yn,$(mips-cflags) -Wa$(comma)-mdsp)
> -cflags-$(toolchain-dsp) += -DTOOLCHAIN_SUPPORTS_DSP
> -toolchain-ginv := $(call cc-option-yn,$(mips-cflags) -Wa$(comma)-mginv)
> -cflags-$(toolchain-ginv) += -DTOOLCHAIN_SUPPORTS_GINV
> +ifneq ($(call cc-option,-mmicromips -Wa$(comma)-fatal-warnings -mxpa),)
> +cflags-y += -DTOOLCHAIN_SUPPORTS_XPA
> +endif
> +ifneq ($(call cc-option,-Wa$(comma)-mcrc),)
> +cflags-y += -DTOOLCHAIN_SUPPORTS_CRC
> +endif
> +ifneq ($(call cc-option,-Wa$(comma)-mdsp),)
> +cflags-y += -DTOOLCHAIN_SUPPORTS_DSP
> +endif
> +ifneq ($(call cc-option,-Wa$(comma)-mginv),)
> +cflags-y += -DTOOLCHAIN_SUPPORTS_GINV
> +endif
>
> #
> # Firmware support
> @@ -277,7 +277,7 @@ ifdef CONFIG_64BIT
> endif
> endif
>
> - ifeq ($(KBUILD_SYM32)$(call cc-option-yn,-msym32), yy)
> + ifeq ($(KBUILD_SYM32)$(call cc-option,-msym32), y-msym32)
> cflags-y += -msym32 -DKBUILD_64BIT_SYM32
> else
> ifeq ($(CONFIG_CPU_DADDI_WORKAROUNDS), y)
> diff --git a/arch/mips/sgi-ip22/Platform b/arch/mips/sgi-ip22/Platform
> index 62fa30bb959e..fd8f1d01c867 100644
> --- a/arch/mips/sgi-ip22/Platform
> +++ b/arch/mips/sgi-ip22/Platform
> @@ -24,8 +24,8 @@ endif
> # Simplified: what IP22 does at 128MB+ in ksegN, IP28 does at 512MB+ in xkphys
> #
> ifdef CONFIG_SGI_IP28
> - ifeq ($(call cc-option-yn,-march=r10000 -mr10k-cache-barrier=store), n)
> - $(error gcc doesn't support needed option -mr10k-cache-barrier=store)
> + ifeq ($(call cc-option,-march=r10000 -mr10k-cache-barrier=store),)
> + $(error $(CC) doesn't support needed option -mr10k-cache-barrier=store)
Heh :)
> endif
> endif
> cflags-$(CONFIG_SGI_IP28) += -mr10k-cache-barrier=store -I$(srctree)/arch/mips/include/asm/mach-ip28
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-08-17 1:59 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20210817002109.2736222-1-ndesaulniers@google.com>
2021-08-17 0:21 ` [PATCH 1/7] MIPS: replace cc-option-yn uses with cc-option Nick Desaulniers
2021-08-17 1:59 ` Nathan Chancellor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).