[Buildroot] [PATCH 2/2 v3] package/nodejs: add version 4.1.2

Martin Bark martin at barkynet.com
Sun Nov 22 21:28:10 UTC 2015


Jaap, Arnout, All,

On 22 November 2015 at 00:16, Arnout Vandecappelle <arnout at mind.be> wrote:
> On 21-11-15 20:53, Jaap Crezee wrote:
>> Hi all,
>>
>>
>> Can somebody please add the following (might not be completely right, that's why I post it
>> like this):
>>
>> [jaap at jaap /data/work/zupr/git/buildroot ]$ git diff
>> diff --git a/package/nodejs/Config.in b/package/nodejs/Config.in
>> index 5128901..8d0ecad 100644
>> --- a/package/nodejs/Config.in
>> +++ b/package/nodejs/Config.in
>> @@ -32,7 +32,7 @@ config BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
>>         # On supported architectures other than ARM, no special requirement
>>         default y if !BR2_arm
>>         # On ARM, at least ARMv6+ with VFPv2+ is needed
>> -       default y if !BR2_ARM_CPU_ARMV5 && BR2_ARM_CPU_HAS_VFPV2
>> +     default y if !BR2_ARM_CPU_ARMV5 && BR2_ARM_CPU_HAS_VFPV2 || BR2_ARM_CPU_HAS_NEON

I was just about to submit a patch to bump node.js to v4.2.2.  In
v4.2.2 there is now a new --with-arm-fpu configure option (see
https://github.com/nodejs/node/commit/17665af) which allows us to set
the fpu to one of vfpv2, vfpv3, vfpv3-d16 or neon.  Perhaps with this
change it makes sense to have the || BR2_ARM_CPU_HAS_NEON since this
is what the configure script will allow.

The node.js Config.in is trying to say at a minimum we need vfpv2 i.e.
it wants this

        default y if !BR2_ARM_CPU_ARMV5 && BR2_ARM_CPU_HAS_AT_LEAST_VFPV2

>>
>>  choice
>>         prompt "Node.js version"
>> [jaap at jaap /data/work/zupr/git/buildroot ]$
>>
>> To my oppinion Neon is a VFPv2 succesor. NodeJS builds and runs fine with Neon selected
>> instead of VFPv2 for Cortex-A9.
>
>  You have a good point. I don't think it's possible to have a NEON core without
> VFP floating point unit. Hm, looking at [1], NEON and FPU are independently
> optional, so theoretically you could have a Cortex-A9 with one but not the
> other. But that probably doesn't exist in practice (in fact, we don't know any
> Cortex-A9 that doesn't have both).
>
>  However, I think it should be fixed in Config.in.arm instead. Basically,
> whenever NEON is selected, the VFP's 'maybe' should be converted into a 'has'.
> So something like
>
> --- a/arch/Config.in.arm
> +++ b/arch/Config.in.arm
> @@ -244,6 +244,9 @@ config BR2_ARM_ENABLE_NEON
>         bool "Enable NEON SIMD extension support"
>         depends on BR2_ARM_CPU_MAYBE_HAS_NEON
>         select BR2_ARM_CPU_HAS_NEON
> +       select BR2_ARM_CPU_HAS_VFPV3 if BR2_ARM_CPU_MAYBE_HAS_VFPV3
> +       select BR2_ARM_CPU_HAS_VFPV4 if BR2_ARM_CPU_MAYBE_HAS_VFPV4
>         help
>           For some CPU cores, the NEON SIMD extension is optional.
>           Select this option if you are certain your particular
>
>  (Note that the VFPv2 cores never have NEON - at least as far as I know. Checked
> arm.com and that seems to be correct.)

The need for at least vfpv2 comes from googles v8 javascript engine
that node.js uses.  I found this comment in the V8 code
https://github.com/nodejs/node/blob/master/deps/v8/src/base/cpu.cc#L526-L529
which says
" ... neon is only available on architectures with vfpv3."  and "...
it is possible to have neon without vfp" which seems to make sense.

Thanks

Martin

>
>  However, when you look at it like that, the option is not named correctly. What
> the option is really about is specifying that the optional floating point/NEON
> unit is indeed present.
>
>  Alternatively, if we really do want to support the case where only one of NEON
> and VFPv3/4 is present, we should have a separate option similar to
> BR2_ARM_ENABLE_NEON to enable the FPU. And in that case, of course, all the
> MAYBEs should be removed from the Floating point strategy choice.
>
>
>  Regards,
>  Arnout
>
>
> [1] http://www.arm.com/products/processors/cortex-a/cortex-a9.php
> --
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list