From 8740549c573adf52c1b73f720e1ca52d15f90979 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Sun, 16 Jan 2011 01:25:06 +0000
Subject: [PATCH] mpc85xx: add a new 'spe_fpu' feature flag for the FPU used on
 freescale powerpc cpus The SPE FPU is ABI-incompatible with the regular
 powerpc FPU, this needs to be reflected in the toolchain target name. Fixes
 floating point crashes in user space

SVN-Revision: 25018
---
 rules.mk                      | 3 +++
 scripts/metadata.pl           | 1 +
 target/Config.in              | 5 +++++
 target/linux/mpc85xx/Makefile | 2 +-
 4 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/rules.mk b/rules.mk
index 09b4f5447a..2e66bea4cf 100644
--- a/rules.mk
+++ b/rules.mk
@@ -69,6 +69,9 @@ endif
 ifneq ($(findstring -march=armv5te,$(TARGET_OPTIMIZATION)),)
   ARCH_SUFFIX:=_v5te
 endif
+ifdef CONFIG_HAS_SPE_FPU
+  TARGET_SUFFIX:=$(TARGET_SUFFIX)spe
+endif
 
 DL_DIR:=$(if $(call qstrip,$(CONFIG_DOWNLOAD_FOLDER)),$(call qstrip,$(CONFIG_DOWNLOAD_FOLDER)),$(TOPDIR)/dl)
 BIN_DIR:=$(TOPDIR)/bin/$(BOARD)
diff --git a/scripts/metadata.pl b/scripts/metadata.pl
index 37c0a51ee7..9f06299aad 100755
--- a/scripts/metadata.pl
+++ b/scripts/metadata.pl
@@ -168,6 +168,7 @@ sub target_config_features(@) {
 		/cpiogz/ and $ret .= "\tselect USES_CPIOGZ\n";
 		/ubifs/ and $ret .= "\tselect USES_UBIFS\n";
 		/fpu/ and $ret .= "\tselect HAS_FPU\n";
+		/spe_fpu/ and $ret .= "\tselect HAS_SPE_FPU\n";
 		/ramdisk/ and $ret .= "\tselect USES_INITRAMFS\n";
 		/powerpc64/ and $ret .= "\tselect powerpc64\n";
 		/nommu/ and $ret .= "\tselect NOMMU\n";
diff --git a/target/Config.in b/target/Config.in
index 226624564a..9e0263e4c2 100644
--- a/target/Config.in
+++ b/target/Config.in
@@ -2,6 +2,11 @@ source "tmp/.config-target.in"
 
 # Kernel/Hardware features
 
+config HAS_SPE_FPU
+	depends powerpc
+	select HAS_FPU
+	bool
+
 config HAS_FPU
 	bool
 
diff --git a/target/linux/mpc85xx/Makefile b/target/linux/mpc85xx/Makefile
index a441acf238..5488adc591 100644
--- a/target/linux/mpc85xx/Makefile
+++ b/target/linux/mpc85xx/Makefile
@@ -10,7 +10,7 @@ ARCH:=powerpc
 BOARD:=mpc85xx
 BOARDNAME:=Freescale MPC85xx
 CFLAGS:=-Os -pipe -funit-at-a-time -mcpu=8540
-FEATURES:=fpu ramdisk broken
+FEATURES:=spe_fpu ramdisk broken
 MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
 
 LINUX_VERSION:=2.6.36.2
-- 
GitLab