Skip to content
This repository was archived by the owner on Apr 22, 2023. It is now read-only.

configure: added --with-arm-fpu option - #14086

Closed
Ferk wants to merge 1 commit into
nodejs:masterfrom
Ferk:arm_fpu_support
Closed

configure: added --with-arm-fpu option#14086
Ferk wants to merge 1 commit into
nodejs:masterfrom
Ferk:arm_fpu_support

Conversation

@Ferk

@Ferk Ferk commented Mar 25, 2015

Copy link
Copy Markdown

The configure script is currently using arm-fpu='vfpv3' as the hardcoded default.

This patch will add a --with-arm-fpu option that will allow the choice of other FPU hardware. Otherwise we would get an "Illegal instruction" error on runtime when using the v8 engine in ARM hardware that has a different floating point unit (I was having this problem on an at91sama5 microcontroller).

It might be advisable to use as default value "default" instead of "vfpv3". For consistency and to avoid having to update the default value in the future if v8 ever decides to drop support of vfpv3 like it did with vfpv2.

But since this would change the current default behavior ("default" currently falls back to "vfpv3-d16" in the version of v8 you are using), I would like to know your opinion about it, perhaps you have good reasons to have "vfpv3" as the default arm_fpu, instead of "vfpv3-d16".

@Ferk
Ferk force-pushed the arm_fpu_support branch from 189e25e to efbda0b Compare March 25, 2015 16:49
@misterdjules

Copy link
Copy Markdown

Just FYI, vfpv3 will not the default anymore when github.com//pull/14193 lands.
I'm not familiar with ARM, but why aren't vfpv1, vfpv2 and vfpv4 in the list of available floating point units?

@Ferk

Ferk commented Mar 30, 2015

Copy link
Copy Markdown
Author

When that pull request lands, vfpv3 will still be the default for armv7 systems. It won't fix the compilation issues on hardware using vfpv3-d16 (node doesn't compile on my at91sama5 microcontroller using the vfpv3 option).

I didn't add vfpv2 because it was said to be "unsupported" in a comment (and you can also see it doesn't show in the list from v8 ...however maybe I should add vfp since it shows in that list). I also didn't want to add too many untested options, there are many fpu available on gcc (‘vfp’, ‘vfpv3’, ‘vfpv3-fp16’, ‘vfpv3-d16’, ‘vfpv3-d16-fp16’, ‘vfpv3xd’, ‘vfpv3xd-fp16’, ‘neon’, ‘neon-fp16’, ‘vfpv4’, ‘vfpv4-d16’, ‘fpv4-sp-d16’, ‘neon-vfpv4’, ‘fpv5-d16’, ‘fpv5-sp-d16’, ‘fp-armv8’, ‘neon-fp-armv8’, and ‘crypto-neon-fp-armv8’).

I assume many of them are not really supported, but you would still be able to specify any fpu you want if this pull request gets accepted. Regardless of what the list in "--help" says.

@misterdjules

Copy link
Copy Markdown

When that pull request lands, vfpv3 will still be the default
for armv7 systems. It won't fix the compilation issues on hardware using vfpv3-d16 (node doesn't
compile on my at91sama5 microcontroller using the vfpv3 option).

Right, just to clarify the intent of my comment was to give an update of what's coming soon, not to say that all issues for building Node.js on ARM are solved.

Thanks for the clarifications!

@jasnell

jasnell commented Aug 15, 2015

Copy link
Copy Markdown
Member

@misterdjules ... am I right to assume that this would not land here? This PR likely needs to be revisited.

@jasnell

jasnell commented Aug 27, 2015

Copy link
Copy Markdown
Member

At this point, anything done here would need to happen in nodejs/node. Closing this here.

@jasnell jasnell closed this Aug 27, 2015
@not-a-user

Copy link
Copy Markdown

Thank you! Why is this not merged yet? This patch is required to build node.js v0.12.7 on my nvidia tegra 2 (cortex-a9, vfpv3-d16, no neon, ubuntu 12.04, gcc 4.6, linux 3.4). My /proc/cpuinfo:

Processor       : ARMv7 Processor rev 0 (v7l)
processor       : 0
BogoMIPS        : 1987.37

processor       : 1
BogoMIPS        : 1993.93

Features        : swp half thumb fastmult vfp edsp thumbee vfpv3 vfpv3d16 tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x1
CPU part        : 0xc09
CPU revision    : 0

Hardware        : trimslice
Revision        : 0000
Serial          : 0000000000000000

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants