From 4e2fa439c9061aa2ff6ad52ec6d6c20368f60dfa Mon Sep 17 00:00:00 2001 From: Ujjwal Sharma Date: Sat, 18 Apr 2020 02:14:23 +0530 Subject: [PATCH] tools: update V8 gypfiles for 8.4 Backport-PR-URL: https://github.com/nodejs/node/pull/34356 PR-URL: https://github.com/nodejs/node/pull/33579 Reviewed-By: Matteo Collina Reviewed-By: Jiawen Geng Reviewed-By: Michael Dawson Reviewed-By: Rich Trott Reviewed-By: Shelley Vohr --- tools/v8_gypfiles/features.gypi | 25 ++++++++++++++++++++----- tools/v8_gypfiles/v8.gyp | 22 +++++++++++++++++++++- 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/tools/v8_gypfiles/features.gypi b/tools/v8_gypfiles/features.gypi index b2ff6d4e107a80..b24e0b332b3c1d 100644 --- a/tools/v8_gypfiles/features.gypi +++ b/tools/v8_gypfiles/features.gypi @@ -184,6 +184,15 @@ # Enable lazy source positions by default. 'v8_enable_lazy_source_positions%': 1, + # Enable third party HEAP library + 'v8_enable_third_party_heap%': 0, + + # Libaries used by third party heap + 'v8_third_party_heap_libs%': [], + + # Source code used by third party heap + 'v8_third_party_heap_files%': [], + # Disable write barriers when GCs are non-incremental and # heap has single generation. 'v8_disable_write_barriers%': 0, @@ -203,6 +212,10 @@ # for ARM64. 'v8_control_flow_integrity%': 0, + # Experimental support for native context independent code. + # https://crbug.com/v8/8888 + 'v8_enable_nci_code%': 0, + # Variables from v8.gni # Enable ECMAScript Internationalization API. Enabling this feature will @@ -228,10 +241,7 @@ 'defines': ['V8_ENABLE_FUTURE',], }], ['v8_enable_lite_mode==1', { - 'defines': [ - 'V8_LITE_MODE', - 'V8_JITLESS_MODE', - ], + 'defines': ['V8_LITE_MODE',], }], ['v8_enable_gdbjit==1', { 'defines': ['ENABLE_GDB_JIT_INTERFACE',], @@ -299,6 +309,9 @@ ['v8_disable_write_barriers==1', { 'defines': ['V8_DISABLE_WRITE_BARRIERS',], }], + ['v8_enable_third_party_heap==1', { + 'defines': ['V8_ENABLE_THIRD_PARTY_HEAP',], + }], ['v8_enable_concurrent_marking==1', { 'defines': ['V8_CONCURRENT_MARKING',], }], @@ -338,9 +351,11 @@ ['v8_control_flow_integrity==1', { 'defines': ['V8_ENABLE_CONTROL_FLOW_INTEGRITY',], }], + ['v8_enable_nci_code==1', { + 'defines': ['V8_ENABLE_NCI_CODE',], + }], ], # conditions 'defines': [ - 'V8_EMBEDDED_BUILTINS', 'V8_GYP_BUILD', 'V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=<(v8_typed_array_max_size_in_heap)', ], # defines diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp index 6f4f6fb51206fd..48ec392b6f85ed 100644 --- a/tools/v8_gypfiles/v8.gyp +++ b/tools/v8_gypfiles/v8.gyp @@ -43,9 +43,12 @@ "<(V8_ROOT)/src/builtins/convert.tq", "<(V8_ROOT)/src/builtins/console.tq", "<(V8_ROOT)/src/builtins/data-view.tq", + "<(V8_ROOT)/src/builtins/finalization-registry.tq", "<(V8_ROOT)/src/builtins/frames.tq", "<(V8_ROOT)/src/builtins/frame-arguments.tq", "<(V8_ROOT)/src/builtins/growable-fixed-array.tq", + "<(V8_ROOT)/src/builtins/ic-callable.tq", + "<(V8_ROOT)/src/builtins/ic.tq", "<(V8_ROOT)/src/builtins/internal-coverage.tq", "<(V8_ROOT)/src/builtins/iterator.tq", "<(V8_ROOT)/src/builtins/math.tq", @@ -55,6 +58,7 @@ "<(V8_ROOT)/src/builtins/promise-abstract-operations.tq", "<(V8_ROOT)/src/builtins/promise-all.tq", "<(V8_ROOT)/src/builtins/promise-all-element-closure.tq", + "<(V8_ROOT)/src/builtins/promise-any.tq", "<(V8_ROOT)/src/builtins/promise-constructor.tq", "<(V8_ROOT)/src/builtins/promise-finally.tq", "<(V8_ROOT)/src/builtins/promise-misc.tq", @@ -113,6 +117,7 @@ "<(V8_ROOT)/src/builtins/typed-array-sort.tq", "<(V8_ROOT)/src/builtins/typed-array-subarray.tq", "<(V8_ROOT)/src/builtins/typed-array.tq", + "<(V8_ROOT)/src/builtins/wasm.tq", "<(V8_ROOT)/src/ic/handler-configuration.tq", "<(V8_ROOT)/src/objects/allocation-site.tq", "<(V8_ROOT)/src/objects/api-callbacks.tq", @@ -131,6 +136,7 @@ "<(V8_ROOT)/src/objects/free-space.tq", "<(V8_ROOT)/src/objects/heap-number.tq", "<(V8_ROOT)/src/objects/heap-object.tq", + "<(V8_ROOT)/src/objects/js-aggregate-error.tq", "<(V8_ROOT)/src/objects/js-array-buffer.tq", "<(V8_ROOT)/src/objects/js-array.tq", "<(V8_ROOT)/src/objects/js-collection-iterator.tq", @@ -228,7 +234,7 @@ '<(torque_output_root)/torque-generated/class-verifiers-tq.h', '<(torque_output_root)/torque-generated/enum-verifiers-tq.cc', '<(torque_output_root)/torque-generated/objects-printer-tq.cc', - '<(torque_output_root)/torque-generated/objects-body-descriptors-tq-inl.h', + '<(torque_output_root)/torque-generated/objects-body-descriptors-tq-inl.inc', '<(torque_output_root)/torque-generated/class-definitions-tq.cc', '<(torque_output_root)/torque-generated/class-definitions-tq-inl.h', '<(torque_output_root)/torque-generated/class-definitions-tq.h', @@ -745,6 +751,13 @@ '<@(inspector_all_sources)', ], 'conditions': [ + ['v8_enable_third_party_heap==1', { + # TODO(targos): add values from v8_third_party_heap_files to sources + }, { + 'sources': [ + '<(V8_ROOT)/src/heap/third-party/heap-api-stub.cc', + ], + }], ['want_separate_host_toolset', { 'toolsets': ['host', 'target'], }], @@ -885,6 +898,9 @@ ['v8_postmortem_support', { 'dependencies': ['postmortem-metadata#target'], }], + ['v8_enable_third_party_heap', { + # TODO(targos): add values from v8_third_party_heap_libs to link_settings.libraries + }], # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library # to implement atomic memory access ['v8_current_cpu in ["mips", "mipsel", "mips64", "mips64el", "ppc", "arm"]', { @@ -1226,6 +1242,8 @@ '<(V8_ROOT)/include/libplatform/v8-tracing.h', '<(V8_ROOT)/src/libplatform/default-foreground-task-runner.cc', '<(V8_ROOT)/src/libplatform/default-foreground-task-runner.h', + '<(V8_ROOT)/src/libplatform/default-job.cc', + '<(V8_ROOT)/src/libplatform/default-job.h', '<(V8_ROOT)/src/libplatform/default-platform.cc', '<(V8_ROOT)/src/libplatform/default-platform.h', '<(V8_ROOT)/src/libplatform/default-worker-threads-task-runner.cc', @@ -1583,6 +1601,8 @@ '<(V8_ROOT)/src/objects/instance-type.h', '<(V8_ROOT)/src/objects/js-array-inl.h', '<(V8_ROOT)/src/objects/js-array.h', + '<(V8_ROOT)/src/objects/js-aggregate-error-inl.h', + '<(V8_ROOT)/src/objects/js-aggregate-error.h', '<(V8_ROOT)/src/objects/js-array-buffer-inl.h', '<(V8_ROOT)/src/objects/js-array-buffer.h', '<(V8_ROOT)/src/objects/js-objects-inl.h',