aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain/gcc
diff options
context:
space:
mode:
authorBoris Krasnovskiy <borkra@gmail.com>2019-03-20 23:00:51 -0400
committerChristian Lamparter <chunkeey@gmail.com>2019-03-25 21:19:05 +0100
commit4cf991bedb4cbf42fd60af52a730bf52461c7161 (patch)
treecc6ad0cc3a12983f2972c5da5471a0e27a225b34 /toolchain/gcc
parent8dcc1087602e2dd606e4f6e81a06aee62cfd4f4c (diff)
downloadupstream-4cf991bedb4cbf42fd60af52a730bf52461c7161.tar.gz
upstream-4cf991bedb4cbf42fd60af52a730bf52461c7161.tar.bz2
upstream-4cf991bedb4cbf42fd60af52a730bf52461c7161.zip
toolchain: ARM: Fix option conflict with multiarch
This problem exposed when compiling glibc, but applicable across the board. gcc compiles runtime libraries for all supported architectures, unless otherwise specified, and later selects applicable library based -m[arch,cpu,*] options, thus these options should not be passed to gcc as they break the compilation process. Signed-off-by: Boris Krasnovskiy <borkra@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [modified so it only touches ARM - I'm too chicken, changed authors email]
Diffstat (limited to 'toolchain/gcc')
-rw-r--r--toolchain/gcc/common.mk5
1 files changed, 5 insertions, 0 deletions
diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk
index 6e8767f707..6e0edfb36a 100644
--- a/toolchain/gcc/common.mk
+++ b/toolchain/gcc/common.mk
@@ -170,6 +170,11 @@ ifeq ($(CONFIG_arm),y)
--with-fpu=$(word 2, $(subst +, ",$(CONFIG_CPU_TYPE))) \
--with-float=hard
endif
+
+ # Do not let TARGET_CFLAGS get poisoned by extra CPU optimization flags
+ # that do not belong here. The cpu,fpu type should be specified via
+ # --with-cpu and --with-fpu for ARM and not CFLAGS.
+ TARGET_CFLAGS:=$(filter-out -m%,$(call qstrip,$(TARGET_CFLAGS)))
endif
ifeq ($(CONFIG_TARGET_x86)$(CONFIG_USE_GLIBC)$(CONFIG_INSTALL_GCCGO),yyy)