ARM: move -march=* and -mtune= options to arch/arm/Makefile
PATCH 1/1 ARM: move -march=* and -mtune= options to arch/arm/Makefile
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.
---
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
arch/arm/Makefile +32 -0
@@ -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)
arch/arm/cpu/arm1136/config.mk deleted +0 -9
@@ -1,9 +0,0 @@ -# -# (C) Copyright 2002 -# Gary Jennejohn, DENX Software Engineering, <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -# Make ARMv5 to allow more compilers to work, even though its v6. -PLATFORM_CPPFLAGS += -march=armv5
arch/arm/cpu/arm1176/config.mk deleted +0 -9
@@ -1,9 +0,0 @@ -# -# (C) Copyright 2002 -# Gary Jennejohn, DENX Software Engineering, <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -# Make ARMv5 to allow more compilers to work, even though its v6. -PLATFORM_CPPFLAGS += -march=armv5t
arch/arm/cpu/arm720t/config.mk deleted +0 -9
@@ -1,9 +0,0 @@ -# -# (C) Copyright 2002 -# Sysgo Real-Time Solutions, GmbH <www.elinos.com> -# Marius Groeger <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -PLATFORM_CPPFLAGS += -march=armv4 -mtune=arm7tdmi
arch/arm/cpu/arm920t/config.mk deleted +0 -8
@@ -1,8 +0,0 @@ -# -# (C) Copyright 2002 -# Gary Jennejohn, DENX Software Engineering, <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -PLATFORM_CPPFLAGS += -march=armv4
arch/arm/cpu/arm926ejs/config.mk deleted +0 -8
@@ -1,8 +0,0 @@ -# -# (C) Copyright 2002 -# Gary Jennejohn, DENX Software Engineering, <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -PLATFORM_CPPFLAGS += -march=armv5te
arch/arm/cpu/arm946es/config.mk deleted +0 -8
@@ -1,8 +0,0 @@ -# -# (C) Copyright 2002 -# Gary Jennejohn, DENX Software Engineering, <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -PLATFORM_CPPFLAGS += -march=armv4
arch/arm/cpu/armv7/config.mk +0 -5
@@ -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
arch/arm/cpu/armv8/config.mk +0 -2
@@ -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)
arch/arm/cpu/pxa/config.mk +0 -2
@@ -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
arch/arm/cpu/sa1100/config.mk deleted +0 -9
@@ -1,9 +0,0 @@ -# -# (C) Copyright 2002 -# Sysgo Real-Time Solutions, GmbH <www.elinos.com> -# Marius Groeger <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -PLATFORM_CPPFLAGS += -march=armv4 -mtune=strongarm1100
Signature · 1 line
1.9.1
PATCH 1/1 ARM: move -march=* and -mtune= options to arch/arm/Makefile
Quoted 20 lines · Masahiro Yamada
My main motivation for this commit:
[1] Follow the
arch/arm/Makefilestyle 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 thearch/arm/Makefile, we can tell which options are missing at a glance.[3] Prepare for deprecating
arch/*/cpu/*/config.mkNote:
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.
Quoted 1 line
Signed-off-by Masahiro Yamada <[email protected]>
Very nice,
Best regards,
Marek Vasut
PATCH 1/1 ARM: move -march=* and -mtune= options to arch/arm/Makefile
In reply to Masahiro YamadaQuoted 20 lines · Masahiro Yamada
My main motivation for this commit:
[1] Follow the
arch/arm/Makefilestyle 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 thearch/arm/Makefile, we can tell which options are missing at a glance.[3] Prepare for deprecating
arch/*/cpu/*/config.mkNote:
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.
Quoted 1 line
Signed-off-by Masahiro Yamada <[email protected]>
Great!
Thanks,
Stefan
PATCH 1/1 ARM: move -march=* and -mtune= options to arch/arm/Makefile
In reply to Masahiro YamadaHello Masahiro,
Quoted 20 lines · Masahiro Yamada
My main motivation for this commit:
[1] Follow the
arch/arm/Makefilestyle 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 thearch/arm/Makefile, we can tell which options are missing at a glance.[3] Prepare for deprecating
arch/*/cpu/*/config.mkNote:
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.
Quoted 2 lines
Signed-off-by Masahiro Yamada <[email protected]>---
I'm fine with the patch's goal and principle, but it does not seem to apply properly to u-boot-arm/master. Can you have a look?
Amicalement,
Signature · 1 line
Albert.
PATCH 1/1 ARM: move -march=* and -mtune= options to arch/arm/Makefile
Hi Albert,
2015-02-26 6:14 GMT+09:00 Albert ARIBAUD <[email protected]>:
Quoted 3 lines
I'm fine with the patch's goal and principle, but it does not seem to apply properly to u-boot-arm/master. Can you have a look?
Sure.
I've just posted v2:
http://patchwork.ozlabs.org/patch/444028/
It should apply cleanly to u-boot-arm.
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 1/1 ARM: move -march=* and -mtune= options to arch/arm/Makefile
Albert,
2015-02-27 2:43 GMT+09:00 Masahiro YAMADA <[email protected]>:
Quoted 8 lines
Hi Albert,
2015-02-26 6:14 GMT+09:00 Albert ARIBAUD <[email protected]>:
Quoted 3 lines
I'm fine with the patch's goal and principle, but it does not seem to apply properly to u-boot-arm/master. Can you have a look?
Quoted 7 lines
Sure.
I've just posted v2:
http://patchwork.ozlabs.org/patch/444028/It should apply cleanly to u-boot-arm.
Ping.
I posted v2 as requested by you.
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 1/1 ARM: move -march=* and -mtune= options to arch/arm/Makefile
In reply to Masahiro YamadaHello Masahiro,
Quoted 232 lines · Masahiro Yamada
My main motivation for this commit:
[1] Follow the
arch/arm/Makefilestyle 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 thearch/arm/Makefile, we can tell which options are missing at a glance.[3] Prepare for deprecating
arch/*/cpu/*/config.mkNote:
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 <[email protected]>---
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.mkarch/arm/Makefile +32
-0@@ -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)arch/arm/cpu/arm1136/config.mk deleted +0
-9@@ -1,9 +0,0 @@ -# -# (C) Copyright 2002 -# Gary Jennejohn, DENX Software Engineering, <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -# Make ARMv5 to allow more compilers to work, even though its v6. -PLATFORM_CPPFLAGS += -march=armv5arch/arm/cpu/arm1176/config.mk deleted +0
-9@@ -1,9 +0,0 @@ -# -# (C) Copyright 2002 -# Gary Jennejohn, DENX Software Engineering, <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -# Make ARMv5 to allow more compilers to work, even though its v6. -PLATFORM_CPPFLAGS += -march=armv5tarch/arm/cpu/arm720t/config.mk deleted +0
-9@@ -1,9 +0,0 @@ -# -# (C) Copyright 2002 -# Sysgo Real-Time Solutions, GmbH <www.elinos.com> -# Marius Groeger <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -PLATFORM_CPPFLAGS += -march=armv4 -mtune=arm7tdmiarch/arm/cpu/arm920t/config.mk deleted +0
-8@@ -1,8 +0,0 @@ -# -# (C) Copyright 2002 -# Gary Jennejohn, DENX Software Engineering, <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -PLATFORM_CPPFLAGS += -march=armv4arch/arm/cpu/arm926ejs/config.mk deleted +0
-8@@ -1,8 +0,0 @@ -# -# (C) Copyright 2002 -# Gary Jennejohn, DENX Software Engineering, <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -PLATFORM_CPPFLAGS += -march=armv5tearch/arm/cpu/arm946es/config.mk deleted +0
-8@@ -1,8 +0,0 @@ -# -# (C) Copyright 2002 -# Gary Jennejohn, DENX Software Engineering, <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -PLATFORM_CPPFLAGS += -march=armv4arch/arm/cpu/armv7/config.mk +0
-5@@ -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 awarearch/arm/cpu/armv8/config.mk +0
-2@@ -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)arch/arm/cpu/pxa/config.mk +0
-2@@ -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 fromarch/arm/cpu/sa1100/config.mk deleted +0
-9@@ -1,9 +0,0 @@ -# -# (C) Copyright 2002 -# Sysgo Real-Time Solutions, GmbH <www.elinos.com> -# Marius Groeger <[email protected]> -# -# SPDX-License-Identifier: GPL-2.0+ -# - -PLATFORM_CPPFLAGS += -march=armv4 -mtune=strongarm1100Signature · 1 line
1.9.1
Applied to u-boot-arm/master, thanks!
Amicalement,
Signature · 1 line
Albert.