[oe] [meta-oe][PATCH v4 1/1] nodejs: cleanup and update

Trevor Woerner twoerner at gmail.com
Wed Dec 23 04:14:35 UTC 2015


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



More information about the Openembedded-devel mailing list