From f6b57149af3edf52773f9c3abf5e5e0454bcb49c Mon Sep 17 00:00:00 2001
From: Imre Kaloz <kaloz@openwrt.org>
Date: Fri, 29 Nov 2013 10:59:51 +0000
Subject: [PATCH] FPU type should not interfere with the ABI selection. Also
 make sure we either do real soft-float or hard-float on ARM, with the right
 options.

Signed-off-by: Imre Kaloz <kaloz@openwrt.org>

SVN-Revision: 38943
---
 include/target.mk                 | 4 ++--
 package/boot/uboot-omap/Makefile  | 2 +-
 package/boot/uboot-sunxi/Makefile | 2 +-
 rules.mk                          | 9 ++++++++-
 4 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/include/target.mk b/include/target.mk
index 0f3145df59..eca218e0b3 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -232,8 +232,8 @@ ifeq ($(DUMP),1)
     CPU_CFLAGS_mpcore = -march=armv6k -mtune=mpcore
     CPU_CFLAGS_xscale = -march=armv5te -mtune=xscale
     ifneq ($(CONFIG_SOFT_FLOAT),)
-      CPU_CFLAGS_vfp = -mfpu=vfp -mfloat-abi=softfp
-      CPU_CFLAGS_vfpv3 = -mfpu=vfpv3-d16 -mfloat-abi=softfp
+      CPU_CFLAGS_vfp = -mfpu=vfp
+      CPU_CFLAGS_vfpv3 = -mfpu=vfpv3-d16
     endif
   endif
   ifeq ($(ARCH),powerpc)
diff --git a/package/boot/uboot-omap/Makefile b/package/boot/uboot-omap/Makefile
index 45d32bd3c3..96168a30d0 100644
--- a/package/boot/uboot-omap/Makefile
+++ b/package/boot/uboot-omap/Makefile
@@ -71,7 +71,7 @@ endif
 
 define Build/Configure
 	$(MAKE) -C $(PKG_BUILD_DIR) \
-		$(UBOOT_CONFIG)_config
+		USE_PRIVATE_LIBGCC=yes $(UBOOT_CONFIG)_config
 endef
 
 define Build/Compile
diff --git a/package/boot/uboot-sunxi/Makefile b/package/boot/uboot-sunxi/Makefile
index da729dd969..2041ffc4be 100644
--- a/package/boot/uboot-sunxi/Makefile
+++ b/package/boot/uboot-sunxi/Makefile
@@ -73,7 +73,7 @@ endif
 
 define Build/Configure
 	$(MAKE) -C $(PKG_BUILD_DIR) \
-		$(UBOOT_CONFIG)_config
+		USE_PRIVATE_LIBGCC=yes $(UBOOT_CONFIG)_config
 endef
 
 define Build/Compile
diff --git a/rules.mk b/rules.mk
index 80e07d11a2..47ba928de5 100644
--- a/rules.mk
+++ b/rules.mk
@@ -168,9 +168,16 @@ TARGET_PATH_PKG:=$(STAGING_DIR)/host/bin:$(TARGET_PATH)
 
 ifeq ($(CONFIG_SOFT_FLOAT),y)
   SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
-  TARGET_CFLAGS+= -msoft-float
+  ifeq ($(CONFIG_arm),y)
+    TARGET_CFLAGS+= -mfloat-abi=soft
+  else
+    TARGET_CFLAGS+= -msoft-float
+  endif
 else
   SOFT_FLOAT_CONFIG_OPTION:=
+  ifeq ($(CONFIG_arm),y)
+    TARGET_CFLAGS+= -mfloat-abi=hard
+  endif
 endif
 
 export PATH:=$(TARGET_PATH)
-- 
GitLab