Re: [PATCH v2 1/4] ARC: allow to override default mcpu compiler flag
From: Vineet Gupta
Date: Thu Jun 04 2020 - 14:27:38 EST
On 6/4/20 10:39 AM, Eugeniy Paltsev wrote:
> Kernel builds set their own default -mcpu for a given ISA build.
> But that gets in the way of "custom" -mcpu flags from propagating
> into kernel build.
>
> This will also be used in next patches for HSDK-4xD board support which
> uses a different -mcpu to effect dual issue scheduling.
>
> Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@xxxxxxxxxxxx>
Much better. Ack with nit below.
> ---
> arch/arc/Kconfig | 9 +++++++++
> arch/arc/Makefile | 21 +++++++++++++++++++--
> 2 files changed, 28 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
> index ff306246d0f8..7034c217708f 100644
> --- a/arch/arc/Kconfig
> +++ b/arch/arc/Kconfig
> @@ -377,6 +377,15 @@ config ARC_HAS_SWAPE
> bool "Insn: SWAPE (endian-swap)"
> default y
>
> +config ARC_TUNE_MCPU
> + string "Override default -mcpu compiler flag"
> + default ""
> + help
> + Override default -mcpu=xxx compiler flag (which is set depending on
> + the ISA version) with the specified value.
> + NOTE: If specified flag isn't supported by current compiler the
> + ISA default value will be used as a fallback.
> +
> if ISA_ARCV2
>
> config ARC_USE_UNALIGNED_MEM_ACCESS
> diff --git a/arch/arc/Makefile b/arch/arc/Makefile
> index 20e9ab6cc521..2b66e8264174 100644
> --- a/arch/arc/Makefile
> +++ b/arch/arc/Makefile
> @@ -10,8 +10,25 @@ CROSS_COMPILE := $(call cc-cross-prefix, arc-linux- arceb-linux-)
> endif
>
> cflags-y += -fno-common -pipe -fno-builtin -mmedium-calls -D__linux__
> -cflags-$(CONFIG_ISA_ARCOMPACT) += -mA7
> -cflags-$(CONFIG_ISA_ARCV2) += -mcpu=hs38
> +
> +tune-mcpu-def-$(CONFIG_ISA_ARCOMPACT) := -mA7
> +tune-mcpu-def-$(CONFIG_ISA_ARCV2) := -mcpu=hs38
> +
> +ifeq ($(CONFIG_ARC_TUNE_MCPU),"")
> +cflags-y += $(tune-mcpu-def-y)
> +else
> +tune-mcpu := $(shell echo $(CONFIG_ARC_TUNE_MCPU))
> +tune-mcpu-ok := $(call cc-option-yn, $(tune-mcpu))
> +ifeq ($(tune-mcpu-ok),y)
> +cflags-y += $(tune-mcpu)
> +else
> +# The flag provided by 'CONFIG_ARC_TUNE_MCPU' option isn't known by this compiler
> +# (probably the compiler is too old). Use ISA default mcpu flag instead as a safe option.
It is obvious what is done here and the comments can be skipped (no need to repost).
> +$(warning ** WARNING ** CONFIG_ARC_TUNE_MCPU flag '$(tune-mcpu)' is unknown, fallback to '$(tune-mcpu-def-y)')
> +cflags-y += $(tune-mcpu-def-y)
> +endif
> +endif
-Vineet