-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Add support for ARM64/AARCH64 #6438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Also a massive shout out to @raedwulf for his help with the assembly! |
|
Wonderful! What is the difference between Your changes sometimes check only for one of those, sometimes for both. |
|
@AtnNn sorry I had missed one, as far as I know for the general assembly the instructions and ABI is the same -- the main difference between ARM64 and AARCH64 is on the fringe instructions. Apple uses ARM64 on iOS and I'm unsure if other providers do or not while most 64-bit ARM linux servers use AARCH64 |
|
This is what happens when I try to compile from your repo: Based on tutorial at : https://rethinkdb.com/docs/build/ |
|
@gdeverlant I didn't update any of the build scripts so that may be what's causing the issue… |
|
After changing the line 105 from configure to this it compiles : |
Content of Full error log: ./build/external/v8_3.30.33.16-patched_install.log |
|
@gdeverlant yea looks like more build script tweaks necessary… I have a totally separate build system in place at the moment for my iOS support (which is why I ported to ARM64 to begin with) that doesn't include v8… |
|
Have a look at the last comment with the log. Let me know ASAP I will test your changes to validate on my aarch64 board. I found in this Dockerfile that something is different when compiling arm32 with make: Do we need that also for arm64 or aarch64? |
|
@gdeverlant try latest commits, I'm just toying at this point I have no idea if this is what is necessary… |
|
Retrying again let's see if this goes well ! |
|
@gdeverlant you in the slack channel might be easier to fix/do this over DM... |
|
Ok I'm coming |
|
I think we need to find the equivalent for 'GYPFLAGS=-Dwerror= -Darm_version=6 -Darm_fpu=vfpv2' for aarch64 and arm64. arm_gypflags='-Darm_version=6 -Darm_fpu=vfpv2' are only good for armv6,armv7 and armv5 I think for arm64 or aarch64 the following should be : -Darm_version=8 -Darm_fpu=we need to find the value of this. We need to find the Floating Point Unit which are available. I found this https://github.com/imyller/meta-nodejs/pull/17/files maybe this can be an example. I also found this https://groups.google.com/a/chromium.org/forum/#!topic/chromium-os-reviews/l0AyewBmRPI |
|
This is something which help us : https://groups.google.com/forum/#!topic/v8-users/9Pp6csasgMo |
|
For Google Protobuffer I found a patch that might be important to integrate 👍 Specific for this aarch64 : https://gist.github.com/BennettSmith/7111094#file-0001-add-generic-gcc-support-for-atomic-operations-patch-L181 It seems that Protobuf is already aarch64 compatible : https://www.rpmfind.net/linux/RPM/opensuse/updates/42.1/aarch64/protobuf-devel-2.6.1-5.1.aarch64.html |
|
I think it's going to be an issue with v8 more than anything? |
|
Perhaps base your changes off of #6401 |
|
Hey @robertjpayne, can I merge this? (Should I?) My guess is, if it's not working everywhere, it's still harmless and works some places, right? |
|
The main issue was v8 working on arm64, I don't really have any time left to try and tidy this up but it should be mergable into #6401 easily? And yea it's all |
|
I guess I could disable JS and merge. |
|
Alright, I just merged and pushed. In next as of 433cbe7. Thanks! |
|
The change is now cherry-picked to the v2.4.x branch, too. fc0ca2e |
Description
This adds the necessary assembly to support ARM64 and AARCH64. I need help getting tests setup on other platforms as I've primarily tested this assembly on an iPhone 6s.
This resolves #5265