Skip to content
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

[canary] GYP v8 embedded builtins #22920

Closed
wants to merge 7 commits into from

Conversation

refack
Copy link
Contributor

@refack refack commented Sep 18, 2018

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • documentation is changed or added
  • commit message follows commit guidelines

Roughly working. In CI I've stumbled into #22006 on more platforms, probably because the dep-chain changed.

Would live some review @nodejs/gyp @nodejs/python @nodejs/build-files @nodejs/v8-update
Fixes: nodejs/node-v8#75
Fixes: nodejs/node-v8#39
Fixes: nodejs/node-v8#74
Fixes: #22757

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. v8 engine Issues and PRs related to the V8 dependency. labels Sep 18, 2018
@refack refack requested a review from targos September 18, 2018 03:02
@refack
Copy link
Contributor Author

refack commented Sep 18, 2018

@targos targos force-pushed the gyp-v8-embedded-builtins branch from b55c5bb to ef1ca13 Compare September 18, 2018 08:18
@targos targos changed the title GYP v8 embedded builtins [canary] GYP v8 embedded builtins Sep 18, 2018
@targos
Copy link
Member

targos commented Sep 18, 2018

I updated canary-base to V8's lkgr and rebased this PR.

CI: https://ci.nodejs.org/job/node-test-pull-request/17273/
V8 CI: https://ci.nodejs.org/job/node-test-commit-v8-linux/1696/

@targos
Copy link
Member

targos commented Sep 18, 2018

There's a problem somewhere with the generated files. It keeps recreating the node and cctest binaries:

$ make test -j8 V=
make -C out BUILDTYPE=Release V=
  TOUCH 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
  TOUCH d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate
  TOUCH baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate
  ACTION Generating inspector protocol sources from protocol json d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate
  ACTION Generating node protocol sources from protocol json 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
  ACTION _home_mzasso_git_nodejs_canary_deps_v8_gypfiles_v8_gyp_run_torque_host_run_torque_action baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate
  TOUCH 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate
  ACTION _home_mzasso_git_nodejs_canary_deps_v8_gypfiles_v8_gyp_v8_snapshot_target_run_mksnapshot 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate
  CXX(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/v8_snapshot/geni/snapshot.o
  CXX(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/v8_snapshot/geni/embedded_default.o
  AR(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/libv8_snapshot.a
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/v8_maybe_snapshot.stamp
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/v8.stamp
  LINK(target) /home/mzasso/git/nodejs/canary/out/Release/node
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/rename_node_bin_win.stamp
  LINK(target) /home/mzasso/git/nodejs/canary/out/Release/cctest
rm 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
if [ ! -r node -o ! -L node ]; then ln -fs out/Release/node node; fi
Build the addons before running the tests so the test results
can be displayed together
make -s test-doc
Running JS linter...
Running C++ linter on addon docs...
Done processing test/addons/01_function_arguments/addon.cc
Done processing test/addons/02_callbacks/addon.cc
Done processing test/addons/03_object_factory/addon.cc
Done processing test/addons/04_function_factory/addon.cc
Done processing test/addons/05_wrapping_c_objects/addon.cc
Done processing test/addons/05_wrapping_c_objects/myobject.cc
Done processing test/addons/06_factory_of_wrapped_objects/addon.cc
Done processing test/addons/06_factory_of_wrapped_objects/myobject.cc
Done processing test/addons/07_passing_wrapped_objects_around/addon.cc
Done processing test/addons/07_passing_wrapped_objects_around/myobject.cc
Done processing test/addons/08_void_atexitcallback_args/addon.cc
Done processing test/addons/05_wrapping_c_objects/myobject.h
Done processing test/addons/06_factory_of_wrapped_objects/myobject.h
Done processing test/addons/07_passing_wrapped_objects_around/myobject.h
[00:01|% 100|+   4|-   0]: Done                      
make -s build-addons
  TOUCH 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
  TOUCH d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate
  TOUCH baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate
  ACTION Generating node protocol sources from protocol json 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
  ACTION Generating inspector protocol sources from protocol json d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate
  ACTION _home_mzasso_git_nodejs_canary_deps_v8_gypfiles_v8_gyp_run_torque_host_run_torque_action baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate
  TOUCH 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate
  ACTION _home_mzasso_git_nodejs_canary_deps_v8_gypfiles_v8_gyp_v8_snapshot_target_run_mksnapshot 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate
  CXX(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/v8_snapshot/geni/snapshot.o
  CXX(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/v8_snapshot/geni/embedded_default.o
  AR(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/libv8_snapshot.a
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/v8_maybe_snapshot.stamp
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/v8.stamp
  LINK(target) /home/mzasso/git/nodejs/canary/out/Release/node
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/rename_node_bin_win.stamp
  LINK(target) /home/mzasso/git/nodejs/canary/out/Release/cctest
make -s build-addons-napi
  TOUCH 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
  TOUCH d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate
  TOUCH baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate
  ACTION Generating inspector protocol sources from protocol json d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate
  ACTION Generating node protocol sources from protocol json 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
  ACTION _home_mzasso_git_nodejs_canary_deps_v8_gypfiles_v8_gyp_run_torque_host_run_torque_action baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate
  TOUCH 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate
  ACTION _home_mzasso_git_nodejs_canary_deps_v8_gypfiles_v8_gyp_v8_snapshot_target_run_mksnapshot 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate
  CXX(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/v8_snapshot/geni/snapshot.o
  CXX(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/v8_snapshot/geni/embedded_default.o
  AR(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/libv8_snapshot.a
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/v8_maybe_snapshot.stamp
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/v8.stamp
  LINK(target) /home/mzasso/git/nodejs/canary/out/Release/node
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/rename_node_bin_win.stamp
  LINK(target) /home/mzasso/git/nodejs/canary/out/Release/cctest
make -s cctest
  TOUCH 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
  TOUCH d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate
  TOUCH baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate
  ACTION Generating node protocol sources from protocol json 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
  ACTION Generating inspector protocol sources from protocol json d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate
  ACTION _home_mzasso_git_nodejs_canary_deps_v8_gypfiles_v8_gyp_run_torque_host_run_torque_action baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate
  TOUCH 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate
  ACTION _home_mzasso_git_nodejs_canary_deps_v8_gypfiles_v8_gyp_v8_snapshot_target_run_mksnapshot 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate
  CXX(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/v8_snapshot/geni/snapshot.o
  CXX(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/v8_snapshot/geni/embedded_default.o
  AR(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/libv8_snapshot.a
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/v8_maybe_snapshot.stamp
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/v8.stamp
  LINK(target) /home/mzasso/git/nodejs/canary/out/Release/node
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/rename_node_bin_win.stamp
  LINK(target) /home/mzasso/git/nodejs/canary/out/Release/cctest
[==========] Running 80 tests from 10 test cases.
# cctest output...
[  PASSED  ] 80 tests.
make -s jstest
  TOUCH 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
  TOUCH d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate
  TOUCH baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate
  ACTION Generating inspector protocol sources from protocol json d3bc80f7856fcfa3d3d7905265a41fb78f6975d6.intermediate
  ACTION Generating node protocol sources from protocol json 6c8bbb6e9dc9d22d3b7b17a57b2f4f14600c74e4.intermediate
  ACTION _home_mzasso_git_nodejs_canary_deps_v8_gypfiles_v8_gyp_run_torque_host_run_torque_action baf6f9199c8d1fb1983b013a527e5a19d6ba53ad.intermediate
  TOUCH 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate
  ACTION _home_mzasso_git_nodejs_canary_deps_v8_gypfiles_v8_gyp_v8_snapshot_target_run_mksnapshot 2fcfc65478b7808d24a345fb9c7ab782b8417986.intermediate
  CXX(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/v8_snapshot/geni/snapshot.o
  CXX(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/v8_snapshot/geni/embedded_default.o
  AR(target) /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/libv8_snapshot.a
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/v8_maybe_snapshot.stamp
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/deps/v8/gypfiles/v8.stamp
  LINK(target) /home/mzasso/git/nodejs/canary/out/Release/node
  TOUCH /home/mzasso/git/nodejs/canary/out/Release/obj.target/rename_node_bin_win.stamp
  LINK(target) /home/mzasso/git/nodejs/canary/out/Release/cctest
[00:00|%   1|+  41|-   0]: Done                          ^C                    
make: *** [Makefile:287: test] Interrupt

@refack
Copy link
Contributor Author

refack commented Sep 18, 2018

There's a problem somewhere with the generated files. It keeps recreating the node and cctest binaries:

Yes, and it seems very similar to #22006. I'm investigating...

@refack
Copy link
Contributor Author

refack commented Sep 19, 2018

@refack
Copy link
Contributor Author

refack commented Sep 19, 2018

@refack
Copy link
Contributor Author

refack commented Sep 20, 2018

Some more tweaks https://ci.nodejs.org/job/node-test-commit/21635/

@targos
Copy link
Member

targos commented Sep 20, 2018

ubuntu1804-docker
ppcle-ubuntu1404
ubuntu1604_sharedlibs_withoutintl_x64
ubuntu1604-arm64
win-vs2017

20:08:48 In file included from ../deps/v8/src/builtins/builtins.h:9:0,
20:08:48                  from ../deps/v8/src/external-reference-table.h:11,
20:08:48                  from ../deps/v8/src/heap/heap.h:22,
20:08:48                  from ../deps/v8/src/heap/heap-inl.h:14,
20:08:48                  from ../deps/v8/src/setup-isolate-full.cc:8:
20:08:48 ../deps/v8/src/builtins/builtins-definitions.h:11:10: fatal error: torque-generated/builtin-definitions-from-dsl.h: No such file or directory
20:08:48  #include "torque-generated/builtin-definitions-from-dsl.h"
20:08:48           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@targos
Copy link
Member

targos commented Sep 20, 2018

SmartOS:

20:11:58 dtrace: failed to compile script src/v8ustack.d: line 387: failed to resolve V8DBG_CLASS_STRING__LENGTH__SMI: Unknown variable name

/cc @cjihrig

@targos
Copy link
Member

targos commented Sep 20, 2018

ubuntu1604_sharedlibs_debug_x64

20:12:05 g++: error: /home/iojs/build/workspace/node-test-commit-linux-containered/nodes/ubuntu1604_sharedlibs_debug_x64/out/Release/obj/gen/src/inspector/protocol/Protocol.cpp: No such file or directory
20:12:05 g++: fatal error: no input files

@targos
Copy link
Member

targos commented Sep 20, 2018

aix61-ppc64

Hundreds of lines like this one:

20:23:32 /tmp//ccvNbTXP.s: line 93029: 1252-016 The specified opcode or pseudo-op is not valid.
20:23:32 	Use supported instructions or pseudo-ops only.

@nodejs/platform-aix

@refack
Copy link
Contributor Author

refack commented Sep 20, 2018

AFAICT there is still a dependency race I need to fix (code looking for generated files that have not been generated yet).
But it's easy to assume the AIX issue is real, and I've seen something similar on locally Windows:

"D:\code\node\deps\v8\gypfiles\v8_snapshot.vcxproj" (default target) (27) ->
(ClCompile target) ->
  d:\code\node\deps\v8\gypfiles\debug\obj\v8_snapshot\embedded_default.cc(12): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [D:\code\node\deps\v8\gypfiles\v8_snapshot.vcxproj]
  d:\code\node\deps\v8\gypfiles\debug\obj\v8_snapshot\embedded_default.cc(12): error C2440: 'initializing': cannot convert from 'const char [54]' to 'int' [D:\code\node\deps\v8\gypfiles\v8_snapshot.vcxproj]
  d:\code\node\deps\v8\gypfiles\debug\obj\v8_snapshot\embedded_default.cc(369): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [D:\code\node\deps\v8\gypfiles\v8_snapshot.vcxproj]
  d:\code\node\deps\v8\gypfiles\debug\obj\v8_snapshot\embedded_default.cc(13): error C2374: 'v8::internal::`anonymous-namespace'::__asm__': redefinition; multiple initialization [D:\code\node\deps\v8\gypfiles\v8_snapshot.vcxproj]
  d:\code\node\deps\v8\gypfiles\debug\obj\v8_snapshot\embedded_default.cc(369): error C2440: 'initializing': cannot convert from 'const char [23188]' to 'int' [D:\code\node\deps\v8\gypfiles\v8_snapshot.vcxproj]
...
153 Errors

/CC @nodejs/v8
embedded_default.cc.txt

@refack
Copy link
Contributor Author

refack commented Sep 21, 2018

@richardlau
Copy link
Member

aix61-ppc64

Hundreds of lines like this one:

20:23:32 /tmp//ccvNbTXP.s: line 93029: 1252-016 The specified opcode or pseudo-op is not valid.
20:23:32 	Use supported instructions or pseudo-ops only.

Is it possible to get hold of the /tmp//ccvNbTXP.s file to work out the invalid opcode/pseudo-op? AFAICT embedded_default.cc is processed via src/snapshot/macros.h, which would be the first place I'd look.

@refack
Copy link
Contributor Author

refack commented Sep 21, 2018

@richardlau
embedded_default.s.gz

command line (interesting bits in the middle)

/home/iojs/gcc-6.3.0-1/opt/freeware/bin/g++ /home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/out/Release/obj.target/v8_snapshot/geni/embedded_default.cc '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=0' '-DV8_TARGET_ARCH_PPC' '-DV8_TARGET_ARCH_PPC64' '-DV8_TARGET_ARCH_PPC_BE' '-D_LINUX_SOURCE_COMPAT=1' '-D__STDC_FORMAT_MACROS' '-D_ALL_SOURCE=1' '-DV8_EMBEDDER_STRING="-node.0"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT' '-Dv8_promise_internal_field_count' '-DV8_INTL_SUPPORT' '-DV8_CONCURRENT_MARKING' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_EMBEDDED_BUILTINS' '-DV8_EMBEDDED_BYTECODE_HANDLERS' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_STATIC_IMPLEMENTATION=1' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/v8 -I../. -I/home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/out/Release/obj/gen -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common \
\
-pthread -maix64 -mcpu=power5+ -mfprnd -mno-popcntb -fno-strict-aliasing -maix64 -fdollars-in-identifiers -fdata-sections -ffunction-sections -O3 -O3 -fno-omit-frame-pointer -fno-rtti -fno-exceptions -std=gnu++1y -MMD \
\
-MF /home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/out/Release/.deps//home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/out/Release/obj.target/v8_snapshot/geni/embedded_default.o.d.raw   -c -o /home/iojs/build/workspace/node-test-commit-aix/nodes/aix61-ppc64/out/Release/obj.target/v8_snapshot/geni/embedded_default.o

@refack refack self-assigned this Sep 21, 2018
@richardlau
Copy link
Member

One thought that comes to mind is:

Do we know if upstream V8 are using gas on AIX instead of the AIX assembler? On the Node.js CI we're definitely using the AIX assembler, based on the 1252-016 The specified opcode or pseudo-op is not valid. error messages (Appendix A messages).

I am assuming that this all works upstream.

cc @john-yan (since he was pinged in nodejs/node-v8#79)

@refack refack force-pushed the gyp-v8-embedded-builtins branch from a6069bb to 278d205 Compare October 4, 2018 18:10
@refack
Copy link
Contributor Author

refack commented Oct 4, 2018

@refack refack added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Oct 4, 2018

'v8_perf_prof_unwinding_info%': 0,

'v8_enable_fast_mksnapshot%': 0,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nodejs/v8-update do we want to turn any of these for node by default?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally it makes sense to copy the settings from BUILD.gn, so

  • Disable pointer compression. That's work-in-progress.
  • Enable embedded builtins. I think that's the point of this PR. You save quite a lot of memory per isolate this way. But that does not work for ia32 yet.
  • Disable handle zapping. That's for debugging, and should not be used in production.
  • Disable untrusted code mitigations. That's to address Spectre, but that's outside Node.js' threat model.
  • Disable fast mksnapshot. That's only to make mksnapshot run faster, giving a shorter turnaround during development.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Btw untrusted code mitigations are actually disabled from common.gypi already.

'../src/torque/types.h',
'../src/torque/utils.cc',
'../src/torque/utils.h',
"../src/torque/ast.h",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any reason for switching to double quotes?

@@ -481,7 +481,7 @@ build-ci:
# - node-test-commit-linux-coverage: where the build and the tests need
# to be instrumented, see `coverage`.
run-ci: build-ci
$(MAKE) test-ci
$(MAKE) test-ci -j1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it because of #23255?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No because of #22006

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, because of #22006

@targos
Copy link
Member

targos commented Oct 4, 2018

This looks very good to me overall!
I would be grateful if someone else could also take a look before we include it in the canary branch. It doesn't have to be formally LGTM'd. We can keep that for the future PR for V8 7.1 against master.

@@ -113,6 +113,13 @@

'v8_enable_fast_mksnapshot%': 0,
},
'conditions': [
['(OS=="aix") or (OS=="win" and (clang!=1 or v8_target_arch=="ia32"))', {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should embedded builtins only be disabled for 32-bit Intel on Windows only or on all 32-bit Intel platforms? (I know we only support 32-bit Intel on Windows for Node.js but thinking of others).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For reference, the condition in BUILD.gn:

  # Enable embedded builtins.
  # TODO(jgruber,v8:6666): Support ia32 and maybe MSVC.
  v8_enable_embedded_builtins = v8_use_snapshot && v8_current_cpu != "x86" &&
                                !is_aix && (!is_win || is_clang)

@refack

This comment has been minimized.

@refack refack force-pushed the gyp-v8-embedded-builtins branch from 3a80db9 to 0dc2c7d Compare October 4, 2018 21:18
@refack

This comment has been minimized.

refack added 2 commits October 4, 2018 17:44
enable v8_enable_embedded_builtins
reorder conditions proccessing for `run_mksnapshot`
@refack refack force-pushed the gyp-v8-embedded-builtins branch from 0dc2c7d to b65f4d2 Compare October 4, 2018 21:45
@refack
Copy link
Contributor Author

refack commented Oct 4, 2018

@targos
Copy link
Member

targos commented Oct 5, 2018

Landed on canary-base in d172625 🎉
Thanks again @refack for the work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants