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]
This commit is contained in:
Boris Krasnovskiy
2019-03-09 20:45:43 -05:00
committed by Christian Lamparter
parent 84f13e19b4
commit 8dcc108760
2 changed files with 6 additions and 22 deletions

View File

@@ -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