nodejs cleanup and update
v3 cover nodejs cleanup and update
My third attempt to update and cleanup the nodejs recipes.
This patch removes the older nodejs recipes and replaces them with a recipe for nodejs 4.2.3 (the latest stable at this time).
Nodejs is picky about which architectures it supports. Add COMPATIBLE_MACHINE and cleanup the architecture mapping function to reflect what is currently supported. Nodejs dropped support for ARMv5 around V8 version 3.22. Also, gcc no longer supports -mfpu=vfpv2 (which is what the nodejs build thinks it should be using).
Successfully built for:
qemuarm, qemuarm64, qemumips, qemumips64, qemuppc, qemuppc64, qemux86, qemux86-64, beaglebone, intel-corei7-64, genericx86, genericx86-64
Successfully ran on:
qemuarm64, qemumips, qemux86, qemux86-64, intel-corei7-64 (turbot)
Failed to run for:
qemuppc:
unhandled signal 4 at 2ee3bf48 nip 2ee3bf48 lr 2ee3ed70 code 30001
Illegal instruction qemuppc64:
I wasn't able to successfully run a qemuppc64 VM
Changes from v2:
handle qemuarm build failure
Changes from v1:
don't try to keep and unite the old recipe versions, just replace them with the latest stable
Trevor Woerner (1):
nodejs: cleanup and update
.../nodejs/nodejs/enable-armv5e-build.patch | 22 ----------
.../nodejs/nodejs4/libev-cross-cc_0.4.12.patch | 13 ------
meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb | 49 ----------------------
.../nodejs/{nodejs_0.12.7.bb => nodejs_4.2.3.bb} | 23 ++++++----
4 files changed, 16 insertions(+), 91 deletions(-)
delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patch
delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patch
delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb
rename meta-oe/recipes-devtools/nodejs/{nodejs_0.12.7.bb => nodejs_4.2.3.bb} (81%)Signature · 1 line
2.6.0.rc3
PATCH v3 1/1 nodejs: cleanup and update
Remove old nodejs_0.4.12 and update nodejs_0.12.7 to the latest stable nodejs_4.2.3.
Nodejs is picky about which architectures it supports. The supported arch mapping required some updating to bring it up to date with the current nodejs code. Add COMPATIBLE_MACHINE entries so it only builds for the supported architectures.
It appears the nodejs project removed support for ARMv5 somewhere around V8 3.22 or 3.23. Also, gcc 5 no longer supports -mfpu=vfpv2 (which is what the nodejs build thinks it should be using for ARMv5).
See https://github.com/nodejs/node/issues/3061
---
.../nodejs/nodejs/enable-armv5e-build.patch | 22 ----------
.../nodejs/nodejs4/libev-cross-cc_0.4.12.patch | 13 ------
meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb | 49 ----------------------
.../nodejs/{nodejs_0.12.7.bb => nodejs_4.2.3.bb} | 23 ++++++----
4 files changed, 16 insertions(+), 91 deletions(-)
delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patch
delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patch
delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb
rename meta-oe/recipes-devtools/nodejs/{nodejs_0.12.7.bb => nodejs_4.2.3.bb} (81%)meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patch deleted +0 -22
@@ -1,22 +0,0 @@ -Building for qemuarm without thumb enabled is using -march=armv5e which isn't -recognized here. Fix it by adding __ARM_ARCH_5E__. - -v0.12.2 branch of node doesn't seem to be affected, because it's using -different version of v8 - -Upstream-Status: Pending - -Signed-off-by: Martin Jansa <[email protected]> - -diff -uNr node-v0.12.2/deps/v8/src/base/atomicops_internals_arm_gcc.h node-v0.12.2-fix/deps/v8/src/base/atomicops_internals_arm_gcc.h ---- node-v0.12.2/deps/v8/src/base/atomicops_internals_arm_gcc.h 2015-04-01 00:13:01.000000000 +0200 -+++ node-v0.12.2-fix/deps/v8/src/base/atomicops_internals_arm_gcc.h 2015-04-28 14:30:43.119509207 +0200 -@@ -156,7 +156,7 @@ - - // This tests against any known ARMv5 variant. - #elif defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || \ -- defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) -+ defined(__ARM_ARCH_5E__) || defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) - - // The kernel also provides a helper function to perform an atomic - // compare-and-swap operation at the hard-wired address 0xffff0fc0.
meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patch deleted +0 -13
@@ -1,13 +0,0 @@ -diff --git a/deps/libev/wscript b/deps/libev/wscript -index 4f6c9a8..1796749 100644 ---- a/deps/libev/wscript -+++ b/deps/libev/wscript -@@ -58,7 +58,7 @@ def configure(conf): - return 0; - } - """ -- conf.check_cc(fragment=code, define_name="HAVE_CLOCK_SYSCALL", execute=True, -+ conf.check_cc(fragment=code, define_name="HAVE_CLOCK_SYSCALL", execute=False, - msg="Checking for SYS_clock_gettime") - - have_librt = conf.check(lib='rt', uselib_store='RT')
meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb deleted +0 -49
49 lines not on this page · raw message
meta-oe/recipes-devtools/nodejs/nodejs_4.2.3.bb renamed from meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +16 -7
@@ -1,16 +1,24 @@ DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript" HOMEPAGE = "http://nodejs.org" LICENSE = "MIT & BSD & Artistic-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=14115ff11211df04b031ec7d40b6d31b" +LIC_FILES_CHKSUM = "file://LICENSE;md5=ee90ba97d933fc8d56e97812b7dd62e9" DEPENDS = "openssl" +COMPATIBLE_MACHINE = "(-)" +COMPATIBLE_MACHINE_x86 = "(.*)" +COMPATIBLE_MACHINE_x86-64 = "(.*)" +COMPATIBLE_MACHINE_armv7a = "(.*)" +COMPATIBLE_MACHINE_aarch64 = "(.*)" +COMPATIBLE_MACHINE_mips = "(.*)" +COMPATIBLE_MACHINE_powerpc = "(.*)" +COMPATIBLE_MACHINE_powerpc64 = "(.*)" + SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.gz \ - file://enable-armv5e-build.patch \ file://no-registry.patch \ " -SRC_URI[md5sum] = "5523ec4347d7fe6b0f6dda1d1c7799d5" -SRC_URI[sha256sum] = "b23d64df051c9c969b0c583f802d5d71de342e53067127a5061415be7e12f39d" +SRC_URI[md5sum] = "529a8abd4ca5a2225636767d3f14c382" +SRC_URI[sha256sum] = "5008ade5feb4b089f59163f66bffddc113f27de5d78edf203e39435c2c5d554f" S = "${WORKDIR}/node-v${PV}"
@@ -20,10 +28,11 @@ CCACHE = "" def map_nodejs_arch(a, d): import re - if re.match('p(pc|owerpc)(|64)', a): return 'ppc' - elif re.match('i.86$', a): return 'ia32' + if re.match('i.86$', a): return 'ia32' elif re.match('x86_64$', a): return 'x64' - elif re.match('arm64$', a): return 'arm' + elif re.match('aarch64$', a): return 'arm64' + elif re.match('powerpc64$', a): return 'ppc64' + elif re.match('powerpc$', a): return 'ppc' return a ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)}"
Signature · 1 line
2.6.0.rc3
Re: [meta-oe][PATCH v3 1/1] nodejs: cleanup and update
Oops, sent to wrong list. resending...