* [meta-oe][PATCH v4 0/1] nodejs cleanup and update
@ 2015-12-22 15:45 Trevor Woerner
2015-12-22 15:45 ` [meta-oe][PATCH v4 1/1] nodejs: " Trevor Woerner
0 siblings, 1 reply; 4+ messages in thread
From: Trevor Woerner @ 2015-12-22 15:45 UTC (permalink / raw)
To: openembedded-devel
My fourth attempt to update and cleanup the nodejs recipes.
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 v3:
better link to official announcement regarding the dropping of VFP2
instead of whitelisting machines, blacklist the unsupported ones
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} | 18 ++++----
4 files changed, 11 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} (84%)
--
2.6.0.rc3
^ permalink raw reply [flat|nested] 4+ messages in thread* [meta-oe][PATCH v4 1/1] nodejs: cleanup and update 2015-12-22 15:45 [meta-oe][PATCH v4 0/1] nodejs cleanup and update Trevor Woerner @ 2015-12-22 15:45 ` Trevor Woerner 2015-12-22 18:06 ` Andre McCurdy 0 siblings, 1 reply; 4+ messages in thread From: Trevor Woerner @ 2015-12-22 15:45 UTC (permalink / raw) To: openembedded-devel Remove old nodejs4_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. ARM cores that don't support at least VFP2 have been dropped: https://groups.google.com/forum/#!topic/v8-users/aSOFbaAQvMk "Due the increasing cost of the keeping the "no-VFPv2" port of V8 working on ARM, we are planning on making 3.17 the last V8 release that that supports ARM chips without VFPv2. Starting with the 3.18 release, the minimal V8 requirements will increase to ARMv6 + VFPv2. In order to simplify maintenance, we will also remove the "pre-VFP2" ARM code from the V8 code base." Additionally, gcc no longer supports a VFPv2 option: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#index-mfpu-1460 Signed-off-by: Trevor Woerner <twoerner@gmail.com> --- .../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} | 18 ++++---- 4 files changed, 11 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} (84%) diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patch b/meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patch deleted file mode 100644 index cc7c9ab..0000000 --- a/meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patch +++ /dev/null @@ -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 <Martin.Jansa@gmail.com> - -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. diff --git a/meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patch b/meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patch deleted file mode 100644 index 2b9838f..0000000 --- a/meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patch +++ /dev/null @@ -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') diff --git a/meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb b/meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb deleted file mode 100644 index c73cefc..0000000 --- a/meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "nodeJS Evented I/O for V8 JavaScript" -HOMEPAGE = "http://nodejs.org" -LICENSE = "MIT & Zlib" -LIC_FILES_CHKSUM = "file://LICENSE;md5=d6237f3a840aef5b7880fb4e49eecfe5" - -DEPENDS = "openssl" - -PNBLACKLIST[nodejs4] ?= "Used only by currently blacklisted cloud9 and fails to build for qemuarm with thumb: error: #error For thumb inter-working we require an architecture which supports blx" - -SRC_URI = " \ - http://nodejs.org/dist/node-v${PV}.tar.gz \ - file://libev-cross-cc_${PV}.patch \ -" -SRC_URI[md5sum] = "a6375eaa43db5356bf443e25b828ae16" -SRC_URI[sha256sum] = "c01af05b933ad4d2ca39f63cac057f54f032a4d83cff8711e42650ccee24fce4" - -S = "${WORKDIR}/node-v${PV}" - -# v8 errors out if you have set CCACHE -CCACHE = "" - -do_configure () { - sed -i -e 's:/usr/lib:${STAGING_LIBDIR}:g' wscript - sed -i -e 's:/usr/local/lib:${STAGING_LIBDIR}:g' wscript - ./configure --prefix=${prefix} --without-snapshot -} - -do_compile () { - make -} - -do_install () { - oe_runmake install DESTDIR=${D} - - # fix namespace conflicts with other nodejs recipes - mv ${D}${bindir}/node ${D}${bindir}/node4 - mv ${D}${bindir}/node-waf ${D}${bindir}/node4-waf - - mv ${D}${includedir}/node ${D}${includedir}/node4 - - mv ${D}${libdir}/node ${D}${libdir}/node4 - mv ${D}${libdir}/pkgconfig/nodejs.pc ${D}${libdir}/pkgconfig/nodejs4.pc - sed -i -e s:include/node:include/node4: ${D}${libdir}/pkgconfig/nodejs4.pc - - mv ${D}${datadir}/man/man1/node.1 ${D}${datadir}/man/man1/node4.1 -} - -FILES_${PN} += "${libdir}/node4/wafadmin" -BBCLASSEXTEND = "native" diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb b/meta-oe/recipes-devtools/nodejs/nodejs_4.2.3.bb similarity index 84% rename from meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb rename to meta-oe/recipes-devtools/nodejs/nodejs_4.2.3.bb index 41eb5ee..66a3c11 100644 --- a/meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +++ b/meta-oe/recipes-devtools/nodejs/nodejs_4.2.3.bb @@ -1,16 +1,19 @@ 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_armv4 = "(!.*armv4).*" +COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*" +COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*" + 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 +23,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)}" -- 2.6.0.rc3 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [meta-oe][PATCH v4 1/1] nodejs: cleanup and update 2015-12-22 15:45 ` [meta-oe][PATCH v4 1/1] nodejs: " Trevor Woerner @ 2015-12-22 18:06 ` Andre McCurdy 2015-12-23 4:14 ` Trevor Woerner 0 siblings, 1 reply; 4+ messages in thread From: Andre McCurdy @ 2015-12-22 18:06 UTC (permalink / raw) To: openembedded-devel On Tue, Dec 22, 2015 at 7:45 AM, Trevor Woerner <twoerner@gmail.com> wrote: > Remove old nodejs4_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. > > ARM cores that don't support at least VFP2 have been dropped: > > https://groups.google.com/forum/#!topic/v8-users/aSOFbaAQvMk > > "Due the increasing cost of the keeping the "no-VFPv2" port of V8 working > on ARM, we are planning on making 3.17 the last V8 release that that > supports ARM chips without VFPv2. Starting with the 3.18 release, the > minimal V8 requirements will increase to ARMv6 + VFPv2. In order to > simplify maintenance, we will also remove the "pre-VFP2" ARM code from the > V8 code base." > > Additionally, gcc no longer supports a VFPv2 option: > > https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#index-mfpu-1460 There's no documented -mfpu=vfpv2 option in older releases either, so trying to use it may just be a bug in the v8 build system? https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/ARM-Options.html#ARM-Options https://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/ARM-Options.html#ARM-Options https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/ARM-Options.html#ARM-Options The correct option for vfpv2 is -mfpu=vfp and it's certainly still supported by current gcc versions (it's used by meta-raspberrypi). > Signed-off-by: Trevor Woerner <twoerner@gmail.com> > --- > .../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} | 18 ++++---- > 4 files changed, 11 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} (84%) > > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patch b/meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patch > deleted file mode 100644 > index cc7c9ab..0000000 > --- a/meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patch > +++ /dev/null > @@ -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 <Martin.Jansa@gmail.com> > - > -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. > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patch b/meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patch > deleted file mode 100644 > index 2b9838f..0000000 > --- a/meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patch > +++ /dev/null > @@ -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') > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb b/meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb > deleted file mode 100644 > index c73cefc..0000000 > --- a/meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb > +++ /dev/null > @@ -1,49 +0,0 @@ > -SUMMARY = "nodeJS Evented I/O for V8 JavaScript" > -HOMEPAGE = "http://nodejs.org" > -LICENSE = "MIT & Zlib" > -LIC_FILES_CHKSUM = "file://LICENSE;md5=d6237f3a840aef5b7880fb4e49eecfe5" > - > -DEPENDS = "openssl" > - > -PNBLACKLIST[nodejs4] ?= "Used only by currently blacklisted cloud9 and fails to build for qemuarm with thumb: error: #error For thumb inter-working we require an architecture which supports blx" > - > -SRC_URI = " \ > - http://nodejs.org/dist/node-v${PV}.tar.gz \ > - file://libev-cross-cc_${PV}.patch \ > -" > -SRC_URI[md5sum] = "a6375eaa43db5356bf443e25b828ae16" > -SRC_URI[sha256sum] = "c01af05b933ad4d2ca39f63cac057f54f032a4d83cff8711e42650ccee24fce4" > - > -S = "${WORKDIR}/node-v${PV}" > - > -# v8 errors out if you have set CCACHE > -CCACHE = "" > - > -do_configure () { > - sed -i -e 's:/usr/lib:${STAGING_LIBDIR}:g' wscript > - sed -i -e 's:/usr/local/lib:${STAGING_LIBDIR}:g' wscript > - ./configure --prefix=${prefix} --without-snapshot > -} > - > -do_compile () { > - make > -} > - > -do_install () { > - oe_runmake install DESTDIR=${D} > - > - # fix namespace conflicts with other nodejs recipes > - mv ${D}${bindir}/node ${D}${bindir}/node4 > - mv ${D}${bindir}/node-waf ${D}${bindir}/node4-waf > - > - mv ${D}${includedir}/node ${D}${includedir}/node4 > - > - mv ${D}${libdir}/node ${D}${libdir}/node4 > - mv ${D}${libdir}/pkgconfig/nodejs.pc ${D}${libdir}/pkgconfig/nodejs4.pc > - sed -i -e s:include/node:include/node4: ${D}${libdir}/pkgconfig/nodejs4.pc > - > - mv ${D}${datadir}/man/man1/node.1 ${D}${datadir}/man/man1/node4.1 > -} > - > -FILES_${PN} += "${libdir}/node4/wafadmin" > -BBCLASSEXTEND = "native" > diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb b/meta-oe/recipes-devtools/nodejs/nodejs_4.2.3.bb > similarity index 84% > rename from meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb > rename to meta-oe/recipes-devtools/nodejs/nodejs_4.2.3.bb > index 41eb5ee..66a3c11 100644 > --- a/meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb > +++ b/meta-oe/recipes-devtools/nodejs/nodejs_4.2.3.bb > @@ -1,16 +1,19 @@ > 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_armv4 = "(!.*armv4).*" > +COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*" > +COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*" > + > 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 +23,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)}" > -- > 2.6.0.rc3 > > -- > _______________________________________________ > Openembedded-devel mailing list > Openembedded-devel@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-devel ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [meta-oe][PATCH v4 1/1] nodejs: cleanup and update 2015-12-22 18:06 ` Andre McCurdy @ 2015-12-23 4:14 ` Trevor Woerner 0 siblings, 0 replies; 4+ messages in thread From: Trevor Woerner @ 2015-12-23 4:14 UTC (permalink / raw) To: openembedded-devel Hi Andre, On 12/22/15 13:06, Andre McCurdy wrote: >> Remove old nodejs4_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. >> >> ARM cores that don't support at least VFP2 have been dropped: >> >> https://groups.google.com/forum/#!topic/v8-users/aSOFbaAQvMk >> >> "Due the increasing cost of the keeping the "no-VFPv2" port of V8 working >> on ARM, we are planning on making 3.17 the last V8 release that that >> supports ARM chips without VFPv2. Starting with the 3.18 release, the >> minimal V8 requirements will increase to ARMv6 + VFPv2. In order to >> simplify maintenance, we will also remove the "pre-VFP2" ARM code from the >> V8 code base." >> >> Additionally, gcc no longer supports a VFPv2 option: >> >> https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#index-mfpu-1460 > There's no documented -mfpu=vfpv2 option in older releases either, so > trying to use it may just be a bug in the v8 build system? > > https://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/ARM-Options.html#ARM-Options > https://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/ARM-Options.html#ARM-Options > https://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/ARM-Options.html#ARM-Options Interesting. I hadn't thought to look at the older docs to try to find out "when it was removed". It's rather strange, then, that the V8 build included this at all! How/when could it have ever worked? (rhetorical) > The correct option for vfpv2 is -mfpu=vfp and it's certainly still > supported by current gcc versions (it's used by meta-raspberrypi). A day or so ago I created a patch to switch this flag in the nodejs build from "-mfpu=vfpv2" to "-mfpu=vfp" and the build for qemuarm did succeed. When I tried running the resulting program in the VM, however, it threw an "illegal instruction" and failed. Since ARMv5 is no longer officially supported, I didn't bother introducing that patch and simply continued to remove support for this architecture. Interestingly, although the ppc architecture is supported, and it builds fine, running node in qemuppc also threw an illegal instruction and failed. I kept support for ppc, however, since officially it's supported and any run-time errors are, perhaps, an upstream issue? Maybe I should also disable ppc builds so anyone using the recipe for that purpose doesn't get their hopes up? Strictly from a build point of view, ppc "succeeds". I never was able to test the ppc64 build (which is also successful) since I couldn't figure out the magic incantation to get qemu-system-ppc64 to boot to a cmdline. Best regards, Trevor ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-12-23 4:14 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-12-22 15:45 [meta-oe][PATCH v4 0/1] nodejs cleanup and update Trevor Woerner 2015-12-22 15:45 ` [meta-oe][PATCH v4 1/1] nodejs: " Trevor Woerner 2015-12-22 18:06 ` Andre McCurdy 2015-12-23 4:14 ` Trevor Woerner
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.