VFP2 ARM V8 Issues

Showing 1-5 of 5 messages
VFP2 ARM V8 Issues Adam Malcontenti-Wilson 8/13/12 7:44 AM
The V8 bundled with node currently requires an ARM CPU supporting VFP3 for hard-float support, causing problems when trying to compile for ARMv6 devices like the Raspberry Pi. 
There is a patch that was committed upstream at http://codereview.chromium.org/10818026/ but does not apply cleanly to the bundled V8 source, and attempting to replace it with version V8 version 3.12.17 which does include the fixes, produces a `error: ‘MAP_TRANSITION’ was not declared in this scope`. How do you normally apply an upstream patch like this - would it be better to try and get 3.12.17 to compile or to try and backport all the necessary changes to the bundled source somehow? Or is there a better way to go about trying to get it working on ARMv6 with hard float I haven't thought of yet?
Thanks.
Re: VFP2 ARM V8 Issues Adam Malcontenti-Wilson 8/13/12 7:46 AM
Whoops, I forgot to mention I had tried both a 0.8.6 release and the master branch - they appear to be quite far apart in terms of v8 so that's another complicating factor.
Re: [node-dev] VFP2 ARM V8 Issues Ben Noordhuis 8/13/12 8:03 AM
On Mon, Aug 13, 2012 at 4:44 PM, Adam Malcontenti-Wilson
<adma...@gmail.com> wrote:
> The V8 bundled with node currently requires an ARM CPU supporting VFP3 for
> hard-float support, causing problems when trying to compile for ARMv6
> devices like the Raspberry Pi.
> There is a patch that was committed upstream at
> http://codereview.chromium.org/10818026/ but does not apply cleanly to the
> bundled V8 source, and attempting to replace it with version V8 version
> 3.12.17 which does include the fixes, produces a `error: ‘MAP_TRANSITION’
> was not declared in this scope`.

You probably botched the upgrade, e.g. by leaving old files around. I
usually upgrade V8 as follows:

  rm -rf deps/v8/ && (cd /path/to/v8 && git archive --format=tar
--prefix=deps/v8/ <commit>) | tar x

Where /path/to/v8 is a clone of https://github.com/v8/v8 and <commit>
is the commit or branch name (possibly just HEAD).
Re: [node-dev] VFP2 ARM V8 Issues Adam Malcontenti-Wilson 8/16/12 7:34 AM
Thanks for the quick command.

I'm still getting the same errors as before though I think:

  g++ '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64'
'-DENABLE_DEBUGGER_SUPPORT' '-DV8_TARGET_ARCH_X64' -I../deps/v8/src
-Wall -pthread -m64 -fno-strict-aliasing -fno-strict-aliasing
-fno-tree-vrp -fno-rtti -fno-exceptions -MMD -MF
/home/adam/software/node/out/Release/.deps//home/adam/software/node/out/Release/obj.target/v8_base/gen/debug-support.o.d.raw
 -c -o /home/adam/software/node/out/Release/obj.target/v8_base/gen/debug-support.o
/home/adam/software/node/out/Release/obj/gen/debug-support.cc
/home/adam/software/node/out/Release/obj/gen/debug-support.cc:44:37:
error: ‘MAP_TRANSITION’ was not declared in this scope
/home/adam/software/node/out/Release/obj/gen/debug-support.cc:334:50:
error: ‘kInstanceDescriptorsOrBitField3Offset’ is not a member of
‘v8::internal::Map’
make[1]: *** [/home/adam/software/node/out/Release/obj.target/v8_base/gen/debug-support.o]
Error 1
make[1]: Leaving directory `/home/adam/software/node/out'
make: *** [node] Error 2

Is this an error in V8, or just something has changed between the
version node supports and the later version of V8?
For reference, this is with node master and v8 3.12.19
--
Adam Malcontenti-Wilson
Re: [node-dev] VFP2 ARM V8 Issues Ben Noordhuis 8/16/12 8:15 AM
On Thu, Aug 16, 2012 at 4:34 PM, Adam Malcontenti-Wilson
<adma...@gmail.com> wrote:
> Thanks for the quick command.
>
> I'm still getting the same errors as before though I think:
>
>   g++ '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64'
> '-DENABLE_DEBUGGER_SUPPORT' '-DV8_TARGET_ARCH_X64' -I../deps/v8/src
> -Wall -pthread -m64 -fno-strict-aliasing -fno-strict-aliasing
> -fno-tree-vrp -fno-rtti -fno-exceptions -MMD -MF
> /home/adam/software/node/out/Release/.deps//home/adam/software/node/out/Release/obj.target/v8_base/gen/debug-support.o.d.raw
>  -c -o /home/adam/software/node/out/Release/obj.target/v8_base/gen/debug-support.o
> /home/adam/software/node/out/Release/obj/gen/debug-support.cc
> /home/adam/software/node/out/Release/obj/gen/debug-support.cc:44:37:
> error: ‘MAP_TRANSITION’ was not declared in this scope
> /home/adam/software/node/out/Release/obj/gen/debug-support.cc:334:50:
> error: ‘kInstanceDescriptorsOrBitField3Offset’ is not a member of
> ‘v8::internal::Map’
> make[1]: *** [/home/adam/software/node/out/Release/obj.target/v8_base/gen/debug-support.o]
> Error 1
> make[1]: Leaving directory `/home/adam/software/node/out'
> make: *** [node] Error 2
>
> Is this an error in V8, or just something has changed between the
> version node supports and the later version of V8?
> For reference, this is with node master and v8 3.12.19

Some V8 internals changed. Try this[1] or this[2].

[1] https://github.com/bnoordhuis/v8/commit/add4152
[2] https://github.com/bnoordhuis/v8/commit/343b98c

Append .patch to get the patch file.