summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBoris Krasnovskiy <borkra@gmail.com>2019-03-09 20:45:43 -0500
committerChristian Lamparter <chunkeey@gmail.com>2019-03-25 21:15:58 +0100
commit8dcc1087602e2dd606e4f6e81a06aee62cfd4f4c (patch)
tree9e526f2c1b08b06b90f6aa6ec765e463e5fa8772
parent84f13e19b46a0378c49f0694e111803e4d94788f (diff)
downloadopenwrt-8dcc1087602e2dd606e4f6e81a06aee62cfd4f4c.tar.gz
openwrt-8dcc1087602e2dd606e4f6e81a06aee62cfd4f4c.tar.bz2
openwrt-8dcc1087602e2dd606e4f6e81a06aee62cfd4f4c.zip
toolchain: ARM: Fix toolchain compilation for gcc 8.x
Set the toolchain's ARM CPU and FPU architectures by utilizing' gcc's --with-cpu / --with-fpu configure options that: "Specify which cpu variant the compiler should generate code for by default. cpu will be used as the default value of the -mcpu= switch." This will resolve the following kernel compilation failures under gcc 8.x on ARM because the kernel wants to set (possibly conflicting) optimization flags. .../ccyVnmrs.s:204: Error: selected processor does not support `dmb ish' in ARM mode .../ccyVnmrs.s:215: Error: architectural extension `mp' is not allowed for the current base architecture .../ccyVnmrs.s:216: Error: selected processor does not support `pldw [r4]' in ARM mode Because this is a big change, the .config and toolchain need to be refreshed (as in removed and regenerated). Reported-by: Ansuel Smith <ansuelsmth@gmail.com> Reported-by: Daniel Engberg <daniel.engberg.lists@pyret.net> [#1203] Signed-off-by: Boris Krasnovskiy <borkra@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [extended commit message, removed now-deprecated CPU_CFLAGS, changed author to gmail address]
-rw-r--r--include/target.mk20
-rw-r--r--toolchain/gcc/common.mk8
2 files changed, 6 insertions, 22 deletions
diff --git a/include/target.mk b/include/target.mk
index 1d6888fde3..5346ea1a91 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -183,26 +183,6 @@ ifeq ($(DUMP),1)
endif
ifneq ($(findstring arm,$(ARCH)),)
CPU_TYPE ?= xscale
- CPU_CFLAGS_arm920t = -mcpu=arm920t
- CPU_CFLAGS_arm926ej-s = -mcpu=arm926ej-s
- CPU_CFLAGS_arm1136j-s = -mcpu=arm1136j-s
- CPU_CFLAGS_arm1176jzf-s = -mcpu=arm1176jzf-s
- CPU_CFLAGS_cortex-a5 = -mcpu=cortex-a5
- CPU_CFLAGS_cortex-a7 = -mcpu=cortex-a7
- CPU_CFLAGS_cortex-a8 = -mcpu=cortex-a8
- CPU_CFLAGS_cortex-a9 = -mcpu=cortex-a9
- CPU_CFLAGS_cortex-a15 = -mcpu=cortex-a15
- CPU_CFLAGS_cortex-a53 = -mcpu=cortex-a53
- CPU_CFLAGS_cortex-a72 = -mcpu=cortex-a72
- CPU_CFLAGS_fa526 = -mcpu=fa526
- CPU_CFLAGS_mpcore = -mcpu=mpcore
- CPU_CFLAGS_xscale = -mcpu=xscale
- ifeq ($(CONFIG_SOFT_FLOAT),)
- CPU_CFLAGS_neon = -mfpu=neon
- CPU_CFLAGS_vfp = -mfpu=vfp
- CPU_CFLAGS_vfpv3 = -mfpu=vfpv3-d16
- CPU_CFLAGS_neon-vfpv4 = -mfpu=neon-vfpv4
- endif
endif
ifeq ($(ARCH),powerpc)
CPU_CFLAGS_603e:=-mcpu=603e
diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk
index 4bc8b20271..6e8767f707 100644
--- a/toolchain/gcc/common.mk
+++ b/toolchain/gcc/common.mk
@@ -161,9 +161,13 @@ ifneq ($(GCC_ARCH),)
GCC_CONFIGURE+= --with-arch=$(GCC_ARCH)
endif
-ifneq ($(CONFIG_SOFT_FLOAT),y)
- ifeq ($(CONFIG_arm),y)
+ifeq ($(CONFIG_arm),y)
+ GCC_CONFIGURE+= \
+ --with-cpu=$(word 1, $(subst +," ,$(CONFIG_CPU_TYPE)))
+
+ ifneq ($(CONFIG_SOFT_FLOAT),y)
GCC_CONFIGURE+= \
+ --with-fpu=$(word 2, $(subst +, ",$(CONFIG_CPU_TYPE))) \
--with-float=hard
endif
endif