Explorar o código

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 <[email protected]>
Signed-off-by: Christian Lamparter <[email protected]>
[modified so it only touches ARM - I'm too chicken, changed authors email]
Boris Krasnovskiy %!s(int64=6) %!d(string=hai) anos
pai
achega
4cf991bedb
Modificáronse 1 ficheiros con 5 adicións e 0 borrados
  1. 5 0
      toolchain/gcc/common.mk

+ 5 - 0
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)