Conversation
|
/cc @gengjiawen related to nodejs/node-v8#161 |
Yeap. Also msvc only report one error, I will give it a try. BTW, we need to cherrypick v8/v8@4ece106. |
|
@targos, since |
|
In case you want patch code for windows, you can get first two commit in https://github.com/gengjiawen/node/commits/v8-8.5-hack before nodejs/gyp-next#60 get fixed. @targos |
|
Is there any chance that it may get into Node 14 or 15? 😶 |
Major V8 updates are usually API/ABI incompatible with previous versions. This commit adapts NODE_MODULE_VERSION for V8 8.5. Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md
Original commit message:
[testrunner] delete ancient junit compatible format support
Testrunner has ancient support for JUnit compatible XML output.
This CL removes this old feature.
R=mstarzinger@chromium.org,jgruber@chromium.org,jkummerow@chromium.org
CC=machenbach@chromium.org
Bug: v8:8728
Change-Id: I7e1beb011dbaec3aa1a27398a5c52abdd778eaf0
Reviewed-on: https://chromium-review.googlesource.com/c/1430065
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Tamer Tas <tmrts@chromium.org>
Cr-Commit-Position: refs/heads/master@{nodejs#59045}
Refs: v8/v8@bd019bd
PR-URL: nodejs#32116
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Patch V8 (compiler/js-heap-broker.cc) to remove the use of an optional property, which is a fairly new C++ feature, since that requires a newer XCode version than the minimum requirement in BUILDING.md and thus breaks CI. PR-URL: nodejs#32116 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Fixes a compilation issue on some platforms PR-URL: nodejs#32116 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
|
Testing something: https://ci.nodejs.org/job/node-test-commit-arm-fanned/16538/ |
|
@targos I believe I have find the root cause through the generated mk file. It looks like the assembly file processed both on host and target. So we should limit it only on target ( Below is build by removing it in Maybe only something like (not quite sure about the syntax) |
|
I don't know... My condition seems right. I looked at the Jenkins logs and for |
|
So, with the log I added, we can see that the variables have the following values:
There's no other log where _toolset is CI: https://ci.nodejs.org/job/node-test-commit-arm-fanned/16551/ Edit: doesn't work. I'm out of ideas. |
|
@targos if you want to test locally, you can also try https://github.com/mmarchini/node-arm-cross-builder |
|
_toolset being always |
_toolset seems to be 'target' all the time from what I test. Maybe a bug in gyp. Looks the generated mk file toolset is set correctly. Where 1 # This file is generated by gyp; do not edit.
2
3 TOOLSET := host
4 TARGET := v8_base_without_compiler |
This comment has been minimized.
This comment has been minimized.
|
I realise I'm somewhat "drive-by commenting" here, but is there a reason why we still have to cross compile for arm32? There's some reasonably quick stuff out there now (e.g. Raspberry Pi4 or ODROID-XU4 which I use) and if those could be used to build natively in a reasonable amount of time and don't exhibit the same problems it might be worth switching. |
Tinker {
'target_name': 'v8_cppgc_shared',
'type': 'none',
# 'conditions': [
# ['want_separate_host_toolset', {
# 'toolsets': ['host', 'target'],
# }],
# ],
'toolsets': ['host', 'target'] |
|
@sxa It's already tier 1 in build. I suppose even if we want to change it. It will be a much more bigger issue. Context: nodejs/TSC#931 (comment). |
|
For completeness, link to a proposed switch to building natively that went stale nodejs/build#1851 |
|
@targos I think I find the fix, not sure the reason why. I tested in the docker, works fine, you can test it in Jenkins. Change the part like this {
'target_name': 'v8_cppgc_shared',
'type': 'none',
# 'conditions': [
# ['want_separate_host_toolset', {
# 'toolsets': ['host', 'target'],
# }],
# ],
'toolsets': ['host', 'target'],
'direct_dependent_settings': {
'sources': [
'<(V8_ROOT)/src/heap/base/stack.cc',
'<(V8_ROOT)/src/heap/base/stack.h',
],
'conditions': [
['clang or OS!="win"', {
'conditions': [
['_toolset=="target" and target_arch == "arm"', {
'sources': [
'<(V8_ROOT)/src/heap/base/asm/arm/push_registers_asm.cc',
],
}],
['_toolset == "target" and target_arch=="arm64"', {
'sources': [
'<(V8_ROOT)/src/heap/base/asm/arm64/push_registers_asm.cc',
],
}],
]
// other omitted. |
|
@gengjiawen with the change you propose, does it still work for regular compilation, for example x64? |
Not test it yet, give me a second. |
@targos Looks like still works (Note: in my snippet I only show two cpus). PS: the full build without ccache is really long. |
|
Let's try it! |
This comment has been minimized.
This comment has been minimized.
|
It works!!! Thank you @gengjiawen ❤️ . Now I'm going to open a new PR to update directly to 8.6, because it will be stable next week and we need it ASAP for v15. |
You want to land this first or drop it ? |
|
It's easier for me to drop it. |
|
PR for 8.6: #35415 |


Stable Release: Tue, Aug 25, 2020