diff options
author | Noah Vogt | 2023-02-23 15:33:21 +0100 |
---|---|---|
committer | Noah Vogt | 2023-02-23 15:33:21 +0100 |
commit | cf853384b124510f91a44a01cabd7b7c20df4ef6 (patch) | |
tree | 2698b74b2561f64b7cadc8541d54ac537259b922 | |
parent | e5d928ea08a776425f34dcde729879965e2ac79c (diff) | |
download | aur-cf853384b124510f91a44a01cabd7b7c20df4ef6.tar.gz |
uppkg -> 110.0.5481.100-1
-rw-r--r-- | PKGBUILD | 102 | ||||
-rw-r--r-- | fix-the-way-to-handle-codecs-in-the-system-icu.patch | 60 | ||||
-rw-r--r-- | v8-move-the-Stack-object-from-ThreadLocalTop.patch | 205 |
3 files changed, 330 insertions, 37 deletions
@@ -10,10 +10,11 @@ # Contributor: Daniel J Griffiths <ghost1227@archlinux.us> pkgname=ungoogled-chromium-xdg -pkgver=108.0.5359.124 +pkgver=110.0.5481.100 pkgrel=1 _launcher_ver=8 _gcc_patchset=2 +_manual_clone=0 pkgdesc="A lightweight approach to removing Google web service dependency - without creating a useless ~/.pki directory" arch=('x86_64') url="https://github.com/ungoogled-software/ungoogled-chromium" @@ -28,13 +29,12 @@ optdepends=('pipewire: WebRTC desktop sharing under Wayland' 'qt5-base: enable Qt5 with --enable-features=AllowQt' 'org.freedesktop.secrets: password storage backend on GNOME / Xfce' 'kwallet: support for storing passwords in KWallet on Plasma') -options=('debug' '!lto') # Chromium adds its own flags for ThinLTO +options=('!lto') # Chromium adds its own flags for ThinLTO source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz - re-fix-TFLite-build-error-on-linux-with-system-zlib.patch - chromium-icu72.patch - v8-enhance-Date-parser-to-take-Unicode-SPACE.patch + fix-the-way-to-handle-codecs-in-the-system-icu.patch + v8-move-the-Stack-object-from-ThreadLocalTop.patch REVERT-roll-src-third_party-ffmpeg-m102.patch REVERT-roll-src-third_party-ffmpeg-m106.patch disable-GlobalMediaControlsCastStartStop.patch @@ -43,12 +43,11 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom xdg-basedir.patch no-omnibox-suggestion-autocomplete.patch index.html) -sha256sums=('d48dfac2a61b14a5d7d2f460b09b70ef3ab88e27b82e3173938cb54eaa612a75' +sha256sums=('6d870d690c1f2c41a288011b0149752681077f1459ebe7a4f9215dbfde21f633' '213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a' - '40ef8af65e78901bb8554eddbbb5ebc55c0b8e7927f6ca51b2a353d1c7c50652' - '9015b9d6d5b4c1e7248d6477a4b4b6bd6a3ebdc57225d2d8efcd79fc61790716' - 'dabb5ab204b63be73d3c5c8b7c1fa74053105a285852ba3bbc4fb77646608572' - 'b83406a881d66627757d9cbc05e345cbb2bd395a48b6d4c970e5e1cb3f6ed454' + '8c7f93037cc236024cc8be815b2c2bd84f6dc9e32685299e31d4c6c42efde8b7' + 'a5d5c532b0b059895bc13aaaa600d21770eab2afa726421b78cb597a78a3c7e3' + '49c3e599366909ddac6a50fa6f9420e01a7c0ffd029a20567a41d741a15ec9f7' '30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44' '4c12d31d020799d31355faa7d1fe2a5a807f7458e7f0c374adf55edb37032152' '7f3b1b22d6a271431c1f9fc92b6eb49c6d80b8b3f868bdee07a6a1a16630a302' @@ -57,6 +56,12 @@ sha256sums=('d48dfac2a61b14a5d7d2f460b09b70ef3ab88e27b82e3173938cb54eaa612a75' 'cd844867b5b2197ad097662fee32579a7091dfba1d46cb438c4c7e696690440a' 'ff1591fa38e0ede7e883dc7494b813641b7a1a7cb1ded00d9baaee987c1dbea8' 'a4cdd2b86f32d5302c2792be841ff40d982b19bb58a4e63df9d77f4c706b8665') + +if (( _manual_clone )); then + source[0]=fetch-chromium-release + makedepends+=('python-httplib2' 'python-pyparsing' 'python-six') +fi + provides=('chromium') conflicts=('chromium') _uc_usr=ungoogled-software @@ -64,13 +69,13 @@ _uc_ver=$pkgver-1 source=(${source[@]} ${pkgname%-*}-$_uc_ver.tar.gz::https://github.com/$_uc_usr/ungoogled-chromium/archive/$_uc_ver.tar.gz ozone-add-va-api-support-to-wayland.patch - remove-main-main10-profile-limit.patch - chromium-drirc-disable-10bpc-color-configs.conf) + vaapi-add-av1-support.patch + remove-main-main10-profile-limit.patch) sha256sums=(${sha256sums[@]} - 'ac71aa130e70bcb5b30fc5f899239851b4bff05938cf4fe6d3f8c2da04e85f70' + '994a7241ed09e98337832628f145ee21265d81c7c5ed2a5099dfb7e11b01ee18' 'e9e8d3a82da818f0a67d4a09be4ecff5680b0534d7f0198befb3654e9fab5b69' - 'fc810e3c495c77ac60b383a27e48cf6a38b4a95b65dd2984baa297c5df83133c' - 'babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb') + 'e742cc5227b6ad6c3e0c2026edd561c6d3151e7bf0afb618578ede181451b307' + 'fc810e3c495c77ac60b383a27e48cf6a38b4a95b65dd2984baa297c5df83133c') # Possible replacements are listed in build/linux/unbundle/replace_gn_files.py # Keys are the names in the above script; values are the dependencies in Arch @@ -83,10 +88,10 @@ declare -gA _system_libs=( [freetype]=freetype2 [harfbuzz-ng]=harfbuzz [icu]=icu - [libdrm]= [jsoncpp]=jsoncpp [libaom]=aom - [libavif]=libavif + #[libavif]=libavif # https://github.com/AOMediaCodec/libavif/commit/4d2776a3 + [libdrm]= [libjpeg]=libjpeg [libpng]=libpng #[libvpx]=libvpx @@ -104,7 +109,18 @@ _unwanted_bundled_libs=( ) depends+=(${_system_libs[@]}) +# Google API keys (see https://www.chromium.org/developers/how-tos/api-keys) +# Note: These are for Arch Linux use ONLY. For your own distribution, please +# get your own set of keys. +# +# Starting with Chromium 89 (2021-03-02) the OAuth2 credentials have been left +# out: https://archlinux.org/news/chromium-losing-sync-support-in-early-march/ +_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM + prepare() { + if (( _manual_clone )); then + ./fetch-chromium-release $pkgver + fi cd "$srcdir/chromium-$pkgver" # Allow building against system libraries in official builds @@ -124,9 +140,12 @@ prepare() { patch -Np1 -i ../use-oauth2-client-switches-as-default.patch # Upstream fixes - patch -Np1 -i ../chromium-icu72.patch - patch -Np1 -d v8 <../v8-enhance-Date-parser-to-take-Unicode-SPACE.patch - patch -Np1 -i ../re-fix-TFLite-build-error-on-linux-with-system-zlib.patch + patch -Np1 -i ../fix-the-way-to-handle-codecs-in-the-system-icu.patch + + # https://crbug.com/v8/13630 + # https://crrev.com/c/4200636 + # https://github.com/nodejs/node/pull/46125#issuecomment-1407721276 + patch -Np1 -d v8 <../v8-move-the-Stack-object-from-ThreadLocalTop.patch # Revert ffmpeg roll requiring new channel layout API support # https://crbug.com/1325301 @@ -138,11 +157,16 @@ prepare() { # https://crbug.com/1314342 patch -Np1 -i ../disable-GlobalMediaControlsCastStartStop.patch - # https://crbug.com/angleproject/7582 - patch -Np0 -i ../angle-wayland-include-protocol.patch - # Fixes for building with libstdc++ instead of libc++ patch -Np1 -i ../patches/chromium-103-VirtualCursor-std-layout.patch + patch -Np1 -i ../patches/chromium-110-NativeThemeBase-fabs.patch + patch -Np1 -i ../patches/chromium-110-CredentialUIEntry-const.patch + patch -Np1 -i ../patches/chromium-110-DarkModeLABColorSpace-pow.patch + + # Custom Patches + patch -Np1 -i ../ozone-add-va-api-support-to-wayland.patch + patch -Np1 -i ../remove-main-main10-profile-limit.patch + patch -Np1 -i ../vaapi-add-av1-support.patch # move ~/.pki directory to ${XDG_DATA_HOME:-$HOME/.local}/share/pki patch -p1 -i ../xdg-basedir.patch @@ -152,14 +176,14 @@ prepare() { # called 'shoulder surfing'). patch -p1 -i ../no-omnibox-suggestion-autocomplete.patch - # Enable vaapi on wayland - patch -Np1 -i ../ozone-add-va-api-support-to-wayland.patch - # Ungoogled Chromium changes _ungoogled_repo="$srcdir/${pkgname%xdg*}$_uc_ver" _utils="${_ungoogled_repo}/utils" + msg2 'Pruning binaries' python "$_utils/prune_binaries.py" ./ "$_ungoogled_repo/pruning.list" + msg2 'Applying patches' python "$_utils/patches.py" apply ./ "$_ungoogled_repo/patches" + msg2 'Applying domain substitution' python "$_utils/domain_substitution.py" apply -r "$_ungoogled_repo/domain_regex.list" \ -f "$_ungoogled_repo/domain_substitution.list" -c domainsubcache.tar.gz ./ @@ -198,10 +222,12 @@ build() { local _flags=( 'custom_toolchain="//build/toolchain/linux/unbundle:default"' 'host_toolchain="//build/toolchain/linux/unbundle:default"' + 'clang_base_path="/usr"' + 'clang_use_chrome_plugins=false' 'is_official_build=true' # implies is_cfi=true on x86_64 'symbol_level=0' # sufficient for backtraces on x86(_64) - 'clang_base_path="/usr"' - 'chrome_pgo_phase=0' # needs newer clang to read the bundled PGO profile + #'chrome_pgo_phase=0' # needs newer clang to read the bundled PGO profile + 'treat_warnings_as_errors=false' 'disable_fieldtrial_testing_config=true' 'blink_enable_generated_code_formatting=false' 'ffmpeg_branding="Chrome"' @@ -211,18 +237,23 @@ build() { 'use_custom_libcxx=false' 'use_gnome_keyring=false' 'use_sysroot=false' - 'use_system_libwayland=true' - 'use_system_wayland_scanner=true' - 'use_custom_libcxx=false' + 'use_system_libffi=true' + 'enable_hangout_services_extension=true' 'enable_widevine=true' - 'enable_platform_hevc=true' - 'enable_hevc_parser_and_hw_decoder=true' + 'enable_nacl=false' + "google_api_key=\"$_google_api_key\"" ) if [[ -n ${_system_libs[icu]+set} ]]; then _flags+=('icu_use_data_file=false') fi + # enable HEVC decoding + _flags+=( + 'enable_platform_hevc=true' + 'enable_hevc_parser_and_hw_decoder=true' + ) + # Append ungoogled chromium flags to _flags array _ungoogled_repo="$srcdir/${pkgname%xdg*}$_uc_ver" readarray -t -O ${#_flags[@]} _flags < "${_ungoogled_repo}/flags.gn" @@ -270,9 +301,6 @@ package() { install -D out/Release/chromedriver "$pkgdir/usr/bin/chromedriver" install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" - install -Dm644 ../chromium-drirc-disable-10bpc-color-configs.conf \ - "$pkgdir/usr/share/drirc.d/10-$pkgname.conf" - install -Dm644 chrome/installer/linux/common/desktop.template \ "$pkgdir/usr/share/applications/chromium.desktop" install -Dm644 chrome/app/resources/manpage.1.in \ @@ -297,8 +325,8 @@ package() { chrome_100_percent.pak chrome_200_percent.pak chrome_crashpad_handler - resources.pak libqt5_shim.so + resources.pak v8_context_snapshot.bin # ANGLE diff --git a/fix-the-way-to-handle-codecs-in-the-system-icu.patch b/fix-the-way-to-handle-codecs-in-the-system-icu.patch new file mode 100644 index 000000000000..63c4cee930ea --- /dev/null +++ b/fix-the-way-to-handle-codecs-in-the-system-icu.patch @@ -0,0 +1,60 @@ +From 4885090741554be61cb2ed10194cefb29bf8be64 Mon Sep 17 00:00:00 2001 +From: Yoshisato Yanagisawa <yyanagisawa@chromium.org> +Date: Wed, 11 Jan 2023 23:51:39 +0000 +Subject: [PATCH] Fix the way to handle codecs in the system icu. + +The previous code does not register codecs whose standard name is +different from the bundled ICU. As a result, looking up such codecs +seems to fail unexpectedly. + +Bug: 1382032 +Change-Id: I8a61f77d0f70104415d24dd954b3b7061ffca556 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4154277 +Reviewed-by: Kent Tamura <tkent@chromium.org> +Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1091571} +--- + .../renderer/platform/wtf/text/text_codec_icu.cc | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc +index a70b359984f..33ce43f3563 100644 +--- a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc ++++ b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc +@@ -116,6 +116,10 @@ void TextCodecICU::RegisterEncodingNames(EncodingNameRegistrar registrar) { + continue; + } + #endif ++ // Avoid codecs supported by `TextCodecCJK`. ++ if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) { ++ continue; ++ } + + // A number of these aliases are handled in Chrome's copy of ICU, but + // Chromium can be compiled with the system ICU. +@@ -144,12 +148,13 @@ void TextCodecICU::RegisterEncodingNames(EncodingNameRegistrar registrar) { + } + #endif + +- if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) { +- continue; ++ // Avoid registering codecs registered by ++ // `TextCodecCJK::RegisterEncodingNames`. ++ if (!is_text_codec_cjk_enabled || ++ !TextCodecCJK::IsSupported(standard_name)) { ++ registrar(standard_name, standard_name); + } + +- registrar(standard_name, standard_name); +- + uint16_t num_aliases = ucnv_countAliases(name, &error); + DCHECK(U_SUCCESS(error)); + if (U_SUCCESS(error)) +@@ -289,6 +294,7 @@ void TextCodecICU::RegisterCodecs(TextCodecRegistrar registrar) { + continue; + } + #endif ++ // Avoid codecs supported by `TextCodecCJK`. + if (is_text_codec_cjk_enabled && TextCodecCJK::IsSupported(standard_name)) { + continue; + } diff --git a/v8-move-the-Stack-object-from-ThreadLocalTop.patch b/v8-move-the-Stack-object-from-ThreadLocalTop.patch new file mode 100644 index 000000000000..a06044834249 --- /dev/null +++ b/v8-move-the-Stack-object-from-ThreadLocalTop.patch @@ -0,0 +1,205 @@ +From 7b6fbcd0a6700db498ad55db046ecda92c8ee8c1 Mon Sep 17 00:00:00 2001 +From: Nikolaos Papaspyrou <nikolaos@chromium.org> +Date: Sun, 29 Jan 2023 17:18:08 +0100 +Subject: [PATCH] Merge: [heap] Move the Stack object from ThreadLocalTop to + Isolate + +This is just for nodejs, do not backmerge to 11.0. +(cherry picked from commit 1e4b71d99fea5ea6bb4bf6420585a7819872bb0f) + +> Change-Id: I026a35af3bc6999a09b21f277756d4454c086343 +> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4152476 +> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> +> Reviewed-by: Omer Katz <omerkatz@chromium.org> +> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> +> Cr-Commit-Position: refs/heads/main@{#85445} + +Stack information is thread-specific and, until now, it was stored in a +field in ThreadLocalTop. This CL moves stack information to the isolate +and makes sure to update the stack start whenever a main thread enters +the isolate. At the same time, the Stack object is refactored and +simplified. + +As a side effect, after removing the Stack object, ThreadLocalTop +satisfies the std::standard_layout trait; this fixes some issues +observed with different C++ compilers. + +Bug: v8:13630 +Bug: v8:13257 +Change-Id: I4be1f04fe90699e1a6e456dad3e0dd623851acce +--- + src/execution/isolate.cc | 36 +++++++++++++++---------------- + src/execution/isolate.h | 6 ++++++ + src/execution/thread-local-top.cc | 2 -- + src/execution/thread-local-top.h | 6 +----- + src/heap/heap.cc | 4 +--- + 5 files changed, 25 insertions(+), 29 deletions(-) + +diff --git a/src/execution/isolate.cc b/src/execution/isolate.cc +index 4edf364e0a..be4fd400d2 100644 +--- a/src/execution/isolate.cc ++++ b/src/execution/isolate.cc +@@ -3074,22 +3074,23 @@ void Isolate::AddSharedWasmMemory(Handle<WasmMemoryObject> memory_object) { + void Isolate::RecordStackSwitchForScanning() { + Object current = root(RootIndex::kActiveContinuation); + DCHECK(!current.IsUndefined()); +- thread_local_top()->stack_.ClearStackSegments(); +- wasm::StackMemory* stack = Managed<wasm::StackMemory>::cast( +- WasmContinuationObject::cast(current).stack()) +- .get() +- .get(); ++ stack().ClearStackSegments(); ++ wasm::StackMemory* wasm_stack = ++ Managed<wasm::StackMemory>::cast( ++ WasmContinuationObject::cast(current).stack()) ++ .get() ++ .get(); + current = WasmContinuationObject::cast(current).parent(); +- thread_local_top()->stack_.SetStackStart( +- reinterpret_cast<void*>(stack->base())); ++ heap()->SetStackStart(reinterpret_cast<void*>(wasm_stack->base())); + // We don't need to add all inactive stacks. Only the ones in the active chain + // may contain cpp heap pointers. + while (!current.IsUndefined()) { + auto cont = WasmContinuationObject::cast(current); +- auto* stack = Managed<wasm::StackMemory>::cast(cont.stack()).get().get(); +- thread_local_top()->stack_.AddStackSegment( +- reinterpret_cast<const void*>(stack->base()), +- reinterpret_cast<const void*>(stack->jmpbuf()->sp)); ++ auto* wasm_stack = ++ Managed<wasm::StackMemory>::cast(cont.stack()).get().get(); ++ stack().AddStackSegment( ++ reinterpret_cast<const void*>(wasm_stack->base()), ++ reinterpret_cast<const void*>(wasm_stack->jmpbuf()->sp)); + current = cont.parent(); + } + } +@@ -3377,20 +3378,13 @@ void Isolate::Delete(Isolate* isolate) { + Isolate* saved_isolate = isolate->TryGetCurrent(); + SetIsolateThreadLocals(isolate, nullptr); + isolate->set_thread_id(ThreadId::Current()); +- isolate->thread_local_top()->stack_ = +- saved_isolate ? std::move(saved_isolate->thread_local_top()->stack_) +- : ::heap::base::Stack(base::Stack::GetStackStart()); ++ isolate->heap()->SetStackStart(base::Stack::GetStackStart()); + + bool owns_shared_isolate = isolate->owns_shared_isolate_; + Isolate* maybe_shared_isolate = isolate->shared_isolate_; + + isolate->Deinit(); + +- // Restore the saved isolate's stack. +- if (saved_isolate) +- saved_isolate->thread_local_top()->stack_ = +- std::move(isolate->thread_local_top()->stack_); +- + #ifdef DEBUG + non_disposed_isolates_--; + #endif // DEBUG +@@ -4647,6 +4641,10 @@ bool Isolate::Init(SnapshotData* startup_snapshot_data, + void Isolate::Enter() { + Isolate* current_isolate = nullptr; + PerIsolateThreadData* current_data = CurrentPerIsolateThreadData(); ++ ++ // Set the stack start for the main thread that enters the isolate. ++ heap()->SetStackStart(base::Stack::GetStackStart()); ++ + if (current_data != nullptr) { + current_isolate = current_data->isolate_; + DCHECK_NOT_NULL(current_isolate); +diff --git a/src/execution/isolate.h b/src/execution/isolate.h +index a32f999fe5..1cb6e10661 100644 +--- a/src/execution/isolate.h ++++ b/src/execution/isolate.h +@@ -32,6 +32,7 @@ + #include "src/execution/stack-guard.h" + #include "src/handles/handles.h" + #include "src/handles/traced-handles.h" ++#include "src/heap/base/stack.h" + #include "src/heap/factory.h" + #include "src/heap/heap.h" + #include "src/heap/read-only-heap.h" +@@ -2022,6 +2023,8 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory { + SimulatorData* simulator_data() { return simulator_data_; } + #endif + ++ ::heap::base::Stack& stack() { return stack_; } ++ + #ifdef V8_ENABLE_WEBASSEMBLY + wasm::StackMemory*& wasm_stacks() { return wasm_stacks_; } + // Update the thread local's Stack object so that it is aware of the new stack +@@ -2520,6 +2523,9 @@ class V8_EXPORT_PRIVATE Isolate final : private HiddenFactory { + // The mutex only guards adding pages, the retrieval is signal safe. + base::Mutex code_pages_mutex_; + ++ // Stack information for the main thread. ++ ::heap::base::Stack stack_; ++ + #ifdef V8_ENABLE_WEBASSEMBLY + wasm::StackMemory* wasm_stacks_; + #endif +diff --git a/src/execution/thread-local-top.cc b/src/execution/thread-local-top.cc +index 0d7071ddda..05cc20b8e4 100644 +--- a/src/execution/thread-local-top.cc ++++ b/src/execution/thread-local-top.cc +@@ -37,14 +37,12 @@ void ThreadLocalTop::Clear() { + current_embedder_state_ = nullptr; + failed_access_check_callback_ = nullptr; + thread_in_wasm_flag_address_ = kNullAddress; +- stack_ = ::heap::base::Stack(); + } + + void ThreadLocalTop::Initialize(Isolate* isolate) { + Clear(); + isolate_ = isolate; + thread_id_ = ThreadId::Current(); +- stack_.SetStackStart(base::Stack::GetStackStart()); + #if V8_ENABLE_WEBASSEMBLY + thread_in_wasm_flag_address_ = reinterpret_cast<Address>( + trap_handler::GetThreadInWasmThreadLocalAddress()); +diff --git a/src/execution/thread-local-top.h b/src/execution/thread-local-top.h +index 43fec0a7df..989c817f31 100644 +--- a/src/execution/thread-local-top.h ++++ b/src/execution/thread-local-top.h +@@ -10,7 +10,6 @@ + #include "include/v8-unwinder.h" + #include "src/common/globals.h" + #include "src/execution/thread-id.h" +-#include "src/heap/base/stack.h" + #include "src/objects/contexts.h" + #include "src/utils/utils.h" + +@@ -30,7 +29,7 @@ class ThreadLocalTop { + // TODO(all): This is not particularly beautiful. We should probably + // refactor this to really consist of just Addresses and 32-bit + // integer fields. +- static constexpr uint32_t kSizeInBytes = 30 * kSystemPointerSize; ++ static constexpr uint32_t kSizeInBytes = 25 * kSystemPointerSize; + + // Does early low-level initialization that does not depend on the + // isolate being present. +@@ -147,9 +146,6 @@ class ThreadLocalTop { + + // Address of the thread-local "thread in wasm" flag. + Address thread_in_wasm_flag_address_; +- +- // Stack information. +- ::heap::base::Stack stack_; + }; + + } // namespace internal +diff --git a/src/heap/heap.cc b/src/heap/heap.cc +index 51a90ddcab..b5722ab6ec 100644 +--- a/src/heap/heap.cc ++++ b/src/heap/heap.cc +@@ -5851,9 +5851,7 @@ void Heap::SetStackStart(void* stack_start) { + stack().SetStackStart(stack_start); + } + +-::heap::base::Stack& Heap::stack() { +- return isolate_->thread_local_top()->stack_; +-} ++::heap::base::Stack& Heap::stack() { return isolate_->stack(); } + + void Heap::RegisterExternallyReferencedObject(Address* location) { + Object object = TracedHandles::Mark(location, TracedHandles::MarkMode::kAll); |