mpc85xx: add a new 'spe_fpu' feature flag for the FPU used on freescale powerpc cpus
authorFelix Fietkau <nbd@openwrt.org>
Sun, 16 Jan 2011 01:25:06 +0000 (01:25 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 16 Jan 2011 01:25:06 +0000 (01:25 +0000)
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
scripts/metadata.pl
target/Config.in
target/linux/mpc85xx/Makefile

index 09b4f54..2e66bea 100644 (file)
--- 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)
index 37c0a51..9f06299 100755 (executable)
@@ -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";
index 2266245..9e0263e 100644 (file)
@@ -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
 
index a441acf..5488adc 100644 (file)
@@ -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