From 513b57115768d95a41005403663e86468d82498c Mon Sep 17 00:00:00 2001 From: Rodrigo Hernandez Date: Thu, 19 May 2022 00:52:43 -0600 Subject: [PATCH] [v8] Update to Stable version 10.1.124.12 Fixes #24510 --- ports/v8/build.patch | 109 +++++++++++++++------------ ports/v8/portfile.cmake | 29 +++++-- ports/v8/v8.patch | 162 +++++++++++++++++++++++++++------------- ports/v8/vcpkg.json | 4 +- scripts/ci.baseline.txt | 3 +- versions/baseline.json | 4 +- versions/v-/v8.json | 5 ++ 7 files changed, 205 insertions(+), 111 deletions(-) diff --git a/ports/v8/build.patch b/ports/v8/build.patch index 15fede3fe87c31..bf8d67cd9a8c33 100644 --- a/ports/v8/build.patch +++ b/ports/v8/build.patch @@ -1,25 +1,31 @@ +diff --git a/config/BUILDCONFIG.gn b/config/BUILDCONFIG.gn +index d96064894..7fbb2e696 100644 +--- a/config/BUILDCONFIG.gn ++++ b/config/BUILDCONFIG.gn +@@ -140,7 +140,8 @@ declare_args() { + (current_cpu != "s390x" && current_cpu != "s390" && + current_cpu != "ppc64" && current_cpu != "ppc" && + current_cpu != "mips" && current_cpu != "mips64" && +- current_cpu != "riscv64") ++ current_cpu != "riscv64") || ++ (getenv("CXX") == "clang" || getenv("CXX") == "clang++") + + # Allows the path to a custom target toolchain to be injected as a single + # argument, and set as the default toolchain. diff --git a/config/compiler/BUILD.gn b/config/compiler/BUILD.gn -index 1904a2559..e66586c88 100644 +index c411ee37c..fa92ce42f 100644 --- a/config/compiler/BUILD.gn +++ b/config/compiler/BUILD.gn -@@ -1571,6 +1571,7 @@ config("default_warnings") { - # Disables. - "-Wno-missing-field-initializers", # "struct foo f = {0};" - "-Wno-unused-parameter", # Unused function parameters. -+ "-Wno-invalid-offsetof", # Use of "conditionally-supported" offsetof in c++17 - ] - } - -@@ -1987,8 +1988,17 @@ config("no_incompatible_pointer_warnings") { +@@ -1930,8 +1930,17 @@ config("no_incompatible_pointer_warnings") { # Shared settings for both "optimize" and "optimize_max" configs. # IMPORTANT: On Windows "/O1" and "/O2" must go before the common flags. if (is_win) { - common_optimize_on_cflags = [ - "/Ob2", # Both explicit and auto inlining. + common_optimize_on_cflags = [] -+ if(is_clang) { ++ if (is_clang) { + common_optimize_on_cflags += [ -+ "/Ob2", # Both explicit and auto inlining. ++ "/Ob2", # Both explicit and auto inlining. + ] + } else { + common_optimize_on_cflags += [ @@ -31,7 +37,7 @@ index 1904a2559..e66586c88 100644 "/Zc:inline", # Remove unreferenced COMDAT (faster links). ] diff --git a/config/linux/pkg-config.py b/config/linux/pkg-config.py -index 5adf70cc3..dab159f98 100755 +index 5adf70cc3..05110c05b 100644 --- a/config/linux/pkg-config.py +++ b/config/linux/pkg-config.py @@ -41,6 +41,11 @@ from optparse import OptionParser @@ -43,23 +49,25 @@ index 5adf70cc3..dab159f98 100755 +# of the PKG_CONFIG_LIBDIR environment library. +# +# --full-path-libs causes lib names to include their full path. - - + + def SetConfigPath(options): -@@ -105,11 +110,32 @@ def RewritePath(path, strip_prefix, sysroot): +@@ -105,11 +110,34 @@ def RewritePath(path, strip_prefix, sysroot): return path - - + + +flag_regex = re.compile("(-.)(.+)") + + +def FlagReplace(matchobj): + if matchobj.group(1) == '-I': -+ return matchobj.group(1) + subprocess.check_output([u'cygpath',u'-w',matchobj.group(2)]).strip().decode("utf-8") ++ return matchobj.group(1) + subprocess.check_output( ++ [u'cygpath', u'-w', matchobj.group(2)]).strip().decode("utf-8") + if matchobj.group(1) == '-L': -+ return matchobj.group(1) + subprocess.check_output([u'cygpath',u'-w',matchobj.group(2)]).strip().decode("utf-8") ++ return matchobj.group(1) + subprocess.check_output( ++ [u'cygpath', u'-w', matchobj.group(2)]).strip().decode("utf-8") + if matchobj.group(1) == '-l': -+ return matchobj.group(1) + matchobj.group(2) + '.lib' ++ return matchobj.group(1) + matchobj.group(2) + '.lib' + return matchobj.group(0) + + @@ -68,7 +76,7 @@ index 5adf70cc3..dab159f98 100755 + # need a better way to determine mingw vs msvc build + if 'win32' not in sys.platform or "GCC" in sys.version: + return flags -+ return [ flag_regex.sub(FlagReplace,flag) for flag in flags] ++ return [flag_regex.sub(FlagReplace, flag) for flag in flags] + + def main(): @@ -79,21 +87,25 @@ index 5adf70cc3..dab159f98 100755 + if "linux" not in sys.platform and 'win32' not in sys.platform: print("[[],[],[],[],[]]") return 0 - -@@ -128,6 +154,9 @@ def main(): + +@@ -128,6 +156,13 @@ def main(): parser.add_option('--dridriverdir', action='store_true', dest='dridriverdir') parser.add_option('--version-as-components', action='store_true', dest='version_as_components') -+ parser.add_option('--pkg_config_libdir', action='store', dest='pkg_config_libdir', ++ parser.add_option('--pkg_config_libdir', ++ action='store', ++ dest='pkg_config_libdir', + type='string') -+ parser.add_option('--full-path-libs', action='store_true', dest='full_path_libs') ++ parser.add_option('--full-path-libs', ++ action='store_true', ++ dest='full_path_libs') (options, args) = parser.parse_args() - + # Make a list of regular expressions to strip out. -@@ -144,6 +173,10 @@ def main(): +@@ -144,6 +179,10 @@ def main(): else: prefix = '' - + + # Override PKG_CONFIG_LIBDIR + if options.pkg_config_libdir: + os.environ['PKG_CONFIG_LIBDIR'] = options.pkg_config_libdir @@ -101,18 +113,18 @@ index 5adf70cc3..dab159f98 100755 if options.atleast_version: # When asking for the return value, just run pkg-config and print the return # value, no need to do other work. -@@ -203,7 +236,7 @@ def main(): +@@ -203,7 +242,7 @@ def main(): # For now just split on spaces to get the args out. This will break if # pkgconfig returns quoted things with spaces in them, but that doesn't seem # to happen in practice. - all_flags = flag_string.strip().split(' ') + all_flags = ConvertGCCToMSVC(flag_string.strip().split(' ')) - - + + sysroot = options.sysroot -@@ -220,7 +253,10 @@ def main(): +@@ -220,7 +259,10 @@ def main(): continue; - + if flag[:2] == '-l': - libs.append(RewritePath(flag[2:], prefix, sysroot)) + library = RewritePath(flag[2:], prefix, sysroot) @@ -122,23 +134,23 @@ index 5adf70cc3..dab159f98 100755 elif flag[:2] == '-L': lib_dirs.append(RewritePath(flag[2:], prefix, sysroot)) elif flag[:2] == '-I': -@@ -237,6 +273,14 @@ def main(): +@@ -237,6 +279,14 @@ def main(): else: cflags.append(flag) - + + if options.full_path_libs: + full_path_libs = [] + for lib_dir in lib_dirs: + for lib in libs: -+ if os.path.isfile(lib_dir+"/"+lib): -+ full_path_libs.append(lib_dir+"/"+lib) ++ if os.path.isfile(lib_dir + "/" + lib): ++ full_path_libs.append(lib_dir + "/" + lib) + libs = full_path_libs + # Output a GN array, the first one is the cflags, the second are the libs. The # JSON formatter prints GN compatible lists when everything is a list of # strings. diff --git a/config/linux/pkg_config.gni b/config/linux/pkg_config.gni -index 428e44ac0..a0d2175ee 100644 +index 635fd8dde..026102624 100644 --- a/config/linux/pkg_config.gni +++ b/config/linux/pkg_config.gni @@ -45,6 +45,9 @@ declare_args() { @@ -149,12 +161,12 @@ index 428e44ac0..a0d2175ee 100644 + # Allow directly overriding the PKG_CONFIG_LIBDIR enviroment variable + pkg_config_libdir = "" } - + pkg_config_script = "//build/config/linux/pkg-config.py" -@@ -87,6 +90,17 @@ if (host_pkg_config != "") { +@@ -88,6 +91,17 @@ if (host_pkg_config != "") { host_pkg_config_args = pkg_config_args } - + +if (pkg_config_libdir != "") { + pkg_config_args += [ + "--pkg_config_libdir", @@ -170,18 +182,19 @@ index 428e44ac0..a0d2175ee 100644 assert(defined(invoker.packages), "Variable |packages| must be defined to be a list in pkg_config.") diff --git a/util/lastchange.py b/util/lastchange.py -index 02a36642b..78934f1b0 100755 +index 02a36642b..63ea8b6c6 100644 --- a/util/lastchange.py +++ b/util/lastchange.py -@@ -192,7 +192,10 @@ def GetGitTopDirectory(source_dir): +@@ -192,7 +192,11 @@ def GetGitTopDirectory(source_dir): Returns: The output of "git rev-parse --show-toplevel" as a string """ - return _RunGitCommand(source_dir, ['rev-parse', '--show-toplevel']) + directory = _RunGitCommand(source_dir, ['rev-parse', '--show-toplevel']) -+ if "GCC" in sys.version and sys.platform=='win32': -+ return subprocess.check_output(["cygpath", "-w", directory]).strip(b"\n").decode() ++ if "GCC" in sys.version and sys.platform == 'win32': ++ return subprocess.check_output(["cygpath", "-w", ++ directory]).strip(b"\n").decode() + return directory - - + + def WriteIfChanged(file_name, contents): diff --git a/ports/v8/portfile.cmake b/ports/v8/portfile.cmake index 72bf6c36a819e6..942ced983e63fa 100644 --- a/ports/v8/portfile.cmake +++ b/ports/v8/portfile.cmake @@ -1,20 +1,33 @@ -set(pkgver "9.1.269.39") +set(pkgver "10.1.124.12") set(ENV{DEPOT_TOOLS_WIN_TOOLCHAIN} 0) get_filename_component(GIT_PATH ${GIT} DIRECTORY) -vcpkg_find_acquire_program(PYTHON2) -get_filename_component(PYTHON2_PATH ${PYTHON2} DIRECTORY) +vcpkg_find_acquire_program(PYTHON3) +get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY) vcpkg_find_acquire_program(GN) get_filename_component(GN_PATH ${GN} DIRECTORY) vcpkg_find_acquire_program(NINJA) get_filename_component(NINJA_PATH ${NINJA} DIRECTORY) +if(WIN32) + # The Windows embeddable pachage for Python3 + # does not contain a python3.exe file or symlink, + # so we need to create one. + file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/bin") + vcpkg_execute_required_process( + COMMAND ${CMAKE_COMMAND} -E copy ${PYTHON3} python3.exe + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/bin" + LOGNAME build-${TARGET_TRIPLET} + ) +endif() + +vcpkg_add_to_path(PREPEND "${CURRENT_BUILDTREES_DIR}/bin") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin") vcpkg_add_to_path(PREPEND "${GIT_PATH}") -vcpkg_add_to_path(PREPEND "${PYTHON2_PATH}") +vcpkg_add_to_path(PREPEND "${PYTHON3_PATH}") vcpkg_add_to_path(PREPEND "${GN_PATH}") vcpkg_add_to_path(PREPEND "${NINJA_PATH}") if(WIN32) @@ -71,7 +84,7 @@ endfunction() vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL https://chromium.googlesource.com/v8/v8.git - REF 7d3d62c91f69a702e5aa54c6b4dbbaa883683717 + REF e5f13e0cd10e245d822f856d17b347c77ccc7593 PATCHES ${CURRENT_PORT_DIR}/v8.patch ) @@ -79,7 +92,7 @@ message(STATUS "Fetching submodules") v8_fetch( DESTINATION build URL https://chromium.googlesource.com/chromium/src/build.git - REF fd86d60f33cbc794537c4da2ef7e298d7f81138e + REF f7d8d1eb990dab66c85e0f160c8f7300ac8f4fc2 SOURCE ${SOURCE_PATH} PATCHES ${CURRENT_PORT_DIR}/build.patch) v8_fetch( @@ -100,7 +113,7 @@ v8_fetch( v8_fetch( DESTINATION third_party/jinja2 URL https://chromium.googlesource.com/chromium/src/third_party/jinja2.git - REF b41863e42637544c2941b574c7877d3e1f663e25 + REF ee69aa00ee8536f61db6a451f3858745cf587de6 SOURCE ${SOURCE_PATH}) v8_fetch( DESTINATION third_party/markupsafe @@ -109,7 +122,7 @@ v8_fetch( SOURCE ${SOURCE_PATH}) vcpkg_execute_required_process( - COMMAND ${PYTHON2} build/util/lastchange.py -o build/util/LASTCHANGE + COMMAND ${PYTHON3} build/util/lastchange.py -o build/util/LASTCHANGE WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME build-${TARGET_TRIPLET} ) diff --git a/ports/v8/v8.patch b/ports/v8/v8.patch index 7b41c8d3e6c47c..54071971b69de8 100644 --- a/ports/v8/v8.patch +++ b/ports/v8/v8.patch @@ -1,20 +1,46 @@ diff --git a/BUILD.gn b/BUILD.gn -index d2bfb6129d..c5ab18ee44 100644 +index 7b19ee86d8..a78be89180 100644 --- a/BUILD.gn +++ b/BUILD.gn -@@ -5366,6 +5366,7 @@ if (is_component_build) { - +@@ -6091,6 +6091,7 @@ if (is_component_build) { + public_deps = [ ":v8_base", + ":v8_initializers", ":v8_snapshot", ] - + +diff --git a/include/v8-cppgc.h b/include/v8-cppgc.h +index 201773f59d..f2b16463cd 100644 +--- a/include/v8-cppgc.h ++++ b/include/v8-cppgc.h +@@ -77,6 +77,8 @@ struct WrapperDescriptor final { + }; + + struct V8_EXPORT CppHeapCreateParams { ++ CppHeapCreateParams(const CppHeapCreateParams&) = delete; ++ CppHeapCreateParams& operator=(const CppHeapCreateParams&) = delete; + std::vector> custom_spaces; + WrapperDescriptor wrapper_descriptor; + }; +diff --git a/include/v8-fast-api-calls.h b/include/v8-fast-api-calls.h +index 3403de93ec..1c5ff23f7a 100644 +--- a/include/v8-fast-api-calls.h ++++ b/include/v8-fast-api-calls.h +@@ -731,7 +731,7 @@ struct TypeInfoHelper { + } // namespace internal + + template +-class V8_EXPORT CTypeInfoBuilder { ++class CTypeInfoBuilder { + public: + using BaseType = T; + diff --git a/src/codegen/code-stub-assembler.h b/src/codegen/code-stub-assembler.h -index 72b8fbc8a8..3ebfc23f1f 100644 +index 55485d004a..79f3be2921 100644 --- a/src/codegen/code-stub-assembler.h +++ b/src/codegen/code-stub-assembler.h -@@ -303,7 +303,7 @@ enum class PrimitiveType { kBoolean, kNumber, kString, kSymbol }; +@@ -313,7 +313,7 @@ enum class PrimitiveType { kBoolean, kNumber, kString, kSymbol }; // it's possible to add JavaScript-specific useful CodeAssembler "macros" // without modifying files in the compiler directory (and requiring a review // from a compiler directory OWNER). @@ -24,10 +50,10 @@ index 72b8fbc8a8..3ebfc23f1f 100644 public TorqueGeneratedExportedMacrosAssembler { public: diff --git a/src/common/globals.h b/src/common/globals.h -index f51c3210f8..5291285337 100644 +index f26b0a06e2..7e11c28525 100644 --- a/src/common/globals.h +++ b/src/common/globals.h -@@ -1364,7 +1364,7 @@ class BinaryOperationFeedback { +@@ -1476,7 +1476,7 @@ class BinaryOperationFeedback { // This is distinct from BinaryOperationFeedback on purpose, because the // feedback that matters differs greatly as well as the way it is consumed. class CompareOperationFeedback { @@ -36,14 +62,14 @@ index f51c3210f8..5291285337 100644 kSignedSmallFlag = 1 << 0, kOtherNumberFlag = 1 << 1, kBooleanFlag = 1 << 2, -@@ -1378,7 +1378,7 @@ class CompareOperationFeedback { +@@ -1490,7 +1490,7 @@ class CompareOperationFeedback { }; - + public: - enum Type { + enum Type : uint32_t { kNone = 0, - + kBoolean = kBooleanFlag, diff --git a/src/compiler/node-cache.h b/src/compiler/node-cache.h index 8e1d3d4eae..c55d8329de 100644 @@ -59,93 +85,129 @@ index 8e1d3d4eae..c55d8329de 100644 explicit NodeCache(Zone* zone) : map_(zone) {} ~NodeCache() = default; diff --git a/src/heap/paged-spaces-inl.h b/src/heap/paged-spaces-inl.h -index e135e30efc..0c055247bc 100644 +index fbade0ea3d..ad401a1361 100644 --- a/src/heap/paged-spaces-inl.h +++ b/src/heap/paged-spaces-inl.h -@@ -19,7 +19,7 @@ namespace internal { +@@ -18,7 +18,7 @@ namespace internal { // ----------------------------------------------------------------------------- // PagedSpaceObjectIterator - + -HeapObject PagedSpaceObjectIterator::Next() { +inline HeapObject PagedSpaceObjectIterator::Next() { do { HeapObject next_obj = FromCurrentPage(); if (!next_obj.is_null()) return next_obj; diff --git a/src/heap/paged-spaces.h b/src/heap/paged-spaces.h -index 621d92aa89..a8592a5b4d 100644 +index 2df7083a84..54d46ae192 100644 --- a/src/heap/paged-spaces.h +++ b/src/heap/paged-spaces.h -@@ -45,7 +45,7 @@ class V8_EXPORT_PRIVATE PagedSpaceObjectIterator : public ObjectIterator { +@@ -47,7 +47,7 @@ class V8_EXPORT_PRIVATE PagedSpaceObjectIterator : public ObjectIterator { // Advance to the next object, skipping free spaces and other fillers and // skipping the special garbage section of which there is one per space. // Returns nullptr when the iteration has ended. - inline HeapObject Next() override; + HeapObject Next() override; - - private: - // Fast (inlined) path of next(). + + // The pointer compression cage base value used for decompression of all + // tagged values except references to Code objects. diff --git a/src/objects/feedback-vector.cc b/src/objects/feedback-vector.cc -index a77ea5d265..0cddb92a02 100644 +index f4f517f73b..875d3fc4c7 100644 --- a/src/objects/feedback-vector.cc +++ b/src/objects/feedback-vector.cc -@@ -114,9 +114,9 @@ Handle FeedbackMetadata::New(LocalIsolate* isolate, +@@ -117,9 +117,9 @@ Handle FeedbackMetadata::New(IsolateT* isolate, return metadata; } - + -template Handle FeedbackMetadata::New( +template V8_EXPORT Handle FeedbackMetadata::New( Isolate* isolate, const FeedbackVectorSpec* spec); -template Handle FeedbackMetadata::New( +template V8_EXPORT Handle FeedbackMetadata::New( LocalIsolate* isolate, const FeedbackVectorSpec* spec); - + bool FeedbackMetadata::SpecDiffersFrom( diff --git a/src/objects/fixed-array-inl.h b/src/objects/fixed-array-inl.h -index cca6d40070..d6d36ff59f 100644 +index 5dea891511..5ae1c7903c 100644 --- a/src/objects/fixed-array-inl.h +++ b/src/objects/fixed-array-inl.h -@@ -88,7 +88,7 @@ bool FixedArray::is_the_hole(Isolate* isolate, int index) { +@@ -83,7 +83,7 @@ bool FixedArray::is_the_hole(Isolate* isolate, int index) { return get(isolate, index).IsTheHole(isolate); } - + -void FixedArray::set(int index, Smi value) { +inline V8_EXPORT_PRIVATE void FixedArray::set(int index, Smi value) { DCHECK_NE(map(), GetReadOnlyRoots().fixed_cow_array_map()); DCHECK_LT(static_cast(index), static_cast(length())); DCHECK(Object(value).IsSmi()); diff --git a/src/objects/fixed-array.h b/src/objects/fixed-array.h -index 98c5d8d5b5..bd5303e44c 100644 +index f0c3bfc097..bdc21d8bff 100644 --- a/src/objects/fixed-array.h +++ b/src/objects/fixed-array.h -@@ -132,7 +132,7 @@ class FixedArray +@@ -134,7 +134,7 @@ class FixedArray inline bool is_the_hole(Isolate* isolate, int index); - + // Setter that doesn't need write barrier. - inline void set(int index, Smi value); + inline V8_EXPORT_PRIVATE void set(int index, Smi value); // Setter with explicit barrier mode. inline void set(int index, Object value, WriteBarrierMode mode); - + +diff --git a/src/objects/intl-objects.cc b/src/objects/intl-objects.cc +index 3ac016aaa8..3ed7ce3567 100644 +--- a/src/objects/intl-objects.cc ++++ b/src/objects/intl-objects.cc +@@ -958,9 +958,11 @@ Intl::CompareStringsOptions Intl::CompareStringsOptionsFor( + } + + // Instantiations. +-template Intl::CompareStringsOptions Intl::CompareStringsOptionsFor( ++template ++V8_EXPORT_PRIVATE Intl::CompareStringsOptions Intl::CompareStringsOptionsFor( + Isolate*, Handle, Handle); +-template Intl::CompareStringsOptions Intl::CompareStringsOptionsFor( ++template ++V8_EXPORT_PRIVATE Intl::CompareStringsOptions Intl::CompareStringsOptionsFor( + LocalIsolate*, Handle, Handle); + + base::Optional Intl::StringLocaleCompare( +@@ -2092,10 +2094,14 @@ class ResourceAvailableCurrencies { + UErrorCode status = U_ZERO_ERROR; + int32_t len = 0; + const UChar* result = +- ucurr_getName(code.getTerminatedBuffer(), "en", UCURR_LONG_NAME, +- nullptr, &len, &status); ++ ucurr_getName( ++ reinterpret_cast(code.getTerminatedBuffer()), ++ "en", UCURR_LONG_NAME, ++ nullptr, &len, &status); + if (U_SUCCESS(status) && +- u_strcmp(result, code.getTerminatedBuffer()) != 0) { ++ u_strcmp( ++ result, ++ reinterpret_cast(code.getTerminatedBuffer())) != 0) { + list_.push_back(currency); + } + } diff --git a/src/snapshot/snapshot-utils.cc b/src/snapshot/snapshot-utils.cc -index eb2372372c..7defadb4b1 100644 +index 6db6698d7e..b56d31085f 100644 --- a/src/snapshot/snapshot-utils.cc +++ b/src/snapshot/snapshot-utils.cc @@ -5,7 +5,7 @@ #include "src/snapshot/snapshot-utils.h" - - #include "src/sanitizer/msan.h" + + #include "src/base/sanitizer/msan.h" -#include "third_party/zlib/zlib.h" +#include "zlib.h" - + namespace v8 { namespace internal { diff --git a/src/wasm/function-body-decoder-impl.h b/src/wasm/function-body-decoder-impl.h -index d37f718681..3a409e1d76 100644 +index 5b7201abb6..ced9830cd6 100644 --- a/src/wasm/function-body-decoder-impl.h +++ b/src/wasm/function-body-decoder-impl.h -@@ -2013,7 +2013,7 @@ class WasmDecoder : public Decoder { +@@ -1930,7 +1930,7 @@ class WasmDecoder : public Decoder { } - + // TODO(clemensb): This is only used by the interpreter; move there. - V8_EXPORT_PRIVATE std::pair StackEffect(const byte* pc) { + std::pair StackEffect(const byte* pc) { @@ -153,20 +215,20 @@ index d37f718681..3a409e1d76 100644 // Handle "simple" opcodes with a fixed signature first. const FunctionSig* sig = WasmOpcodes::Signature(opcode); diff --git a/test/cctest/BUILD.gn b/test/cctest/BUILD.gn -index ffa4e3a136..a279faee9b 100644 +index d5d20fdfe9..e66fe366b8 100644 --- a/test/cctest/BUILD.gn +++ b/test/cctest/BUILD.gn -@@ -493,6 +493,10 @@ v8_source_set("cctest_sources") { +@@ -501,6 +501,10 @@ v8_source_set("cctest_sources") { # C4309: 'static_cast': truncation of constant value cflags += [ "/wd4309" ] - + + if(!is_clang) { + cflags += [ "/wd4789" ] + } + # MSVS wants this for gay-{precision,shortest}.cc. cflags += [ "/bigobj" ] - + diff --git a/tools/debug_helper/BUILD.gn b/tools/debug_helper/BUILD.gn index 2256df1f55..29e27c6af9 100644 --- a/tools/debug_helper/BUILD.gn @@ -177,24 +239,24 @@ index 2256df1f55..29e27c6af9 100644 "../..:v8_tracing", + "../..:v8", ] - + configs = [ ":internal_config" ] if (v8_enable_i18n_support) { + public_deps = [ "//third_party/icu" ] configs += [ "//third_party/icu:icu_config" ] } - + diff --git a/tools/v8windbg/BUILD.gn b/tools/v8windbg/BUILD.gn -index 5618d2d945..71568f1670 100644 +index 5516a6109f..a1c53fceac 100644 --- a/tools/v8windbg/BUILD.gn +++ b/tools/v8windbg/BUILD.gn @@ -6,7 +6,7 @@ import("../../gni/v8.gni") - + config("v8windbg_config") { # Required for successful compilation of SDK header file DbgModel.h. - cflags_cc = [ "/Zc:twoPhase-" ] + cflags_cc = [ "/Zc:twoPhase-", "/std:c++latest" ] - + include_dirs = [ "../.." ] } diff --git a/tools/v8windbg/base/dbgext.h b/tools/v8windbg/base/dbgext.h @@ -204,7 +266,7 @@ index 8b36a8f361..f8d9f0d64e 100644 @@ -9,6 +9,7 @@ #error Unicode not defined #endif - + +#include #include #include @@ -216,13 +278,13 @@ index f7d78c5dd3..1c70e54e7a 100644 @@ -5,10 +5,11 @@ #ifndef V8_TOOLS_V8WINDBG_SRC_V8_DEBUG_HELPER_INTEROP_H_ #define V8_TOOLS_V8WINDBG_SRC_V8_DEBUG_HELPER_INTEROP_H_ - + -#include - +#include +#include #include - + +#include #include #include @@ -234,7 +296,7 @@ index 8855d6ffbc..ed2b0f62e9 100644 @@ -9,6 +9,7 @@ #error Unicode not defined #endif - + +#include #include #include diff --git a/ports/v8/vcpkg.json b/ports/v8/vcpkg.json index eae65fcd0c5a3d..e88918e25b1de2 100644 --- a/ports/v8/vcpkg.json +++ b/ports/v8/vcpkg.json @@ -1,7 +1,7 @@ { "name": "v8", - "version": "9.1.269.39", - "port-version": 4, + "version": "10.1.124.12", + "port-version": 1, "description": "Google Chrome's JavaScript engine", "homepage": "https://v8.dev", "license": "BSD-3-Clause", diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 5130762e498a53..57a9a60d865595 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1275,7 +1275,8 @@ sentencepiece:x64-windows-static-md=fail symengine:x64-windows-static-md=fail unicorn:x64-windows-static-md=fail -# the version of v8 we have in the repo doesn't support VS2022 +# the version of v8 we have in the repo supports VS2022, +# but it must have installed Windows SDK 10.0.22000.194 v8:x86-windows=fail v8:x64-windows=fail v8:x64-windows-static=fail diff --git a/versions/baseline.json b/versions/baseline.json index 9883fff0ea05e8..ee3e3722c24cb7 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -7305,8 +7305,8 @@ "port-version": 3 }, "v8": { - "baseline": "9.1.269.39", - "port-version": 4 + "baseline": "10.1.124.12", + "port-version": 1 }, "valijson": { "baseline": "0.6", diff --git a/versions/v-/v8.json b/versions/v-/v8.json index 3be97ab880e29a..93eb87cdee06c4 100644 --- a/versions/v-/v8.json +++ b/versions/v-/v8.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "b2ce521fa0191280705a48b7dff44c49ec795c44", + "version": "10.1.124.12", + "port-version": 1 + }, { "git-tree": "f57ec75cb9169900555359752c65e8e4c79c34ec", "version": "9.1.269.39",