mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
extra/chromium to 111.0.5563.64-1
This commit is contained in:
parent
50bb8f6b09
commit
d85024bea2
7 changed files with 61 additions and 289 deletions
|
@ -1,4 +1,4 @@
|
||||||
From 91ee825b0dcc82e6016ffc6f95e3e0dd1070ef93 Mon Sep 17 00:00:00 2001
|
From b412032d8f94674c59056d69087f28ad7e597a22 Mon Sep 17 00:00:00 2001
|
||||||
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||||
Date: Thu, 18 Feb 2021 19:35:58 -0700
|
Date: Thu, 18 Feb 2021 19:35:58 -0700
|
||||||
Subject: [PATCH 1/3] widevine support for arm
|
Subject: [PATCH 1/3] widevine support for arm
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From d0e2fc333522b11f7a0a24c60f8e0d8e0e8b5bba Mon Sep 17 00:00:00 2001
|
From 2f0db65730ea473ca9d0797c912d713a1240e1d8 Mon Sep 17 00:00:00 2001
|
||||||
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||||
Date: Tue, 2 Feb 2021 13:58:59 -0700
|
Date: Tue, 2 Feb 2021 13:58:59 -0700
|
||||||
Subject: [PATCH 2/3] Run blink bindings generation single threaded
|
Subject: [PATCH 2/3] Run blink bindings generation single threaded
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 53b59f457af1196c30d72114b13e933bd64278dd Mon Sep 17 00:00:00 2001
|
From fcadf57766b1d75ef9e0ed0a6e255ebd9c097dc6 Mon Sep 17 00:00:00 2001
|
||||||
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||||
Date: Wed, 21 Jul 2021 21:37:31 -0600
|
Date: Wed, 21 Jul 2021 21:37:31 -0600
|
||||||
Subject: [PATCH 3/3] Fix eu-strip build for newer GCC
|
Subject: [PATCH 3/3] Fix eu-strip build for newer GCC
|
||||||
|
|
|
@ -15,10 +15,10 @@
|
||||||
highmem=1
|
highmem=1
|
||||||
|
|
||||||
pkgname=chromium
|
pkgname=chromium
|
||||||
pkgver=110.0.5481.177
|
pkgver=111.0.5563.64
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
_launcher_ver=8
|
_launcher_ver=8
|
||||||
_gcc_patchset=4
|
_gcc_patchset=2
|
||||||
_manual_clone=0
|
_manual_clone=0
|
||||||
pkgdesc="A web browser built for speed, simplicity, and security"
|
pkgdesc="A web browser built for speed, simplicity, and security"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
|
@ -38,8 +38,7 @@ options=('!lto') # Chromium adds its own flags for ThinLTO
|
||||||
source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz
|
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/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
|
https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz
|
||||||
fix-the-way-to-handle-codecs-in-the-system-icu.patch
|
sql-relax-constraints-on-VirtualCursor-layout.patch
|
||||||
v8-move-the-Stack-object-from-ThreadLocalTop.patch
|
|
||||||
REVERT-roll-src-third_party-ffmpeg-m102.patch
|
REVERT-roll-src-third_party-ffmpeg-m102.patch
|
||||||
REVERT-roll-src-third_party-ffmpeg-m106.patch
|
REVERT-roll-src-third_party-ffmpeg-m106.patch
|
||||||
disable-GlobalMediaControlsCastStartStop.patch
|
disable-GlobalMediaControlsCastStartStop.patch
|
||||||
|
@ -47,18 +46,17 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom
|
||||||
0001-widevine-support-for-arm.patch
|
0001-widevine-support-for-arm.patch
|
||||||
0002-Run-blink-bindings-generation-single-threaded.patch
|
0002-Run-blink-bindings-generation-single-threaded.patch
|
||||||
0003-Fix-eu-strip-build-for-newer-GCC.patch)
|
0003-Fix-eu-strip-build-for-newer-GCC.patch)
|
||||||
sha256sums=('7b2f454d1195270a39f94a9ff6d8d68126be315e0da4e31c20f4ba9183a1c9b7'
|
sha256sums=('7d5ca0e2bdb22a97713e6bfce74c651006d71aa883056c8e2c2a148039fe4074'
|
||||||
'213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a'
|
'213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a'
|
||||||
'8c7f93037cc236024cc8be815b2c2bd84f6dc9e32685299e31d4c6c42efde8b7'
|
'a016588340f1559198e4ce61c6e91c48cf863600f415cb5c46322de7e1f77909'
|
||||||
'a5d5c532b0b059895bc13aaaa600d21770eab2afa726421b78cb597a78a3c7e3'
|
'e66be069d932fe18811e789c57b96249b7250257ff91a3d82d15e2a7283891b7'
|
||||||
'49c3e599366909ddac6a50fa6f9420e01a7c0ffd029a20567a41d741a15ec9f7'
|
|
||||||
'30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44'
|
'30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44'
|
||||||
'4c12d31d020799d31355faa7d1fe2a5a807f7458e7f0c374adf55edb37032152'
|
'4c12d31d020799d31355faa7d1fe2a5a807f7458e7f0c374adf55edb37032152'
|
||||||
'7f3b1b22d6a271431c1f9fc92b6eb49c6d80b8b3f868bdee07a6a1a16630a302'
|
'7f3b1b22d6a271431c1f9fc92b6eb49c6d80b8b3f868bdee07a6a1a16630a302'
|
||||||
'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711'
|
'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711'
|
||||||
'96c3431d475b5ee628cf406b5c28c53d5d5ebbc405e35ff91ffb6829a79b184c'
|
'12cf566d11e2388fc2b1d629ac71aa2fd80d2dd133001d6612a1e325aea6bbb8'
|
||||||
'e364f67a3f1ec1dbc24f5815648bbcec27195a69302fb6fd3ce5d6d8a3d2c16c'
|
'a832a0cafb5ca2c5aa6dbf55c05f3aae2680cbf5418e5816cab5498ed9e3ae30'
|
||||||
'bd82ac3909b9f8fe86375ad7751e905db06f1272f3eddbc80ab78e10c6bd10ac')
|
'c5377b9bb75b9de90893042825239545d8d871ee8699d81e9ec95fdff62b4bf1')
|
||||||
|
|
||||||
if (( _manual_clone )); then
|
if (( _manual_clone )); then
|
||||||
source[0]=fetch-chromium-release
|
source[0]=fetch-chromium-release
|
||||||
|
@ -142,12 +140,7 @@ prepare() {
|
||||||
patch -Np1 -i ../use-oauth2-client-switches-as-default.patch
|
patch -Np1 -i ../use-oauth2-client-switches-as-default.patch
|
||||||
|
|
||||||
# Upstream fixes
|
# Upstream fixes
|
||||||
patch -Np1 -i ../fix-the-way-to-handle-codecs-in-the-system-icu.patch
|
patch -Np1 -i ../sql-relax-constraints-on-VirtualCursor-layout.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
|
# Revert ffmpeg roll requiring new channel layout API support
|
||||||
# https://crbug.com/1325301
|
# https://crbug.com/1325301
|
||||||
|
@ -160,10 +153,6 @@ prepare() {
|
||||||
patch -Np1 -i ../disable-GlobalMediaControlsCastStartStop.patch
|
patch -Np1 -i ../disable-GlobalMediaControlsCastStartStop.patch
|
||||||
|
|
||||||
# Fixes for building with libstdc++ instead of libc++
|
# 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
|
|
||||||
|
|
||||||
# Link to system tools required by the build
|
# Link to system tools required by the build
|
||||||
mkdir -p third_party/node/linux/node-linux-x64/bin
|
mkdir -p third_party/node/linux/node-linux-x64/bin
|
||||||
|
|
|
@ -1,60 +0,0 @@
|
||||||
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;
|
|
||||||
}
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
From 7d1394bd639e3bcf68082ac3fc33eeed6a00d2e6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Elly Fong-Jones <ellyjones@chromium.org>
|
||||||
|
Date: Thu, 2 Mar 2023 00:15:11 +0000
|
||||||
|
Subject: [PATCH] sql: relax constraints on VirtualCursor layout
|
||||||
|
|
||||||
|
VirtualCursor::FromSqliteCursor required that VirtualCursor had a
|
||||||
|
standard layout, but in fact VirtualCursor shouldn't have a standard
|
||||||
|
layout, and the fact that it does with libc++ is a deviation from the
|
||||||
|
C++ standard. This change:
|
||||||
|
|
||||||
|
1. Relaxes the requirement that VirtualCursor has a standard layout, and
|
||||||
|
2. Relaxes the requirement that the sqlite_cursor_ field has to be at
|
||||||
|
offset 0
|
||||||
|
|
||||||
|
by use of offsetof() and pointer subtraction. This change both improves
|
||||||
|
standards compliance and makes this code build with libstdc++.
|
||||||
|
|
||||||
|
Bug: 1380656
|
||||||
|
Change-Id: I9c47abd9197b187da0360ca5619ccf7dadab4f33
|
||||||
|
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4292313
|
||||||
|
Reviewed-by: Austin Sullivan <asully@chromium.org>
|
||||||
|
Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
|
||||||
|
Cr-Commit-Position: refs/heads/main@{#1111925}
|
||||||
|
---
|
||||||
|
sql/recover_module/cursor.h | 10 ++++------
|
||||||
|
1 file changed, 4 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
|
||||||
|
index 1970bdca8c6..4cb06557009 100644
|
||||||
|
--- a/sql/recover_module/cursor.h
|
||||||
|
+++ b/sql/recover_module/cursor.h
|
||||||
|
@@ -63,12 +63,10 @@ class VirtualCursor {
|
||||||
|
// |sqlite_cursor| must have been returned by VirtualTable::SqliteCursor().
|
||||||
|
static inline VirtualCursor* FromSqliteCursor(
|
||||||
|
sqlite3_vtab_cursor* sqlite_cursor) {
|
||||||
|
- static_assert(std::is_standard_layout<VirtualCursor>::value,
|
||||||
|
- "needed for the reinterpret_cast below");
|
||||||
|
- static_assert(offsetof(VirtualCursor, sqlite_cursor_) == 0,
|
||||||
|
- "sqlite_cursor_ must be the first member of the class");
|
||||||
|
- VirtualCursor* result = reinterpret_cast<VirtualCursor*>(sqlite_cursor);
|
||||||
|
- DCHECK_EQ(sqlite_cursor, &result->sqlite_cursor_);
|
||||||
|
+ VirtualCursor* result = reinterpret_cast<VirtualCursor*>(
|
||||||
|
+ (reinterpret_cast<char*>(sqlite_cursor) -
|
||||||
|
+ offsetof(VirtualCursor, sqlite_cursor_)));
|
||||||
|
+ CHECK_EQ(sqlite_cursor, &result->sqlite_cursor_);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
|
@ -1,205 +0,0 @@
|
||||||
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);
|
|
Loading…
Reference in a new issue