[U-Boot] [PATCH] ARM: move -march=* and -mtune= options to arch/arm/Makefile

Albert ARIBAUD albert.u.boot at aribaud.net
Thu Apr 2 08:58:04 CEST 2015


Hello Masahiro,

On Tue, 10 Feb 2015 19:52:56 +0900, Masahiro Yamada <yamada.m at jp.panasonic.com> wrote:
> My main motivation for this commit:
> 
> [1] Follow the arch/arm/Makefile style of Linux Kernel
> 
> [2] Maintain compiler options systematically
>   Currently, we give -march=* and -mtune=* options inconsistently:
>   Only some of the CPUs pass -march=* and -mtune=* options.
>   By collecting flags into the arch/arm/Makefile, we can tell which
>   options are missing at a glance.
> 
> [3] Prepare for deprecating arch/*/cpu/*/config.mk
> 
> Note:
>   This commit just moves the compiler options so as not to change
>   the behavior at all.  It does not care the correctness of the
>   given options.  Fox example, "-march=armv5te" might be better than
>   "-march=armv4" for ARM946EJS, but it is beyond the scope this
>   commit.  Also, filling the missing -march=* and -tune=* is left
>   to follow-up patches.
> 
> Signed-off-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
> ---
> 
>  arch/arm/Makefile                | 32 ++++++++++++++++++++++++++++++++
>  arch/arm/cpu/arm1136/config.mk   |  9 ---------
>  arch/arm/cpu/arm1176/config.mk   |  9 ---------
>  arch/arm/cpu/arm720t/config.mk   |  9 ---------
>  arch/arm/cpu/arm920t/config.mk   |  8 --------
>  arch/arm/cpu/arm926ejs/config.mk |  8 --------
>  arch/arm/cpu/arm946es/config.mk  |  8 --------
>  arch/arm/cpu/armv7/config.mk     |  5 -----
>  arch/arm/cpu/armv8/config.mk     |  2 --
>  arch/arm/cpu/pxa/config.mk       |  2 --
>  arch/arm/cpu/sa1100/config.mk    |  9 ---------
>  11 files changed, 32 insertions(+), 69 deletions(-)
>  delete mode 100644 arch/arm/cpu/arm1136/config.mk
>  delete mode 100644 arch/arm/cpu/arm1176/config.mk
>  delete mode 100644 arch/arm/cpu/arm720t/config.mk
>  delete mode 100644 arch/arm/cpu/arm920t/config.mk
>  delete mode 100644 arch/arm/cpu/arm926ejs/config.mk
>  delete mode 100644 arch/arm/cpu/arm946es/config.mk
>  delete mode 100644 arch/arm/cpu/sa1100/config.mk
> 
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index ebb7dc3..b63544f 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -2,6 +2,38 @@
>  # SPDX-License-Identifier:	GPL-2.0+
>  #
>  
> +# This selects which instruction set is used.
> +arch-$(CONFIG_CPU_ARM720T)	=-march=armv4
> +arch-$(CONFIG_CPU_ARM920T)	=-march=armv4
> +arch-$(CONFIG_CPU_ARM926EJS)	=-march=armv5te
> +arch-$(CONFIG_CPU_ARM946ES)	=-march=armv4
> +arch-$(CONFIG_CPU_SA1100)	=-march=armv4
> +arch-$(CONFIG_CPU_PXA)		=
> +arch-$(CONFIG_CPU_ARM1136)	=-march=armv5
> +arch-$(CONFIG_CPU_ARM1176)	=-march=armv5t
> +arch-$(CONFIG_CPU_V7)		=$(call cc-option, -march=armv7-a, -march=armv5)
> +arch-$(CONFIG_ARM64)		=-march=armv8-a
> +
> +# Evaluate arch cc-option calls now
> +arch-y := $(arch-y)
> +
> +# This selects how we optimise for the processor.
> +tune-$(CONFIG_CPU_ARM720T)	=-mtune=arm7tdmi
> +tune-$(CONFIG_CPU_ARM920T)	=
> +tune-$(CONFIG_CPU_ARM926EJS)	=
> +tune-$(CONFIG_CPU_ARM946ES)	=
> +tune-$(CONFIG_CPU_SA1100)	=-mtune=strongarm1100
> +tune-$(CONFIG_CPU_PXA)		=-mcpu=xscale
> +tune-$(CONFIG_CPU_ARM1136)	=
> +tune-$(CONFIG_CPU_ARM1176)	=
> +tune-$(CONFIG_CPU_V7)		=
> +tune-$(CONFIG_ARM64)		=
> +
> +# Evaluate tune cc-option calls now
> +tune-y := $(tune-y)
> +
> +PLATFORM_CPPFLAGS += $(arch-y) $(tune-y)
> +
>  head-y := arch/arm/cpu/$(CPU)/start.o
>  
>  ifeq ($(CONFIG_SPL_BUILD),y)
> diff --git a/arch/arm/cpu/arm1136/config.mk b/arch/arm/cpu/arm1136/config.mk
> deleted file mode 100644
> index a82c6ce..0000000
> --- a/arch/arm/cpu/arm1136/config.mk
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -#
> -# (C) Copyright 2002
> -# Gary Jennejohn, DENX Software Engineering, <garyj at denx.de>
> -#
> -# SPDX-License-Identifier:	GPL-2.0+
> -#
> -
> -# Make ARMv5 to allow more compilers to work, even though its v6.
> -PLATFORM_CPPFLAGS += -march=armv5
> diff --git a/arch/arm/cpu/arm1176/config.mk b/arch/arm/cpu/arm1176/config.mk
> deleted file mode 100644
> index 5dc2ebb..0000000
> --- a/arch/arm/cpu/arm1176/config.mk
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -#
> -# (C) Copyright 2002
> -# Gary Jennejohn, DENX Software Engineering, <garyj at denx.de>
> -#
> -# SPDX-License-Identifier:	GPL-2.0+
> -#
> -
> -# Make ARMv5 to allow more compilers to work, even though its v6.
> -PLATFORM_CPPFLAGS += -march=armv5t
> diff --git a/arch/arm/cpu/arm720t/config.mk b/arch/arm/cpu/arm720t/config.mk
> deleted file mode 100644
> index 772fb41..0000000
> --- a/arch/arm/cpu/arm720t/config.mk
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -#
> -# (C) Copyright 2002
> -# Sysgo Real-Time Solutions, GmbH <www.elinos.com>
> -# Marius Groeger <mgroeger at sysgo.de>
> -#
> -# SPDX-License-Identifier:	GPL-2.0+
> -#
> -
> -PLATFORM_CPPFLAGS += -march=armv4 -mtune=arm7tdmi
> diff --git a/arch/arm/cpu/arm920t/config.mk b/arch/arm/cpu/arm920t/config.mk
> deleted file mode 100644
> index 799afff..0000000
> --- a/arch/arm/cpu/arm920t/config.mk
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -#
> -# (C) Copyright 2002
> -# Gary Jennejohn, DENX Software Engineering, <garyj at denx.de>
> -#
> -# SPDX-License-Identifier:	GPL-2.0+
> -#
> -
> -PLATFORM_CPPFLAGS += -march=armv4
> diff --git a/arch/arm/cpu/arm926ejs/config.mk b/arch/arm/cpu/arm926ejs/config.mk
> deleted file mode 100644
> index bdb3da1..0000000
> --- a/arch/arm/cpu/arm926ejs/config.mk
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -#
> -# (C) Copyright 2002
> -# Gary Jennejohn, DENX Software Engineering, <garyj at denx.de>
> -#
> -# SPDX-License-Identifier:	GPL-2.0+
> -#
> -
> -PLATFORM_CPPFLAGS += -march=armv5te
> diff --git a/arch/arm/cpu/arm946es/config.mk b/arch/arm/cpu/arm946es/config.mk
> deleted file mode 100644
> index 438668d..0000000
> --- a/arch/arm/cpu/arm946es/config.mk
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -#
> -# (C) Copyright 2002
> -# Gary Jennejohn, DENX Software Engineering, <garyj at denx.de>
> -#
> -# SPDX-License-Identifier:	GPL-2.0+
> -#
> -
> -PLATFORM_CPPFLAGS +=  -march=armv4
> diff --git a/arch/arm/cpu/armv7/config.mk b/arch/arm/cpu/armv7/config.mk
> index 6c82c3b..63591d4 100644
> --- a/arch/arm/cpu/armv7/config.mk
> +++ b/arch/arm/cpu/armv7/config.mk
> @@ -5,11 +5,6 @@
>  # SPDX-License-Identifier:	GPL-2.0+
>  #
>  
> -# If armv7-a is not supported by GCC fall-back to armv5, which is
> -# supported by more tool-chains
> -PF_CPPFLAGS_ARMV7 := $(call cc-option, -march=armv7-a, -march=armv5)
> -PLATFORM_CPPFLAGS += $(PF_CPPFLAGS_ARMV7)
> -
>  # On supported platforms we set the bit which causes us to trap on unaligned
>  # memory access.  This is the opposite of what the compiler expects to be
>  # the default so we must pass in -mno-unaligned-access so that it is aware
> diff --git a/arch/arm/cpu/armv8/config.mk b/arch/arm/cpu/armv8/config.mk
> index f5b9559..6850258 100644
> --- a/arch/arm/cpu/armv8/config.mk
> +++ b/arch/arm/cpu/armv8/config.mk
> @@ -6,7 +6,5 @@
>  #
>  PLATFORM_RELFLAGS += -fno-common -ffixed-x18
>  
> -PF_CPPFLAGS_ARMV8 := $(call cc-option, -march=armv8-a)
>  PF_NO_UNALIGNED := $(call cc-option, -mstrict-align)
> -PLATFORM_CPPFLAGS += $(PF_CPPFLAGS_ARMV8)
>  PLATFORM_CPPFLAGS += $(PF_NO_UNALIGNED)
> diff --git a/arch/arm/cpu/pxa/config.mk b/arch/arm/cpu/pxa/config.mk
> index 525f5d3..7fb5316 100644
> --- a/arch/arm/cpu/pxa/config.mk
> +++ b/arch/arm/cpu/pxa/config.mk
> @@ -6,8 +6,6 @@
>  # SPDX-License-Identifier:	GPL-2.0+
>  #
>  
> -PLATFORM_CPPFLAGS += -mcpu=xscale
> -
>  #
>  # !WARNING!
>  # The PXA's OneNAND SPL uses .text.0 and .text.1 segments to allow booting from
> diff --git a/arch/arm/cpu/sa1100/config.mk b/arch/arm/cpu/sa1100/config.mk
> deleted file mode 100644
> index 3afa685..0000000
> --- a/arch/arm/cpu/sa1100/config.mk
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -#
> -# (C) Copyright 2002
> -# Sysgo Real-Time Solutions, GmbH <www.elinos.com>
> -# Marius Groeger <mgroeger at sysgo.de>
> -#
> -# SPDX-License-Identifier:	GPL-2.0+
> -#
> -
> -PLATFORM_CPPFLAGS += -march=armv4 -mtune=strongarm1100
> -- 
> 1.9.1
> 

Applied to u-boot-arm/master, thanks!

Amicalement,
-- 
Albert.


More information about the U-Boot mailing list