All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2] ARM: move -march=* and -mtune= options to arch/arm/Makefile
@ 2015-02-26 17:40 Masahiro Yamada
  2015-03-27 17:06 ` Albert ARIBAUD
  0 siblings, 1 reply; 7+ messages in thread
From: Masahiro Yamada @ 2015-02-26 17:40 UTC (permalink / raw)
  To: u-boot

My main motivations for this commit are:

[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 such options into the single place 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 about 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@jp.panasonic.com>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Stefan Roese <sr@denx.de>
---

Changes in v2:
  - Rebased onto u-boot-arm/master (commit 419fa9ae)

 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 878ae26..275c817 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)
+
 # Machine directory name.  This list is sorted alphanumerically
 # by CONFIG_* macro name.
 machine-$(CONFIG_ARCH_AT91)		+= at91
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@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@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@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@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@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@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@sysgo.de>
-#
-# SPDX-License-Identifier:	GPL-2.0+
-#
-
-PLATFORM_CPPFLAGS += -march=armv4 -mtune=strongarm1100
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v2] ARM: move -march=* and -mtune= options to arch/arm/Makefile
  2015-02-26 17:40 [U-Boot] [PATCH v2] ARM: move -march=* and -mtune= options to arch/arm/Makefile Masahiro Yamada
@ 2015-03-27 17:06 ` Albert ARIBAUD
  2015-04-11  3:49   ` Stephen Warren
  0 siblings, 1 reply; 7+ messages in thread
From: Albert ARIBAUD @ 2015-03-27 17:06 UTC (permalink / raw)
  To: u-boot

Hello Masahiro,

On Fri, 27 Feb 2015 02:40:33 +0900, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> My main motivations for this commit are:
> 
> [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 such options into the single place 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 about 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@jp.panasonic.com>
> Acked-by: Marek Vasut <marex@denx.de>
> Acked-by: Stefan Roese <sr@denx.de>
> ---
> 
> Changes in v2:
>   - Rebased onto u-boot-arm/master (commit 419fa9ae)
> 
>  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 878ae26..275c817 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)
> +
>  # Machine directory name.  This list is sorted alphanumerically
>  # by CONFIG_* macro name.
>  machine-$(CONFIG_ARCH_AT91)		+= at91
> 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@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@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@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@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@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@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@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.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v2] ARM: move -march=* and -mtune= options to arch/arm/Makefile
  2015-03-27 17:06 ` Albert ARIBAUD
@ 2015-04-11  3:49   ` Stephen Warren
  2015-04-11  6:18     ` Jan Kiszka
  2015-04-11 14:41     ` Masahiro Yamada
  0 siblings, 2 replies; 7+ messages in thread
From: Stephen Warren @ 2015-04-11  3:49 UTC (permalink / raw)
  To: u-boot

On 03/27/2015 11:06 AM, Albert ARIBAUD wrote:
> On Fri, 27 Feb 2015 02:40:33 +0900, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
>> My main motivations for this commit are:
>>
>> [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 such options into the single place 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 about 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.
...
> Applied to u-boot-arm/master, thanks!

This patch breaks Tegra (at least Seaboard, and I'd guess all Tegra
boards). Reverting it solves the problem.

It causes the SPL to be build for ARMv7 even though it should be built
for an earlier architecture. I added a $(warning) to arch/arm/Makefile,
and it prints:

arch/arm/Makefile:37: SPL_BUILD  FLAGS  -D__ARM__ -marm
-mno-thumb-interwork  -mabi=aapcs-linux  -mword-relocations
-mno-unaligned-access  -ffunction-sections -fdata-sections -fno-common
-ffixed-r9  -msoft-float  -pipe  -march=armv7-a

arch/arm/Makefile:37: SPL_BUILD y FLAGS  -D__ARM__ -marm
-mno-thumb-interwork  -mabi=aapcs-linux  -ffunction-sections
-fdata-sections -fno-common -ffixed-r9  -msoft-float  -pipe  -march=armv7-a

Note the second line says ARMv7, even though CONFIG_SPL_BUILD is set, so
it shouldn't.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v2] ARM: move -march=* and -mtune= options to arch/arm/Makefile
  2015-04-11  3:49   ` Stephen Warren
@ 2015-04-11  6:18     ` Jan Kiszka
  2015-04-11 12:53       ` Masahiro Yamada
  2015-04-11 14:41     ` Masahiro Yamada
  1 sibling, 1 reply; 7+ messages in thread
From: Jan Kiszka @ 2015-04-11  6:18 UTC (permalink / raw)
  To: u-boot

On 2015-04-11 05:49, Stephen Warren wrote:
> On 03/27/2015 11:06 AM, Albert ARIBAUD wrote:
>> On Fri, 27 Feb 2015 02:40:33 +0900, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
>>> My main motivations for this commit are:
>>>
>>> [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 such options into the single place 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 about 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.
> ...
>> Applied to u-boot-arm/master, thanks!
> 
> This patch breaks Tegra (at least Seaboard, and I'd guess all Tegra
> boards). Reverting it solves the problem.

Yes, just bisected the same problem on the TK1 down to this commit.

> 
> It causes the SPL to be build for ARMv7 even though it should be built
> for an earlier architecture. I added a $(warning) to arch/arm/Makefile,
> and it prints:
> 
> arch/arm/Makefile:37: SPL_BUILD  FLAGS  -D__ARM__ -marm
> -mno-thumb-interwork  -mabi=aapcs-linux  -mword-relocations
> -mno-unaligned-access  -ffunction-sections -fdata-sections -fno-common
> -ffixed-r9  -msoft-float  -pipe  -march=armv7-a
> 
> arch/arm/Makefile:37: SPL_BUILD y FLAGS  -D__ARM__ -marm
> -mno-thumb-interwork  -mabi=aapcs-linux  -ffunction-sections
> -fdata-sections -fno-common -ffixed-r9  -msoft-float  -pipe  -march=armv7-a
> 
> Note the second line says ARMv7, even though CONFIG_SPL_BUILD is set, so
> it shouldn't.
> 

Tegra seems to be the only target so far that changes the target CPU for
the SPL build:

#config.mk
...
ARCH := $(CONFIG_SYS_ARCH:"%"=%)
CPU := $(CONFIG_SYS_CPU:"%"=%)
ifdef CONFIG_SPL_BUILD
ifdef CONFIG_TEGRA
CPU := arm720t
endif
endif
...

How to model this with that new compiler switch setup?

Jan

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150411/1d7e679c/attachment.sig>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v2] ARM: move -march=* and -mtune= options to arch/arm/Makefile
  2015-04-11  6:18     ` Jan Kiszka
@ 2015-04-11 12:53       ` Masahiro Yamada
  2015-04-11 14:42         ` Masahiro Yamada
  0 siblings, 1 reply; 7+ messages in thread
From: Masahiro Yamada @ 2015-04-11 12:53 UTC (permalink / raw)
  To: u-boot

Stephen, Jan,




2015-04-11 15:18 GMT+09:00 Jan Kiszka <jan.kiszka@web.de>:

>> This patch breaks Tegra (at least Seaboard, and I'd guess all Tegra
>> boards). Reverting it solves the problem.
>
> Yes, just bisected the same problem on the TK1 down to this commit.
>


I will take a look right away.



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v2] ARM: move -march=* and -mtune= options to arch/arm/Makefile
  2015-04-11  3:49   ` Stephen Warren
  2015-04-11  6:18     ` Jan Kiszka
@ 2015-04-11 14:41     ` Masahiro Yamada
  1 sibling, 0 replies; 7+ messages in thread
From: Masahiro Yamada @ 2015-04-11 14:41 UTC (permalink / raw)
  To: u-boot

Hi Stephen,


2015-04-11 12:49 GMT+09:00 Stephen Warren <swarren@wwwdotorg.org>:
> On 03/27/2015 11:06 AM, Albert ARIBAUD wrote:
>> On Fri, 27 Feb 2015 02:40:33 +0900, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
>>> My main motivations for this commit are:
>>>
>>> [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 such options into the single place 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 about 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.
> ...
>> Applied to u-boot-arm/master, thanks!
>
> This patch breaks Tegra (at least Seaboard, and I'd guess all Tegra
> boards). Reverting it solves the problem.
>
> It causes the SPL to be build for ARMv7 even though it should be built
> for an earlier architecture. I added a $(warning) to arch/arm/Makefile,
> and it prints:
>
> arch/arm/Makefile:37: SPL_BUILD  FLAGS  -D__ARM__ -marm
> -mno-thumb-interwork  -mabi=aapcs-linux  -mword-relocations
> -mno-unaligned-access  -ffunction-sections -fdata-sections -fno-common
> -ffixed-r9  -msoft-float  -pipe  -march=armv7-a
>
> arch/arm/Makefile:37: SPL_BUILD y FLAGS  -D__ARM__ -marm
> -mno-thumb-interwork  -mabi=aapcs-linux  -ffunction-sections
> -fdata-sections -fno-common -ffixed-r9  -msoft-float  -pipe  -march=armv7-a
>


Just a tip:

You can also check it by ".*.cmd" files.


After I fixed this problem, I confirmed it as follows:


For U-boot proper, for example,

$ head common/.stdio.o.cmd
cmd_common/stdio.o := arm-linux-gnueabi-gcc -Wp,-MD,common/.stdio.o.d
-nostdinc -isystem /usr/lib/gcc-cross/arm-linux-gnueabi/4.7/include
-Iinclude  -I./arch/arm/include -include ./include/linux/kconfig.h
-D__KERNEL__ -D__UBOOT__ -DCONFIG_SYS_TEXT_BASE=0x0010E000 -Wall
-Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding
-Os -fno-stack-protector -g -fstack-usage -Wno-format-nonliteral
-D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux
-mword-relocations -mno-unaligned-access -ffunction-sections
-fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe
-march=armv7-a -I./arch/arm/mach-tegra/include
-D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(stdio)"
-D"KBUILD_MODNAME=KBUILD_STR(stdio)" -c -o common/stdio.o
common/stdio.c
[ snip ]



For SPL,


$ head spl/common/.stdio.o.cmd
cmd_spl/common/stdio.o := arm-linux-gnueabi-gcc
-Wp,-MD,spl/common/.stdio.o.d  -nostdinc -isystem
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/include -Iinclude
-I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__
-D__UBOOT__ -DCONFIG_SYS_TEXT_BASE=0x0010E000 -DCONFIG_SPL_BUILD -Wall
-Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding
-Os -fno-stack-protector -g -fstack-usage -Wno-format-nonliteral
-ffunction-sections -fdata-sections -D__ARM__ -marm
-mno-thumb-interwork -mabi=aapcs-linux -ffunction-sections
-fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv4
-mtune=arm7tdmi -I./arch/arm/mach-tegra/include
-D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(stdio)"
-D"KBUILD_MODNAME=KBUILD_STR(stdio)" -c -o spl/common/stdio.o
common/stdio.c
[ snip ]



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v2] ARM: move -march=* and -mtune= options to arch/arm/Makefile
  2015-04-11 12:53       ` Masahiro Yamada
@ 2015-04-11 14:42         ` Masahiro Yamada
  0 siblings, 0 replies; 7+ messages in thread
From: Masahiro Yamada @ 2015-04-11 14:42 UTC (permalink / raw)
  To: u-boot

Hi, Stephen, Jan,

2015-04-11 21:53 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
> Stephen, Jan,
>
>
>
>
> 2015-04-11 15:18 GMT+09:00 Jan Kiszka <jan.kiszka@web.de>:
>
>>> This patch breaks Tegra (at least Seaboard, and I'd guess all Tegra
>>> boards). Reverting it solves the problem.
>>
>> Yes, just bisected the same problem on the TK1 down to this commit.
>>
>
>
> I will take a look right away.
>

Could you check this patch?
http://patchwork.ozlabs.org/patch/460382/




-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-04-11 14:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-26 17:40 [U-Boot] [PATCH v2] ARM: move -march=* and -mtune= options to arch/arm/Makefile Masahiro Yamada
2015-03-27 17:06 ` Albert ARIBAUD
2015-04-11  3:49   ` Stephen Warren
2015-04-11  6:18     ` Jan Kiszka
2015-04-11 12:53       ` Masahiro Yamada
2015-04-11 14:42         ` Masahiro Yamada
2015-04-11 14:41     ` Masahiro Yamada

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.