The build system defaults to 'softfp' but this use hardware
instructions that are not available making node to fail to run on
ARMv5 based CPUs. Now we check if TARGET_FPU is 'soft' and change the
default of the build system so it works.

Tested on i.MX233 (ARM926EJ-S)

Signed-off-by: Otavio Salvador <[email protected]>
---
 meta-oe/recipes-devtools/nodejs/nodejs_0.6.18.bb |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_0.6.18.bb 
b/meta-oe/recipes-devtools/nodejs/nodejs_0.6.18.bb
index 7136ffc..972d02a 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs_0.6.18.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_0.6.18.bb
@@ -5,6 +5,8 @@ LIC_FILES_CHKSUM = 
"file://LICENSE;md5=914812f2875eef849b5c509cc25dcb4f"
 
 DEPENDS = "openssl"
 
+PR = "r1"
+
 SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.gz \
            file://fix-hardfloat-detection.patch"
 
@@ -16,6 +18,9 @@ S = "${WORKDIR}/node-v${PV}"
 # v8 errors out if you have set CCACHE
 CCACHE = ""
 
+# Workaround a build to proper use soft FPU for armv5
+FORCE_SOFT_FPU = "${@bb.utils.contains("TUNE_FEATURES", "soft", "yes", "no", 
d)}"
+
 do_configure_virtclass-native () {
   sed -i -e s:\'/usr/lib:\'${STAGING_LIBDIR}:g wscript
   sed -i -e s:\'/usr/local/lib:\'${STAGING_LIBDIR}:g wscript
@@ -40,6 +45,10 @@ do_configure () {
   export CC=gcc
   export CXX=g++
 
+  if [ "${FORCE_SOFT_FPU}" = "yes" ]; then
+    sed -i "s,'default': 'softfp','default': 'soft',g" ${S}/deps/v8/SConstruct
+  fi
+
   ./configure --prefix=${prefix} --without-snapshot
 }
 
-- 
1.7.2.5


_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

Reply via email to