From 4cf991bedb4cbf42fd60af52a730bf52461c7161 Mon Sep 17 00:00:00 2001 From: Boris Krasnovskiy Date: Wed, 20 Mar 2019 23:00:51 -0400 Subject: [PATCH] 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 Signed-off-by: Christian Lamparter [modified so it only touches ARM - I'm too chicken, changed authors email] --- toolchain/gcc/common.mk | 5 +++++ 1 file changed, 5 insertions(+) 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) -- 2.25.1