-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
Torque is built 32bit for arm cross compile #27838
Comments
@nodejs/v8 |
As this has little to do with Node.js itself, https://groups.google.com/forum/?nomobile=true#!forum/v8-dev or https://groups.google.com/forum/?nomobile=true#!forum/v8-users may be better places for this question. |
I did some digging it leads to:
'conditions': [
['host_arch=="ia32" or host_arch=="x64" or \
host_arch=="ppc" or host_arch=="ppc64" or \
host_arch=="s390" or host_arch=="s390x" or \
clang==1', {
'variables': {
'host_cxx_is_biarch%': 1,
},
}, {
'variables': {
'host_cxx_is_biarch%': 0,
},
}],
['target_arch=="ia32" or target_arch=="x64" or \
target_arch=="ppc" or target_arch=="ppc64" or target_arch=="s390" or \
target_arch=="s390x" or clang==1', {
'variables': {
'target_cxx_is_biarch%': 1,
},
}, {
'variables': {
'target_cxx_is_biarch%': 0,
},
}],
],
#if (V8_TARGET_ARCH_ARM && !(V8_HOST_ARCH_IA32 || V8_HOST_ARCH_ARM))
#error Target architecture arm is only supported on arm and ia32 host
#endif Just as a starting point if someone else is looking into it. Will do some asking in the v8 related groups though. |
You may have better luck looking at the original GN build files now (we port those into GYP for Node.js):
https://github.com/v8/v8/blob/e588ff10e5d63e33758960cbd66f5950930b9266/BUILD.gn#L196-L199 |
@joyeecheung yeah I noticed that. However since it seems be written in the I will try to just compile it by fixing the mentioned places above and will see what comes out. Maybe sb. will respond on their google group too. |
The reason is that you are building for arm32. V8's startup snapshot contains V8 objects. To create the snapshot, we actually run V8 as a build step on the cross compile host. The layout of these objects depend on the pointer size of the platform, because the C++ code in V8 make implicit assumptions about the objects on V8's heap. That's why even when cross compiling we choose to use ia32 on the host platform. |
Is that necessarily true for for |
@refack look into the Google group thread I linked above. There it is explained that is only due to mksnapshot. Didn't knew that is an optional step though |
Not necessary for torque, but also not supported. I'm sure you can make it work somehow, but you probably would also run into some assumptions that would be invalidated. Also, the no-snapshot build is going away soon. So you will need to run mksnapshot. |
Thank you for both for answering my follow up question 🎩 |
I am building NodeJS for ARMv7 on a x86_64 linux machine. I noticed that torque is compiled for x86, though running a 64bit system. It is no problem for my desktop system where I can install a multilib libstc++, however this is a bit ugly for our build environment.
So I wondered in general whether there is actual any requirement to build torque in 32bit, since it is a host tool anyway. Is this really required (maybe because I am cross compiling for 32bit ARM) or is it just a build system limitation?
The text was updated successfully, but these errors were encountered: