Architecture specific change in rpms/contour-terminal.git
by githook-noreply@fedoraproject.org
The package rpms/contour-terminal.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/contour-terminal.git/commit/?id=9....
Change:
+ExcludeArch: s390x i686 ppc64le
Thanks.
Full change:
============
commit 92bfbbe16f6adae98937e76a972c8368eab18cb4
Author: topazus <topazus(a)outlook.com>
Date: Wed Mar 8 08:40:07 2023 +0800
Initial import (rhbz#2174384)
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..45f41c7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/contour-0.3.11.258.tar.gz
diff --git a/contour-terminal.spec b/contour-terminal.spec
new file mode 100644
index 0000000..e45697b
--- /dev/null
+++ b/contour-terminal.spec
@@ -0,0 +1,97 @@
+%bcond_without qt6
+
+Name: contour-terminal
+Version: 0.3.11.258
+Release: %autorelease
+Summary: Modern C++ Terminal Emulator
+License: Apache-2.0
+URL: https://github.com/contour-terminal/contour
+Source0: %{url}/archive/v%{version}/contour-%{version}.tar.gz
+
+ExcludeArch: s390x i686 ppc64le
+
+BuildRequires: gcc-c++
+BuildRequires: cmake
+BuildRequires: ninja-build
+BuildRequires: extra-cmake-modules
+BuildRequires: fmt-devel
+BuildRequires: guidelines-support-library-devel
+BuildRequires: range-v3-devel
+BuildRequires: yaml-cpp-devel
+BuildRequires: libxcb-devel
+BuildRequires: fontconfig-devel
+BuildRequires: freetype-devel
+BuildRequires: harfbuzz-devel
+BuildRequires: libunicode-devel
+BuildRequires: desktop-file-utils
+BuildRequires: libappstream-glib
+%if %{?fedora} <= 38
+BuildRequires: catch-devel
+%else
+BuildRequires: catch2-devel
+%endif
+
+%if %{with qt6}
+BuildRequires: qt6-qtbase-devel
+BuildRequires: qt6-qtdeclarative-devel
+BuildRequires: qt6-qtmultimedia-devel
+%else
+BuildRequires: qt5-qtbase-devel
+BuildRequires: qt5-qtdeclarative-devel
+BuildRequires: qt5-qtmultimedia-devel
+%endif
+
+Requires: hicolor-icon-theme
+Requires: kf5-kservice
+Requires: kf5-filesystem
+Requires: ncurses-base
+
+%description
+Contour is a modern and actually fast, modal, virtual terminal emulator,
+for everyday use. It is aiming for power users with a modern feature mindset.
+
+%prep
+%autosetup -n contour-%{version}
+
+%build
+%cmake \
+ -GNinja \
+%if %{with qt6}
+ -DCONTOUR_BUILD_WITH_QT6=ON
+%else
+ -DCONTOUR_BUILD_WITH_QT6=OFF
+%endif
+%ninja_build -C %{_vpath_builddir}
+
+%install
+%ninja_install -C %{_vpath_builddir}
+
+rm %{buildroot}%{_datadir}/terminfo/c/contour-latest
+ln -s contour %{buildroot}%{_datadir}/terminfo/c/contour-latest
+rm %{buildroot}%{_datadir}/contour/LICENSE.txt
+rm %{buildroot}%{_datadir}/contour/README.md
+
+%check
+./%{_vpath_builddir}/src/crispy/crispy_test
+./%{_vpath_builddir}/src/vtbackend/vtbackend_test
+
+desktop-file-validate %{buildroot}/%{_datadir}/applications/*.desktop
+appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml
+
+%files
+%license LICENSE.txt
+%doc README.md
+%{_bindir}/contour
+%{_datadir}/applications/*.desktop
+%{_datadir}/kservices5/ServiceMenus/*.desktop
+%dir %{_datadir}/contour
+%dir %{_datadir}/contour/shell-integration
+%{_datadir}/contour/shell-integration/shell-integration.fish
+%{_datadir}/contour/shell-integration/shell-integration.tcsh
+%{_datadir}/contour/shell-integration/shell-integration.zsh
+%{_datadir}/terminfo/c/contour*
+%{_datadir}/icons/hicolor/*/apps/*.png
+%{_metainfodir}/*.xml
+
+%changelog
+%autochangelog
diff --git a/sources b/sources
new file mode 100644
index 0000000..6615fc4
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (contour-0.3.11.258.tar.gz) = 96e6ec683df18b0b15bee4bcbe68bc940b025d99466bf278b7f356acd27f054e9c49376f20545aef0a619c0bcd65c961a22c58f37b2e6011fe2d2a9bc65ef1b7
1 year, 3 months
Architecture specific change in rpms/rust-pbkdf2.git
by githook-noreply@fedoraproject.org
The package rpms/rust-pbkdf2.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-pbkdf2.git/commit/?id=e1c088....
Change:
-ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit e1c088909a5b418479fd6b76612c2379188e0953
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Wed Mar 8 21:50:08 2023 +0100
Update to version 0.10.1
diff --git a/.gitignore b/.gitignore
index d5fb034..8036508 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
/*.src.rpm
/pbkdf2-0.9.0.crate
+/pbkdf2-0.10.1.crate
diff --git a/rust-pbkdf2.spec b/rust-pbkdf2.spec
index de1b055..380abff 100644
--- a/rust-pbkdf2.spec
+++ b/rust-pbkdf2.spec
@@ -1,22 +1,19 @@
-# Generated by rust2rpm 20
+# Generated by rust2rpm 24
%bcond_without check
%global debug_package %{nil}
%global crate pbkdf2
-Name: rust-%{crate}
-Version: 0.9.0
+Name: rust-pbkdf2
+Version: 0.10.1
Release: %autorelease
Summary: Generic implementation of PBKDF2
-# Upstream license specification: MIT OR Apache-2.0
-License: MIT or ASL 2.0
+License: MIT OR Apache-2.0
URL: https://crates.io/crates/pbkdf2
Source: %{crates_source}
-ExclusiveArch: %{rust_arches}
-
-BuildRequires: rust-packaging
+BuildRequires: rust-packaging >= 21
%global _description %{expand:
Generic implementation of PBKDF2.}
@@ -33,9 +30,11 @@ This package contains library source intended for building other packages which
use the "%{crate}" crate.
%files devel
-%license LICENSE-APACHE LICENSE-MIT
-%doc CHANGELOG.md README.md
-%{cargo_registry}/%{crate}-%{version_no_tilde}/
+%license %{crate_instdir}/LICENSE-APACHE
+%license %{crate_instdir}/LICENSE-MIT
+%doc %{crate_instdir}/CHANGELOG.md
+%doc %{crate_instdir}/README.md
+%{crate_instdir}/
%package -n %{name}+default-devel
Summary: %{summary}
@@ -47,7 +46,7 @@ This package contains library source intended for building other packages which
use the "default" feature of the "%{crate}" crate.
%files -n %{name}+default-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+hmac-devel
Summary: %{summary}
@@ -59,7 +58,7 @@ This package contains library source intended for building other packages which
use the "hmac" feature of the "%{crate}" crate.
%files -n %{name}+hmac-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+parallel-devel
Summary: %{summary}
@@ -71,7 +70,7 @@ This package contains library source intended for building other packages which
use the "parallel" feature of the "%{crate}" crate.
%files -n %{name}+parallel-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+password-hash-devel
Summary: %{summary}
@@ -83,7 +82,7 @@ This package contains library source intended for building other packages which
use the "password-hash" feature of the "%{crate}" crate.
%files -n %{name}+password-hash-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+rayon-devel
Summary: %{summary}
@@ -95,7 +94,7 @@ This package contains library source intended for building other packages which
use the "rayon" feature of the "%{crate}" crate.
%files -n %{name}+rayon-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+sha1-devel
Summary: %{summary}
@@ -107,7 +106,7 @@ This package contains library source intended for building other packages which
use the "sha1" feature of the "%{crate}" crate.
%files -n %{name}+sha1-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+sha2-devel
Summary: %{summary}
@@ -119,7 +118,7 @@ This package contains library source intended for building other packages which
use the "sha2" feature of the "%{crate}" crate.
%files -n %{name}+sha2-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+simple-devel
Summary: %{summary}
@@ -131,7 +130,7 @@ This package contains library source intended for building other packages which
use the "simple" feature of the "%{crate}" crate.
%files -n %{name}+simple-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+std-devel
Summary: %{summary}
@@ -143,7 +142,7 @@ This package contains library source intended for building other packages which
use the "std" feature of the "%{crate}" crate.
%files -n %{name}+std-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
diff --git a/sources b/sources
index a7c3fef..d47a669 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (pbkdf2-0.9.0.crate) = 94c663de9718f883b1b47251f1741e91af8d6d67c387c8e368020aac8a5a20c04e8cbdc51a06828b0ec41dc62ba572b5a6826848940a3abe957348ae72c6d92e
+SHA512 (pbkdf2-0.10.1.crate) = 534f8e78f807321185205166a887c3f9aeb7c88ca15f0354d7772bee64620aff116cbc7a80ed1a5ddaddd5ba8648da8d2b27b110c87daecfd57ba173473938ca
commit 286c66a09ba192b50567dccedd16f906a541888b
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jan 21 00:25:18 2023 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
commit e6c7b82e82e456d82997825b545dbd324be448a0
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jul 23 05:38:11 2022 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
1 year, 3 months
Architecture specific change in rpms/rust-pbkdf2.git
by githook-noreply@fedoraproject.org
The package rpms/rust-pbkdf2.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-pbkdf2.git/commit/?id=e1c088....
Change:
-ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit e1c088909a5b418479fd6b76612c2379188e0953
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Wed Mar 8 21:50:08 2023 +0100
Update to version 0.10.1
diff --git a/.gitignore b/.gitignore
index d5fb034..8036508 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
/*.src.rpm
/pbkdf2-0.9.0.crate
+/pbkdf2-0.10.1.crate
diff --git a/rust-pbkdf2.spec b/rust-pbkdf2.spec
index de1b055..380abff 100644
--- a/rust-pbkdf2.spec
+++ b/rust-pbkdf2.spec
@@ -1,22 +1,19 @@
-# Generated by rust2rpm 20
+# Generated by rust2rpm 24
%bcond_without check
%global debug_package %{nil}
%global crate pbkdf2
-Name: rust-%{crate}
-Version: 0.9.0
+Name: rust-pbkdf2
+Version: 0.10.1
Release: %autorelease
Summary: Generic implementation of PBKDF2
-# Upstream license specification: MIT OR Apache-2.0
-License: MIT or ASL 2.0
+License: MIT OR Apache-2.0
URL: https://crates.io/crates/pbkdf2
Source: %{crates_source}
-ExclusiveArch: %{rust_arches}
-
-BuildRequires: rust-packaging
+BuildRequires: rust-packaging >= 21
%global _description %{expand:
Generic implementation of PBKDF2.}
@@ -33,9 +30,11 @@ This package contains library source intended for building other packages which
use the "%{crate}" crate.
%files devel
-%license LICENSE-APACHE LICENSE-MIT
-%doc CHANGELOG.md README.md
-%{cargo_registry}/%{crate}-%{version_no_tilde}/
+%license %{crate_instdir}/LICENSE-APACHE
+%license %{crate_instdir}/LICENSE-MIT
+%doc %{crate_instdir}/CHANGELOG.md
+%doc %{crate_instdir}/README.md
+%{crate_instdir}/
%package -n %{name}+default-devel
Summary: %{summary}
@@ -47,7 +46,7 @@ This package contains library source intended for building other packages which
use the "default" feature of the "%{crate}" crate.
%files -n %{name}+default-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+hmac-devel
Summary: %{summary}
@@ -59,7 +58,7 @@ This package contains library source intended for building other packages which
use the "hmac" feature of the "%{crate}" crate.
%files -n %{name}+hmac-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+parallel-devel
Summary: %{summary}
@@ -71,7 +70,7 @@ This package contains library source intended for building other packages which
use the "parallel" feature of the "%{crate}" crate.
%files -n %{name}+parallel-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+password-hash-devel
Summary: %{summary}
@@ -83,7 +82,7 @@ This package contains library source intended for building other packages which
use the "password-hash" feature of the "%{crate}" crate.
%files -n %{name}+password-hash-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+rayon-devel
Summary: %{summary}
@@ -95,7 +94,7 @@ This package contains library source intended for building other packages which
use the "rayon" feature of the "%{crate}" crate.
%files -n %{name}+rayon-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+sha1-devel
Summary: %{summary}
@@ -107,7 +106,7 @@ This package contains library source intended for building other packages which
use the "sha1" feature of the "%{crate}" crate.
%files -n %{name}+sha1-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+sha2-devel
Summary: %{summary}
@@ -119,7 +118,7 @@ This package contains library source intended for building other packages which
use the "sha2" feature of the "%{crate}" crate.
%files -n %{name}+sha2-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+simple-devel
Summary: %{summary}
@@ -131,7 +130,7 @@ This package contains library source intended for building other packages which
use the "simple" feature of the "%{crate}" crate.
%files -n %{name}+simple-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+std-devel
Summary: %{summary}
@@ -143,7 +142,7 @@ This package contains library source intended for building other packages which
use the "std" feature of the "%{crate}" crate.
%files -n %{name}+std-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
diff --git a/sources b/sources
index a7c3fef..d47a669 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (pbkdf2-0.9.0.crate) = 94c663de9718f883b1b47251f1741e91af8d6d67c387c8e368020aac8a5a20c04e8cbdc51a06828b0ec41dc62ba572b5a6826848940a3abe957348ae72c6d92e
+SHA512 (pbkdf2-0.10.1.crate) = 534f8e78f807321185205166a887c3f9aeb7c88ca15f0354d7772bee64620aff116cbc7a80ed1a5ddaddd5ba8648da8d2b27b110c87daecfd57ba173473938ca
commit 286c66a09ba192b50567dccedd16f906a541888b
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Sat Jan 21 00:25:18 2023 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
1 year, 3 months
Architecture specific change in rpms/rust-pbkdf2.git
by githook-noreply@fedoraproject.org
The package rpms/rust-pbkdf2.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-pbkdf2.git/commit/?id=e1c088....
Change:
-ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit e1c088909a5b418479fd6b76612c2379188e0953
Author: Fabio Valentini <decathorpe(a)gmail.com>
Date: Wed Mar 8 21:50:08 2023 +0100
Update to version 0.10.1
diff --git a/.gitignore b/.gitignore
index d5fb034..8036508 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
/*.src.rpm
/pbkdf2-0.9.0.crate
+/pbkdf2-0.10.1.crate
diff --git a/rust-pbkdf2.spec b/rust-pbkdf2.spec
index de1b055..380abff 100644
--- a/rust-pbkdf2.spec
+++ b/rust-pbkdf2.spec
@@ -1,22 +1,19 @@
-# Generated by rust2rpm 20
+# Generated by rust2rpm 24
%bcond_without check
%global debug_package %{nil}
%global crate pbkdf2
-Name: rust-%{crate}
-Version: 0.9.0
+Name: rust-pbkdf2
+Version: 0.10.1
Release: %autorelease
Summary: Generic implementation of PBKDF2
-# Upstream license specification: MIT OR Apache-2.0
-License: MIT or ASL 2.0
+License: MIT OR Apache-2.0
URL: https://crates.io/crates/pbkdf2
Source: %{crates_source}
-ExclusiveArch: %{rust_arches}
-
-BuildRequires: rust-packaging
+BuildRequires: rust-packaging >= 21
%global _description %{expand:
Generic implementation of PBKDF2.}
@@ -33,9 +30,11 @@ This package contains library source intended for building other packages which
use the "%{crate}" crate.
%files devel
-%license LICENSE-APACHE LICENSE-MIT
-%doc CHANGELOG.md README.md
-%{cargo_registry}/%{crate}-%{version_no_tilde}/
+%license %{crate_instdir}/LICENSE-APACHE
+%license %{crate_instdir}/LICENSE-MIT
+%doc %{crate_instdir}/CHANGELOG.md
+%doc %{crate_instdir}/README.md
+%{crate_instdir}/
%package -n %{name}+default-devel
Summary: %{summary}
@@ -47,7 +46,7 @@ This package contains library source intended for building other packages which
use the "default" feature of the "%{crate}" crate.
%files -n %{name}+default-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+hmac-devel
Summary: %{summary}
@@ -59,7 +58,7 @@ This package contains library source intended for building other packages which
use the "hmac" feature of the "%{crate}" crate.
%files -n %{name}+hmac-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+parallel-devel
Summary: %{summary}
@@ -71,7 +70,7 @@ This package contains library source intended for building other packages which
use the "parallel" feature of the "%{crate}" crate.
%files -n %{name}+parallel-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+password-hash-devel
Summary: %{summary}
@@ -83,7 +82,7 @@ This package contains library source intended for building other packages which
use the "password-hash" feature of the "%{crate}" crate.
%files -n %{name}+password-hash-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+rayon-devel
Summary: %{summary}
@@ -95,7 +94,7 @@ This package contains library source intended for building other packages which
use the "rayon" feature of the "%{crate}" crate.
%files -n %{name}+rayon-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+sha1-devel
Summary: %{summary}
@@ -107,7 +106,7 @@ This package contains library source intended for building other packages which
use the "sha1" feature of the "%{crate}" crate.
%files -n %{name}+sha1-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+sha2-devel
Summary: %{summary}
@@ -119,7 +118,7 @@ This package contains library source intended for building other packages which
use the "sha2" feature of the "%{crate}" crate.
%files -n %{name}+sha2-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+simple-devel
Summary: %{summary}
@@ -131,7 +130,7 @@ This package contains library source intended for building other packages which
use the "simple" feature of the "%{crate}" crate.
%files -n %{name}+simple-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%package -n %{name}+std-devel
Summary: %{summary}
@@ -143,7 +142,7 @@ This package contains library source intended for building other packages which
use the "std" feature of the "%{crate}" crate.
%files -n %{name}+std-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
diff --git a/sources b/sources
index a7c3fef..d47a669 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (pbkdf2-0.9.0.crate) = 94c663de9718f883b1b47251f1741e91af8d6d67c387c8e368020aac8a5a20c04e8cbdc51a06828b0ec41dc62ba572b5a6826848940a3abe957348ae72c6d92e
+SHA512 (pbkdf2-0.10.1.crate) = 534f8e78f807321185205166a887c3f9aeb7c88ca15f0354d7772bee64620aff116cbc7a80ed1a5ddaddd5ba8648da8d2b27b110c87daecfd57ba173473938ca
1 year, 3 months
Architecture specific change in rpms/pack.git
by githook-noreply@fedoraproject.org
The package rpms/pack.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/pack.git/commit/?id=504e168c67ad4....
Change:
-%ifarch x86_64
Thanks.
Full change:
============
commit a20f2616281bd901b84cf4f2f249565b29f30bde
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Wed Mar 8 17:02:55 2023 +0530
bump to v0.29.0-rc1
Resolves: #2161274, #2163283 - Security fix for CVE-2022-41717
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
index 2122fbf..e662580 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,4 @@
/v0.27.0-vendor.tar.gz
/v0.28.0-rc2-vendor.tar.gz
/v0.28.0-vendor.tar.gz
+/v0.29.0-rc1-vendor.tar.gz
diff --git a/pack.spec b/pack.spec
index 3fbd0c5..bb5ed55 100644
--- a/pack.spec
+++ b/pack.spec
@@ -15,7 +15,7 @@
%global import_path %{provider}.%{provider_tld}/%{project}/%{repo}
%global git0 https://%{import_path}
-%global built_tag v0.28.0
+%global built_tag v0.29.0-rc1
%global built_tag_strip %(b=%{built_tag}; echo ${b:1})
%global gen_version %(b=%{built_tag_strip}; echo ${b/-/"~"})
@@ -31,6 +31,7 @@ License: Apache-2.0 and BSD-2-Clause and BSD-3-Clause and ISC and MIT
URL: %{git0}
## On the upstream repo, run:
# git checkout %%{built_tag} && go mod vendor && git add vendor/* && \
+# git commit -asm 'add vendor' && \
# git archive --prefix=%%{name}-%%{version}/ -o %%{built_tag}-vendor.tar.gz HEAD
Source0: %{built_tag}-vendor.tar.gz
BuildRequires: golang
@@ -45,12 +46,12 @@ Provides: %{name}cli = %{version}-%{release}
Provides: %{name}-cli = %{version}-%{release}
# vendored libraries
# awk '{print "Provides: bundled(golang("$1")) = "$2}' go.mod | sort | uniq | sed -e 's/-/_/g' -e '/bundled(golang())/d' -e '/bundled(golang(go\|module\|replace\|require))/d'
-Provides: bundled(golang(github.com/Azure/azure_sdk_for_go)) = v67.0.0+incompatible
+Provides: bundled(golang(github.com/Azure/azure_sdk_for_go)) = v68.0.0+incompatible
Provides: bundled(golang(github.com/Azure/go_ansiterm)) = v0.0.0_20210617225240_d185dfc1b5a1
Provides: bundled(golang(github.com/Azure/go_autorest)) = v14.2.0+incompatible
Provides: bundled(golang(github.com/Azure/go_autorest/autorest)) = v0.11.28
-Provides: bundled(golang(github.com/Azure/go_autorest/autorest/adal)) = v0.9.21
-Provides: bundled(golang(github.com/Azure/go_autorest/autorest/azure/auth)) = v0.5.11
+Provides: bundled(golang(github.com/Azure/go_autorest/autorest/adal)) = v0.9.22
+Provides: bundled(golang(github.com/Azure/go_autorest/autorest/azure/auth)) = v0.5.12
Provides: bundled(golang(github.com/Azure/go_autorest/autorest/azure/cli)) = v0.4.6
Provides: bundled(golang(github.com/Azure/go_autorest/autorest/date)) = v0.3.0
Provides: bundled(golang(github.com/Azure/go_autorest/logger)) = v0.2.1
@@ -58,93 +59,96 @@ Provides: bundled(golang(github.com/Azure/go_autorest/tracing)) = v0.6.0
Provides: bundled(golang(github.com/BurntSushi/toml)) = v1.2.1
Provides: bundled(golang(github.com/Masterminds/semver)) = v1.5.0
Provides: bundled(golang(github.com/Microsoft/go_winio)) = v0.6.0
-Provides: bundled(golang(github.com/Microsoft/hcsshim)) = v0.9.5
-Provides: bundled(golang(github.com/ProtonMail/go_crypto)) = v0.0.0_20210428141323_04723f9f07d7
+Provides: bundled(golang(github.com/Microsoft/hcsshim)) = v0.9.6
+Provides: bundled(golang(github.com/ProtonMail/go_crypto)) = v0.0.0_20221026131551_cf6655e29de4
Provides: bundled(golang(github.com/acomagu/bufpipe)) = v1.0.3
Provides: bundled(golang(github.com/apex/log)) = v1.9.0
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2)) = v1.17.1
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/config)) = v1.17.10
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/credentials)) = v1.12.23
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/feature/ec2/imds)) = v1.12.19
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/internal/configsources)) = v1.1.25
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/internal/endpoints/v2)) = v2.4.19
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/internal/ini)) = v1.3.26
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/ecr)) = v1.17.20
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/ecrpublic)) = v1.13.19
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/internal/presigned_url)) = v1.9.19
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/sso)) = v1.11.25
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/ssooidc)) = v1.13.8
-Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/sts)) = v1.17.1
-Provides: bundled(golang(github.com/aws/smithy_go)) = v1.13.4
-Provides: bundled(golang(github.com/awslabs/amazon_ecr_credential_helper/ecr_login)) = v0.0.0_20221027043306_dc425bc05c64
-Provides: bundled(golang(github.com/buildpacks/imgutil)) = v0.0.0_20221109161319_3252b1f13dfa
-Provides: bundled(golang(github.com/buildpacks/lifecycle)) = v0.15.1
-Provides: bundled(golang(github.com/chrismellard/docker_credential_acr_env)) = v0.0.0_20221002210726_e883f69e0206
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2)) = v1.17.3
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/config)) = v1.18.9
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/credentials)) = v1.13.9
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/feature/ec2/imds)) = v1.12.21
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/internal/configsources)) = v1.1.27
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/internal/endpoints/v2)) = v2.4.21
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/internal/ini)) = v1.3.28
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/ecr)) = v1.18.1
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/ecrpublic)) = v1.15.0
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/internal/presigned_url)) = v1.9.21
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/sso)) = v1.12.0
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/ssooidc)) = v1.14.0
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/sts)) = v1.18.1
+Provides: bundled(golang(github.com/aws/smithy_go)) = v1.13.5
+Provides: bundled(golang(github.com/awslabs/amazon_ecr_credential_helper/ecr_login)) = v0.0.0_20230110223219_40efa3093a22
+Provides: bundled(golang(github.com/buildpacks/imgutil)) = v0.0.0_20230120191822_4d50b9a7e215
+Provides: bundled(golang(github.com/buildpacks/lifecycle)) = v0.16.0
+Provides: bundled(golang(github.com/chrismellard/docker_credential_acr_env)) = v0.0.0_20221129204813_6a4d6ed5d396
+Provides: bundled(golang(github.com/cloudflare/circl)) = v1.1.0
Provides: bundled(golang(github.com/containerd/cgroups)) = v1.0.4
-Provides: bundled(golang(github.com/containerd/containerd)) = v1.6.9
-Provides: bundled(golang(github.com/containerd/stargz_snapshotter/estargz)) = v0.12.1
+Provides: bundled(golang(github.com/containerd/containerd)) = v1.6.18
+Provides: bundled(golang(github.com/containerd/stargz_snapshotter/estargz)) = v0.13.0
Provides: bundled(golang(github.com/containerd/typeurl)) = v1.0.2
Provides: bundled(golang(github.com/dimchansky/utfbom)) = v1.1.1
-Provides: bundled(golang(github.com/docker/cli)) = v20.10.21+incompatible
+Provides: bundled(golang(github.com/docker/cli)) = v23.0.1+incompatible
Provides: bundled(golang(github.com/docker/distribution)) = v2.8.1+incompatible
-Provides: bundled(golang(github.com/docker/docker)) = v20.10.21+incompatible
+Provides: bundled(golang(github.com/docker/docker)) = v20.10.23+incompatible
Provides: bundled(golang(github.com/docker/docker_credential_helpers)) = v0.7.0
Provides: bundled(golang(github.com/docker/go_connections)) = v0.4.0
Provides: bundled(golang(github.com/docker/go_units)) = v0.5.0
-Provides: bundled(golang(github.com/dustin/go_humanize)) = v1.0.0
+Provides: bundled(golang(github.com/dustin/go_humanize)) = v1.0.1
Provides: bundled(golang(github.com/emirpasic/gods)) = v1.18.1
Provides: bundled(golang(github.com/gdamore/encoding)) = v1.0.0
-Provides: bundled(golang(github.com/gdamore/tcell/v2)) = v2.5.3
+Provides: bundled(golang(github.com/gdamore/tcell/v2)) = v2.6.0
Provides: bundled(golang(github.com/ghodss/yaml)) = v1.0.0
Provides: bundled(golang(github.com/go_git/gcfg)) = v1.5.0
-Provides: bundled(golang(github.com/go_git/go_billy/v5)) = v5.3.1
-Provides: bundled(golang(github.com/go_git/go_git/v5)) = v5.4.2
+Provides: bundled(golang(github.com/go_git/go_billy/v5)) = v5.4.0
+Provides: bundled(golang(github.com/go_git/go_git/v5)) = v5.6.0
Provides: bundled(golang(github.com/gogo/protobuf)) = v1.3.2
-Provides: bundled(golang(github.com/golang_jwt/jwt/v4)) = v4.4.2
+Provides: bundled(golang(github.com/golang_jwt/jwt/v4)) = v4.4.3
Provides: bundled(golang(github.com/golang/groupcache)) = v0.0.0_20210331224755_41bb18bfe9da
Provides: bundled(golang(github.com/golang/mock)) = v1.6.0
Provides: bundled(golang(github.com/golang/protobuf)) = v1.5.2
Provides: bundled(golang(github.com/google/go_cmp)) = v0.5.9
-Provides: bundled(golang(github.com/google/go_containerregistry)) = v0.12.1
+Provides: bundled(golang(github.com/google/go_containerregistry)) = v0.13.0
Provides: bundled(golang(github.com/google/go_github/v30)) = v30.1.0
Provides: bundled(golang(github.com/google/go_querystring)) = v1.0.0
Provides: bundled(golang(github.com/google/uuid)) = v1.3.0
Provides: bundled(golang(github.com/hectane/go_acl)) = v0.0.0_20190604041725_da78bae5fc95
Provides: bundled(golang(github.com/heroku/color)) = v0.0.6
-Provides: bundled(golang(github.com/imdario/mergo)) = v0.3.12
+Provides: bundled(golang(github.com/imdario/mergo)) = v0.3.13
Provides: bundled(golang(github.com/inconshreveable/mousetrap)) = v1.0.1
Provides: bundled(golang(github.com/jbenet/go_context)) = v0.0.0_20150711004518_d14ea06fba99
Provides: bundled(golang(github.com/jmespath/go_jmespath)) = v0.4.0
Provides: bundled(golang(github.com/kevinburke/ssh_config)) = v1.2.0
-Provides: bundled(golang(github.com/klauspost/compress)) = v1.15.12
+Provides: bundled(golang(github.com/klauspost/compress)) = v1.15.15
Provides: bundled(golang(github.com/lucasb_eyer/go_colorful)) = v1.2.0
Provides: bundled(golang(github.com/mattn/go_colorable)) = v0.1.13
-Provides: bundled(golang(github.com/mattn/go_isatty)) = v0.0.16
-Provides: bundled(golang(github.com/mattn/go_runewidth)) = v0.0.13
+Provides: bundled(golang(github.com/mattn/go_isatty)) = v0.0.17
+Provides: bundled(golang(github.com/mattn/go_runewidth)) = v0.0.14
Provides: bundled(golang(github.com/mitchellh/go_homedir)) = v1.1.0
Provides: bundled(golang(github.com/mitchellh/ioprogress)) = v0.0.0_20180201004757_6a23b12fa88e
-Provides: bundled(golang(github.com/moby/buildkit)) = v0.10.5
+Provides: bundled(golang(github.com/moby/buildkit)) = v0.11.1
Provides: bundled(golang(github.com/moby/sys/mount)) = v0.3.3
Provides: bundled(golang(github.com/moby/sys/mountinfo)) = v0.6.2
-Provides: bundled(golang(github.com/moby/term)) = v0.0.0_20221105221325_4eb28fa6025c
+Provides: bundled(golang(github.com/moby/term)) = v0.0.0_20221205130635_1aeaba878587
Provides: bundled(golang(github.com/morikuni/aec)) = v1.0.0
-Provides: bundled(golang(github.com/onsi/gomega)) = v1.20.2
+Provides: bundled(golang(github.com/onsi/gomega)) = v1.27.2
Provides: bundled(golang(github.com/opencontainers/go_digest)) = v1.0.0
Provides: bundled(golang(github.com/opencontainers/image_spec)) = v1.1.0_rc2
Provides: bundled(golang(github.com/opencontainers/runc)) = v1.1.4
Provides: bundled(golang(github.com/opencontainers/selinux)) = v1.10.2
Provides: bundled(golang(github.com/pelletier/go_toml)) = v1.9.5
+Provides: bundled(golang(github.com/pjbgf/sha1cd)) = v0.3.0
Provides: bundled(golang(github.com/pkg/errors)) = v0.9.1
Provides: bundled(golang(github.com/rivo/tview)) = v0.0.0_20220307222120_9994674d60a8
-Provides: bundled(golang(github.com/rivo/uniseg)) = v0.2.0
+Provides: bundled(golang(github.com/rivo/uniseg)) = v0.4.3
Provides: bundled(golang(github.com/sabhiram/go_gitignore)) = v0.0.0_20210923224102_525f6e181f06
Provides: bundled(golang(github.com/sclevine/spec)) = v1.4.0
Provides: bundled(golang(github.com/sergi/go_diff)) = v1.2.0
Provides: bundled(golang(github.com/sirupsen/logrus)) = v1.9.0
+Provides: bundled(golang(github.com/skeema/knownhosts)) = v1.1.0
Provides: bundled(golang(github.com/spf13/cobra)) = v1.6.1
Provides: bundled(golang(github.com/spf13/pflag)) = v1.0.5
Provides: bundled(golang(github.com/vbatts/tar_split)) = v0.11.2
-Provides: bundled(golang(github.com/xanzy/ssh_agent)) = v0.3.1
+Provides: bundled(golang(github.com/xanzy/ssh_agent)) = v0.3.3
%description
%{name} is a CLI implementation of the Platform Interface Specification
diff --git a/sources b/sources
index d8d42f9..711a56a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (v0.28.0-vendor.tar.gz) = 81f1e5641922dd61ca4c15285d9e31201e2f09d7ece4bb39d8a1d0085060b4646240f1eeb7599ad9d8f05a34093498f13448c67467913b62f36ef522488e1e38
+SHA512 (v0.29.0-rc1-vendor.tar.gz) = 5a8f26669b64316f17ff8ce4945bd78958712d7df1d4335831bc92619d839512dcf15fdde6aaeb1afdef3770ae080641ca82b902239ef443da4b225389d87158
commit a926fab5be7adbd92f64cdc11150151679aba5e8
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Wed Mar 8 16:46:33 2023 +0530
Revert "Resolves: #2161300 - set _fortify_level 3"
This reverts commit 836366216d5c0f17ded208f11cd20baff35a2d3f.
Not necessary with set_build_flags macro already used.
diff --git a/pack.spec b/pack.spec
index dba3be1..3fbd0c5 100644
--- a/pack.spec
+++ b/pack.spec
@@ -155,7 +155,6 @@ for Cloud Native Buildpacks.
%build
%set_build_flags
-%define _fortify_level 3
export CGO_CFLAGS=$CFLAGS
# These extra flags present in $CFLAGS have been skipped for now as they break the build
CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-flto=auto//g')
commit 836366216d5c0f17ded208f11cd20baff35a2d3f
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Mar 6 20:53:33 2023 +0530
Resolves: #2161300 - set _fortify_level 3
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/pack.spec b/pack.spec
index 3fbd0c5..dba3be1 100644
--- a/pack.spec
+++ b/pack.spec
@@ -155,6 +155,7 @@ for Cloud Native Buildpacks.
%build
%set_build_flags
+%define _fortify_level 3
export CGO_CFLAGS=$CFLAGS
# These extra flags present in $CFLAGS have been skipped for now as they break the build
CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-flto=auto//g')
commit 58161943926c27a1a918bd3ed176a954523178ca
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Mar 6 20:48:40 2023 +0530
bump to v0.28.0
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
index 70ffa21..2122fbf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@
/v0.27.0-rc1-vendor.tar.gz
/v0.27.0-vendor.tar.gz
/v0.28.0-rc2-vendor.tar.gz
+/v0.28.0-vendor.tar.gz
diff --git a/pack.spec b/pack.spec
index 380baac..3fbd0c5 100644
--- a/pack.spec
+++ b/pack.spec
@@ -15,7 +15,7 @@
%global import_path %{provider}.%{provider_tld}/%{project}/%{repo}
%global git0 https://%{import_path}
-%global built_tag v0.28.0-rc2
+%global built_tag v0.28.0
%global built_tag_strip %(b=%{built_tag}; echo ${b:1})
%global gen_version %(b=%{built_tag_strip}; echo ${b/-/"~"})
@@ -45,71 +45,106 @@ Provides: %{name}cli = %{version}-%{release}
Provides: %{name}-cli = %{version}-%{release}
# vendored libraries
# awk '{print "Provides: bundled(golang("$1")) = "$2}' go.mod | sort | uniq | sed -e 's/-/_/g' -e '/bundled(golang())/d' -e '/bundled(golang(go\|module\|replace\|require))/d'
+Provides: bundled(golang(github.com/Azure/azure_sdk_for_go)) = v67.0.0+incompatible
Provides: bundled(golang(github.com/Azure/go_ansiterm)) = v0.0.0_20210617225240_d185dfc1b5a1
-Provides: bundled(golang(github.com/BurntSushi/toml)) = v1.0.0
+Provides: bundled(golang(github.com/Azure/go_autorest)) = v14.2.0+incompatible
+Provides: bundled(golang(github.com/Azure/go_autorest/autorest)) = v0.11.28
+Provides: bundled(golang(github.com/Azure/go_autorest/autorest/adal)) = v0.9.21
+Provides: bundled(golang(github.com/Azure/go_autorest/autorest/azure/auth)) = v0.5.11
+Provides: bundled(golang(github.com/Azure/go_autorest/autorest/azure/cli)) = v0.4.6
+Provides: bundled(golang(github.com/Azure/go_autorest/autorest/date)) = v0.3.0
+Provides: bundled(golang(github.com/Azure/go_autorest/logger)) = v0.2.1
+Provides: bundled(golang(github.com/Azure/go_autorest/tracing)) = v0.6.0
+Provides: bundled(golang(github.com/BurntSushi/toml)) = v1.2.1
Provides: bundled(golang(github.com/Masterminds/semver)) = v1.5.0
-Provides: bundled(golang(github.com/Microsoft/go_winio)) = v0.5.1
-Provides: bundled(golang(github.com/Microsoft/hcsshim)) = v0.8.23
+Provides: bundled(golang(github.com/Microsoft/go_winio)) = v0.6.0
+Provides: bundled(golang(github.com/Microsoft/hcsshim)) = v0.9.5
+Provides: bundled(golang(github.com/ProtonMail/go_crypto)) = v0.0.0_20210428141323_04723f9f07d7
+Provides: bundled(golang(github.com/acomagu/bufpipe)) = v1.0.3
Provides: bundled(golang(github.com/apex/log)) = v1.9.0
-Provides: bundled(golang(github.com/bits_and_blooms/bitset)) = v1.2.0
-Provides: bundled(golang(github.com/buildpacks/imgutil)) = v0.0.0_20211203200417_76206845baac
-Provides: bundled(golang(github.com/buildpacks/lifecycle)) = v0.13.3
-Provides: bundled(golang(github.com/containerd/cgroups)) = v1.0.1
-Provides: bundled(golang(github.com/containerd/containerd)) = v1.5.8
-Provides: bundled(golang(github.com/containerd/stargz_snapshotter/estargz)) = v0.10.1
-Provides: bundled(golang(github.com/docker/cli)) = v20.10.12+incompatible
-Provides: bundled(golang(github.com/docker/distribution)) = v2.7.1+incompatible
-Provides: bundled(golang(github.com/docker/docker)) = v20.10.12+incompatible
-Provides: bundled(golang(github.com/docker/docker_credential_helpers)) = v0.6.4
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2)) = v1.17.1
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/config)) = v1.17.10
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/credentials)) = v1.12.23
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/feature/ec2/imds)) = v1.12.19
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/internal/configsources)) = v1.1.25
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/internal/endpoints/v2)) = v2.4.19
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/internal/ini)) = v1.3.26
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/ecr)) = v1.17.20
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/ecrpublic)) = v1.13.19
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/internal/presigned_url)) = v1.9.19
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/sso)) = v1.11.25
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/ssooidc)) = v1.13.8
+Provides: bundled(golang(github.com/aws/aws_sdk_go_v2/service/sts)) = v1.17.1
+Provides: bundled(golang(github.com/aws/smithy_go)) = v1.13.4
+Provides: bundled(golang(github.com/awslabs/amazon_ecr_credential_helper/ecr_login)) = v0.0.0_20221027043306_dc425bc05c64
+Provides: bundled(golang(github.com/buildpacks/imgutil)) = v0.0.0_20221109161319_3252b1f13dfa
+Provides: bundled(golang(github.com/buildpacks/lifecycle)) = v0.15.1
+Provides: bundled(golang(github.com/chrismellard/docker_credential_acr_env)) = v0.0.0_20221002210726_e883f69e0206
+Provides: bundled(golang(github.com/containerd/cgroups)) = v1.0.4
+Provides: bundled(golang(github.com/containerd/containerd)) = v1.6.9
+Provides: bundled(golang(github.com/containerd/stargz_snapshotter/estargz)) = v0.12.1
+Provides: bundled(golang(github.com/containerd/typeurl)) = v1.0.2
+Provides: bundled(golang(github.com/dimchansky/utfbom)) = v1.1.1
+Provides: bundled(golang(github.com/docker/cli)) = v20.10.21+incompatible
+Provides: bundled(golang(github.com/docker/distribution)) = v2.8.1+incompatible
+Provides: bundled(golang(github.com/docker/docker)) = v20.10.21+incompatible
+Provides: bundled(golang(github.com/docker/docker_credential_helpers)) = v0.7.0
Provides: bundled(golang(github.com/docker/go_connections)) = v0.4.0
-Provides: bundled(golang(github.com/docker/go_units)) = v0.4.0
+Provides: bundled(golang(github.com/docker/go_units)) = v0.5.0
Provides: bundled(golang(github.com/dustin/go_humanize)) = v1.0.0
-Provides: bundled(golang(github.com/emirpasic/gods)) = v1.12.0
+Provides: bundled(golang(github.com/emirpasic/gods)) = v1.18.1
Provides: bundled(golang(github.com/gdamore/encoding)) = v1.0.0
-Provides: bundled(golang(github.com/gdamore/tcell/v2)) = v2.4.0
+Provides: bundled(golang(github.com/gdamore/tcell/v2)) = v2.5.3
Provides: bundled(golang(github.com/ghodss/yaml)) = v1.0.0
+Provides: bundled(golang(github.com/go_git/gcfg)) = v1.5.0
+Provides: bundled(golang(github.com/go_git/go_billy/v5)) = v5.3.1
+Provides: bundled(golang(github.com/go_git/go_git/v5)) = v5.4.2
Provides: bundled(golang(github.com/gogo/protobuf)) = v1.3.2
+Provides: bundled(golang(github.com/golang_jwt/jwt/v4)) = v4.4.2
Provides: bundled(golang(github.com/golang/groupcache)) = v0.0.0_20210331224755_41bb18bfe9da
Provides: bundled(golang(github.com/golang/mock)) = v1.6.0
Provides: bundled(golang(github.com/golang/protobuf)) = v1.5.2
-Provides: bundled(golang(github.com/google/go_cmp)) = v0.5.7
-Provides: bundled(golang(github.com/google/go_containerregistry)) = v0.8.0
+Provides: bundled(golang(github.com/google/go_cmp)) = v0.5.9
+Provides: bundled(golang(github.com/google/go_containerregistry)) = v0.12.1
Provides: bundled(golang(github.com/google/go_github/v30)) = v30.1.0
Provides: bundled(golang(github.com/google/go_querystring)) = v1.0.0
+Provides: bundled(golang(github.com/google/uuid)) = v1.3.0
Provides: bundled(golang(github.com/hectane/go_acl)) = v0.0.0_20190604041725_da78bae5fc95
Provides: bundled(golang(github.com/heroku/color)) = v0.0.6
-Provides: bundled(golang(github.com/inconshreveable/mousetrap)) = v1.0.0
+Provides: bundled(golang(github.com/imdario/mergo)) = v0.3.12
+Provides: bundled(golang(github.com/inconshreveable/mousetrap)) = v1.0.1
Provides: bundled(golang(github.com/jbenet/go_context)) = v0.0.0_20150711004518_d14ea06fba99
-Provides: bundled(golang(github.com/kevinburke/ssh_config)) = v0.0.0_20190725054713_01f96b0aa0cd
-Provides: bundled(golang(github.com/klauspost/compress)) = v1.13.6
+Provides: bundled(golang(github.com/jmespath/go_jmespath)) = v0.4.0
+Provides: bundled(golang(github.com/kevinburke/ssh_config)) = v1.2.0
+Provides: bundled(golang(github.com/klauspost/compress)) = v1.15.12
Provides: bundled(golang(github.com/lucasb_eyer/go_colorful)) = v1.2.0
-Provides: bundled(golang(github.com/mattn/go_colorable)) = v0.1.12
-Provides: bundled(golang(github.com/mattn/go_isatty)) = v0.0.14
-Provides: bundled(golang(github.com/mattn/go_runewidth)) = v0.0.10
+Provides: bundled(golang(github.com/mattn/go_colorable)) = v0.1.13
+Provides: bundled(golang(github.com/mattn/go_isatty)) = v0.0.16
+Provides: bundled(golang(github.com/mattn/go_runewidth)) = v0.0.13
Provides: bundled(golang(github.com/mitchellh/go_homedir)) = v1.1.0
Provides: bundled(golang(github.com/mitchellh/ioprogress)) = v0.0.0_20180201004757_6a23b12fa88e
-Provides: bundled(golang(github.com/moby/sys/mount)) = v0.2.0
-Provides: bundled(golang(github.com/moby/sys/mountinfo)) = v0.4.1
-Provides: bundled(golang(github.com/moby/term)) = v0.0.0_20210619224110_3f7ff695adc6
+Provides: bundled(golang(github.com/moby/buildkit)) = v0.10.5
+Provides: bundled(golang(github.com/moby/sys/mount)) = v0.3.3
+Provides: bundled(golang(github.com/moby/sys/mountinfo)) = v0.6.2
+Provides: bundled(golang(github.com/moby/term)) = v0.0.0_20221105221325_4eb28fa6025c
Provides: bundled(golang(github.com/morikuni/aec)) = v1.0.0
-Provides: bundled(golang(github.com/onsi/gomega)) = v1.18.1
+Provides: bundled(golang(github.com/onsi/gomega)) = v1.20.2
Provides: bundled(golang(github.com/opencontainers/go_digest)) = v1.0.0
-Provides: bundled(golang(github.com/opencontainers/image_spec)) = v1.0.2
-Provides: bundled(golang(github.com/opencontainers/runc)) = v1.0.2
-Provides: bundled(golang(github.com/opencontainers/selinux)) = v1.8.2
-Provides: bundled(golang(github.com/pelletier/go_toml)) = v1.9.4
+Provides: bundled(golang(github.com/opencontainers/image_spec)) = v1.1.0_rc2
+Provides: bundled(golang(github.com/opencontainers/runc)) = v1.1.4
+Provides: bundled(golang(github.com/opencontainers/selinux)) = v1.10.2
+Provides: bundled(golang(github.com/pelletier/go_toml)) = v1.9.5
Provides: bundled(golang(github.com/pkg/errors)) = v0.9.1
-Provides: bundled(golang(github.com/rivo/tview)) = v0.0.0_20210624165335_29d673af0ce2
+Provides: bundled(golang(github.com/rivo/tview)) = v0.0.0_20220307222120_9994674d60a8
Provides: bundled(golang(github.com/rivo/uniseg)) = v0.2.0
-Provides: bundled(golang(github.com/sabhiram/go_gitignore)) = v0.0.0_20201211074657_223ce5d391b0
+Provides: bundled(golang(github.com/sabhiram/go_gitignore)) = v0.0.0_20210923224102_525f6e181f06
Provides: bundled(golang(github.com/sclevine/spec)) = v1.4.0
-Provides: bundled(golang(github.com/sergi/go_diff)) = v1.1.0
-Provides: bundled(golang(github.com/sirupsen/logrus)) = v1.8.1
-Provides: bundled(golang(github.com/spf13/cobra)) = v1.3.0
+Provides: bundled(golang(github.com/sergi/go_diff)) = v1.2.0
+Provides: bundled(golang(github.com/sirupsen/logrus)) = v1.9.0
+Provides: bundled(golang(github.com/spf13/cobra)) = v1.6.1
Provides: bundled(golang(github.com/spf13/pflag)) = v1.0.5
-Provides: bundled(golang(github.com/src_d/gcfg)) = v1.4.0
Provides: bundled(golang(github.com/vbatts/tar_split)) = v0.11.2
-Provides: bundled(golang(github.com/xanzy/ssh_agent)) = v0.3.0
+Provides: bundled(golang(github.com/xanzy/ssh_agent)) = v0.3.1
%description
%{name} is a CLI implementation of the Platform Interface Specification
diff --git a/sources b/sources
index 164ec80..d8d42f9 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (v0.28.0-rc2-vendor.tar.gz) = 70ee3c837310fb43c26f06e42fbc8f8bd91598f9ed07e8cbdf444516b801da2f4eb144d5d6eb74f51e7a84740d1b577552d43d71ad2bb36d073f400b39de786a
+SHA512 (v0.28.0-vendor.tar.gz) = 81f1e5641922dd61ca4c15285d9e31201e2f09d7ece4bb39d8a1d0085060b4646240f1eeb7599ad9d8f05a34093498f13448c67467913b62f36ef522488e1e38
commit 504e168c67ad4b28f11d25b151458fd118979fae
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Mar 6 20:41:04 2023 +0530
fix build flags specification
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/pack.spec b/pack.spec
index 519bc91..380baac 100644
--- a/pack.spec
+++ b/pack.spec
@@ -119,32 +119,36 @@ for Cloud Native Buildpacks.
%autosetup -Sgit -n %{name}-%{built_tag_strip}
%build
-export GOPATH=$(pwd)/_build:$(pwd)
+%set_build_flags
+export CGO_CFLAGS=$CFLAGS
+# These extra flags present in $CFLAGS have been skipped for now as they break the build
+CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-flto=auto//g')
+CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-Wp,D_GLIBCXX_ASSERTIONS//g')
+CGO_CFLAGS=$(echo $CGO_CFLAGS | sed 's/-specs=\/usr\/lib\/rpm\/redhat\/redhat-annobin-cc1//g')
+export LDFLAGS=''
+
+%ifarch x86_64
+export CGO_CFLAGS+=" -m64 -mtune=generic -fcf-protection=full"
+%endif
+
mkdir _build
+export GOPATH=$(pwd)/_build:$(pwd)
+
pushd _build
mkdir -p src/%{provider}.%{provider_tld}/%{project}
ln -s ../../../../ src/%{import_path}
-
-#ln -s $(dirs +1 -l) src/%%{import_path}
popd
-#mv vendor src
ln -s vendor src
%if 0%{?rhel} <= 8
# handled automatically in %%gobuild for fedora and epel9
export GO111MODULE=off
%endif
-export CGO_CFLAGS="-O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -ffat-lto-objects -fexceptions -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
-%ifarch x86_64
-export CGO_CFLAGS+=" -m64 -mtune=generic -fcf-protection=full"
-%endif
-# These extra flags present in %%{optflags} have been skipped for now as they break the build
-#export CGO_CFLAGS+=" -flto=auto -Wp,D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1"
%gobuild -o out/%{name} %{import_path}/cmd/%{name}
%install
-export GOPATH=$(pwd)/_build:$(pwd):%{gopath}
+export GOPATH=$(pwd)/_build:$(pwd)
make DESTDIR=%{buildroot} PREFIX=%{_prefix} install
#define license tag if not already defined
commit bffb308f083dc86e0c559458523c59eddc1fb9ff
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Mar 6 17:10:51 2023 +0530
migrated to SPDX license
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/pack.spec b/pack.spec
index 1315b4f..519bc91 100644
--- a/pack.spec
+++ b/pack.spec
@@ -27,7 +27,7 @@ Release: %autorelease
Release: 1%{?dist}
%endif
Summary: Convert code into runnable images
-License: ASL 2.0 and BSD and ISC and MIT
+License: Apache-2.0 and BSD-2-Clause and BSD-3-Clause and ISC and MIT
URL: %{git0}
## On the upstream repo, run:
# git checkout %%{built_tag} && go mod vendor && git add vendor/* && \
commit bc1715d6d9de8dbd4e8eea7ab3da2efaf3465f80
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 19 23:12:40 2023 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
commit e8d2d85bc900db88d9a4b29e28173674600982aa
Author: RH Container Bot <rhcontainerbot(a)fedoraproject.org>
Date: Mon Dec 12 00:36:21 2022 +0000
auto bump to v0.28.0-rc2
diff --git a/.gitignore b/.gitignore
index b4c9870..70ffa21 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,4 @@
/v0.26.0-vendor.tar.gz
/v0.27.0-rc1-vendor.tar.gz
/v0.27.0-vendor.tar.gz
+/v0.28.0-rc2-vendor.tar.gz
diff --git a/pack.spec b/pack.spec
index 4a22c90..1315b4f 100644
--- a/pack.spec
+++ b/pack.spec
@@ -15,7 +15,7 @@
%global import_path %{provider}.%{provider_tld}/%{project}/%{repo}
%global git0 https://%{import_path}
-%global built_tag v0.27.0
+%global built_tag v0.28.0-rc2
%global built_tag_strip %(b=%{built_tag}; echo ${b:1})
%global gen_version %(b=%{built_tag_strip}; echo ${b/-/"~"})
diff --git a/sources b/sources
index 5255621..164ec80 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (v0.27.0-vendor.tar.gz) = dd819737c1e5b761668a2e253ad534736c0b41ad3649a1836f3717ded8232c01126d995fd50ff4f63a8290c19ea3ffef2aafe5afbb0ab6d991350331dcd8698b
+SHA512 (v0.28.0-rc2-vendor.tar.gz) = 70ee3c837310fb43c26f06e42fbc8f8bd91598f9ed07e8cbdf444516b801da2f4eb144d5d6eb74f51e7a84740d1b577552d43d71ad2bb36d073f400b39de786a
1 year, 3 months
Architecture specific change in rpms/containernetworking-plugins.git
by githook-noreply@fedoraproject.org
The package rpms/containernetworking-plugins.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/containernetworking-plugins.git/c....
Change:
+ExclusiveArch: %{golang_arches}
Thanks.
Full change:
============
commit ca62fbb9e23202c3b27060fee798624e4377a4ba
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Wed Mar 8 16:18:30 2023 +0530
Resolves: #2161274, #2163068 - Rebuild for CVE-2022-41717
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
commit 87219fe903b469a5c34ac1c28466aa97cff121d1
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Mar 6 16:40:35 2023 +0530
migrated to SPDX license
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/containernetworking-plugins.spec b/containernetworking-plugins.spec
index cd8ac80..fa64494 100644
--- a/containernetworking-plugins.spec
+++ b/containernetworking-plugins.spec
@@ -21,7 +21,7 @@
Name: %{project}-%{repo}
Version: 1.1.1
Release: %autorelease
-License: ASL 2.0 and BSD and MIT
+License: Apache-2.0 and BSD-2-Clause and BSD-3-Clause and MIT and MPL-2.0
Summary: Libraries for writing CNI plugin
URL: %{git0}
# Tarball fetched from upstream
commit 0dca0e24e46c71a22b7ad753bb35f86d9888daa0
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 19 00:27:58 2023 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
commit 921a60523e4cad8d3ccfe6e7076fc07607da5855
Author: Troy Dawson <tdawson(a)fedoraproject.org>
Date: Fri Oct 28 15:55:23 2022 +0000
Add ExclusiveArch
If using golang, then you needs to use ExclusiveArch for those arches that do not have golang.
diff --git a/containernetworking-plugins.spec b/containernetworking-plugins.spec
index 0503b6c..cd8ac80 100644
--- a/containernetworking-plugins.spec
+++ b/containernetworking-plugins.spec
@@ -26,6 +26,7 @@ Summary: Libraries for writing CNI plugin
URL: %{git0}
# Tarball fetched from upstream
Source0: %{url}/archive/%{built_tag}.tar.gz
+ExclusiveArch: %{golang_arches}
BuildRequires: golang >= 1.16.6
BuildRequires: systemd-devel
BuildRequires: go-rpm-macros
commit 8308fd6dc1904a8fedf741acad53aa9b08cc8629
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Oct 10 10:46:32 2022 -0400
remove debbuild macros to comply with Fedora guidelines
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/containernetworking-plugins.spec b/containernetworking-plugins.spec
index 0f6a601..0503b6c 100644
--- a/containernetworking-plugins.spec
+++ b/containernetworking-plugins.spec
@@ -1,12 +1,4 @@
-%if "%{_vendor}" == "debbuild"
-%define gobuild(o:) GO111MODULE=off go build -buildmode pie -tags=" ${BUILDTAGS:-}" -a -v -x %{?**};
-%endif
-
-%if 0%{?fedora}
%global with_debug 1
-%else
-%global with_debug 0
-%endif
%if 0%{?with_debug}
%global _find_debuginfo_dwz_opts %{nil}
@@ -22,40 +14,29 @@
%global import_path %{provider}.%{provider_tld}/%{project}/%{repo}
%global git0 https://%{import_path}
-%global built_tag_strip 1.1.1
+%global built_tag v1.1.1
+%global built_tag_strip %(b=%{built_tag}; echo ${b:1})
+%global gen_version %(b=%{built_tag_strip}; echo ${b/-/"~"})
Name: %{project}-%{repo}
Version: 1.1.1
-%if "%{_vendor}" == "debbuild"
-Packager: Podman Debbuild Maintainers <https://github.com/orgs/containers/teams/podman-debbuild-maintainers>
-License: ASL-2.0+
-Release: 0%{?dist}
-%else
Release: %autorelease
License: ASL 2.0 and BSD and MIT
-%endif
Summary: Libraries for writing CNI plugin
URL: %{git0}
-Source0: %{git0}/archive/v%{built_tag_strip}.tar.gz
+# Tarball fetched from upstream
+Source0: %{url}/archive/%{built_tag}.tar.gz
BuildRequires: golang >= 1.16.6
-%if "%{_vendor}" == "debbuild"
-BuildRequires: libsystemd-dev
-%else
BuildRequires: systemd-devel
-%if 0%{?fedora} || 0%{?rhel} >= 9
BuildRequires: go-rpm-macros
-%endif
-%endif
BuildRequires: go-md2man
Requires: systemd
-
Obsoletes: %{project}-cni < 0.7.1-2
Provides: %{project}-cni = %{version}-%{release}
Provides: kubernetes-cni
Provides: container-network-stack = 1
# vendored libraries
# awk '{print "Provides: bundled(golang("$1")) = "$2}' go.mod | sort | uniq | sed -e 's/-/_/g' -e '/bundled(golang())/d' -e '/bundled(golang(go\|module\|replace\|require))/d'
-%if "%{_vendor}" != "debbuild"
Provides: bundled(golang(github.com/Microsoft/go_winio)) = v0.4.17
Provides: bundled(golang(github.com/Microsoft/hcsshim)) = v0.8.20
Provides: bundled(golang(github.com/alexflint/go_filemutex)) = v1.1.0
@@ -81,7 +62,6 @@ Provides: bundled(golang(github.com/safchain/ethtool)) = v0.0.0_20210803160452_9
Provides: bundled(golang(github.com/sirupsen/logrus)) = v1.8.1
Provides: bundled(golang(github.com/vishvananda/netlink)) = v1.1.1_0.20210330154013_f5de75959ad5
Provides: bundled(golang(github.com/vishvananda/netns)) = v0.0.0_20210104183010_2eb08e3e575f
-%endif
%description
The CNI (Container Network Interface) project consists of a specification
@@ -139,6 +119,4 @@ install -p plugins/ipam/dhcp/systemd/cni-dhcp.socket %{buildroot}%{_unitdir}
%{_unitdir}/cni-dhcp.socket
%changelog
-%if "%{_vendor}" != "debbuild"
%autochangelog
-%endif
commit 8b37473438520560b66755a8d6bd2b7793c84947
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Thu Aug 18 14:43:45 2022 -0400
no bundled provides for debbuild
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/containernetworking-plugins.spec b/containernetworking-plugins.spec
index f7cdfb3..0f6a601 100644
--- a/containernetworking-plugins.spec
+++ b/containernetworking-plugins.spec
@@ -55,6 +55,7 @@ Provides: kubernetes-cni
Provides: container-network-stack = 1
# vendored libraries
# awk '{print "Provides: bundled(golang("$1")) = "$2}' go.mod | sort | uniq | sed -e 's/-/_/g' -e '/bundled(golang())/d' -e '/bundled(golang(go\|module\|replace\|require))/d'
+%if "%{_vendor}" != "debbuild"
Provides: bundled(golang(github.com/Microsoft/go_winio)) = v0.4.17
Provides: bundled(golang(github.com/Microsoft/hcsshim)) = v0.8.20
Provides: bundled(golang(github.com/alexflint/go_filemutex)) = v1.1.0
@@ -80,6 +81,7 @@ Provides: bundled(golang(github.com/safchain/ethtool)) = v0.0.0_20210803160452_9
Provides: bundled(golang(github.com/sirupsen/logrus)) = v1.8.1
Provides: bundled(golang(github.com/vishvananda/netlink)) = v1.1.1_0.20210330154013_f5de75959ad5
Provides: bundled(golang(github.com/vishvananda/netns)) = v0.0.0_20210104183010_2eb08e3e575f
+%endif
%description
The CNI (Container Network Interface) project consists of a specification
1 year, 3 months
Architecture specific change in rpms/containernetworking-plugins.git
by githook-noreply@fedoraproject.org
The package rpms/containernetworking-plugins.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/containernetworking-plugins.git/c....
Change:
+ExclusiveArch: %{golang_arches}
Thanks.
Full change:
============
commit ca62fbb9e23202c3b27060fee798624e4377a4ba
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Wed Mar 8 16:18:30 2023 +0530
Resolves: #2161274, #2163068 - Rebuild for CVE-2022-41717
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
commit 87219fe903b469a5c34ac1c28466aa97cff121d1
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Mar 6 16:40:35 2023 +0530
migrated to SPDX license
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/containernetworking-plugins.spec b/containernetworking-plugins.spec
index cd8ac80..fa64494 100644
--- a/containernetworking-plugins.spec
+++ b/containernetworking-plugins.spec
@@ -21,7 +21,7 @@
Name: %{project}-%{repo}
Version: 1.1.1
Release: %autorelease
-License: ASL 2.0 and BSD and MIT
+License: Apache-2.0 and BSD-2-Clause and BSD-3-Clause and MIT and MPL-2.0
Summary: Libraries for writing CNI plugin
URL: %{git0}
# Tarball fetched from upstream
commit 0dca0e24e46c71a22b7ad753bb35f86d9888daa0
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Thu Jan 19 00:27:58 2023 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
commit 921a60523e4cad8d3ccfe6e7076fc07607da5855
Author: Troy Dawson <tdawson(a)fedoraproject.org>
Date: Fri Oct 28 15:55:23 2022 +0000
Add ExclusiveArch
If using golang, then you needs to use ExclusiveArch for those arches that do not have golang.
diff --git a/containernetworking-plugins.spec b/containernetworking-plugins.spec
index 0503b6c..cd8ac80 100644
--- a/containernetworking-plugins.spec
+++ b/containernetworking-plugins.spec
@@ -26,6 +26,7 @@ Summary: Libraries for writing CNI plugin
URL: %{git0}
# Tarball fetched from upstream
Source0: %{url}/archive/%{built_tag}.tar.gz
+ExclusiveArch: %{golang_arches}
BuildRequires: golang >= 1.16.6
BuildRequires: systemd-devel
BuildRequires: go-rpm-macros
commit 8308fd6dc1904a8fedf741acad53aa9b08cc8629
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Mon Oct 10 10:46:32 2022 -0400
remove debbuild macros to comply with Fedora guidelines
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/containernetworking-plugins.spec b/containernetworking-plugins.spec
index 0f6a601..0503b6c 100644
--- a/containernetworking-plugins.spec
+++ b/containernetworking-plugins.spec
@@ -1,12 +1,4 @@
-%if "%{_vendor}" == "debbuild"
-%define gobuild(o:) GO111MODULE=off go build -buildmode pie -tags=" ${BUILDTAGS:-}" -a -v -x %{?**};
-%endif
-
-%if 0%{?fedora}
%global with_debug 1
-%else
-%global with_debug 0
-%endif
%if 0%{?with_debug}
%global _find_debuginfo_dwz_opts %{nil}
@@ -22,40 +14,29 @@
%global import_path %{provider}.%{provider_tld}/%{project}/%{repo}
%global git0 https://%{import_path}
-%global built_tag_strip 1.1.1
+%global built_tag v1.1.1
+%global built_tag_strip %(b=%{built_tag}; echo ${b:1})
+%global gen_version %(b=%{built_tag_strip}; echo ${b/-/"~"})
Name: %{project}-%{repo}
Version: 1.1.1
-%if "%{_vendor}" == "debbuild"
-Packager: Podman Debbuild Maintainers <https://github.com/orgs/containers/teams/podman-debbuild-maintainers>
-License: ASL-2.0+
-Release: 0%{?dist}
-%else
Release: %autorelease
License: ASL 2.0 and BSD and MIT
-%endif
Summary: Libraries for writing CNI plugin
URL: %{git0}
-Source0: %{git0}/archive/v%{built_tag_strip}.tar.gz
+# Tarball fetched from upstream
+Source0: %{url}/archive/%{built_tag}.tar.gz
BuildRequires: golang >= 1.16.6
-%if "%{_vendor}" == "debbuild"
-BuildRequires: libsystemd-dev
-%else
BuildRequires: systemd-devel
-%if 0%{?fedora} || 0%{?rhel} >= 9
BuildRequires: go-rpm-macros
-%endif
-%endif
BuildRequires: go-md2man
Requires: systemd
-
Obsoletes: %{project}-cni < 0.7.1-2
Provides: %{project}-cni = %{version}-%{release}
Provides: kubernetes-cni
Provides: container-network-stack = 1
# vendored libraries
# awk '{print "Provides: bundled(golang("$1")) = "$2}' go.mod | sort | uniq | sed -e 's/-/_/g' -e '/bundled(golang())/d' -e '/bundled(golang(go\|module\|replace\|require))/d'
-%if "%{_vendor}" != "debbuild"
Provides: bundled(golang(github.com/Microsoft/go_winio)) = v0.4.17
Provides: bundled(golang(github.com/Microsoft/hcsshim)) = v0.8.20
Provides: bundled(golang(github.com/alexflint/go_filemutex)) = v1.1.0
@@ -81,7 +62,6 @@ Provides: bundled(golang(github.com/safchain/ethtool)) = v0.0.0_20210803160452_9
Provides: bundled(golang(github.com/sirupsen/logrus)) = v1.8.1
Provides: bundled(golang(github.com/vishvananda/netlink)) = v1.1.1_0.20210330154013_f5de75959ad5
Provides: bundled(golang(github.com/vishvananda/netns)) = v0.0.0_20210104183010_2eb08e3e575f
-%endif
%description
The CNI (Container Network Interface) project consists of a specification
@@ -139,6 +119,4 @@ install -p plugins/ipam/dhcp/systemd/cni-dhcp.socket %{buildroot}%{_unitdir}
%{_unitdir}/cni-dhcp.socket
%changelog
-%if "%{_vendor}" != "debbuild"
%autochangelog
-%endif
commit 8b37473438520560b66755a8d6bd2b7793c84947
Author: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
Date: Thu Aug 18 14:43:45 2022 -0400
no bundled provides for debbuild
Signed-off-by: Lokesh Mandvekar <lsm5(a)fedoraproject.org>
diff --git a/containernetworking-plugins.spec b/containernetworking-plugins.spec
index f7cdfb3..0f6a601 100644
--- a/containernetworking-plugins.spec
+++ b/containernetworking-plugins.spec
@@ -55,6 +55,7 @@ Provides: kubernetes-cni
Provides: container-network-stack = 1
# vendored libraries
# awk '{print "Provides: bundled(golang("$1")) = "$2}' go.mod | sort | uniq | sed -e 's/-/_/g' -e '/bundled(golang())/d' -e '/bundled(golang(go\|module\|replace\|require))/d'
+%if "%{_vendor}" != "debbuild"
Provides: bundled(golang(github.com/Microsoft/go_winio)) = v0.4.17
Provides: bundled(golang(github.com/Microsoft/hcsshim)) = v0.8.20
Provides: bundled(golang(github.com/alexflint/go_filemutex)) = v1.1.0
@@ -80,6 +81,7 @@ Provides: bundled(golang(github.com/safchain/ethtool)) = v0.0.0_20210803160452_9
Provides: bundled(golang(github.com/sirupsen/logrus)) = v1.8.1
Provides: bundled(golang(github.com/vishvananda/netlink)) = v1.1.1_0.20210330154013_f5de75959ad5
Provides: bundled(golang(github.com/vishvananda/netns)) = v0.0.0_20210104183010_2eb08e3e575f
+%endif
%description
The CNI (Container Network Interface) project consists of a specification
1 year, 3 months
Architecture specific change in rpms/rust-netlink-packet-core.git
by githook-noreply@fedoraproject.org
The package rpms/rust-netlink-packet-core.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-netlink-packet-core.git/comm....
Change:
-ExclusiveArch: %{rust_arches}
Thanks.
Full change:
============
commit ec055729ec96adfee1b50826dda1eb64d02c55b8
Author: Gris Ge <fge(a)redhat.com>
Date: Wed Mar 8 15:24:32 2023 +0800
Upgrade to 0.5.0 and rerun rust2rpm
Signed-off-by: Gris Ge <fge(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index 94667c8..3dc3438 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@
/netlink-packet-core-0.2.4.crate
/netlink-packet-core-0.4.1.crate
/netlink-packet-core-0.4.2.crate
+/netlink-packet-core-0.5.0.crate
diff --git a/rust-netlink-packet-core.spec b/rust-netlink-packet-core.spec
index 24c6831..3c2d752 100644
--- a/rust-netlink-packet-core.spec
+++ b/rust-netlink-packet-core.spec
@@ -1,22 +1,19 @@
-# Generated by rust2rpm 20
+# Generated by rust2rpm 24
%bcond_with check
%global debug_package %{nil}
%global crate netlink-packet-core
-Name: rust-%{crate}
-Version: 0.4.2
+Name: rust-netlink-packet-core
+Version: 0.5.0
Release: %autorelease
Summary: Netlink packet types
-# Upstream license specification: MIT
License: MIT
URL: https://crates.io/crates/netlink-packet-core
Source: %{crates_source}
-ExclusiveArch: %{rust_arches}
-
-BuildRequires: rust-packaging
+BuildRequires: rust-packaging >= 21
%global _description %{expand:
Netlink packet types.}
@@ -33,8 +30,10 @@ This package contains library source intended for building other packages which
use the "%{crate}" crate.
%files devel
-%license LICENSE-MIT
-%{cargo_registry}/%{crate}-%{version_no_tilde}/
+%license %{crate_instdir}/LICENSE-MIT
+%doc %{crate_instdir}/CHANGELOG
+%doc %{crate_instdir}/README.md
+%{crate_instdir}/
%package -n %{name}+default-devel
Summary: %{summary}
@@ -46,7 +45,7 @@ This package contains library source intended for building other packages which
use the "default" feature of the "%{crate}" crate.
%files -n %{name}+default-devel
-%ghost %{cargo_registry}/%{crate}-%{version_no_tilde}/Cargo.toml
+%ghost %{crate_instdir}/Cargo.toml
%prep
%autosetup -n %{crate}-%{version_no_tilde} -p1
diff --git a/sources b/sources
index 6eb70d3..e2bb4c6 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (netlink-packet-core-0.4.2.crate) = b6023e4b9b703af6834406327978507eeccad4d80e9b584ffbe108bec06cc730607ce4fc65ff48912b5a350a761da8077da46c64f826563b414d0caf47286f61
+SHA512 (netlink-packet-core-0.5.0.crate) = e4ccc75964be99251d1bce7267711f57167b39219ee6b9bbd4c184def0a323c136b82ca93bce5a0cdcc7e842d23435a042e23556e69e91452d74d3292f65deda
1 year, 3 months
Architecture specific change in rpms/chromium.git
by githook-noreply@fedoraproject.org
The package rpms/chromium.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=c86221443....
Change:
-%ifarch aarch64
Thanks.
Full change:
============
commit 5ce9757b9218a8d7e8a55825da3f690222b0cb19
Author: Than Ngo <than(a)redhat.com>
Date: Wed Mar 8 08:21:13 2023 +0100
update to 111.0.5563.64
diff --git a/chromium-109-clang14-c++20-link-error.patch b/chromium-109-clang14-c++20-link-error.patch
deleted file mode 100644
index 530915c..0000000
--- a/chromium-109-clang14-c++20-link-error.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-109.0.5414.74/build/config/compiler/BUILD.gn.link-error-clang14 chromium-109.0.5414.74/build/config/compiler/BUILD.gn
---- chromium-109.0.5414.74/build/config/compiler/BUILD.gn.link-error-clang14 2023-01-11 18:00:34.692512606 +0100
-+++ chromium-109.0.5414.74/build/config/compiler/BUILD.gn 2023-01-11 18:30:10.905410122 +0100
-@@ -601,12 +601,7 @@ config("compiler") {
- cflags_cc += [ "-fno-trigraphs" ]
- }
- } else if (is_clang) {
-- if (is_chromeos_device) {
-- # TODO(crbug.com/1392471): Support C++20 in CrOS toolchain.
-- cflags_cc += [ "-std=${standard_prefix}++17" ]
-- } else {
-- cflags_cc += [ "-std=${standard_prefix}++20" ]
-- }
-+ cflags_cc += [ "-std=${standard_prefix}++17" ]
- } else {
- # The gcc bots are currently using GCC 9, which is not new enough to
- # support "c++20"/"gnu++20".
diff --git a/chromium-110-limits.patch b/chromium-110-limits.patch
new file mode 100644
index 0000000..31a4c1e
--- /dev/null
+++ b/chromium-110-limits.patch
@@ -0,0 +1,11 @@
+diff -up chromium-110.0.5481.177/base/memory/ref_counted.h.me chromium-110.0.5481.177/base/memory/ref_counted.h
+--- chromium-110.0.5481.177/base/memory/ref_counted.h.me 2023-02-23 13:34:33.174817255 -0500
++++ chromium-110.0.5481.177/base/memory/ref_counted.h 2023-02-23 13:42:28.646052469 -0500
+@@ -6,6 +6,7 @@
+ #define BASE_MEMORY_REF_COUNTED_H_
+
+ #include <stddef.h>
++#include <limits>
+
+ #include <utility>
+
diff --git a/chromium.spec b/chromium.spec
index 44e9b54..23e3cae 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -241,7 +241,7 @@
%endif
Name: chromium%{chromium_channel}
-Version: 111.0.5563.50
+Version: 111.0.5563.64
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
@@ -284,6 +284,9 @@ Patch20: chromium-disable-font-tests.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch52: chromium-81.0.4044.92-unbundle-zlib.patch
+# missing limits.h, error: no member named 'numeric_limits' in namespace 'std'
+Patch53: chromium-110-limits.patch
+
# ../../third_party/perfetto/include/perfetto/base/task_runner.h:48:55: error: 'uint32_t' has not been declared
Patch56: chromium-96.0.4664.45-missing-cstdint-header.patch
@@ -352,10 +355,6 @@ Patch116: chromium-108-ffmpeg-first_dts.patch
# revert new-channel-layout-api on f36, old ffmpeg-free
Patch117: chromium-108-ffmpeg-revert-new-channel-layout-api.patch
-# clang =< 14 and C++20, linker errors std::u16string
-# build failure on rhel and fedora 36
-Patch120: chromium-109-clang14-c++20-link-error.patch
-
# enable Qt
Patch121: chromium-108-enable-allowqt.patch
@@ -365,6 +364,7 @@ Patch122: chromium-109-gcc13.patch
# Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches
Patch130: chromium-103-VirtualCursor-std-layout.patch
+# Pagesize > 4kb
Patch146: chromium-110-LargerThan4k.patch
# VAAPI
@@ -904,6 +904,7 @@ udev.
%patch52 -p1 -b .unbundle-zlib
%endif
+%patch53 -p1 -b .limits-header
%patch56 -p1 -b .missing-cstdint
%patch57 -p1 -b .missing-cstring
@@ -953,10 +954,6 @@ udev.
%patch107 -p1 -b .el7-extra-operator-equalequal
%endif
-%if 0%{?rhel} || 0%{?fedora} == 36
-%patch120 -p1 -b .link-error-clang14
-%endif
-
%patch130 -p1 -b .VirtualCursor-std-layout
%patch146 -p1 -b .LargerThan4k
@@ -1137,6 +1134,11 @@ CHROMIUM_CORE_GN_DEFINES+=' enable_vr=false'
CHROMIUM_CORE_GN_DEFINES+=' build_dawn_tests=false enable_perfetto_unittests=false'
CHROMIUM_CORE_GN_DEFINES+=' disable_fieldtrial_testing_config=true'
CHROMIUM_CORE_GN_DEFINES+=' blink_symbol_level=0 symbol_level=0 v8_symbol_level=0'
+# clang =< 14 and C++20, linker errors std::u16string
+# build failure on rhel and fedora 36
+%if 0%{?rhel} || 0%{?fedora} == 36
+CHROMIUM_CORE_GN_DEFINES+=' use_cxx17=true'
+%endif
export CHROMIUM_CORE_GN_DEFINES
# browser gn defines
@@ -1650,6 +1652,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
+* Tue Mar 07 2023 Than Ngo <than(a)redhat.com> - 111.0.5563.64-1
+- update to 111.0.5563.64
+
* Mon Mar 06 2023 Than Ngo <than(a)redhat.com> - 111.0.5563.50-1
- update to 111.0.5563.50
- system freetype on fedora > 36
diff --git a/sources b/sources
index 7f2d4f8..0510b02 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (node-v16.17.0-linux-x64.tar.xz) = aedfeeb71420a7fbcb07fbc4c5d2ba74ffe4f88c15998809346a84148132ec866dbae4e848531a2a77ca41413f442e1046f981d4f188bdf667faf88069aa28cd
SHA512 (node-v16.17.0-linux-arm64.tar.xz) = ae4aabc2389779c9e1b4a15622cae3ba50e0c313ca3d7a1dc7b2344df06ade1f303d6a75b941d37e2a0ef368cf047c862a822a893684494f55446afd6ab0610e
-SHA512 (chromium-111.0.5563.50-clean.tar.xz) = 4576e080a55cc1dabf65e14d5380310ee93bfe50e40823adb963bf47d3bbe668b39ef41c3f5e7b8c2aebc8161915926a2f6b37c39cc0289898e515e600743e3c
+SHA512 (chromium-111.0.5563.64-clean.tar.xz) = c31c672d5f301cacdb3357337ffb369e63b7d25b031e124798fb04a0c845b178b23fdffec2647b8bedc90a1482d249d64926e98a18eb21399873a0d23c3cda98
commit fc64fd023d2cd6227b0cad37ce127ccc4e1716df
Merge: c862214 90d57b6
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Mar 7 11:12:32 2023 +0000
Merge #32 `Fix for systems with page size larger than 4k`
diff --cc chromium.spec
index 81a6c64,94535f3..44e9b54
--- a/chromium.spec
+++ b/chromium.spec
@@@ -364,7 -369,24 +364,9 @@@ Patch122: chromium-109-gcc13.patc
# Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches
Patch130: chromium-103-VirtualCursor-std-layout.patch
-Patch131: chromium-110-CanvasResourceProvider-pragma.patch
-Patch132: chromium-110-CredentialUIEntry-const.patch
-Patch133: chromium-110-DarkModeLABColorSpace-pow.patch
-Patch134: chromium-110-dpf-arm64.patch
-Patch135: chromium-110-InProgressDownloadManager-include.patch
-Patch136: chromium-110-kCustomizeChromeColors-type.patch
-Patch137: chromium-110-NativeThemeBase-fabs.patch
-Patch138: chromium-110-Presenter-include.patch
-Patch139: chromium-110-raw_ptr-constexpr.patch
-Patch140: chromium-110-StorageQueue-decltype.patch
-Patch141: chromium-110-SyncIterator-template.patch
-Patch142: chromium-110-url_canon_internal-cast.patch
-Patch143: chromium-110-v8-gcc.patch
-Patch144: chromium-111-v8-std-layout1.patch
-Patch145: chromium-111-v8-std-layout2.patch
+ Patch146: chromium-110-LargerThan4k.patch
+
# VAAPI
# Upstream turned VAAPI on in Linux in 86
Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
@@@ -956,7 -986,24 +958,9 @@@ udev
%endif
%patch130 -p1 -b .VirtualCursor-std-layout
-%patch131 -p1 -b .CanvasResourceProvider-pragma
-%patch132 -p1 -b .CredentialUIEntry-const
-%patch133 -p1 -b .DarkModeLABColorSpace-pow
-%patch134 -p1 -b .dpf-arm64
-%patch135 -p1 -b .InProgressDownloadManager-include
-%patch136 -p1 -b .kCustomizeChromeColors-type
-%patch137 -p1 -b .NativeThemeBase-fabs
-%patch138 -p1 -b .Presenter-include
-%patch139 -p1 -b .raw_ptr-constexpr
-%patch140 -p1 -b .StorageQueue-decltype
-%patch141 -p1 -b .SyncIterator-template
-%patch142 -p1 -b .url_canon_internal-cast
-%patch143 -p1 -b .v8-gcc
-%patch144 -p1 -b .v8-std-layout1
-%patch145 -p1 -b .v8-std-layout2
+ %patch146 -p1 -b .LargerThan4k
+
%if %{use_qt}
%patch121 -p1 -b .enable-allowqt
%endif
commit 90d57b6808a58d46802ee83cab70ed802b42e680
Author: Eric Curtin <ecurtin(a)redhat.com>
Date: Tue Mar 7 10:24:49 2023 +0000
Fix for systems with page size larger than 4k
Discovered on Fedora Asahi Remix by Asahi Lina.
diff --git a/chromium-110-LargerThan4k.patch b/chromium-110-LargerThan4k.patch
new file mode 100644
index 0000000..374f487
--- /dev/null
+++ b/chromium-110-LargerThan4k.patch
@@ -0,0 +1,86 @@
+From 96ee2a8e20bb7a7c4fb19e27dc31ff5c6a472849 Mon Sep 17 00:00:00 2001
+From: Ryan Gonzalez <rymg19(a)gmail.com>
+Date: Mon, 06 Mar 2023 20:22:25 -0600
+Subject: [PATCH] AddressTrackerLinux: Increase the message buffer size
+
+On non-4k-page systems, the message sizes may be too large to fit into
+the buffer, resulting in MSG_TRUNC. Instead of using the fixed 4kb size,
+follow the kernel documentation guidelines as to how large the buffer
+should be.
+
+Originally found by Asahi Lina:
+
+https://vt.social/@lina/109976892758680822
+
+Bug: None
+Change-Id: I4790435190167a706fa7490ab57706db1f4a6120
+---
+
+diff --git a/net/base/address_tracker_linux.cc b/net/base/address_tracker_linux.cc
+index 4976cae..f1a1fff 100644
+--- a/net/base/address_tracker_linux.cc
++++ b/net/base/address_tracker_linux.cc
+@@ -14,6 +14,7 @@
+ #include "base/files/scoped_file.h"
+ #include "base/functional/callback_helpers.h"
+ #include "base/logging.h"
++#include "base/memory/page_size.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "base/task/current_thread.h"
+ #include "base/threading/scoped_blocking_call.h"
+@@ -323,8 +324,30 @@
+ *address_changed = false;
+ *link_changed = false;
+ *tunnel_changed = false;
+- char buffer[4096];
+ bool first_loop = true;
++
++ // Varying sources have different opinions regarding the buffer size needed
++ // for netlink messages to avoid truncation:
++ // - The official documentation on netlink says messages are generally 8kb
++ // or the system page size, whichever is *larger*:
++ // https://www.kernel.org/doc/html/v6.2/userspace-api/netlink/intro.html#buf...
++ // - The kernel headers would imply that messages are generally the system
++ // page size or 8kb, whichever is *smaller*:
++ // https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/inc...
++ // (libmnl follows this.)
++ // - The netlink(7) man page's example always uses a fixed size 8kb buffer:
++ // https://man7.org/linux/man-pages/man7/netlink.7.html
++ // Here, we follow the guidelines in the documentation, for two primary
++ // reasons:
++ // - Erring on the side of a larger size is the safer way to go to avoid
++ // MSG_TRUNC.
++ // - Since this is heap-allocated anyway, there's no risk to the stack by
++ // using the larger size.
++
++ constexpr size_t kMinNetlinkBufferSize = 8 * 1024;
++ std::vector<char> buffer(
++ std::max(base::GetPageSize(), kMinNetlinkBufferSize));
++
+ {
+ absl::optional<base::ScopedBlockingCall> blocking_call;
+ if (tracking_) {
+@@ -334,9 +357,10 @@
+ }
+
+ for (;;) {
+- int rv = HANDLE_EINTR(recv(netlink_fd_.get(), buffer, sizeof(buffer),
+- // Block the first time through loop.
+- first_loop ? 0 : MSG_DONTWAIT));
++ int rv =
++ HANDLE_EINTR(recv(netlink_fd_.get(), buffer.data(), buffer.size(),
++ // Block the first time through loop.
++ first_loop ? 0 : MSG_DONTWAIT));
+ first_loop = false;
+ if (rv == 0) {
+ LOG(ERROR) << "Unexpected shutdown of NETLINK socket.";
+@@ -348,7 +372,8 @@
+ PLOG(ERROR) << "Failed to recv from netlink socket";
+ return;
+ }
+- HandleMessage(buffer, rv, address_changed, link_changed, tunnel_changed);
++ HandleMessage(buffer.data(), rv, address_changed, link_changed,
++ tunnel_changed);
+ }
+ }
+ if (*link_changed || *address_changed)
diff --git a/chromium.spec b/chromium.spec
index 8c8cd9b..94535f3 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -385,6 +385,8 @@ Patch143: chromium-110-v8-gcc.patch
Patch144: chromium-111-v8-std-layout1.patch
Patch145: chromium-111-v8-std-layout2.patch
+Patch146: chromium-110-LargerThan4k.patch
+
# VAAPI
# Upstream turned VAAPI on in Linux in 86
Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
@@ -1000,6 +1002,8 @@ udev.
%patch144 -p1 -b .v8-std-layout1
%patch145 -p1 -b .v8-std-layout2
+%patch146 -p1 -b .LargerThan4k
+
%if %{use_qt}
%patch121 -p1 -b .enable-allowqt
%endif
commit c86221443c8502b82d97e6e1e914e274336b21af
Author: Than Ngo <than(a)redhat.com>
Date: Mon Mar 6 16:24:25 2023 +0100
- update to 111.0.5563.50
- system freetype on fedora > 36
diff --git a/chromium-105.0.5195.52-update-wayland-client-core.patch b/chromium-105.0.5195.52-update-wayland-client-core.patch
deleted file mode 100644
index 86c5c22..0000000
--- a/chromium-105.0.5195.52-update-wayland-client-core.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -up chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h.old-wayland chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h
---- chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h.old-wayland 2022-09-01 19:36:06.099483374 +0000
-+++ chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h 2022-09-01 22:09:56.523353619 +0000
-@@ -119,9 +119,27 @@ struct wl_display;
- */
- struct wl_event_queue;
-
-+/** Destroy proxy after marshalling
-+ * @ingroup wl_proxy
-+ */
-+#define WL_MARSHAL_FLAG_DESTROY (1 << 0)
-+
- void
- wl_event_queue_destroy(struct wl_event_queue *queue);
-
-+struct wl_proxy *
-+wl_proxy_marshal_flags(struct wl_proxy *proxy, uint32_t opcode,
-+ const struct wl_interface *interface,
-+ uint32_t version,
-+ uint32_t flags, ...);
-+
-+struct wl_proxy *
-+wl_proxy_marshal_array_flags(struct wl_proxy *proxy, uint32_t opcode,
-+ const struct wl_interface *interface,
-+ uint32_t version,
-+ uint32_t flags,
-+ union wl_argument *args);
-+
- void
- wl_proxy_marshal(struct wl_proxy *p, uint32_t opcode, ...);
-
diff --git a/chromium-110-CanvasResourceProvider-pragma.patch b/chromium-110-CanvasResourceProvider-pragma.patch
deleted file mode 100644
index 5732e49..0000000
--- a/chromium-110-CanvasResourceProvider-pragma.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 3e1e86ac882ae0ce4b9ec50834a4ff8becd912ab Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Mon, 19 Dec 2022 16:59:46 +0000
-Subject: [PATCH] GCC: move pragmas in blink::CanvasResourceProvider
-
-GCC does not allow using #pragma inside an enum.
-
-Bug: 819294
-Change-Id: I637b5a616b080d17bb719aae9ec8cf06d0f8c464
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111848
-Reviewed-by: Stephen Chenney <schenney(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1084983}
----
-
-diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
-index e898397f..214ab01 100644
---- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
-+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
-@@ -68,6 +68,8 @@
- public:
- // These values are persisted to logs. Entries should not be renumbered and
- // numeric values should never be reused.
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- enum ResourceProviderType {
- kTexture [[deprecated]] = 0,
- kBitmap = 1,
-@@ -79,11 +81,9 @@
- kPassThrough = 7,
- kSwapChain = 8,
- kSkiaDawnSharedImage [[deprecated]] = 9,
--#pragma GCC diagnostic push
--#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- kMaxValue = kSkiaDawnSharedImage,
--#pragma GCC diagnostic pop
- };
-+#pragma GCC diagnostic pop
-
- // The following parameters attempt to reach a compromise between not flushing
- // too often, and not accumulating an unreasonable backlog. Flushing too
diff --git a/chromium-110-CredentialUIEntry-const.patch b/chromium-110-CredentialUIEntry-const.patch
deleted file mode 100644
index eb68aa2..0000000
--- a/chromium-110-CredentialUIEntry-const.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From b4e56d22275cae5a910463a966a96345430a83ea Mon Sep 17 00:00:00 2001
-From: Ivan Murashov <ivan.murashov(a)lge.com>
-Date: Sat, 17 Dec 2022 12:06:01 +0000
-Subject: [PATCH] libstdc++: Don't use const members in std::vector in password_manager::CredentialUIEntry
-
-Otherwise build fails when building with use_custom_libcxx=false.
-The error example:
-std::vector must have a non-const, non-volatile value_type
-
-Implementation of std::vector in libstdc++ does not allow const.
-
-Bug: 957519
-Change-Id: I089de2d52df25138d74dbf01fdf61d6301b4d871
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111037
-Reviewed-by: Mohamed Amir Yosef <mamir(a)chromium.org>
-Commit-Queue: Mohamed Amir Yosef <mamir(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1084697}
----
-
-diff --git a/components/password_manager/core/browser/ui/credential_ui_entry.cc b/components/password_manager/core/browser/ui/credential_ui_entry.cc
-index 1e0766a..a9a34f7 100644
---- a/components/password_manager/core/browser/ui/credential_ui_entry.cc
-+++ b/components/password_manager/core/browser/ui/credential_ui_entry.cc
-@@ -97,7 +97,7 @@
- // For cases when the notes differ within grouped passwords (e.g: a
- // credential exists in both account and profile stores), respective notes
- // should be concatenated and linebreak used as a delimiter.
-- std::vector<const std::u16string> notes_with_duplicates;
-+ std::vector<std::u16string> notes_with_duplicates;
- for (const auto& form : forms) {
- // Only notes with an empty `unique_display_name` are supported in the
- // settings UI.
-@@ -109,7 +109,7 @@
- }
- auto unique_notes =
- base::MakeFlatSet<std::u16string>(std::move(notes_with_duplicates));
-- note = base::JoinString(std::vector<const std::u16string>(
-+ note = base::JoinString(std::vector<std::u16string>(
- unique_notes.begin(), unique_notes.end()),
- u"\n");
-
diff --git a/chromium-110-DarkModeLABColorSpace-pow.patch b/chromium-110-DarkModeLABColorSpace-pow.patch
deleted file mode 100644
index 91f1aee..0000000
--- a/chromium-110-DarkModeLABColorSpace-pow.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 795c311aae4b718585bc6194189f061000c823a1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Fri, 23 Dec 2022 14:28:55 +0000
-Subject: [PATCH] libstdc++: fix narrowing in blink::DarkModeLABColorSpace
-
-Clang-14 errors out with narrowing from double to float. Use std::pow
-instead.
----
- .../renderer/platform/graphics/dark_mode_lab_color_space.h | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h b/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
-index 999c3e5..c18ea7b 100644
---- a/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
-+++ b/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
-@@ -125,7 +125,7 @@ class DarkModeLABColorSpace {
- // https://en.wikipedia.org/wiki/CIELAB_color_space#Reverse_transformation.
- SkV3 FromXYZ(const SkV3& v) const {
- auto f = [](float x) {
-- return x > kSigma3 ? pow(x, 1.0f / 3.0f)
-+ return x > kSigma3 ? std::pow(x, 1.0f / 3.0f)
- : x / (3 * kSigma2) + 4.0f / 29.0f;
- };
-
-@@ -145,7 +145,8 @@ class DarkModeLABColorSpace {
- // https://en.wikipedia.org/wiki/CIELAB_color_space#Forward_transformation.
- SkV3 ToXYZ(const SkV3& lab) const {
- auto invf = [](float x) {
-- return x > kSigma ? pow(x, 3.0f) : 3.0f * kSigma2 * (x - 4.0f / 29.0f);
-+ return x > kSigma ? std::pow(x, 3.0f)
-+ : 3.0f * kSigma2 * (x - 4.0f / 29.0f);
- };
-
- SkV3 v = {Clamp(lab.x, 0.0f, 100.0f), Clamp(lab.y, -128.0f, 128.0f),
---
-2.38.2
-
diff --git a/chromium-110-InProgressDownloadManager-include.patch b/chromium-110-InProgressDownloadManager-include.patch
deleted file mode 100644
index adc51db..0000000
--- a/chromium-110-InProgressDownloadManager-include.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 63027c62eaa1b6c5b0d2762a511f1611b15d3728 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Mon, 19 Dec 2022 13:56:17 +0000
-Subject: [PATCH] libstdc++: fix incomplete type of download::InProgressDownloadManager
-
-Destructor of std::unique_ptr in libstdc++ uses sizeof() which
-requires full definition of download::InProgressDownloadManager
-for return type of content::BrowserContext::
-RetrieveInProgressDownloadManager().
-
-Bug: 957519
-Change-Id: If99aa8d52238bacb1cb559a300e14ed3a05b7297
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111526
-Reviewed-by: Bo Liu <boliu(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1084924}
----
-
-diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc
-index 6180969..22e9dbb 100644
---- a/content/browser/browser_context.cc
-+++ b/content/browser/browser_context.cc
-@@ -30,6 +30,7 @@
- #include "base/unguessable_token.h"
- #include "build/build_config.h"
- #include "build/chromeos_buildflags.h"
-+#include "components/download/public/common/in_progress_download_manager.h"
- #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h"
- #include "content/browser/blob_storage/chrome_blob_storage_context.h"
- #include "content/browser/browser_context_impl.h"
diff --git a/chromium-110-NativeThemeBase-fabs.patch b/chromium-110-NativeThemeBase-fabs.patch
deleted file mode 100644
index c7d0e8b..0000000
--- a/chromium-110-NativeThemeBase-fabs.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 07f0a87e4409f27854b3a1d17f270a3497f38947 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Mon, 19 Dec 2022 19:07:37 +0000
-Subject: [PATCH] GCC: use fabsf in ui::NativeThemeBase::OutlineColor
-
-Template deduction fails for base::clamp, because return type of
-fabs is double and all other parameters are float.
-
-Bug: 819294
-Change-Id: I34f1c9c99d13f69097d899bfcb0526cbdf4fe1c1
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110869
-Reviewed-by: Peter Kasting <pkasting(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1085034}
----
-
-diff --git a/ui/native_theme/native_theme_base.cc b/ui/native_theme/native_theme_base.cc
-index 169c60c..36db49a 100644
---- a/ui/native_theme/native_theme_base.cc
-+++ b/ui/native_theme/native_theme_base.cc
-@@ -1336,7 +1336,7 @@
- // The following code has been tested to look OK with all of the
- // default GTK themes.
- SkScalar min_diff = base::clamp((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f);
-- SkScalar diff = base::clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
-+ SkScalar diff = base::clamp(fabsf(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
-
- if (hsv1[2] + hsv2[2] > 1.0)
- diff = -diff;
diff --git a/chromium-110-Presenter-include.patch b/chromium-110-Presenter-include.patch
deleted file mode 100644
index 7cfb84b..0000000
--- a/chromium-110-Presenter-include.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From c69b818a9fce2bf0fb81b280d6f4cc15e6fdb8af Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Fri, 16 Dec 2022 17:13:43 +0000
-Subject: [PATCH] GCC: fix incomplete type of gl::Presenter
-
-GCC requires full definition of gl::Presenter for return type
-of gl::GLOzoneEGL::CreateGLContext() with base::scoped_refptr.
----
- ui/ozone/common/gl_ozone_egl.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/ui/ozone/common/gl_ozone_egl.cc b/ui/ozone/common/gl_ozone_egl.cc
-index 9b1d37e..e745dd7 100644
---- a/ui/ozone/common/gl_ozone_egl.cc
-+++ b/ui/ozone/common/gl_ozone_egl.cc
-@@ -13,6 +13,7 @@
- #include "ui/gl/gl_share_group.h"
- #include "ui/gl/gl_surface.h"
- #include "ui/gl/gl_utils.h"
-+#include "ui/gl/presenter.h"
-
- namespace ui {
-
---
-2.37.4
-
diff --git a/chromium-110-StorageQueue-decltype.patch b/chromium-110-StorageQueue-decltype.patch
deleted file mode 100644
index cd0e66c..0000000
--- a/chromium-110-StorageQueue-decltype.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 200fc7c3ec95bc86f6afb55ca3c691e923463104 Mon Sep 17 00:00:00 2001
-From: Leonid Baraz <lbaraz(a)chromium.org>
-Date: Mon, 19 Dec 2022 21:46:04 +0000
-Subject: [PATCH] GCC: fix usage of decltype in reporting::StorageQueue
-
-GCC does not allow to use decltype for the default value of
-a function parameter.
-
-Bug: 819294
-Change-Id: I7ebb255634375ce889933f8b67acb10f0e56ca8d
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111548
-Reviewed-by: Leonid Baraz <lbaraz(a)chromium.org>
-Commit-Queue: Leonid Baraz <lbaraz(a)chromium.org>
-Reviewed-by: Hong Xu <xuhong(a)google.com>
-Cr-Commit-Position: refs/heads/main@{#1085129}
----
-
-diff --git a/components/reporting/storage/storage_queue.cc b/components/reporting/storage/storage_queue.cc
-index c546d55a..49e0f2c 100644
---- a/components/reporting/storage/storage_queue.cc
-+++ b/components/reporting/storage/storage_queue.cc
-@@ -203,7 +203,6 @@
- encryption_module_(encryption_module),
- compression_module_(compression_module) {
- DETACH_FROM_SEQUENCE(storage_queue_sequence_checker_);
-- DCHECK(write_contexts_queue_.empty());
- }
-
- StorageQueue::~StorageQueue() {
-@@ -2133,9 +2132,7 @@
- }
-
- void StorageQueue::TestInjectErrorsForOperation(
-- base::RepeatingCallback<
-- Status(test::StorageQueueOperationKind operation_kind, int64_t)>
-- handler) {
-+ test::ErrorInjectionHandlerType handler) {
- test_injection_handler_ = handler;
- }
-
-diff --git a/components/reporting/storage/storage_queue.h b/components/reporting/storage/storage_queue.h
-index 39edd8b..04d5f9f 100644
---- a/components/reporting/storage/storage_queue.h
-+++ b/components/reporting/storage/storage_queue.h
-@@ -52,6 +52,9 @@
- kWriteLowDiskSpace,
- };
-
-+using ErrorInjectionHandlerType =
-+ base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>;
-+
- } // namespace test
-
- // Storage queue represents single queue of data to be collected and stored
-@@ -142,8 +145,7 @@
- // can be returned as a resulting operation status too.
- // If `handler` is null, error injections is disabled.
- void TestInjectErrorsForOperation(
-- base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>
-- handler = decltype(handler)());
-+ test::ErrorInjectionHandlerType handler = base::NullCallback());
-
- // Access queue options.
- const QueueOptions& options() const { return options_; }
-@@ -492,8 +494,7 @@
- // Test only: records callback to be invoked. It will be called with operation
- // kind and seq id, and will return Status (non-OK status indicates the
- // failure to be injected). In production code must be null.
-- base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>
-- test_injection_handler_;
-+ test::ErrorInjectionHandlerType test_injection_handler_{base::NullCallback()};
-
- // Weak pointer factory (must be last member in class).
- base::WeakPtrFactory<StorageQueue> weakptr_factory_{this};
diff --git a/chromium-110-SyncIterator-template.patch b/chromium-110-SyncIterator-template.patch
deleted file mode 100644
index c65c7e2..0000000
--- a/chromium-110-SyncIterator-template.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From da8029438ea8f00a154cb6a1bbc8243de39690de Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Sun, 18 Dec 2022 22:11:58 +0000
-Subject: [PATCH] GCC: remove redundant template parameter from SyncIterator
-
-GCC 12 in C++20 mode does not allow this anymore.
-
-Bug: 819294
-Change-Id: I6b22d3919f08fb72a5b1d69eea59c6e95259c16f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111547
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1084808}
----
-
-diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py b/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
-index 1d67fa2..9cec5094 100644
---- a/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
-+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
-@@ -36,7 +36,7 @@
- member_initializer_list=[
- "${base_class_name}(source, kind)",
- ]),
-- CxxFuncDeclNode(name="~${class_name}",
-+ CxxFuncDeclNode(name="~SyncIterator",
- arg_decls=[],
- return_type="",
- override=True,
diff --git a/chromium-110-dpf-arm64.patch b/chromium-110-dpf-arm64.patch
deleted file mode 100644
index a4ba87b..0000000
--- a/chromium-110-dpf-arm64.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From df728d2e2fe8284316ed083c5a210bca1e50986e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena(a)igalia.com>
-Date: Mon, 16 Jan 2023 12:53:21 +0100
-Subject: [PATCH] GCC: fix distributed point functions build in ARM64 with SVE
-
-SVE build is broken in ARM64, because distributed_point_functions
-is trying to use operator& and operator|.
-
-Bug:819294
-Change-Id: I465efa475ed59031a2cfaf4172ef9fbd8bb05050
----
- dpf/internal/evaluate_prg_hwy.cc | 34 ++++++++++++++------------------
- 1 file changed, 15 insertions(+), 19 deletions(-)
-
-diff --git a/dpf/internal/evaluate_prg_hwy.cc b/dpf/internal/evaluate_prg_hwy.cc
-index 3d743f4..a1dd8e0 100644
---- a//third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc
-+++ b//third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc
-@@ -124,14 +124,14 @@ auto IsBitSet(D d, const V input, int index) {
-
- // Compute input AND index_64 on 64-bit integers.
- auto input_64 = hn::BitCast(d64, input);
-- input_64 &= index_64;
-+ input_64 = hn::And(input_64, index_64);
-
- // Take the OR of every two adjacent 64-bit integers. This ensures that each
- // half of an 128-bit block is nonzero iff at least one half was nonzero.
-- input_64 |= hn::Shuffle01(input_64);
-+ input_64 = hn::Or(input_64, hn::Shuffle01(input_64));
-
- // Compute a 64-bit mask that checks which integers are nonzero.
-- return input_64 != hn::Zero(d64);
-+ return hn::Ne(input_64, hn::Zero(d64));
- }
-
- // Dummy struct to get HWY_ALIGN as a number, for testing if an array of
-@@ -236,24 +236,20 @@ absl::Status EvaluateSeedsHwy(
- // Apply correction.
- const auto correction_seed = hn::LoadDup128(
- d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
-- vec_0 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_0, correction_seed));
-- vec_1 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_1, correction_seed));
-- vec_2 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_2, correction_seed));
-- vec_3 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_3, correction_seed));
-+ vec_0 = hn::Xor(vec_0, hn::BitCast(d8, hn::IfThenElseZero(control_mask_0, correction_seed)));
-+ vec_1 = hn::Xor(vec_1, hn::BitCast(d8, hn::IfThenElseZero(control_mask_1, correction_seed)));
-+ vec_2 = hn::Xor(vec_2, hn::BitCast(d8, hn::IfThenElseZero(control_mask_2, correction_seed)));
-+ vec_3 = hn::Xor(vec_3, hn::BitCast(d8, hn::IfThenElseZero(control_mask_3, correction_seed)));
-
- // Extract control bit for next level.
- const auto next_control_mask_0 = IsBitSet(d8, vec_0, 0);
- const auto next_control_mask_1 = IsBitSet(d8, vec_1, 0);
- const auto next_control_mask_2 = IsBitSet(d8, vec_2, 0);
- const auto next_control_mask_3 = IsBitSet(d8, vec_3, 0);
-- vec_0 &= clear_lowest_bit;
-- vec_1 &= clear_lowest_bit;
-- vec_2 &= clear_lowest_bit;
-- vec_3 &= clear_lowest_bit;
-+ vec_0 = hn::And(vec_0, clear_lowest_bit);
-+ vec_1 = hn::And(vec_1, clear_lowest_bit);
-+ vec_2 = hn::And(vec_2, clear_lowest_bit);
-+ vec_3 = hn::And(vec_3, clear_lowest_bit);
-
- // Perform control bit correction.
- const auto correction_control_mask_left =
-@@ -321,10 +317,10 @@ absl::Status EvaluateSeedsHwy(
- // Apply correction.
- const auto correction_seed = hn::LoadDup128(
- d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
-- vec ^= hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed));
-+ vec = hn::Xor(vec, hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed)));
- // Extract control bit for next level.
- const auto next_control_mask = IsBitSet(d8, vec, 0);
-- vec &= clear_lowest_bit;
-+ vec = hn::And(vec, clear_lowest_bit);
-
- // Perform control bit correction.
- const auto correction_control_mask_left =
-@@ -376,9 +372,9 @@ absl::Status EvaluateSeedsHwy(
- // Perform seed correction.
- const auto correction_seed = hn::LoadDup128(
- d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
-- vec ^= hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed));
-+ vec = hn::Xor(vec, hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed)));
- const auto next_control_mask = IsBitSet(d8, vec, 0);
-- vec &= clear_lowest_bit;
-+ vec = hn::And(vec, clear_lowest_bit);
- const auto correction_control_mask_left =
- correction_controls_left[j] ? mask_all_one : mask_all_zero;
- const auto correction_control_mask_right =
diff --git a/chromium-110-gtktheme.patch b/chromium-110-gtktheme.patch
index eb94e04..3fcaa26 100644
--- a/chromium-110-gtktheme.patch
+++ b/chromium-110-gtktheme.patch
@@ -23,6 +23,25 @@ index 758d0bf..8c91146 100644
Lenny Khazan <lenny.khazan(a)gmail.com>
Leo Wolf <jclw(a)ymail.com>
Leon Han <leon.han(a)intel.com>
+diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
+index 85c3931..2b0c2a84 100644
+--- a/chrome/common/chrome_features.cc
++++ b/chrome/common/chrome_features.cc
+@@ -1430,12 +1430,12 @@
+ BASE_FEATURE(kWebUIDarkMode,
+ "WebUIDarkMode",
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+ #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) ||
+- // BUILDFLAG(IS_CHROMEOS)
++ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ );
+
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/ui/gtk/native_theme_gtk.cc b/ui/gtk/native_theme_gtk.cc
index a60d6e3..1200a80 100644
--- a/ui/gtk/native_theme_gtk.cc
diff --git a/chromium-110-kCustomizeChromeColors-type.patch b/chromium-110-kCustomizeChromeColors-type.patch
deleted file mode 100644
index ac214da..0000000
--- a/chromium-110-kCustomizeChromeColors-type.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3084e834a211e85f6a17e6f8dceb6b44117211d2 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Wed, 21 Dec 2022 19:22:46 +0000
-Subject: [PATCH] GCC: fix conflicting type for kCustomizeChromeColors
-
-GCC cannot match auto with previous declaration.
-
-Bug: 819294
-Change-Id: Ie648daaf264fb2ea177ac46c8a510d481f6fa2f4
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110870
-Reviewed-by: Tibor Goldschwendt <tiborg(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1086011}
----
-
-diff --git a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
-index 2fccadb..383c9e5 100644
---- a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
-+++ b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
-@@ -31,5 +31,6 @@
-
- } // namespace
-
--const auto kCustomizeChromeColors = MakeCustomizeChromeColors(
-- std::make_index_sequence<std::size(kCustomizeChromeColorIds)>{});
-+const decltype(kCustomizeChromeColors) kCustomizeChromeColors =
-+ MakeCustomizeChromeColors(
-+ std::make_index_sequence<std::size(kCustomizeChromeColorIds)>{});
diff --git a/chromium-110-limits.patch b/chromium-110-limits.patch
deleted file mode 100644
index 31a4c1e..0000000
--- a/chromium-110-limits.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-110.0.5481.177/base/memory/ref_counted.h.me chromium-110.0.5481.177/base/memory/ref_counted.h
---- chromium-110.0.5481.177/base/memory/ref_counted.h.me 2023-02-23 13:34:33.174817255 -0500
-+++ chromium-110.0.5481.177/base/memory/ref_counted.h 2023-02-23 13:42:28.646052469 -0500
-@@ -6,6 +6,7 @@
- #define BASE_MEMORY_REF_COUNTED_H_
-
- #include <stddef.h>
-+#include <limits>
-
- #include <utility>
-
diff --git a/chromium-110-raw_ptr-constexpr.patch b/chromium-110-raw_ptr-constexpr.patch
deleted file mode 100644
index ded5855..0000000
--- a/chromium-110-raw_ptr-constexpr.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From bd3af998439424886c641279b6f9bb6e950c7142 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Sun, 18 Dec 2022 16:12:29 +0000
-Subject: [PATCH] GCC: make raw_ptr::operator bool constexpr
-
-Required because autofill::internal::FormForest uses it in
-a constexpr method.
-
-Bug: 819294
-Change-Id: Ib2258c9d98c2e7f88ad192b517b487f834a87481
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110924
-Reviewed-by: Bartek Nowierski <bartekn(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1084785}
----
-
-diff --git a/base/memory/raw_ptr.h b/base/memory/raw_ptr.h
-index 4191f0e..a22f64b7 100644
---- a/base/memory/raw_ptr.h
-+++ b/base/memory/raw_ptr.h
-@@ -1301,7 +1301,9 @@
- // possible, so use it only if absolutely necessary (e.g. for const_cast).
- PA_ALWAYS_INLINE T* get() const { return GetForExtraction(); }
-
-- explicit PA_ALWAYS_INLINE operator bool() const { return !!wrapped_ptr_; }
-+ constexpr explicit PA_ALWAYS_INLINE operator bool() const {
-+ return !!wrapped_ptr_;
-+ }
-
- template <typename U = T,
- typename Unused = std::enable_if_t<
diff --git a/chromium-110-url_canon_internal-cast.patch b/chromium-110-url_canon_internal-cast.patch
deleted file mode 100644
index 41064a7..0000000
--- a/chromium-110-url_canon_internal-cast.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 740d1102e3fdaaed5441b5656205df9d7e422c3a Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Tue, 20 Dec 2022 20:41:12 +0000
-Subject: [PATCH] GCC: add cast for vector types in url/url_canon_internal.cc
-
-GCC requires lax vector conversion for converting __vector(16) to
-SIMD types. Add explicit cast instead.
-
-Bug: 819294
-Change-Id: Icfc9d3586350af469bfd9d83b355d94806430c43
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110786
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1085617}
----
-
-diff --git a/url/url_canon_internal.cc b/url/url_canon_internal.cc
-index e4f7949..f621920 100644
---- a/url/url_canon_internal.cc
-+++ b/url/url_canon_internal.cc
-@@ -49,11 +49,11 @@
- auto mask = b >= 0x24 && b <= 0x7e && b != 0x27 && b != 0x3c && b != 0x3e;
-
- #ifdef __SSE2__
-- if (_mm_movemask_epi8(mask) != 0xffff) {
-+ if (_mm_movemask_epi8(reinterpret_cast<__m128i>(mask)) != 0xffff) {
- return i;
- }
- #else
-- if (vminvq_u8(mask) == 0) {
-+ if (vminvq_u8(reinterpret_cast<uint8x16_t>(mask)) == 0) {
- return i;
- }
- #endif
diff --git a/chromium-110-v8-gcc.patch b/chromium-110-v8-gcc.patch
deleted file mode 100644
index 4bca19a..0000000
--- a/chromium-110-v8-gcc.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 15d123009b7e987e946309cd5724ae17f376bd16 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Sun, 18 Dec 2022 16:26:02 +0100
-Subject: [PATCH] GCC: fix selection of IMMEDIATE_CRASH
-
-immediate_crash.h still uses V8_CC_GCC define to determine which
-IMMEDIATE_CRASH macro is used. This should be V8_CC_GNU instead.
-Otherwise weird compile errors are happening with turboshaft.
-
-Bug: chromium:819294
-Change-Id: Id77fe7406ae16a804e1e466844f81d6c728ec008
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111849
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Reviewed-by: Michael Lippautz <mlippautz(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#84923}
----
-
-diff --git a/src/base/immediate-crash.h b/src/base/immediate-crash.h
-index 770cb27..ce6240b 100644
---- a/v8/src/base/immediate-crash.h
-+++ b/v8/src/base/immediate-crash.h
-@@ -140,9 +140,9 @@
- [] { TRAP_SEQUENCE_(); }(); \
- } while (false)
-
--#endif // !V8_CC_GCC
-+#endif // !V8_CC_GNU
-
--#if defined(__clang__) || V8_CC_GCC
-+#if defined(__clang__) || V8_CC_GNU
-
- // __builtin_unreachable() hints to the compiler that this is noreturn and can
- // be packed in the function epilogue.
diff --git a/chromium-111-v8-std-layout1.patch b/chromium-111-v8-std-layout1.patch
deleted file mode 100644
index 95b2633..0000000
--- a/chromium-111-v8-std-layout1.patch
+++ /dev/null
@@ -1,2229 +0,0 @@
-From 472429e623cf48e864a7a2f10d589817a88289a1 Mon Sep 17 00:00:00 2001
-From: Nikolaos Papaspyrou <nikolaos(a)chromium.org>
-Date: Wed, 18 Jan 2023 21:11:59 +0100
-Subject: [PATCH] [heap] Fix saving the callee-saved registers on stack
-
-This CL reinstates the trampoline for pushing the values of
-callee-saved registers on the stack, which is used for stack scanning.
-It reintroduces the set of architecture-specific functions
-PushAllRegistersAndIterateStack, removed in crrev.com/c/3989143.
-The reason for this change is that the simpler architecture-specific
-functions SaveCalleeSavedRegisters failed to correctly save the
-values of the registers, in the presence of C++ compiler optimizations.
-
-It also removes the stack context, introduced in crrev.com/c/4017512,
-and uses again the trampoline for iterating through the stack.
-
-Bug: v8:13257
-Change-Id: I9e656a9b3ba6616168602300f2180b4f340593f3
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4171639
-Commit-Queue: Nikolaos Papaspyrou <nikolaos(a)chromium.org>
-Reviewed-by: Omer Katz <omerkatz(a)chromium.org>
-Reviewed-by: Michael Lippautz <mlippautz(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#85394}
-
-(stripped tests)
----
-
-diff --git a/BUILD.bazel b/BUILD.bazel
-index 283eeff..e3269a4 100644
---- a/v8/BUILD.bazel
-+++ b/v8/BUILD.bazel
-@@ -3201,16 +3201,16 @@
- # Note these cannot be v8_target_is_* selects because these contain
- # inline assembly that runs inside the executable. Since these are
- # linked directly into mksnapshot, they must use the actual target cpu.
-- "@v8//bazel/config:is_inline_asm_ia32": ["src/heap/base/asm/ia32/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_x64": ["src/heap/base/asm/x64/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_arm": ["src/heap/base/asm/arm/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_arm64": ["src/heap/base/asm/arm64/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_s390x": ["src/heap/base/asm/s390/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_riscv64": ["src/heap/base/asm/riscv64/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_ppc64le": ["src/heap/base/asm/ppc/save_registers_asm.cc"],
-- "@v8//bazel/config:is_msvc_asm_ia32": ["src/heap/base/asm/ia32/save_registers_masm.asm"],
-- "@v8//bazel/config:is_msvc_asm_x64": ["src/heap/base/asm/x64/save_registers_masm.asm"],
-- "@v8//bazel/config:is_msvc_asm_arm64": ["src/heap/base/asm/arm64/save_registers_masm.S"],
-+ "@v8//bazel/config:is_inline_asm_ia32": ["src/heap/base/asm/ia32/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_x64": ["src/heap/base/asm/x64/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_arm": ["src/heap/base/asm/arm/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_arm64": ["src/heap/base/asm/arm64/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_s390x": ["src/heap/base/asm/s390/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_riscv64": ["src/heap/base/asm/riscv64/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_ppc64le": ["src/heap/base/asm/ppc/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_msvc_asm_ia32": ["src/heap/base/asm/ia32/push_registers_masm.asm"],
-+ "@v8//bazel/config:is_msvc_asm_x64": ["src/heap/base/asm/x64/push_registers_masm.asm"],
-+ "@v8//bazel/config:is_msvc_asm_arm64": ["src/heap/base/asm/arm64/push_registers_masm.S"],
- }),
- )
-
-diff --git a/BUILD.gn b/BUILD.gn
-index 80a7eb6..56798db 100644
---- a/v8/BUILD.gn
-+++ b/v8/BUILD.gn
-@@ -5989,31 +5989,31 @@
-
- if (is_clang || !is_win) {
- if (current_cpu == "x64") {
-- sources += [ "src/heap/base/asm/x64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/x64/push_registers_asm.cc" ]
- } else if (current_cpu == "x86") {
-- sources += [ "src/heap/base/asm/ia32/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/ia32/push_registers_asm.cc" ]
- } else if (current_cpu == "arm") {
-- sources += [ "src/heap/base/asm/arm/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/arm/push_registers_asm.cc" ]
- } else if (current_cpu == "arm64") {
-- sources += [ "src/heap/base/asm/arm64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/arm64/push_registers_asm.cc" ]
- } else if (current_cpu == "ppc64") {
-- sources += [ "src/heap/base/asm/ppc/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/ppc/push_registers_asm.cc" ]
- } else if (current_cpu == "s390x") {
-- sources += [ "src/heap/base/asm/s390/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/s390/push_registers_asm.cc" ]
- } else if (current_cpu == "mips64el") {
-- sources += [ "src/heap/base/asm/mips64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/mips64/push_registers_asm.cc" ]
- } else if (current_cpu == "loong64") {
-- sources += [ "src/heap/base/asm/loong64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/loong64/push_registers_asm.cc" ]
- } else if (current_cpu == "riscv64" || current_cpu == "riscv32") {
-- sources += [ "src/heap/base/asm/riscv/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/riscv/push_registers_asm.cc" ]
- }
- } else if (is_win) {
- if (current_cpu == "x64") {
-- sources += [ "src/heap/base/asm/x64/save_registers_masm.asm" ]
-+ sources += [ "src/heap/base/asm/x64/push_registers_masm.asm" ]
- } else if (current_cpu == "x86") {
-- sources += [ "src/heap/base/asm/ia32/save_registers_masm.asm" ]
-+ sources += [ "src/heap/base/asm/ia32/push_registers_masm.asm" ]
- } else if (current_cpu == "arm64") {
-- sources += [ "src/heap/base/asm/arm64/save_registers_masm.S" ]
-+ sources += [ "src/heap/base/asm/arm64/push_registers_masm.S" ]
- }
- }
-
-diff --git a/src/execution/isolate.cc b/src/execution/isolate.cc
-index 8a2ec80..31536a1 100644
---- a/v8/src/execution/isolate.cc
-+++ b/v8/src/execution/isolate.cc
-@@ -3075,8 +3075,7 @@
- .get()
- .get();
- current = WasmContinuationObject::cast(current).parent();
-- thread_local_top()->stack_.SetStackStart(
-- reinterpret_cast<void*>(stack->base()));
-+ heap()->SetStackStart(reinterpret_cast<void*>(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()) {
-@@ -3372,9 +3371,12 @@
- 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());
-+ if (saved_isolate) {
-+ isolate->thread_local_top()->stack_ =
-+ std::move(saved_isolate->thread_local_top()->stack_);
-+ } else {
-+ isolate->heap()->SetStackStart(base::Stack::GetStackStart());
-+ }
-
- bool owns_shared_isolate = isolate->owns_shared_isolate_;
- Isolate* maybe_shared_isolate = isolate->shared_isolate_;
-diff --git a/src/execution/thread-local-top.cc b/src/execution/thread-local-top.cc
-index 0d7071d..c115ae0 100644
---- a/v8/src/execution/thread-local-top.cc
-+++ b/v8/src/execution/thread-local-top.cc
-@@ -44,10 +44,13 @@
- Clear();
- isolate_ = isolate;
- thread_id_ = ThreadId::Current();
-- stack_.SetStackStart(base::Stack::GetStackStart());
- #if V8_ENABLE_WEBASSEMBLY
-+ stack_.SetStackStart(base::Stack::GetStackStart(),
-+ v8_flags.experimental_wasm_stack_switching);
- thread_in_wasm_flag_address_ = reinterpret_cast<Address>(
- trap_handler::GetThreadInWasmThreadLocalAddress());
-+#else
-+ stack_.SetStackStart(base::Stack::GetStackStart(), false);
- #endif // V8_ENABLE_WEBASSEMBLY
- #ifdef USE_SIMULATOR
- simulator_ = Simulator::current(isolate);
-diff --git a/src/heap/base/asm/arm/push_registers_asm.cc b/src/heap/base/asm/arm/push_registers_asm.cc
-new file mode 100644
-index 0000000..5246c3f
---- /dev/null
-+++ b/v8/src/heap/base/asm/arm/push_registers_asm.cc
-@@ -0,0 +1,39 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// We maintain 8-byte alignment at calls by pushing an additional
-+// non-callee-saved register (r3).
-+//
-+// Calling convention source:
-+// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A32)
-+// http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4127.html
-+asm(".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ // Only {r4-r11} are callee-saved registers. Push r3 in addition to align
-+ // the stack back to 8 bytes.
-+ " push {r3-r11, lr} \n"
-+ // Pass 1st parameter (r0) unchanged (Stack*).
-+ // Pass 2nd parameter (r1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r2; IterateStackCallback).
-+ " mov r3, r2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mov r2, sp \n"
-+ // Call the callback.
-+ " blx r3 \n"
-+ // Discard all the registers.
-+ " add sp, sp, #36 \n"
-+ // Pop lr into pc which returns and switches mode if needed.
-+ " pop {pc} \n");
-diff --git a/src/heap/base/asm/arm/save_registers_asm.cc b/src/heap/base/asm/arm/save_registers_asm.cc
-deleted file mode 100644
-index ace9503..0000000
---- a/v8/src/heap/base/asm/arm/save_registers_asm.cc
-+++ /dev/null
-@@ -1,36 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// We maintain 8-byte alignment at calls by pushing an additional
--// non-callee-saved register (r3).
--//
--// Calling convention source:
--// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A32)
--// http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4127.html
--
--// 8 32-bit registers = 8 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 8,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // r0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: {r4-r11}.
-- " stm r0, {r4-r11} \n"
-- // Return.
-- " bx lr \n");
-diff --git a/src/heap/base/asm/arm64/push_registers_asm.cc b/src/heap/base/asm/arm64/push_registers_asm.cc
-new file mode 100644
-index 0000000..1efcc34
---- /dev/null
-+++ b/v8/src/heap/base/asm/arm64/push_registers_asm.cc
-@@ -0,0 +1,62 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// We maintain 16-byte alignment.
-+//
-+// Calling convention source:
-+// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A64)
-+
-+asm(
-+#if defined(__APPLE__)
-+ ".globl _PushAllRegistersAndIterateStack \n"
-+ ".private_extern _PushAllRegistersAndIterateStack \n"
-+ ".p2align 2 \n"
-+ "_PushAllRegistersAndIterateStack: \n"
-+#else // !defined(__APPLE__)
-+ ".globl PushAllRegistersAndIterateStack \n"
-+#if !defined(_WIN64)
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+#endif // !defined(_WIN64)
-+ ".p2align 2 \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif // !defined(__APPLE__)
-+ // x19-x29 are callee-saved.
-+ " stp x19, x20, [sp, #-16]! \n"
-+ " stp x21, x22, [sp, #-16]! \n"
-+ " stp x23, x24, [sp, #-16]! \n"
-+ " stp x25, x26, [sp, #-16]! \n"
-+ " stp x27, x28, [sp, #-16]! \n"
-+#ifdef V8_ENABLE_CONTROL_FLOW_INTEGRITY
-+ // Sign return address.
-+ " paciasp \n"
-+#endif
-+ " stp fp, lr, [sp, #-16]! \n"
-+ // Maintain frame pointer.
-+ " mov fp, sp \n"
-+ // Pass 1st parameter (x0) unchanged (Stack*).
-+ // Pass 2nd parameter (x1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (x2; IterateStackCallback)
-+ " mov x7, x2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mov x2, sp \n"
-+ " blr x7 \n"
-+ // Load return address and frame pointer.
-+ " ldp fp, lr, [sp], #16 \n"
-+#ifdef V8_ENABLE_CONTROL_FLOW_INTEGRITY
-+ // Authenticate return address.
-+ " autiasp \n"
-+#endif
-+ // Drop all callee-saved registers.
-+ " add sp, sp, #80 \n"
-+ " ret \n");
-diff --git a/src/heap/base/asm/arm64/push_registers_masm.S b/src/heap/base/asm/arm64/push_registers_masm.S
-new file mode 100644
-index 0000000..888523a
---- /dev/null
-+++ b/v8/src/heap/base/asm/arm64/push_registers_masm.S
-@@ -0,0 +1,32 @@
-+; Copyright 2020 the V8 project authors. All rights reserved.
-+; Use of this source code is governed by a BSD-style license that can be
-+; found in the LICENSE file.
-+
-+; This file is exactly the same as push_registers_asm.cc, just formatted for
-+; the Microsoft Arm Assembler.
-+
-+ AREA |.text|, CODE, ALIGN=4, READONLY
-+ EXPORT PushAllRegistersAndIterateStack
-+PushAllRegistersAndIterateStack
-+ ; x19-x29 are callee-saved
-+ STP x19, x20, [sp, #-16]!
-+ STP x21, x22, [sp, #-16]!
-+ STP x23, x24, [sp, #-16]!
-+ STP x25, x26, [sp, #-16]!
-+ STP x27, x28, [sp, #-16]!
-+ STP fp, lr, [sp, #-16]!
-+ ; Maintain frame pointer
-+ MOV fp, sp
-+ ; Pass 1st parameter (x0) unchanged (Stack*).
-+ ; Pass 2nd parameter (x1) unchanged (StackVisitor*).
-+ ; Save 3rd parameter (x2; IterateStackCallback)
-+ MOV x7, x2
-+ ; Pass 3rd parameter as sp (stack pointer)
-+ MOV x2, sp
-+ BLR x7
-+ ; Load return address
-+ LDR lr, [sp, #8]
-+ ; Restore frame pointer and pop all callee-saved registers.
-+ LDR fp, [sp], #96
-+ RET
-+ END
-diff --git a/src/heap/base/asm/arm64/save_registers_asm.cc b/src/heap/base/asm/arm64/save_registers_asm.cc
-deleted file mode 100644
-index 5fe81d8..0000000
---- a/v8/src/heap/base/asm/arm64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,50 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// We maintain 16-byte alignment.
--//
--// Calling convention source:
--// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A64)
--
--// 11 64-bit registers = 11 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 11,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(
--#if defined(__APPLE__)
-- ".globl _SaveCalleeSavedRegisters \n"
-- ".private_extern _SaveCalleeSavedRegisters \n"
-- ".p2align 2 \n"
-- "_SaveCalleeSavedRegisters: \n"
--#else // !defined(__APPLE__)
-- ".globl SaveCalleeSavedRegisters \n"
--#if !defined(_WIN64)
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
--#endif // !defined(_WIN64)
-- ".p2align 2 \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif // !defined(__APPLE__)
-- // $x0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: x19-x29.
-- " stp x19, x20, [x0], #16 \n"
-- " stp x21, x22, [x0], #16 \n"
-- " stp x23, x24, [x0], #16 \n"
-- " stp x25, x26, [x0], #16 \n"
-- " stp x27, x28, [x0], #16 \n"
-- " str x29, [x0] \n"
-- // Return.
-- " ret \n");
-diff --git a/src/heap/base/asm/arm64/save_registers_masm.S b/src/heap/base/asm/arm64/save_registers_masm.S
-deleted file mode 100644
-index ab79055..0000000
---- a/v8/src/heap/base/asm/arm64/save_registers_masm.S
-+++ /dev/null
-@@ -1,24 +0,0 @@
--; Copyright 2020 the V8 project authors. All rights reserved.
--; Use of this source code is governed by a BSD-style license that can be
--; found in the LICENSE file.
--
--; This file is exactly the same as save_registers_asm.cc, just formatted for
--; the Microsoft Arm Assembler.
--
--; Save all callee-saved registers in the specified buffer.
--; extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
-- AREA |.text|, CODE, ALIGN=4, READONLY
-- EXPORT SaveCalleeSavedRegisters
--SaveCalleeSavedRegisters
-- ; x0: [ intptr_t* buffer ]
-- ; x19-x29 are callee-saved
-- STP x19, x20, [x0], #16
-- STP x21, x22, [x0], #16
-- STP x23, x24, [x0], #16
-- STP x25, x26, [x0], #16
-- STP x27, x28, [x0], #16
-- STR x29, [x0]
-- ; Return.
-- RET
-- END
-diff --git a/src/heap/base/asm/ia32/push_registers_asm.cc b/src/heap/base/asm/ia32/push_registers_asm.cc
-new file mode 100644
-index 0000000..ed9c14a
---- /dev/null
-+++ b/v8/src/heap/base/asm/ia32/push_registers_asm.cc
-@@ -0,0 +1,53 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// We maintain 16-byte alignment at calls. There is an 4-byte return address
-+// on the stack and we push 28 bytes which maintains 16-byte stack alignment
-+// at the call.
-+//
-+// The following assumes cdecl calling convention.
-+// Source: https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl
-+asm(
-+#ifdef _WIN32
-+ ".globl _PushAllRegistersAndIterateStack \n"
-+ "_PushAllRegistersAndIterateStack: \n"
-+#else // !_WIN32
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif // !_WIN32
-+ // [ IterateStackCallback ]
-+ // [ StackVisitor* ]
-+ // [ Stack* ]
-+ // [ ret ]
-+ // ebp is callee-saved. Maintain proper frame pointer for debugging.
-+ " push %ebp \n"
-+ " movl %esp, %ebp \n"
-+ " push %ebx \n"
-+ " push %esi \n"
-+ " push %edi \n"
-+ // Save 3rd parameter (IterateStackCallback).
-+ " movl 28(%esp), %ecx \n"
-+ // Pass 3rd parameter as esp (stack pointer).
-+ " push %esp \n"
-+ // Pass 2nd parameter (StackVisitor*).
-+ " push 28(%esp) \n"
-+ // Pass 1st parameter (Stack*).
-+ " push 28(%esp) \n"
-+ " call *%ecx \n"
-+ // Pop the callee-saved registers.
-+ " addl $24, %esp \n"
-+ // Restore rbp as it was used as frame pointer.
-+ " pop %ebp \n"
-+ " ret \n");
-diff --git a/src/heap/base/asm/ia32/push_registers_masm.asm b/src/heap/base/asm/ia32/push_registers_masm.asm
-new file mode 100644
-index 0000000..a35fd6e
---- /dev/null
-+++ b/v8/src/heap/base/asm/ia32/push_registers_masm.asm
-@@ -0,0 +1,48 @@
-+;; Copyright 2020 the V8 project authors. All rights reserved.
-+;; Use of this source code is governed by a BSD-style license that can be
-+;; found in the LICENSE file.
-+
-+;; MASM syntax
-+;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
-+
-+.model flat, C
-+
-+public PushAllRegistersAndIterateStack
-+
-+.code
-+PushAllRegistersAndIterateStack:
-+ ;; Push all callee-saved registers to get them on the stack for conservative
-+ ;; stack scanning.
-+ ;;
-+ ;; We maintain 16-byte alignment at calls. There is an 8-byte return address
-+ ;; on the stack and we push 72 bytes which maintains 16-byte stack alignment
-+ ;; at the call.
-+ ;;
-+ ;; The following assumes cdecl calling convention.
-+ ;; Source: https://docs.microsoft.com/en-us/cpp/cpp/cdecl?view=vs-2019
-+ ;;
-+ ;; [ IterateStackCallback ]
-+ ;; [ StackVisitor* ]
-+ ;; [ Stack* ]
-+ ;; [ ret ]
-+ push ebp
-+ mov ebp, esp
-+ push ebx
-+ push esi
-+ push edi
-+ ;; Save 3rd parameter (IterateStackCallback).
-+ mov ecx, [ esp + 28 ]
-+ ;; Pass 3rd parameter as esp (stack pointer).
-+ push esp
-+ ;; Pass 2nd parameter (StackVisitor*).
-+ push [ esp + 28 ]
-+ ;; Pass 1st parameter (Stack*).
-+ push [ esp + 28 ]
-+ call ecx
-+ ;; Pop the callee-saved registers.
-+ add esp, 24
-+ ;; Restore rbp as it was used as frame pointer.
-+ pop ebp
-+ ret
-+
-+end
-diff --git a/src/heap/base/asm/ia32/save_registers_asm.cc b/src/heap/base/asm/ia32/save_registers_asm.cc
-deleted file mode 100644
-index 7c05247..0000000
---- a/v8/src/heap/base/asm/ia32/save_registers_asm.cc
-+++ /dev/null
-@@ -1,48 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// The following assumes cdecl calling convention.
--// Source: https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl
--
--// 3 32-bit registers = 3 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 3,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(
--#ifdef _WIN32
-- ".globl _SaveCalleeSavedRegisters \n"
-- "_SaveCalleeSavedRegisters: \n"
--#else // !_WIN32
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif // !_WIN32
-- // 8: [ intptr_t* buffer ]
-- // 4: [ ret ]
-- // 0: [ saved %ebp ]
-- // %ebp is callee-saved. Maintain proper frame pointer for debugging.
-- " push %ebp \n"
-- " movl %esp, %ebp \n"
-- // Load the buffer's address in %ecx.
-- " movl 8(%ebp), %ecx \n"
-- // Save the callee-saved registers.
-- " movl %ebx, 0(%ecx) \n"
-- " movl %esi, 4(%ecx) \n"
-- " movl %edi, 8(%ecx) \n"
-- // Restore %ebp as it was used as frame pointer and return.
-- " pop %ebp \n"
-- " ret \n");
-diff --git a/src/heap/base/asm/ia32/save_registers_masm.asm b/src/heap/base/asm/ia32/save_registers_masm.asm
-deleted file mode 100644
-index 0892b02..0000000
---- a/v8/src/heap/base/asm/ia32/save_registers_masm.asm
-+++ /dev/null
-@@ -1,36 +0,0 @@
--;; Copyright 2020 the V8 project authors. All rights reserved.
--;; Use of this source code is governed by a BSD-style license that can be
--;; found in the LICENSE file.
--
--;; MASM syntax
--;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
--
--.model flat, C
--
--public SaveCalleeSavedRegisters
--
--.code
-- ;; Save all callee-saved registers in the specified buffer.
-- ;; extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
-- ;;
-- ;; The following assumes cdecl calling convention.
-- ;; Source: https://docs.microsoft.com/en-us/cpp/cpp/cdecl?view=vs-2019
--
--SaveCalleeSavedRegisters:
-- ;; 8: [ intptr_t* buffer ]
-- ;; 4: [ ret ]
-- ;; 0: [ saved %ebp ]
-- ;; %ebp is callee-saved. Maintain proper frame pointer for debugging.
-- push ebp
-- mov ebp, esp
-- ;; Load the buffer's address in %ecx.
-- mov ecx, [ebp + 8]
-- ;; Save the callee-saved registers.
-- mov [ecx], ebx
-- mov [ecx + 4], esi
-- mov [ecx + 8], edi
-- ;; Restore %ebp as it was used as frame pointer and return.
-- pop ebp
-- ret
--
--end
-diff --git a/src/heap/base/asm/loong64/push_registers_asm.cc b/src/heap/base/asm/loong64/push_registers_asm.cc
-new file mode 100644
-index 0000000..aa8dcd3
---- /dev/null
-+++ b/v8/src/heap/base/asm/loong64/push_registers_asm.cc
-@@ -0,0 +1,48 @@
-+// Copyright 2021 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+asm(".text \n"
-+ ".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " addi.d $sp, $sp, -96 \n"
-+ " st.d $ra, $sp, 88 \n"
-+ " st.d $s8, $sp, 80 \n"
-+ " st.d $sp, $sp, 72 \n"
-+ " st.d $fp, $sp, 64 \n"
-+ " st.d $s7, $sp, 56 \n"
-+ " st.d $s6, $sp, 48 \n"
-+ " st.d $s5, $sp, 40 \n"
-+ " st.d $s4, $sp, 32 \n"
-+ " st.d $s3, $sp, 24 \n"
-+ " st.d $s2, $sp, 16 \n"
-+ " st.d $s1, $sp, 8 \n"
-+ " st.d $s0, $sp, 0 \n"
-+ // Maintain frame pointer.
-+ " addi.d $s8, $sp, 0 \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback).
-+ " addi.d $a3, $a2, 0 \n"
-+ // Call the callback.
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " addi.d $a2, $sp, 0 \n"
-+ " jirl $ra, $a3, 0 \n"
-+ // Load return address.
-+ " ld.d $ra, $sp, 88 \n"
-+ // Restore frame pointer.
-+ " ld.d $s8, $sp, 80 \n"
-+ // Discard all callee-saved registers.
-+ " addi.d $sp, $sp, 96 \n"
-+ " jirl $zero, $ra, 0 \n");
-diff --git a/src/heap/base/asm/loong64/save_registers_asm.cc b/src/heap/base/asm/loong64/save_registers_asm.cc
-deleted file mode 100644
-index d5b110d..0000000
---- a/v8/src/heap/base/asm/loong64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,40 +0,0 @@
--// Copyright 2021 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--
--// 11 64-bit registers = 11 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 11,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".text \n"
-- ".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // $a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers.
-- " st.d $s8, $a0, 0 \n"
-- " st.d $sp, $a0, 8 \n"
-- " st.d $fp, $a0, 16 \n"
-- " st.d $s7, $a0, 24 \n"
-- " st.d $s6, $a0, 32 \n"
-- " st.d $s5, $a0, 40 \n"
-- " st.d $s4, $a0, 48 \n"
-- " st.d $s3, $a0, 56 \n"
-- " st.d $s2, $a0, 64 \n"
-- " st.d $s1, $a0, 72 \n"
-- " st.d $s0, $a0, 80 \n"
-- // Return.
-- " jirl $zero, $ra, 0 \n");
-diff --git a/src/heap/base/asm/mips64/push_registers_asm.cc b/src/heap/base/asm/mips64/push_registers_asm.cc
-new file mode 100644
-index 0000000..47779e0
---- /dev/null
-+++ b/v8/src/heap/base/asm/mips64/push_registers_asm.cc
-@@ -0,0 +1,49 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+asm(".text \n"
-+ ".set noreorder \n"
-+ ".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " daddiu $sp, $sp, -96 \n"
-+ " sd $ra, 88($sp) \n"
-+ " sd $s8, 80($sp) \n"
-+ " sd $sp, 72($sp) \n"
-+ " sd $gp, 64($sp) \n"
-+ " sd $s7, 56($sp) \n"
-+ " sd $s6, 48($sp) \n"
-+ " sd $s5, 40($sp) \n"
-+ " sd $s4, 32($sp) \n"
-+ " sd $s3, 24($sp) \n"
-+ " sd $s2, 16($sp) \n"
-+ " sd $s1, 8($sp) \n"
-+ " sd $s0, 0($sp) \n"
-+ // Maintain frame pointer.
-+ " move $s8, $sp \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback).
-+ " move $a3, $a2 \n"
-+ // Call the callback.
-+ " jalr $a3 \n"
-+ // Delay slot: Pass 3rd parameter as sp (stack pointer).
-+ " move $a2, $sp \n"
-+ // Load return address.
-+ " ld $ra, 88($sp) \n"
-+ // Restore frame pointer.
-+ " ld $s8, 80($sp) \n"
-+ " jr $ra \n"
-+ // Delay slot: Discard all callee-saved registers.
-+ " daddiu $sp, $sp, 96 \n");
-diff --git a/src/heap/base/asm/mips64/save_registers_asm.cc b/src/heap/base/asm/mips64/save_registers_asm.cc
-deleted file mode 100644
-index 95bcc31..0000000
---- a/v8/src/heap/base/asm/mips64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,41 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--
--// 9 64-bit registers = 9 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 9,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".text \n"
-- ".set noreorder \n"
-- ".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // $a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers.
-- " sd $gp, 64($a0) \n"
-- " sd $s7, 56($a0) \n"
-- " sd $s6, 48($a0) \n"
-- " sd $s5, 40($a0) \n"
-- " sd $s4, 32($a0) \n"
-- " sd $s3, 24($a0) \n"
-- " sd $s2, 16($a0) \n"
-- " sd $s1, 8($a0) \n"
-- // ... one more in the delay slot!
-- // Return.
-- " jr $ra \n"
-- // Delay slot:
-- " sd $s0, 0($a0) \n");
-diff --git a/src/heap/base/asm/ppc/push_registers_asm.cc b/src/heap/base/asm/ppc/push_registers_asm.cc
-new file mode 100644
-index 0000000..f879980
---- /dev/null
-+++ b/v8/src/heap/base/asm/ppc/push_registers_asm.cc
-@@ -0,0 +1,97 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// PPC ABI source:
-+// http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html
-+
-+// AIX Runtime process stack:
-+// https://www.ibm.com/support/knowledgecenter/ssw_aix_71/assembler/idalangr...
-+asm(
-+#if defined(_AIX)
-+ ".csect .text[PR] \n"
-+ ".align 2 \n"
-+ ".globl .PushAllRegistersAndIterateStack, hidden \n"
-+ ".PushAllRegistersAndIterateStack: \n"
-+#else
-+ ".text \n"
-+ ".align 2 \n"
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif
-+ // Push all callee-saved registers.
-+ // lr, TOC pointer, r16 to r31. 160 bytes.
-+ // The parameter save area shall be allocated by the caller. 112 bytes.
-+ // At anytime, SP (r1) needs to be multiple of 16 (i.e. 16-aligned).
-+ " mflr 0 \n"
-+ " std 0, 16(1) \n"
-+#if defined(_AIX)
-+ " std 2, 40(1) \n"
-+#else
-+ " std 2, 24(1) \n"
-+#endif
-+ " stdu 1, -256(1) \n"
-+ " std 14, 112(1) \n"
-+ " std 15, 120(1) \n"
-+ " std 16, 128(1) \n"
-+ " std 17, 136(1) \n"
-+ " std 18, 144(1) \n"
-+ " std 19, 152(1) \n"
-+ " std 20, 160(1) \n"
-+ " std 21, 168(1) \n"
-+ " std 22, 176(1) \n"
-+ " std 23, 184(1) \n"
-+ " std 24, 192(1) \n"
-+ " std 25, 200(1) \n"
-+ " std 26, 208(1) \n"
-+ " std 27, 216(1) \n"
-+ " std 28, 224(1) \n"
-+ " std 29, 232(1) \n"
-+ " std 30, 240(1) \n"
-+ " std 31, 248(1) \n"
-+ // Pass 1st parameter (r3) unchanged (Stack*).
-+ // Pass 2nd parameter (r4) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r5; IterateStackCallback).
-+ " mr 6, 5 \n"
-+#if defined(_AIX)
-+ // Set up TOC for callee.
-+ " ld 2,8(5) \n"
-+ // AIX uses function descriptors, which means that
-+ // pointers to functions do not point to code, but
-+ // instead point to metadata about them, hence
-+ // need to deterrence.
-+ " ld 6,0(6) \n"
-+#endif
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mr 5, 1 \n"
-+#if !defined(_AIX)
-+ // Set up r12 to be equal to the callee address (in order for TOC
-+ // relocation). Only needed on LE Linux.
-+ " mr 12, 6 \n"
-+#endif
-+ // Call the callback.
-+ " mtctr 6 \n"
-+ " bctrl \n"
-+ // Discard all the registers.
-+ " addi 1, 1, 256 \n"
-+ // Restore lr.
-+ " ld 0, 16(1) \n"
-+ " mtlr 0 \n"
-+#if defined(_AIX)
-+ // Restore TOC pointer.
-+ " ld 2, 40(1) \n"
-+#else
-+ " ld 2, 24(1) \n"
-+#endif
-+ " blr \n");
-diff --git a/src/heap/base/asm/ppc/save_registers_asm.cc b/src/heap/base/asm/ppc/save_registers_asm.cc
-deleted file mode 100644
-index 9e8102a..0000000
---- a/v8/src/heap/base/asm/ppc/save_registers_asm.cc
-+++ /dev/null
-@@ -1,113 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// PPC ABI source:
--// http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html
--
--// AIX Runtime process stack:
--// https://www.ibm.com/support/knowledgecenter/ssw_aix_71/assembler/idalangr...
--
--#ifdef __PPC64__
--
--// 20 64-bit registers = 20 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 20,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(
--#if defined(_AIX)
-- ".csect .text[PR] \n"
-- ".align 2 \n"
-- ".globl .SaveCalleeSavedRegisters, hidden \n"
-- ".SaveCalleeSavedRegisters: \n"
--#else
-- ".text \n"
-- ".align 2 \n"
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif
-- // r3: [ intptr_t* buffer ]
-- // Save the callee-saved registers: lr, TOC pointer (r2), r14-r31.
-- " mflr 0 \n"
-- " std 0, 8(3) \n"
-- " std 2, 16(3) \n"
-- " std 14, 24(3) \n"
-- " std 15, 32(3) \n"
-- " std 16, 40(3) \n"
-- " std 17, 48(3) \n"
-- " std 18, 56(3) \n"
-- " std 19, 64(3) \n"
-- " std 20, 72(3) \n"
-- " std 21, 80(3) \n"
-- " std 22, 88(3) \n"
-- " std 23, 96(3) \n"
-- " std 24, 104(3) \n"
-- " std 25, 112(3) \n"
-- " std 26, 120(3) \n"
-- " std 27, 128(3) \n"
-- " std 28, 136(3) \n"
-- " std 29, 144(3) \n"
-- " std 30, 152(3) \n"
-- " std 31, 160(3) \n"
-- // Return.
-- " blr \n");
--
--#else // !__PPC64__
--
--// 20 32-bit registers = 20 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 20,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(
--#if defined(_AIX)
-- ".globl .SaveCalleeSavedRegisters, hidden \n"
-- ".csect .text[PR] \n"
-- ".SaveCalleeSavedRegisters: \n"
--#else
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif
-- // r3: [ intptr_t* buffer ]
-- // Save the callee-saved registers: lr, TOC pointer (r2), r14-r31.
-- " mflr 0 \n"
-- " st 0, 4(3) \n"
-- " st 2, 8(3) \n"
-- " st 14, 12(3) \n"
-- " st 15, 16(3) \n"
-- " st 16, 20(3) \n"
-- " st 17, 24(3) \n"
-- " st 18, 28(3) \n"
-- " st 19, 32(3) \n"
-- " st 20, 36(3) \n"
-- " st 21, 40(3) \n"
-- " st 22, 44(3) \n"
-- " st 23, 48(3) \n"
-- " st 24, 52(3) \n"
-- " st 25, 56(3) \n"
-- " st 26, 60(3) \n"
-- " st 27, 64(3) \n"
-- " st 28, 68(3) \n"
-- " st 29, 72(3) \n"
-- " st 30, 76(3) \n"
-- " st 31, 80(3) \n"
-- // Return.
-- " blr \n");
--
--#endif // __PPC64__
-diff --git a/src/heap/base/asm/riscv/push_registers_asm.cc b/src/heap/base/asm/riscv/push_registers_asm.cc
-new file mode 100644
-index 0000000..7cc13ea
---- /dev/null
-+++ b/v8/src/heap/base/asm/riscv/push_registers_asm.cc
-@@ -0,0 +1,93 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_asm.cc for why the function is not generated
-+// using clang.
-+//
-+// Calling convention source:
-+// https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf Table 18.2
-+#ifdef V8_TARGET_ARCH_RISCV64
-+asm(".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " addi sp, sp, -112 \n"
-+ // Save return address.
-+ " sd ra, 104(sp) \n"
-+ // sp is callee-saved.
-+ " sd sp, 96(sp) \n"
-+ // s0-s11 are callee-saved.
-+ " sd s11, 88(sp) \n"
-+ " sd s10, 80(sp) \n"
-+ " sd s9, 72(sp) \n"
-+ " sd s8, 64(sp) \n"
-+ " sd s7, 56(sp) \n"
-+ " sd s6, 48(sp) \n"
-+ " sd s5, 40(sp) \n"
-+ " sd s4, 32(sp) \n"
-+ " sd s3, 24(sp) \n"
-+ " sd s2, 16(sp) \n"
-+ " sd s1, 8(sp) \n"
-+ " sd s0, 0(sp) \n"
-+ // Maintain frame pointer(fp is s0).
-+ " mv s0, sp \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback) to a3.
-+ " mv a3, a2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mv a2, sp \n"
-+ // Call the callback.
-+ " jalr a3 \n"
-+ // Load return address.
-+ " ld ra, 104(sp) \n"
-+ // Restore frame pointer.
-+ " ld s0, 0(sp) \n"
-+ " addi sp, sp, 112 \n"
-+ " jr ra \n");
-+#elif V8_TARGET_ARCH_RISCV32
-+asm(".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " addi sp, sp, -56 \n"
-+ // Save return address.
-+ " sw ra, 52(sp) \n"
-+ // sp is callee-saved.
-+ " sw sp, 48(sp) \n"
-+ // s0-s11 are callee-saved.
-+ " sw s11, 44(sp) \n"
-+ " sw s10, 40(sp) \n"
-+ " sw s9, 36(sp) \n"
-+ " sw s8, 32(sp) \n"
-+ " sw s7, 28(sp) \n"
-+ " sw s6, 24(sp) \n"
-+ " sw s5, 20(sp) \n"
-+ " sw s4, 16(sp) \n"
-+ " sw s3, 12(sp) \n"
-+ " sw s2, 8(sp) \n"
-+ " sw s1, 4(sp) \n"
-+ " sw s0, 0(sp) \n"
-+ // Maintain frame pointer(fp is s0).
-+ " mv s0, sp \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback) to a3.
-+ " mv a3, a2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mv a2, sp \n"
-+ // Call the callback.
-+ " jalr a3 \n"
-+ // Load return address.
-+ " lw ra, 52(sp) \n"
-+ // Restore frame pointer.
-+ " lw s0, 0(sp) \n"
-+ " addi sp, sp, 56 \n"
-+ " jr ra \n");
-+#endif
-diff --git a/src/heap/base/asm/riscv/save_registers_asm.cc b/src/heap/base/asm/riscv/save_registers_asm.cc
-deleted file mode 100644
-index ad0bf98..0000000
---- a/v8/src/heap/base/asm/riscv/save_registers_asm.cc
-+++ /dev/null
-@@ -1,68 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Calling convention source:
--// https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf Table 18.2
--
--#if V8_HOST_ARCH_RISCV64
--// 12 64-bit registers = 12 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 12,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: s0-s11.
-- " sd s11, 88(a0) \n"
-- " sd s10, 80(a0) \n"
-- " sd s9, 72(a0) \n"
-- " sd s8, 64(a0) \n"
-- " sd s7, 56(a0) \n"
-- " sd s6, 48(a0) \n"
-- " sd s5, 40(a0) \n"
-- " sd s4, 32(a0) \n"
-- " sd s3, 24(a0) \n"
-- " sd s2, 16(a0) \n"
-- " sd s1, 8(a0) \n"
-- " sd s0, 0(a0) \n"
-- // Return.
-- " jr ra \n");
--#elif V8_HOST_ARCH_RISCV32
--// 12 32-bit registers = 12 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 12,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: s0-s11.
-- " sw s11, 44(a0) \n"
-- " sw s10, 40(a0) \n"
-- " sw s9, 36(a0) \n"
-- " sw s8, 32(a0) \n"
-- " sw s7, 28(a0) \n"
-- " sw s6, 24(a0) \n"
-- " sw s5, 20(a0) \n"
-- " sw s4, 16(a0) \n"
-- " sw s3, 12(a0) \n"
-- " sw s2, 8(a0) \n"
-- " sw s1, 4(a0) \n"
-- " sw s0, 0(a0) \n"
-- // Return.
-- " jr ra \n");
--#endif
-diff --git a/src/heap/base/asm/s390/push_registers_asm.cc b/src/heap/base/asm/s390/push_registers_asm.cc
-new file mode 100644
-index 0000000..ef954fa
---- /dev/null
-+++ b/v8/src/heap/base/asm/s390/push_registers_asm.cc
-@@ -0,0 +1,37 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// S390 ABI source:
-+// http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_zSeries.html
-+asm(".text \n"
-+ ".align 8 \n"
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers.
-+ // r6-r13, r14 and sp(r15)
-+ " stmg %r6, %sp, 48(%sp) \n"
-+ // Allocate frame.
-+ " lay %sp, -160(%sp) \n"
-+ // Pass 1st parameter (r2) unchanged (Stack*).
-+ // Pass 2nd parameter (r3) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r4; IterateStackCallback).
-+ " lgr %r5, %r4 \n"
-+ // Pass sp as 3rd parameter. 160+48 to point
-+ // to callee saved region stored above.
-+ " lay %r4, 208(%sp) \n"
-+ // Call the callback.
-+ " basr %r14, %r5 \n"
-+ " lmg %r14,%sp, 272(%sp) \n"
-+ " br %r14 \n");
-diff --git a/src/heap/base/asm/s390/save_registers_asm.cc b/src/heap/base/asm/s390/save_registers_asm.cc
-deleted file mode 100644
-index be92cc2..0000000
---- a/v8/src/heap/base/asm/s390/save_registers_asm.cc
-+++ /dev/null
-@@ -1,34 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--
--// S390 ABI source:
--// http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_zSeries.html
--
--// 10 64-bit registers = 10 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 10,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".text \n"
-- ".align 8 \n"
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // r2: [ intptr_t* buffer ]
-- // Save the callee-saved registers: r6-r13, r14 and sp(r15).
-- " stmg %r6, %sp, 0(%r2) \n"
-- // Return.
-- " br %r14 \n");
-diff --git a/src/heap/base/asm/x64/push_registers_asm.cc b/src/heap/base/asm/x64/push_registers_asm.cc
-new file mode 100644
-index 0000000..1781a58
---- /dev/null
-+++ b/v8/src/heap/base/asm/x64/push_registers_asm.cc
-@@ -0,0 +1,106 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// We cannot rely on clang generating the function and right symbol mangling
-+// as `__attribute__((naked))` does not prevent clang from generating TSAN
-+// function entry stubs (`__tsan_func_entry`). Even with
-+// `__attribute__((no_sanitize_thread)` annotation clang generates the entry
-+// stub.
-+// See https://bugs.llvm.org/show_bug.cgi?id=45400.
-+
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+// _WIN64 Defined as 1 when the compilation target is 64-bit ARM or x64.
-+// Otherwise, undefined.
-+#ifdef _WIN64
-+
-+// We maintain 16-byte alignment at calls. There is an 8-byte return address
-+// on the stack and we push 232 bytes which maintains 16-byte stack alignment
-+// at the call.
-+// Source: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
-+asm(".globl PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // rbp is callee-saved. Maintain proper frame pointer for debugging.
-+ " push %rbp \n"
-+ " mov %rsp, %rbp \n"
-+ // Dummy for alignment.
-+ " push $0xCDCDCD \n"
-+ " push %rsi \n"
-+ " push %rdi \n"
-+ " push %rbx \n"
-+ " push %r12 \n"
-+ " push %r13 \n"
-+ " push %r14 \n"
-+ " push %r15 \n"
-+ " sub $160, %rsp \n"
-+ // Use aligned instrs as we are certain that the stack is properly aligned.
-+ " movdqa %xmm6, 144(%rsp) \n"
-+ " movdqa %xmm7, 128(%rsp) \n"
-+ " movdqa %xmm8, 112(%rsp) \n"
-+ " movdqa %xmm9, 96(%rsp) \n"
-+ " movdqa %xmm10, 80(%rsp) \n"
-+ " movdqa %xmm11, 64(%rsp) \n"
-+ " movdqa %xmm12, 48(%rsp) \n"
-+ " movdqa %xmm13, 32(%rsp) \n"
-+ " movdqa %xmm14, 16(%rsp) \n"
-+ " movdqa %xmm15, (%rsp) \n"
-+ // Pass 1st parameter (rcx) unchanged (Stack*).
-+ // Pass 2nd parameter (rdx) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r8; IterateStackCallback)
-+ " mov %r8, %r9 \n"
-+ // Pass 3rd parameter as rsp (stack pointer).
-+ " mov %rsp, %r8 \n"
-+ // Call the callback.
-+ " call *%r9 \n"
-+ // Pop the callee-saved registers.
-+ " add $224, %rsp \n"
-+ // Restore rbp as it was used as frame pointer.
-+ " pop %rbp \n"
-+ " ret \n");
-+
-+#else // !_WIN64
-+
-+// We maintain 16-byte alignment at calls. There is an 8-byte return address
-+// on the stack and we push 56 bytes which maintains 16-byte stack alignment
-+// at the call.
-+// Source: https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-1.0.pdf
-+asm(
-+#ifdef __APPLE__
-+ ".globl _PushAllRegistersAndIterateStack \n"
-+ ".private_extern _PushAllRegistersAndIterateStack \n"
-+ "_PushAllRegistersAndIterateStack: \n"
-+#else // !__APPLE__
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif // !__APPLE__
-+ // rbp is callee-saved. Maintain proper frame pointer for debugging.
-+ " push %rbp \n"
-+ " mov %rsp, %rbp \n"
-+ // Dummy for alignment.
-+ " push $0xCDCDCD \n"
-+ " push %rbx \n"
-+ " push %r12 \n"
-+ " push %r13 \n"
-+ " push %r14 \n"
-+ " push %r15 \n"
-+ // Pass 1st parameter (rdi) unchanged (Stack*).
-+ // Pass 2nd parameter (rsi) unchanged (StackVisitor*).
-+ // Save 3rd parameter (rdx; IterateStackCallback)
-+ " mov %rdx, %r8 \n"
-+ // Pass 3rd parameter as rsp (stack pointer).
-+ " mov %rsp, %rdx \n"
-+ // Call the callback.
-+ " call *%r8 \n"
-+ // Pop the callee-saved registers.
-+ " add $48, %rsp \n"
-+ // Restore rbp as it was used as frame pointer.
-+ " pop %rbp \n"
-+ " ret \n");
-+
-+#endif // !_WIN64
-diff --git a/src/heap/base/asm/x64/push_registers_masm.asm b/src/heap/base/asm/x64/push_registers_masm.asm
-new file mode 100644
-index 0000000..a32e193
---- /dev/null
-+++ b/v8/src/heap/base/asm/x64/push_registers_masm.asm
-@@ -0,0 +1,57 @@
-+;; Copyright 2020 the V8 project authors. All rights reserved.
-+;; Use of this source code is governed by a BSD-style license that can be
-+;; found in the LICENSE file.
-+
-+;; MASM syntax
-+;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
-+
-+public PushAllRegistersAndIterateStack
-+
-+.code
-+PushAllRegistersAndIterateStack:
-+ ;; Push all callee-saved registers to get them on the stack for conservative
-+ ;; stack scanning.
-+ ;;
-+ ;; We maintain 16-byte alignment at calls. There is an 8-byte return address
-+ ;; on the stack and we push 232 bytes which maintains 16-byte stack
-+ ;; alignment at the call.
-+ ;; Source: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
-+ ;;
-+ ;; rbp is callee-saved. Maintain proper frame pointer for debugging.
-+ push rbp
-+ mov rbp, rsp
-+ push 0CDCDCDh ;; Dummy for alignment.
-+ push rsi
-+ push rdi
-+ push rbx
-+ push r12
-+ push r13
-+ push r14
-+ push r15
-+ sub rsp, 160
-+ ;; Use aligned instrs as we are certain that the stack is properly aligned.
-+ movdqa xmmword ptr [rsp + 144], xmm6
-+ movdqa xmmword ptr [rsp + 128], xmm7
-+ movdqa xmmword ptr [rsp + 112], xmm8
-+ movdqa xmmword ptr [rsp + 96], xmm9
-+ movdqa xmmword ptr [rsp + 80], xmm10
-+ movdqa xmmword ptr [rsp + 64], xmm11
-+ movdqa xmmword ptr [rsp + 48], xmm12
-+ movdqa xmmword ptr [rsp + 32], xmm13
-+ movdqa xmmword ptr [rsp + 16], xmm14
-+ movdqa xmmword ptr [rsp], xmm15
-+ ;; Pass 1st parameter (rcx) unchanged (Stack*).
-+ ;; Pass 2nd parameter (rdx) unchanged (StackVisitor*).
-+ ;; Save 3rd parameter (r8; IterateStackCallback)
-+ mov r9, r8
-+ ;; Pass 3rd parameter as rsp (stack pointer).
-+ mov r8, rsp
-+ ;; Call the callback.
-+ call r9
-+ ;; Pop the callee-saved registers.
-+ add rsp, 224
-+ ;; Restore rbp as it was used as frame pointer.
-+ pop rbp
-+ ret
-+
-+end
-diff --git a/src/heap/base/asm/x64/save_registers_asm.cc b/src/heap/base/asm/x64/save_registers_asm.cc
-deleted file mode 100644
-index 855a654..0000000
---- a/v8/src/heap/base/asm/x64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,94 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--//
--// We cannot rely on clang generating the function and right symbol mangling
--// as `__attribute__((naked))` does not prevent clang from generating TSAN
--// function entry stubs (`__tsan_func_entry`). Even with
--// `__attribute__((no_sanitize_thread)` annotation clang generates the entry
--// stub.
--// See https://bugs.llvm.org/show_bug.cgi?id=45400.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--// _WIN64 Defined as 1 when the compilation target is 64-bit ARM or x64.
--// Otherwise, undefined.
--
--#ifdef _WIN64
--// Source: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
--
--// 7 64-bit registers + 1 for alignment purposes = 8 * 1 = 8 intprt_t
--// 10 128-bit registers = 10 * 2 = 20 intptr_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 28,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".globl SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // %rcx: [ intptr_t* buffer ]
-- // %rbp is callee-saved. Maintain proper frame pointer for debugging.
-- " push %rbp \n"
-- " mov %rsp, %rbp \n"
-- // Save the callee-saved registers.
-- " mov %rsi, 0(%rcx) \n"
-- " mov %rdi, 8(%rcx) \n"
-- " mov %rbx, 16(%rcx) \n"
-- " mov %r12, 24(%rcx) \n"
-- " mov %r13, 32(%rcx) \n"
-- " mov %r14, 40(%rcx) \n"
-- " mov %r15, 48(%rcx) \n"
-- // Skip one slot to achieve proper alignment and use aligned instructions,
-- // as we are sure that the buffer is properly aligned.
-- " movdqa %xmm6, 64(%rcx) \n"
-- " movdqa %xmm7, 80(%rcx) \n"
-- " movdqa %xmm8, 96(%rcx) \n"
-- " movdqa %xmm9, 112(%rcx) \n"
-- " movdqa %xmm10, 128(%rcx) \n"
-- " movdqa %xmm11, 144(%rcx) \n"
-- " movdqa %xmm12, 160(%rcx) \n"
-- " movdqa %xmm13, 176(%rcx) \n"
-- " movdqa %xmm14, 192(%rcx) \n"
-- " movdqa %xmm15, 208(%rcx) \n"
-- // Return.
-- " pop %rbp \n"
-- " ret \n");
--
--#else // !_WIN64
--// Source: https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-1.0.pdf
--
--// 5 64-bit registers = 5 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 5,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(
--#ifdef __APPLE__
-- ".globl _SaveCalleeSavedRegisters \n"
-- ".private_extern _SaveCalleeSavedRegisters \n"
-- "_SaveCalleeSavedRegisters: \n"
--#else // !__APPLE__
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif // !__APPLE__
-- // %rdi: [ intptr_t* buffer ]
-- // %rbp is callee-saved. Maintain proper frame pointer for debugging.
-- " push %rbp \n"
-- " mov %rsp, %rbp \n"
-- // Save the callee-saved registers.
-- " mov %rbx, 0(%rdi) \n"
-- " mov %r12, 8(%rdi) \n"
-- " mov %r13, 16(%rdi) \n"
-- " mov %r14, 24(%rdi) \n"
-- " mov %r15, 32(%rdi) \n"
-- // Restore %rbp as it was used as frame pointer and return.
-- " pop %rbp \n"
-- " ret \n");
--
--#endif // !_WIN64
-diff --git a/src/heap/base/asm/x64/save_registers_masm.asm b/src/heap/base/asm/x64/save_registers_masm.asm
-deleted file mode 100644
-index 29946a4..0000000
---- a/v8/src/heap/base/asm/x64/save_registers_masm.asm
-+++ /dev/null
-@@ -1,43 +0,0 @@
--;; Copyright 2020 the V8 project authors. All rights reserved.
--;; Use of this source code is governed by a BSD-style license that can be
--;; found in the LICENSE file.
--
--;; MASM syntax
--;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
--
--public SaveCalleeSavedRegisters
--
--.code
-- ;; Save all callee-saved registers in the specified buffer.
-- ;; extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--SaveCalleeSavedRegisters:
-- ;; %rcx: [ intptr_t* buffer ]
-- ;; %rbp is callee-saved. Maintain proper frame pointer for debugging.
-- push rbp
-- mov rbp, rsp
-- ;; Save the callee-saved registers.
-- mov qword ptr [rcx], rsi
-- mov qword ptr [rcx + 8], rdi
-- mov qword ptr [rcx + 16], rbx
-- mov qword ptr [rcx + 24], r12
-- mov qword ptr [rcx + 32], r13
-- mov qword ptr [rcx + 40], r14
-- mov qword ptr [rcx + 48], r15
-- ;; Skip one slot to achieve proper alignment and use aligned instructions,
-- ;; as we are sure that the buffer is properly aligned.
-- movdqa xmmword ptr [rcx + 64], xmm6
-- movdqa xmmword ptr [rcx + 80], xmm7
-- movdqa xmmword ptr [rcx + 96], xmm8
-- movdqa xmmword ptr [rcx + 112], xmm9
-- movdqa xmmword ptr [rcx + 128], xmm10
-- movdqa xmmword ptr [rcx + 144], xmm11
-- movdqa xmmword ptr [rcx + 160], xmm12
-- movdqa xmmword ptr [rcx + 176], xmm13
-- movdqa xmmword ptr [rcx + 192], xmm14
-- movdqa xmmword ptr [rcx + 208], xmm15
-- ;; Restore %rbp as it was used as frame pointer and return.
-- pop rbp
-- ret
--
--end
-diff --git a/src/heap/base/stack.cc b/src/heap/base/stack.cc
-index d8e618d..54a8697 100644
---- a/v8/src/heap/base/stack.cc
-+++ b/v8/src/heap/base/stack.cc
-@@ -6,18 +6,21 @@
-
- #include <limits>
-
-+#include "src/base/platform/platform.h"
- #include "src/base/sanitizer/asan.h"
- #include "src/base/sanitizer/msan.h"
- #include "src/base/sanitizer/tsan.h"
-
- namespace heap::base {
-
--Stack::Stack(const void* stack_start) : stack_start_(stack_start) {}
--
--void Stack::SetStackStart(const void* stack_start) {
-- DCHECK(!context_);
-- stack_start_ = stack_start;
--}
-+// Function with architecture-specific implementation:
-+// Pushes all callee-saved registers to the stack and invokes the callback,
-+// passing the supplied pointers (stack and argument) and the intended stack
-+// marker.
-+using IterateStackCallback = void (*)(const Stack*, StackVisitor*, const void*);
-+extern "C" void PushAllRegistersAndIterateStack(const Stack* stack,
-+ StackVisitor* visitor,
-+ IterateStackCallback callback);
-
- bool Stack::IsOnStack(const void* slot) const {
- DCHECK_NOT_NULL(stack_start_);
-@@ -141,97 +144,62 @@
-
- } // namespace
-
--void Stack::IteratePointers(StackVisitor* visitor) const {
-- DCHECK_NOT_NULL(stack_start_);
-- DCHECK(context_);
-- DCHECK_NOT_NULL(context_->stack_marker);
--
-+// static
-+void Stack::IteratePointersImpl(const Stack* stack, StackVisitor* visitor,
-+ const void* stack_end) {
- #ifdef V8_USE_ADDRESS_SANITIZER
- const void* asan_fake_stack = __asan_get_current_fake_stack();
- #else
- const void* asan_fake_stack = nullptr;
- #endif // V8_USE_ADDRESS_SANITIZER
-
-- // Iterate through the registers.
-- for (intptr_t value : context_->registers) {
-- const void* address = reinterpret_cast<const void*>(value);
-- MSAN_MEMORY_IS_INITIALIZED(&address, sizeof(address));
-- if (address == nullptr) continue;
-- visitor->VisitPointer(address);
-- IterateAsanFakeFrameIfNecessary(visitor, asan_fake_stack, stack_start_,
-- context_->stack_marker, address);
-- }
--
- // Iterate through the stack.
- // All supported platforms should have their stack aligned to at least
- // sizeof(void*).
- constexpr size_t kMinStackAlignment = sizeof(void*);
-- CHECK_EQ(0u, reinterpret_cast<uintptr_t>(context_->stack_marker) &
-- (kMinStackAlignment - 1));
-- IteratePointersInStack(
-- visitor, reinterpret_cast<const void* const*>(context_->stack_marker),
-- stack_start_, asan_fake_stack);
-+ CHECK_EQ(0u,
-+ reinterpret_cast<uintptr_t>(stack_end) & (kMinStackAlignment - 1));
-+ IteratePointersInStack(visitor,
-+ reinterpret_cast<const void* const*>(stack_end),
-+ stack->stack_start_, asan_fake_stack);
-
-- for (const auto& stack : inactive_stacks_) {
-- IteratePointersInStack(visitor, stack.top, stack.start, asan_fake_stack);
-+ for (const auto& segment : stack->inactive_stacks_) {
-+ IteratePointersInStack(visitor, segment.top, segment.start,
-+ asan_fake_stack);
- }
-
- IterateUnsafeStackIfNecessary(visitor);
- }
-
--namespace {
--// Function with architecture-specific implementation:
--// Saves all callee-saved registers in the specified buffer.
--extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
-+void Stack::IteratePointers(StackVisitor* visitor) const {
-+ // TODO(v8:13493): Remove the implication as soon as IsOnCurrentStack is
-+ // compatible with stack switching.
-+ DCHECK_IMPLIES(!wasm_stack_switching_, IsOnCurrentStack(stack_start_));
-+ PushAllRegistersAndIterateStack(this, visitor, &IteratePointersImpl);
-+ // No need to deal with callee-saved registers as they will be kept alive by
-+ // the regular conservative stack iteration.
-+ // TODO(chromium:1056170): Add support for SIMD and/or filtering.
-+ IterateUnsafeStackIfNecessary(visitor);
-+}
-+
-+void Stack::IteratePointersUnsafe(StackVisitor* visitor,
-+ const void* stack_end) const {
-+ DCHECK_NOT_NULL(stack_start_);
-+ DCHECK_NOT_NULL(stack_end);
-+ DCHECK_GE(stack_start_, stack_end);
-+ IteratePointersImpl(this, visitor, stack_end);
-+}
-
- #ifdef DEBUG
--
--bool IsOnCurrentStack(const void* ptr) {
-+// static
-+bool Stack::IsOnCurrentStack(const void* ptr) {
- DCHECK_NOT_NULL(ptr);
- const void* current_stack_start = v8::base::Stack::GetStackStart();
- const void* current_stack_top = v8::base::Stack::GetCurrentStackPosition();
- return ptr <= current_stack_start && ptr >= current_stack_top;
- }
--
- #endif // DEBUG
-
--} // namespace
--
--void Stack::SaveContext(bool check_invariant) {
-- // TODO(v8:13493): Remove the method's parameter and the implication as soon
-- // as IsOnCurrentStack is compatible with stack switching.
-- DCHECK_IMPLIES(check_invariant, IsOnCurrentStack(stack_start_));
-- // Contexts can be nested but the marker and the registers are only saved on
-- // the first invocation.
-- if (context_) {
-- ++context_->nesting_counter;
-- return;
-- }
-- // Allocate the context and set the marker.
-- const void* stack_top = v8::base::Stack::GetCurrentStackPosition();
-- DCHECK_NOT_NULL(stack_top);
-- context_ = std::make_unique<Context>(stack_top);
-- // TODO(v8:13493): Remove the implication as soon as IsValidMarker is
-- // compatible with stack switching.
-- DCHECK_IMPLIES(check_invariant, stack_top <= stack_start_);
-- context_->stack_marker = stack_top;
-- // Save the registers.
-- SaveCalleeSavedRegisters(context_->registers.data());
--}
--
--void Stack::ClearContext(bool check_invariant) {
-- // TODO(v8:13493): Remove the method's parameter and the implication as soon
-- // as IsOnCurrentStack is compatible with stack switching.
-- DCHECK_IMPLIES(check_invariant, IsOnCurrentStack(stack_start_));
-- DCHECK(context_);
-- // Skip clearing the context if that was a nested invocation.
-- if (context_->nesting_counter > 0) {
-- --context_->nesting_counter;
-- return;
-- }
-- context_.reset();
--}
--
- void Stack::AddStackSegment(const void* start, const void* top) {
- DCHECK_LE(top, start);
- inactive_stacks_.push_back({start, top});
-diff --git a/src/heap/base/stack.h b/src/heap/base/stack.h
-index 06edf4c..4b0a14e 100644
---- a/v8/src/heap/base/stack.h
-+++ b/v8/src/heap/base/stack.h
-@@ -5,10 +5,9 @@
- #ifndef V8_HEAP_BASE_STACK_H_
- #define V8_HEAP_BASE_STACK_H_
-
--#include <memory>
-+#include <vector>
-
- #include "src/base/macros.h"
--#include "src/base/platform/platform.h"
-
- namespace heap::base {
-
-@@ -30,96 +29,54 @@
- // of relevant GC stack regions where interesting pointers can be found.
- class V8_EXPORT_PRIVATE Stack final {
- public:
-- // The size of the buffer for storing the callee-saved registers is going to
-- // be equal to kNumberOfCalleeSavedRegisters * sizeof(intptr_t).
-- // This is architecture-specific.
-- static constexpr int NumberOfCalleeSavedRegisters() {
-- return Context::kNumberOfCalleeSavedRegisters;
-- }
--
-- explicit Stack(const void* stack_start = nullptr);
-+ explicit Stack(const void* stack_start = nullptr,
-+ bool wasm_stack_switching = false)
-+ : stack_start_(stack_start),
-+ wasm_stack_switching_(wasm_stack_switching) {}
-
- // Sets the start of the stack.
-- void SetStackStart(const void* stack_start);
-+ void SetStackStart(const void* stack_start, bool wasm_stack_switching) {
-+ stack_start_ = stack_start;
-+ wasm_stack_switching_ = wasm_stack_switching;
-+ }
-
- // Returns true if |slot| is part of the stack and false otherwise.
- bool IsOnStack(const void* slot) const;
-
-- // Word-aligned iteration of the stack and the saved registers.
-- // Slot values are passed on to `visitor`.
-+ // Word-aligned iteration of the stack. Callee-saved registers are pushed to
-+ // the stack before iterating pointers. Slot values are passed on to
-+ // `visitor`.
- void IteratePointers(StackVisitor* visitor) const;
-
-- // Saves and clears the stack context, i.e., it sets the stack marker and
-- // saves the registers.
-- // TODO(v8:13493): The parameter is for suppressing the invariant check in
-- // the case of WASM stack switching. It will be removed as soon as context
-- // saving becomes compatible with stack switching.
-- void SaveContext(bool check_invariant = true);
-- void ClearContext(bool check_invariant = true);
-+ // Word-aligned iteration of the stack, starting at `stack_end`. Slot values
-+ // are passed on to `visitor`. This is intended to be used with verifiers that
-+ // only visit a subset of the stack of IteratePointers().
-+ //
-+ // **Ignores:**
-+ // - Callee-saved registers.
-+ // - SafeStack.
-+ void IteratePointersUnsafe(StackVisitor* visitor,
-+ const void* stack_end) const;
-
- void AddStackSegment(const void* start, const void* top);
- void ClearStackSegments();
-
- private:
-- struct Context {
-- // The following constant is architecture-specific.
--#if V8_HOST_ARCH_IA32
-- // Must be consistent with heap/base/asm/ia32/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 3;
--#elif V8_HOST_ARCH_X64
--#ifdef _WIN64
-- // Must be consistent with heap/base/asm/x64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 28;
--#else // !_WIN64
-- // Must be consistent with heap/base/asm/x64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 5;
--#endif // !_WIN64
--#elif V8_HOST_ARCH_ARM64
-- // Must be consistent with heap/base/asm/arm64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 11;
--#elif V8_HOST_ARCH_ARM
-- // Must be consistent with heap/base/asm/arm/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 8;
--#elif V8_HOST_ARCH_PPC64
-- // Must be consistent with heap/base/asm/ppc/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 20;
--#elif V8_HOST_ARCH_PPC
-- // Must be consistent with heap/base/asm/ppc/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 20;
--#elif V8_HOST_ARCH_MIPS64
-- // Must be consistent with heap/base/asm/mips64el/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 9;
--#elif V8_HOST_ARCH_LOONG64
-- // Must be consistent with heap/base/asm/loong64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 11;
--#elif V8_HOST_ARCH_S390
-- // Must be consistent with heap/base/asm/s390/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 10;
--#elif V8_HOST_ARCH_RISCV32
-- // Must be consistent with heap/base/asm/riscv/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 12;
--#elif V8_HOST_ARCH_RISCV64
-- // Must be consistent with heap/base/asm/riscv/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 12;
--#else
--#error Unknown architecture.
-+#ifdef DEBUG
-+ static bool IsOnCurrentStack(const void* ptr);
- #endif
-
-- explicit Context(const void* marker) : stack_marker(marker) {}
--
-- int nesting_counter = 0;
-- const void* stack_marker;
-- // We always double-align this buffer, to support for longer registers,
-- // e.g., 128-bit registers in WIN64.
-- alignas(2 * sizeof(intptr_t))
-- std::array<intptr_t, kNumberOfCalleeSavedRegisters> registers;
-- };
-+ static void IteratePointersImpl(const Stack* stack, StackVisitor* visitor,
-+ const void* stack_end);
-
- const void* stack_start_;
-- std::unique_ptr<Context> context_;
-
-- // Stack segments that may also contain pointers and should be
-- // scanned.
-+ // TODO(v8:13493): This is for suppressing the check that we are in the
-+ // correct stack, in the case of WASM stack switching. It will be removed as
-+ // soon as context saving becomes compatible with stack switching.
-+ bool wasm_stack_switching_;
-+
-+ // Stack segments that may also contain pointers and should be scanned.
- struct StackSegments {
- const void* start;
- const void* top;
-diff --git a/src/heap/cppgc-js/cpp-heap.cc b/src/heap/cppgc-js/cpp-heap.cc
-index c27c612..63c5212 100644
---- a/v8/src/heap/cppgc-js/cpp-heap.cc
-+++ b/v8/src/heap/cppgc-js/cpp-heap.cc
-@@ -16,6 +16,7 @@
- #include "src/base/logging.h"
- #include "src/base/macros.h"
- #include "src/base/optional.h"
-+#include "src/base/platform/platform.h"
- #include "src/base/platform/time.h"
- #include "src/execution/isolate-inl.h"
- #include "src/flags/flags.h"
-@@ -839,7 +840,7 @@
- const size_t bytes_allocated_in_prefinalizers = ExecutePreFinalizers();
- #if CPPGC_VERIFY_HEAP
- UnifiedHeapMarkingVerifier verifier(*this, *collection_type_);
-- verifier.Run(stack_state_of_prev_gc(),
-+ verifier.Run(stack_state_of_prev_gc(), stack_end_of_current_gc(),
- stats_collector()->marked_bytes_on_current_cycle() +
- bytes_allocated_in_prefinalizers);
- #endif // CPPGC_VERIFY_HEAP
-@@ -942,7 +943,7 @@
- // Finish sweeping in case it is still running.
- sweeper().FinishIfRunning();
-
-- SaveStackContextScope stack_context_scope(stack());
-+ SetStackEndOfCurrentGC(v8::base::Stack::GetCurrentStackPosition());
-
- if (isolate_) {
- reinterpret_cast<v8::Isolate*>(isolate_)
-diff --git a/src/heap/cppgc/heap-base.h b/src/heap/cppgc/heap-base.h
-index ac1dd3f..29a88b2 100644
---- a/v8/src/heap/cppgc/heap-base.h
-+++ b/v8/src/heap/cppgc/heap-base.h
-@@ -183,6 +183,13 @@
- stack_state_of_prev_gc_ = stack_state;
- }
-
-+ const void* stack_end_of_current_gc() const {
-+ return stack_end_of_current_gc_;
-+ }
-+ void SetStackEndOfCurrentGC(const void* stack_end) {
-+ stack_end_of_current_gc_ = stack_end;
-+ }
-+
- void SetInAtomicPauseForTesting(bool value) { in_atomic_pause_ = value; }
-
- virtual void StartIncrementalGarbageCollectionForTesting() = 0;
-@@ -288,6 +295,10 @@
- EmbedderStackState::kNoHeapPointers;
- std::unique_ptr<EmbedderStackState> override_stack_state_;
-
-+ // Marker that signals end of the interesting stack region in which on-heap
-+ // pointers can be found.
-+ const void* stack_end_of_current_gc_ = nullptr;
-+
- bool in_atomic_pause_ = false;
-
- int creation_thread_id_ = v8::base::OS::GetCurrentThreadId();
-diff --git a/src/heap/cppgc/heap.cc b/src/heap/cppgc/heap.cc
-index 7769412..28a11fc 100644
---- a/v8/src/heap/cppgc/heap.cc
-+++ b/v8/src/heap/cppgc/heap.cc
-@@ -166,10 +166,9 @@
- DCHECK(!in_no_gc_scope());
- CHECK(!in_disallow_gc_scope());
- config_.stack_state = stack_state;
-+ SetStackEndOfCurrentGC(v8::base::Stack::GetCurrentStackPosition());
- in_atomic_pause_ = true;
-
-- stack()->SaveContext();
--
- #if defined(CPPGC_YOUNG_GENERATION)
- // Check if the young generation was enabled. We must enable young generation
- // before calling the custom weak callbacks to make sure that the callbacks
-@@ -188,7 +187,7 @@
- const size_t bytes_allocated_in_prefinalizers = ExecutePreFinalizers();
- #if CPPGC_VERIFY_HEAP
- MarkingVerifier verifier(*this, config_.collection_type);
-- verifier.Run(config_.stack_state,
-+ verifier.Run(config_.stack_state, stack_end_of_current_gc(),
- stats_collector()->marked_bytes_on_current_cycle() +
- bytes_allocated_in_prefinalizers);
- #endif // CPPGC_VERIFY_HEAP
-@@ -197,8 +196,6 @@
- #endif
- USE(bytes_allocated_in_prefinalizers);
-
-- stack()->ClearContext();
--
- #if defined(CPPGC_YOUNG_GENERATION)
- ResetRememberedSet();
- #endif // defined(CPPGC_YOUNG_GENERATION)
-diff --git a/src/heap/cppgc/marking-verifier.cc b/src/heap/cppgc/marking-verifier.cc
-index 5508766..b7127c2 100644
---- a/v8/src/heap/cppgc/marking-verifier.cc
-+++ b/v8/src/heap/cppgc/marking-verifier.cc
-@@ -45,7 +45,8 @@
- collection_type_(collection_type) {}
-
- void MarkingVerifierBase::Run(
-- StackState stack_state, v8::base::Optional<size_t> expected_marked_bytes) {
-+ StackState stack_state, const void* stack_end,
-+ v8::base::Optional<size_t> expected_marked_bytes) {
- Traverse(heap_.raw_heap());
- // Avoid verifying the stack when running with TSAN as the TSAN runtime changes
- // stack contents when e.g. working with locks. Specifically, the marker uses
-@@ -62,7 +63,7 @@
- #if !defined(THREAD_SANITIZER) && !defined(CPPGC_POINTER_COMPRESSION)
- if (stack_state == StackState::kMayContainHeapPointers) {
- in_construction_objects_ = &in_construction_objects_stack_;
-- heap_.stack()->IteratePointers(this);
-+ heap_.stack()->IteratePointersUnsafe(this, stack_end);
- // The objects found through the unsafe iteration are only a subset of the
- // regular iteration as they miss objects held alive only from callee-saved
- // registers that are never pushed on the stack and SafeStack.
-diff --git a/src/heap/cppgc/marking-verifier.h b/src/heap/cppgc/marking-verifier.h
-index 5132b3a..5136f29 100644
---- a/v8/src/heap/cppgc/marking-verifier.h
-+++ b/v8/src/heap/cppgc/marking-verifier.h
-@@ -41,7 +41,7 @@
- MarkingVerifierBase(const MarkingVerifierBase&) = delete;
- MarkingVerifierBase& operator=(const MarkingVerifierBase&) = delete;
-
-- void Run(StackState, v8::base::Optional<size_t>);
-+ void Run(StackState, const void*, v8::base::Optional<size_t>);
-
- protected:
- MarkingVerifierBase(HeapBase&, CollectionType, VerificationState&,
-diff --git a/src/heap/heap.cc b/src/heap/heap.cc
-index 4994a3a..f4b7da0 100644
---- a/v8/src/heap/heap.cc
-+++ b/v8/src/heap/heap.cc
-@@ -1685,7 +1685,22 @@
- DevToolsTraceEventScope devtools_trace_event_scope(
- this, IsYoungGenerationCollector(collector) ? "MinorGC" : "MajorGC",
- GarbageCollectionReasonToString(gc_reason));
-- SaveStackContextScope stack_context_scope(&stack());
-+
-+ if (cpp_heap()) {
-+ if (collector == GarbageCollector::MARK_COMPACTOR ||
-+ (collector == GarbageCollector::MINOR_MARK_COMPACTOR &&
-+ CppHeap::From(cpp_heap())->generational_gc_supported())) {
-+ // CppHeap needs a stack marker at the top of all entry points to allow
-+ // deterministic passes over the stack. E.g., a verifier that should
-+ // only find a subset of references of the marker.
-+ //
-+ // TODO(chromium:1056170): Consider adding a component that keeps track
-+ // of relevant GC stack regions where interesting pointers can be found.
-+ static_cast<v8::internal::CppHeap*>(cpp_heap())
-+ ->SetStackEndOfCurrentGC(
-+ v8::base::Stack::GetCurrentStackPosition());
-+ }
-+ }
-
- GarbageCollectionPrologue(gc_reason, gc_callback_flags);
- {
-@@ -2396,8 +2411,6 @@
- DCHECK(incremental_marking_->IsStopped());
- DCHECK_NOT_NULL(isolate()->global_safepoint());
-
-- SaveStackContextScope stack_context_scope(&stack());
--
- isolate()->global_safepoint()->IterateClientIsolates([](Isolate* client) {
- client->heap()->FreeSharedLinearAllocationAreas();
-
-@@ -5809,7 +5822,12 @@
- }
-
- void Heap::SetStackStart(void* stack_start) {
-- stack().SetStackStart(stack_start);
-+#if V8_ENABLE_WEBASSEMBLY
-+ stack().SetStackStart(stack_start,
-+ v8_flags.experimental_wasm_stack_switching);
-+#else
-+ stack().SetStackStart(stack_start, false);
-+#endif // V8_ENABLE_WEBASSEMBLY
- }
-
- ::heap::base::Stack& Heap::stack() {
-@@ -6391,8 +6409,7 @@
- filtering_(filtering),
- filter_(nullptr),
- space_iterator_(nullptr),
-- object_iterator_(nullptr),
-- stack_context_scope_(&heap->stack()) {
-+ object_iterator_(nullptr) {
- heap_->MakeHeapIterable();
- // Start the iteration.
- space_iterator_ = new SpaceIterator(heap_);
-@@ -7371,28 +7388,5 @@
- CppClassNamesAsHeapObjectNameScope::~CppClassNamesAsHeapObjectNameScope() =
- default;
-
--SaveStackContextScope::SaveStackContextScope(::heap::base::Stack* stack)
-- : stack_(stack) {
--#if V8_ENABLE_WEBASSEMBLY
-- // TODO(v8:13493): Do not check the stack context invariant if WASM stack
-- // switching is enabled. This will be removed as soon as context saving
-- // becomes compatible with stack switching.
-- stack_->SaveContext(!v8_flags.experimental_wasm_stack_switching);
--#else
-- stack_->SaveContext();
--#endif // V8_ENABLE_WEBASSEMBLY
--}
--
--SaveStackContextScope::~SaveStackContextScope() {
--#if V8_ENABLE_WEBASSEMBLY
-- // TODO(v8:13493): Do not check the stack context invariant if WASM stack
-- // switching is enabled. This will be removed as soon as context saving
-- // becomes compatible with stack switching.
-- stack_->ClearContext(!v8_flags.experimental_wasm_stack_switching);
--#else
-- stack_->ClearContext();
--#endif // V8_ENABLE_WEBASSEMBLY
--}
--
- } // namespace internal
- } // namespace v8
-diff --git a/src/heap/heap.h b/src/heap/heap.h
-index c93d89c..bc565ca 100644
---- a/v8/src/heap/heap.h
-+++ b/v8/src/heap/heap.h
-@@ -2633,17 +2633,6 @@
- Heap* heap_;
- };
-
--// TODO(v8:13493): This class will move to src/heap/base/stack.h once its
--// implementation no longer needs access to V8 flags.
--class V8_EXPORT_PRIVATE V8_NODISCARD SaveStackContextScope {
-- public:
-- explicit SaveStackContextScope(::heap::base::Stack* stack);
-- ~SaveStackContextScope();
--
-- protected:
-- ::heap::base::Stack* stack_;
--};
--
- class V8_NODISCARD DisableConservativeStackScanningScopeForTesting {
- public:
- explicit inline DisableConservativeStackScanningScopeForTesting(Heap* heap)
-@@ -2695,7 +2684,6 @@
- SpaceIterator* space_iterator_;
- // Object iterator for the space currently being iterated.
- std::unique_ptr<ObjectIterator> object_iterator_;
-- SaveStackContextScope stack_context_scope_;
-
- DISALLOW_GARBAGE_COLLECTION(no_heap_allocation_)
- };
-diff --git a/src/profiler/heap-snapshot-generator.cc b/src/profiler/heap-snapshot-generator.cc
-index e076418..f0b3058 100644
---- a/v8/src/profiler/heap-snapshot-generator.cc
-+++ b/v8/src/profiler/heap-snapshot-generator.cc
-@@ -2055,16 +2055,14 @@
- // its custom name to a generic builtin.
- RootsReferencesExtractor extractor(this);
- ReadOnlyRoots(heap_).Iterate(&extractor);
-- {
-- SaveStackContextScope scope(&heap_->stack());
-- heap_->IterateRoots(&extractor, base::EnumSet<SkipRoot>{SkipRoot::kWeak});
-- // TODO(v8:11800): The heap snapshot generator incorrectly considers the
-- // weak string tables as strong retainers. Move IterateWeakRoots after
-- // SetVisitingWeakRoots.
-- heap_->IterateWeakRoots(&extractor, {});
-- extractor.SetVisitingWeakRoots();
-- heap_->IterateWeakGlobalHandles(&extractor);
-- }
-+ heap_->IterateRoots(&extractor, base::EnumSet<SkipRoot>{SkipRoot::kWeak});
-+ // TODO(v8:11800): The heap snapshot generator incorrectly considers the weak
-+ // string tables as strong retainers. Move IterateWeakRoots after
-+ // SetVisitingWeakRoots.
-+ heap_->IterateWeakRoots(&extractor, {});
-+ extractor.SetVisitingWeakRoots();
-+ heap_->IterateWeakGlobalHandles(&extractor);
-+
- bool interrupted = false;
-
- CombinedHeapObjectIterator iterator(heap_,
diff --git a/chromium-111-v8-std-layout2.patch b/chromium-111-v8-std-layout2.patch
deleted file mode 100644
index db983af..0000000
--- a/chromium-111-v8-std-layout2.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From 916641c08de44e0a915df223d55781c6c912717c Mon Sep 17 00:00:00 2001
-From: Nikolaos Papaspyrou <nikolaos(a)chromium.org>
-Date: Thu, 19 Jan 2023 13:43:10 +0100
-Subject: [PATCH] [heap] Move the Stack object from ThreadLocalTop to Isolate
-
-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: I026a35af3bc6999a09b21f277756d4454c086343
-
-(stripped tests)
----
-
-diff --git a/src/execution/isolate.cc b/src/execution/isolate.cc
-index 31536a1..22b8492 100644
---- a/v8/src/execution/isolate.cc
-+++ b/v8/src/execution/isolate.cc
-@@ -3069,21 +3069,23 @@
- 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();
-- heap()->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();
- }
- }
-@@ -3371,23 +3373,13 @@
- Isolate* saved_isolate = isolate->TryGetCurrent();
- SetIsolateThreadLocals(isolate, nullptr);
- isolate->set_thread_id(ThreadId::Current());
-- if (saved_isolate) {
-- isolate->thread_local_top()->stack_ =
-- std::move(saved_isolate->thread_local_top()->stack_);
-- } else {
-- isolate->heap()->SetStackStart(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
-@@ -4652,6 +4644,10 @@
- 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 afc3d0b..415e476 100644
---- a/v8/src/execution/isolate.h
-+++ b/v8/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"
-@@ -2028,6 +2029,8 @@
- 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
-@@ -2526,6 +2529,9 @@
- // 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 c115ae0..05cc20b 100644
---- a/v8/src/execution/thread-local-top.cc
-+++ b/v8/src/execution/thread-local-top.cc
-@@ -37,7 +37,6 @@
- current_embedder_state_ = nullptr;
- failed_access_check_callback_ = nullptr;
- thread_in_wasm_flag_address_ = kNullAddress;
-- stack_ = ::heap::base::Stack();
- }
-
- void ThreadLocalTop::Initialize(Isolate* isolate) {
-@@ -45,12 +44,8 @@
- isolate_ = isolate;
- thread_id_ = ThreadId::Current();
- #if V8_ENABLE_WEBASSEMBLY
-- stack_.SetStackStart(base::Stack::GetStackStart(),
-- v8_flags.experimental_wasm_stack_switching);
- thread_in_wasm_flag_address_ = reinterpret_cast<Address>(
- trap_handler::GetThreadInWasmThreadLocalAddress());
--#else
-- stack_.SetStackStart(base::Stack::GetStackStart(), false);
- #endif // V8_ENABLE_WEBASSEMBLY
- #ifdef USE_SIMULATOR
- simulator_ = Simulator::current(isolate);
-diff --git a/src/execution/thread-local-top.h b/src/execution/thread-local-top.h
-index 43fec0a..989c817 100644
---- a/v8/src/execution/thread-local-top.h
-+++ b/v8/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 @@
- // 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 @@
-
- // 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 f4b7da0..6efd486 100644
---- a/v8/src/heap/heap.cc
-+++ b/v8/src/heap/heap.cc
-@@ -5830,9 +5830,7 @@
- #endif // V8_ENABLE_WEBASSEMBLY
- }
-
--::heap::base::Stack& Heap::stack() {
-- return isolate_->thread_local_top()->stack_;
--}
-+::heap::base::Stack& Heap::stack() { return isolate_->stack(); }
-
- void Heap::StartTearDown() {
- // Finish any ongoing sweeping to avoid stray background tasks still accessing
diff --git a/chromium-94.0.4606.71-InkDropHost-crash.patch b/chromium-94.0.4606.71-InkDropHost-crash.patch
deleted file mode 100644
index b5e2794..0000000
--- a/chromium-94.0.4606.71-InkDropHost-crash.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h
---- chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash 2021-10-05 16:04:46.313586509 -0400
-+++ chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h 2021-10-05 16:05:12.213732558 -0400
-@@ -228,6 +228,11 @@ class VIEWS_EXPORT InkDropHost {
- // Used to observe View and inform the InkDrop of host-transform changes.
- ViewLayerTransformObserver host_view_transform_observer_;
-
-+ // Declared before |ink_drop_|, because InkDropImpl may call
-+ // RemoveInkDropLayer on partly destructed InkDropHost. In
-+ // that case |ink_drop_mask_| must be still valid.
-+ std::unique_ptr<views::InkDropMask> ink_drop_mask_;
-+
- // Should not be accessed directly. Use GetInkDrop() instead.
- std::unique_ptr<InkDrop> ink_drop_;
-
-@@ -249,8 +254,6 @@ class VIEWS_EXPORT InkDropHost {
- int ink_drop_small_corner_radius_ = 2;
- int ink_drop_large_corner_radius_ = 4;
-
-- std::unique_ptr<views::InkDropMask> ink_drop_mask_;
--
- base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
- base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
- create_ink_drop_ripple_callback_;
diff --git a/chromium-v4l2-fix.patch b/chromium-v4l2-fix.patch
deleted file mode 100644
index 1ae7530..0000000
--- a/chromium-v4l2-fix.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-commit e775ac4770bb1e5dfbfe22c5b56752ed4a2317c5
-Author: Hirokazu Honda <hiroh(a)chromium.org>
-Date: Tue Jan 17 17:54:02 2023 +0000
-
- Revert "media/gpu/v4l2VEA,IP: Workaround to USERPTR API against read-only buf"
-
- This reverts commit 203fdd03a4317f2eac57161ee101515a82df704f.
-
- Reason for revert: This workaround is no longer required because of
- the kernel patch was reverted.
-
- Original change's description:
- > media/gpu/v4l2VEA,IP: Workaround to USERPTR API against read-only buf
- >
- > VideoFrame fed in VEA::Encode() is read-only since R107 if the
- > VideoFrame has a shared memory. V4L2VideoEncodeAccelerator fails
- > because VIDOC_QBUF with USERPTR buffer fails if the pointers
- > references a read-only buffer.
- > The USERPTR API issue is apparently to be fixed by a kernel side.
- > In the meantime, this CL adds the workaround to the issue; the read
- > only buffer is copied to a writable temporary buffer every Encode
- > before VIDIOC_QBUF.
- > Not that VideoFrame has a shared memory in the case of screen share
- > because a camera stack produces GpuMemoryBuffer.
- >
- > Bug: b:243883312
- > Test: video_encode_accelerator_tests on elm, kevin and trogdor
- > Test: screen share in Google Meet on elm, kevin and trogdor
- > Change-Id: I922d98eaf52f80d9cd6c3784a8544bffb1232856
- > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3891421
- > Reviewed-by: Nathan Hebert <nhebert(a)chromium.org>
- > Commit-Queue: Hirokazu Honda <hiroh(a)chromium.org>
- > Cr-Commit-Position: refs/heads/main@{#1046659}
-
- Bug: b:243883312, b:261660224
- Change-Id: I6fe37276f2ebe8c8730cfd3dd766b04277b32a67
- Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4091205
- Reviewed-by: Nathan Hebert <nhebert(a)chromium.org>
- Commit-Queue: Hirokazu Honda <hiroh(a)chromium.org>
- Cr-Commit-Position: refs/heads/main@{#1093388}
-
-diff --git a/media/gpu/v4l2/v4l2_image_processor_backend.cc b/media/gpu/v4l2/v4l2_image_processor_backend.cc
-index dc72a4ac060a9..f3049f4546e2e 100644
---- a/media/gpu/v4l2/v4l2_image_processor_backend.cc
-+++ b/media/gpu/v4l2/v4l2_image_processor_backend.cc
-@@ -925,35 +925,16 @@ bool V4L2ImageProcessorBackend::EnqueueInputRecord(
-
- switch (input_memory_type_) {
- case V4L2_MEMORY_USERPTR: {
-- VideoFrame& frame = *job_record->input_frame;
- const size_t num_planes = V4L2Device::GetNumPlanesOfV4L2PixFmt(
- input_config_.fourcc.ToV4L2PixFmt());
- std::vector<void*> user_ptrs(num_planes);
-- if (frame.storage_type() == VideoFrame::STORAGE_SHMEM) {
-- // TODO(b/243883312): This copies the video frame to a writable buffer
-- // since the USERPTR API requires writable permission. Remove this
-- // workaround once the unreasonable permission is fixed.
-- const size_t buffer_size = frame.shm_region()->GetSize();
-- std::vector<uint8_t> writable_buffer(buffer_size);
-- std::memcpy(writable_buffer.data(), frame.data(0), buffer_size);
-- for (size_t i = 0; i < num_planes; ++i) {
-- const std::intptr_t plane_offset =
-- reinterpret_cast<std::intptr_t>(frame.data(i)) -
-- reinterpret_cast<std::intptr_t>(frame.data(0));
-- user_ptrs[i] = writable_buffer.data() + plane_offset;
-- }
-- job_record->input_frame->AddDestructionObserver(base::BindOnce(
-- [](std::vector<uint8_t>) {}, std::move(writable_buffer)));
-- } else {
-- for (size_t i = 0; i < num_planes; ++i)
-- user_ptrs[i] = frame.writable_data(i);
-- }
--
- for (size_t i = 0; i < num_planes; ++i) {
- int bytes_used =
-- VideoFrame::PlaneSize(frame.format(), i, input_config_.size)
-+ VideoFrame::PlaneSize(job_record->input_frame->format(), i,
-+ input_config_.size)
- .GetArea();
- buffer.SetPlaneBytesUsed(i, bytes_used);
-+ user_ptrs[i] = const_cast<uint8_t*>(job_record->input_frame->data(i));
- }
- if (!std::move(buffer).QueueUserPtr(user_ptrs)) {
- VPLOGF(1) << "Failed to queue a DMABUF buffer to input queue";
-diff --git a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
-index 56389ea3eec08..d452ba48a69e2 100644
---- a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
-+++ b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
-@@ -783,7 +783,7 @@ void V4L2VideoEncodeAccelerator::EncodeTask(scoped_refptr<VideoFrame> frame,
- const bool is_expected_storage_type =
- native_input_mode_
- ? frame->storage_type() == VideoFrame::STORAGE_GPU_MEMORY_BUFFER
-- : frame->storage_type() == VideoFrame::STORAGE_SHMEM;
-+ : frame->IsMappable();
- if (!is_expected_storage_type) {
- VLOGF(1) << "Unexpected storage: "
- << VideoFrame::StorageTypeToString(frame->storage_type());
-@@ -1392,27 +1392,16 @@ bool V4L2VideoEncodeAccelerator::EnqueueInputRecord(
- NOTIFY_ERROR(kPlatformFailureError);
- }
-
-- // TODO(b/243883312): This copies the video frame to a writable buffer
-- // since the USERPTR API requires writable permission. Remove this
-- // workaround once the unreasonable permission is fixed.
-- const size_t buffer_size = frame->shm_region()->GetSize();
-- std::vector<uint8_t> writable_buffer(buffer_size);
-- std::memcpy(writable_buffer.data(), frame->data(0), buffer_size);
-+ // The frame data is readable only and the driver doesn't actually write
-+ // the buffer. But USRPTR buffer needs void*. So const_cast<> is required.
- std::vector<void*> user_ptrs(num_planes);
- for (size_t i = 0; i < num_planes; ++i) {
-- const std::intptr_t plane_offset =
-- reinterpret_cast<std::intptr_t>(frame->data(i)) -
-- reinterpret_cast<std::intptr_t>(frame->data(0));
-- user_ptrs[i] = writable_buffer.data() + plane_offset;
-+ user_ptrs[i] = const_cast<uint8_t*>(frame->data(i));
- }
--
- if (!std::move(input_buf).QueueUserPtr(std::move(user_ptrs))) {
-- VPLOGF(1) << "Failed to queue a USRPTR buffer to input queue";
-- NOTIFY_ERROR(kPlatformFailureError);
-+ VPLOGF(1) << "Failed queue a USRPTR buffer to input queue";
- return false;
- }
-- frame->AddDestructionObserver(
-- base::DoNothingWithBoundArgs(std::move(writable_buffer)));
- break;
- }
- case V4L2_MEMORY_DMABUF: {
-@@ -1421,6 +1410,7 @@ bool V4L2VideoEncodeAccelerator::EnqueueInputRecord(
- VPLOGF(1) << "Failed queue a DMABUF buffer to input queue";
- return false;
- }
-+
- // Keep |gmb_handle| alive as long as |frame| is alive so that fds passed
- // to the driver are valid during encoding.
- frame->AddDestructionObserver(base::BindOnce(
diff --git a/chromium.spec b/chromium.spec
index 8c8cd9b..81a6c64 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -190,8 +190,6 @@
%global bundlelibwebp 0
%global bundlelibpng 0
%global bundlelibjpeg 0
-# Needs FT_ClipBox which was implemented after 2.11.0. Should be able to set this back to 0 later.
-%global bundlefreetype 1
%global bundlelibdrm 0
%global bundlefontconfig 0
%global bundleffmpegfree 0
@@ -201,6 +199,12 @@
%else
%global bundlelibaom 0
%endif
+# system freetype on fedora > 36
+%if 0%{?fedora} > 36
+%global bundlefreetype 0
+%else
+%global bundlefreetype 1
+%endif
%endif
### From 2013 until early 2021, Google permitted distribution builds of
@@ -237,7 +241,7 @@
%endif
Name: chromium%{chromium_channel}
-Version: 110.0.5481.177
+Version: 111.0.5563.50
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
@@ -274,9 +278,6 @@ Patch11: chromium-93.0.4577.63-py3-bootstrap.patch
# Add "Fedora" to the user agent string
Patch12: chromium-101.0.4951.41-fedora-user-agent.patch
-# numeric_limits is not a member of std
-Patch13: chromium-110-limits.patch
-
# debian patch, disable font-test
Patch20: chromium-disable-font-tests.patch
@@ -292,9 +293,6 @@ Patch57: chromium-96.0.4664.45-missing-cstring.patch
# Fix headers to look for system paths when we are using system minizip
Patch61: chromium-109-system-minizip-header-fix.patch
-# Update bundled copy of wayland-client-core.h
-Patch62: chromium-105.0.5195.52-update-wayland-client-core.patch
-
# Fix issue where closure_compiler thinks java is only allowed in android builds
# https://bugs.chromium.org/p/chromium/issues/detail?id=1192875
Patch65: chromium-91.0.4472.77-java-only-allowed-in-android-builds.patch
@@ -321,9 +319,6 @@ Patch91: chromium-108-system-opus.patch
# fix prefers-color-scheme
Patch92: chromium-110-gtktheme.patch
-# From gentoo
-Patch98: chromium-94.0.4606.71-InkDropHost-crash.patch
-
# need to explicitly include a kernel header on EL7 to support MFD_CLOEXEC, F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
Patch100: chromium-108-el7-include-fcntl-memfd.patch
@@ -369,21 +364,6 @@ Patch122: chromium-109-gcc13.patch
# Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches
Patch130: chromium-103-VirtualCursor-std-layout.patch
-Patch131: chromium-110-CanvasResourceProvider-pragma.patch
-Patch132: chromium-110-CredentialUIEntry-const.patch
-Patch133: chromium-110-DarkModeLABColorSpace-pow.patch
-Patch134: chromium-110-dpf-arm64.patch
-Patch135: chromium-110-InProgressDownloadManager-include.patch
-Patch136: chromium-110-kCustomizeChromeColors-type.patch
-Patch137: chromium-110-NativeThemeBase-fabs.patch
-Patch138: chromium-110-Presenter-include.patch
-Patch139: chromium-110-raw_ptr-constexpr.patch
-Patch140: chromium-110-StorageQueue-decltype.patch
-Patch141: chromium-110-SyncIterator-template.patch
-Patch142: chromium-110-url_canon_internal-cast.patch
-Patch143: chromium-110-v8-gcc.patch
-Patch144: chromium-111-v8-std-layout1.patch
-Patch145: chromium-111-v8-std-layout2.patch
# VAAPI
# Upstream turned VAAPI on in Linux in 86
@@ -391,10 +371,6 @@ Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
Patch205: chromium-86.0.4240.75-fix-vaapi-on-intel.patch
Patch206: chromium-110-ozone-wayland-vaapi-support.patch
-# V4L2
-# Upstream
-Patch250: chromium-v4l2-fix.patch
-
# Apply these patches to work around EPEL8 issues
Patch300: chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch
@@ -907,8 +883,8 @@ without support for alsa, cups, dbus, gconf, gio, kerberos, pulseaudio, or
udev.
%prep
-
%setup -q -n chromium-%{version}
+
### Chromium Fedora Patches ###
%patch0 -p1 -b .sandboxpie
%patch1 -p1 -b .etc
@@ -920,13 +896,6 @@ udev.
%patch9 -p1 -b .widevine-no-download
%patch11 -p1 -b .py3
-# Fedora branded user agent
-%if 0%{?fedora}
-%patch12 -p1 -b .fedora-user-agent
-%endif
-
-%patch13 -p1 -b .limits
-
%patch20 -p1 -b .disable-font-test
%if 0%{?fedora} || 0%{?rhel} >= 8
@@ -957,7 +926,10 @@ udev.
%patch92 -p1 -b .gtk-prefers-color-scheme
-%patch98 -p1 -b .InkDropHost-crash
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch12 -p1 -b .fedora-user-agent
+%endif
%if ! %{bundleffmpegfree}
%patch114 -p1 -b .system-ffmppeg
@@ -984,21 +956,6 @@ udev.
%endif
%patch130 -p1 -b .VirtualCursor-std-layout
-%patch131 -p1 -b .CanvasResourceProvider-pragma
-%patch132 -p1 -b .CredentialUIEntry-const
-%patch133 -p1 -b .DarkModeLABColorSpace-pow
-%patch134 -p1 -b .dpf-arm64
-%patch135 -p1 -b .InProgressDownloadManager-include
-%patch136 -p1 -b .kCustomizeChromeColors-type
-%patch137 -p1 -b .NativeThemeBase-fabs
-%patch138 -p1 -b .Presenter-include
-%patch139 -p1 -b .raw_ptr-constexpr
-%patch140 -p1 -b .StorageQueue-decltype
-%patch141 -p1 -b .SyncIterator-template
-%patch142 -p1 -b .url_canon_internal-cast
-%patch143 -p1 -b .v8-gcc
-%patch144 -p1 -b .v8-std-layout1
-%patch145 -p1 -b .v8-std-layout2
%if %{use_qt}
%patch121 -p1 -b .enable-allowqt
@@ -1013,10 +970,6 @@ udev.
%patch206 -p1 -b .wayland-vaapi
%endif
-%if %{use_v4l2_codec}
-%patch250 -p1 -b .v4l2-fix
-%endif
-
%if 0%{?rhel} >= 8
%patch300 -p1 -b .disblegnomekeyring
%endif
@@ -1180,12 +1133,6 @@ CHROMIUM_CORE_GN_DEFINES+=' enable_vr=false'
CHROMIUM_CORE_GN_DEFINES+=' build_dawn_tests=false enable_perfetto_unittests=false'
CHROMIUM_CORE_GN_DEFINES+=' disable_fieldtrial_testing_config=true'
CHROMIUM_CORE_GN_DEFINES+=' blink_symbol_level=0 symbol_level=0 v8_symbol_level=0'
-%ifarch aarch64
-%if 0%{?rhel} == 8
-# workaround crash on el8
-CHROMIUM_CORE_GN_DEFINES+=' use_partition_alloc_as_malloc=false enable_backup_ref_ptr_support=false'
-%endif
-%endif
export CHROMIUM_CORE_GN_DEFINES
# browser gn defines
@@ -1593,11 +1540,11 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/libclearkeycdm.so
%endif
%ifarch x86_64 aarch64
-%{chromium_path}/libEGL.so*
-%{chromium_path}/libGLESv2.so*
%{chromium_path}/libvk_swiftshader.so*
%{chromium_path}/libvulkan.so*
%{chromium_path}/vk_swiftshader_icd.json
+%{chromium_path}/libEGL.so*
+%{chromium_path}/libGLESv2.so*
%endif
%{chromium_path}/icudtl.dat
%dir %{chromium_path}/
@@ -1699,6 +1646,10 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
+* Mon Mar 06 2023 Than Ngo <than(a)redhat.com> - 111.0.5563.50-1
+- update to 111.0.5563.50
+- system freetype on fedora > 36
+
* Thu Feb 23 2023 Than Ngo <than(a)redhat.com> - 110.0.5481.177-1
- update to 110.0.5481.177
- workaround for crash on aarch64, rhel8
diff --git a/sources b/sources
index 9aca39c..7f2d4f8 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (node-v16.17.0-linux-x64.tar.xz) = aedfeeb71420a7fbcb07fbc4c5d2ba74ffe4f88c15998809346a84148132ec866dbae4e848531a2a77ca41413f442e1046f981d4f188bdf667faf88069aa28cd
SHA512 (node-v16.17.0-linux-arm64.tar.xz) = ae4aabc2389779c9e1b4a15622cae3ba50e0c313ca3d7a1dc7b2344df06ade1f303d6a75b941d37e2a0ef368cf047c862a822a893684494f55446afd6ab0610e
-SHA512 (chromium-110.0.5481.177-clean.tar.xz) = 3cc3fe325bf773e5da9137272741eda61ca620289a27c1bc16cd3e165f5adc6ebaa00139351c324fcc491497e47659188673edd9b7fd33a2771636d153b69213
+SHA512 (chromium-111.0.5563.50-clean.tar.xz) = 4576e080a55cc1dabf65e14d5380310ee93bfe50e40823adb963bf47d3bbe668b39ef41c3f5e7b8c2aebc8161915926a2f6b37c39cc0289898e515e600743e3c
1 year, 3 months
Architecture specific change in rpms/chromium.git
by githook-noreply@fedoraproject.org
The package rpms/chromium.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/chromium.git/commit/?id=c86221443....
Change:
-%ifarch aarch64
Thanks.
Full change:
============
commit 5ce9757b9218a8d7e8a55825da3f690222b0cb19
Author: Than Ngo <than(a)redhat.com>
Date: Wed Mar 8 08:21:13 2023 +0100
update to 111.0.5563.64
diff --git a/chromium-109-clang14-c++20-link-error.patch b/chromium-109-clang14-c++20-link-error.patch
deleted file mode 100644
index 530915c..0000000
--- a/chromium-109-clang14-c++20-link-error.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -up chromium-109.0.5414.74/build/config/compiler/BUILD.gn.link-error-clang14 chromium-109.0.5414.74/build/config/compiler/BUILD.gn
---- chromium-109.0.5414.74/build/config/compiler/BUILD.gn.link-error-clang14 2023-01-11 18:00:34.692512606 +0100
-+++ chromium-109.0.5414.74/build/config/compiler/BUILD.gn 2023-01-11 18:30:10.905410122 +0100
-@@ -601,12 +601,7 @@ config("compiler") {
- cflags_cc += [ "-fno-trigraphs" ]
- }
- } else if (is_clang) {
-- if (is_chromeos_device) {
-- # TODO(crbug.com/1392471): Support C++20 in CrOS toolchain.
-- cflags_cc += [ "-std=${standard_prefix}++17" ]
-- } else {
-- cflags_cc += [ "-std=${standard_prefix}++20" ]
-- }
-+ cflags_cc += [ "-std=${standard_prefix}++17" ]
- } else {
- # The gcc bots are currently using GCC 9, which is not new enough to
- # support "c++20"/"gnu++20".
diff --git a/chromium-110-limits.patch b/chromium-110-limits.patch
new file mode 100644
index 0000000..31a4c1e
--- /dev/null
+++ b/chromium-110-limits.patch
@@ -0,0 +1,11 @@
+diff -up chromium-110.0.5481.177/base/memory/ref_counted.h.me chromium-110.0.5481.177/base/memory/ref_counted.h
+--- chromium-110.0.5481.177/base/memory/ref_counted.h.me 2023-02-23 13:34:33.174817255 -0500
++++ chromium-110.0.5481.177/base/memory/ref_counted.h 2023-02-23 13:42:28.646052469 -0500
+@@ -6,6 +6,7 @@
+ #define BASE_MEMORY_REF_COUNTED_H_
+
+ #include <stddef.h>
++#include <limits>
+
+ #include <utility>
+
diff --git a/chromium.spec b/chromium.spec
index 44e9b54..23e3cae 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -241,7 +241,7 @@
%endif
Name: chromium%{chromium_channel}
-Version: 111.0.5563.50
+Version: 111.0.5563.64
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
@@ -284,6 +284,9 @@ Patch20: chromium-disable-font-tests.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/...
Patch52: chromium-81.0.4044.92-unbundle-zlib.patch
+# missing limits.h, error: no member named 'numeric_limits' in namespace 'std'
+Patch53: chromium-110-limits.patch
+
# ../../third_party/perfetto/include/perfetto/base/task_runner.h:48:55: error: 'uint32_t' has not been declared
Patch56: chromium-96.0.4664.45-missing-cstdint-header.patch
@@ -352,10 +355,6 @@ Patch116: chromium-108-ffmpeg-first_dts.patch
# revert new-channel-layout-api on f36, old ffmpeg-free
Patch117: chromium-108-ffmpeg-revert-new-channel-layout-api.patch
-# clang =< 14 and C++20, linker errors std::u16string
-# build failure on rhel and fedora 36
-Patch120: chromium-109-clang14-c++20-link-error.patch
-
# enable Qt
Patch121: chromium-108-enable-allowqt.patch
@@ -365,6 +364,7 @@ Patch122: chromium-109-gcc13.patch
# Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches
Patch130: chromium-103-VirtualCursor-std-layout.patch
+# Pagesize > 4kb
Patch146: chromium-110-LargerThan4k.patch
# VAAPI
@@ -904,6 +904,7 @@ udev.
%patch52 -p1 -b .unbundle-zlib
%endif
+%patch53 -p1 -b .limits-header
%patch56 -p1 -b .missing-cstdint
%patch57 -p1 -b .missing-cstring
@@ -953,10 +954,6 @@ udev.
%patch107 -p1 -b .el7-extra-operator-equalequal
%endif
-%if 0%{?rhel} || 0%{?fedora} == 36
-%patch120 -p1 -b .link-error-clang14
-%endif
-
%patch130 -p1 -b .VirtualCursor-std-layout
%patch146 -p1 -b .LargerThan4k
@@ -1137,6 +1134,11 @@ CHROMIUM_CORE_GN_DEFINES+=' enable_vr=false'
CHROMIUM_CORE_GN_DEFINES+=' build_dawn_tests=false enable_perfetto_unittests=false'
CHROMIUM_CORE_GN_DEFINES+=' disable_fieldtrial_testing_config=true'
CHROMIUM_CORE_GN_DEFINES+=' blink_symbol_level=0 symbol_level=0 v8_symbol_level=0'
+# clang =< 14 and C++20, linker errors std::u16string
+# build failure on rhel and fedora 36
+%if 0%{?rhel} || 0%{?fedora} == 36
+CHROMIUM_CORE_GN_DEFINES+=' use_cxx17=true'
+%endif
export CHROMIUM_CORE_GN_DEFINES
# browser gn defines
@@ -1650,6 +1652,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
+* Tue Mar 07 2023 Than Ngo <than(a)redhat.com> - 111.0.5563.64-1
+- update to 111.0.5563.64
+
* Mon Mar 06 2023 Than Ngo <than(a)redhat.com> - 111.0.5563.50-1
- update to 111.0.5563.50
- system freetype on fedora > 36
diff --git a/sources b/sources
index 7f2d4f8..0510b02 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (node-v16.17.0-linux-x64.tar.xz) = aedfeeb71420a7fbcb07fbc4c5d2ba74ffe4f88c15998809346a84148132ec866dbae4e848531a2a77ca41413f442e1046f981d4f188bdf667faf88069aa28cd
SHA512 (node-v16.17.0-linux-arm64.tar.xz) = ae4aabc2389779c9e1b4a15622cae3ba50e0c313ca3d7a1dc7b2344df06ade1f303d6a75b941d37e2a0ef368cf047c862a822a893684494f55446afd6ab0610e
-SHA512 (chromium-111.0.5563.50-clean.tar.xz) = 4576e080a55cc1dabf65e14d5380310ee93bfe50e40823adb963bf47d3bbe668b39ef41c3f5e7b8c2aebc8161915926a2f6b37c39cc0289898e515e600743e3c
+SHA512 (chromium-111.0.5563.64-clean.tar.xz) = c31c672d5f301cacdb3357337ffb369e63b7d25b031e124798fb04a0c845b178b23fdffec2647b8bedc90a1482d249d64926e98a18eb21399873a0d23c3cda98
commit fc64fd023d2cd6227b0cad37ce127ccc4e1716df
Merge: c862214 90d57b6
Author: Tom Callaway <spot(a)fedoraproject.org>
Date: Tue Mar 7 11:12:32 2023 +0000
Merge #32 `Fix for systems with page size larger than 4k`
diff --cc chromium.spec
index 81a6c64,94535f3..44e9b54
--- a/chromium.spec
+++ b/chromium.spec
@@@ -364,7 -369,24 +364,9 @@@ Patch122: chromium-109-gcc13.patc
# Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches
Patch130: chromium-103-VirtualCursor-std-layout.patch
-Patch131: chromium-110-CanvasResourceProvider-pragma.patch
-Patch132: chromium-110-CredentialUIEntry-const.patch
-Patch133: chromium-110-DarkModeLABColorSpace-pow.patch
-Patch134: chromium-110-dpf-arm64.patch
-Patch135: chromium-110-InProgressDownloadManager-include.patch
-Patch136: chromium-110-kCustomizeChromeColors-type.patch
-Patch137: chromium-110-NativeThemeBase-fabs.patch
-Patch138: chromium-110-Presenter-include.patch
-Patch139: chromium-110-raw_ptr-constexpr.patch
-Patch140: chromium-110-StorageQueue-decltype.patch
-Patch141: chromium-110-SyncIterator-template.patch
-Patch142: chromium-110-url_canon_internal-cast.patch
-Patch143: chromium-110-v8-gcc.patch
-Patch144: chromium-111-v8-std-layout1.patch
-Patch145: chromium-111-v8-std-layout2.patch
+ Patch146: chromium-110-LargerThan4k.patch
+
# VAAPI
# Upstream turned VAAPI on in Linux in 86
Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
@@@ -956,7 -986,24 +958,9 @@@ udev
%endif
%patch130 -p1 -b .VirtualCursor-std-layout
-%patch131 -p1 -b .CanvasResourceProvider-pragma
-%patch132 -p1 -b .CredentialUIEntry-const
-%patch133 -p1 -b .DarkModeLABColorSpace-pow
-%patch134 -p1 -b .dpf-arm64
-%patch135 -p1 -b .InProgressDownloadManager-include
-%patch136 -p1 -b .kCustomizeChromeColors-type
-%patch137 -p1 -b .NativeThemeBase-fabs
-%patch138 -p1 -b .Presenter-include
-%patch139 -p1 -b .raw_ptr-constexpr
-%patch140 -p1 -b .StorageQueue-decltype
-%patch141 -p1 -b .SyncIterator-template
-%patch142 -p1 -b .url_canon_internal-cast
-%patch143 -p1 -b .v8-gcc
-%patch144 -p1 -b .v8-std-layout1
-%patch145 -p1 -b .v8-std-layout2
+ %patch146 -p1 -b .LargerThan4k
+
%if %{use_qt}
%patch121 -p1 -b .enable-allowqt
%endif
commit 90d57b6808a58d46802ee83cab70ed802b42e680
Author: Eric Curtin <ecurtin(a)redhat.com>
Date: Tue Mar 7 10:24:49 2023 +0000
Fix for systems with page size larger than 4k
Discovered on Fedora Asahi Remix by Asahi Lina.
diff --git a/chromium-110-LargerThan4k.patch b/chromium-110-LargerThan4k.patch
new file mode 100644
index 0000000..374f487
--- /dev/null
+++ b/chromium-110-LargerThan4k.patch
@@ -0,0 +1,86 @@
+From 96ee2a8e20bb7a7c4fb19e27dc31ff5c6a472849 Mon Sep 17 00:00:00 2001
+From: Ryan Gonzalez <rymg19(a)gmail.com>
+Date: Mon, 06 Mar 2023 20:22:25 -0600
+Subject: [PATCH] AddressTrackerLinux: Increase the message buffer size
+
+On non-4k-page systems, the message sizes may be too large to fit into
+the buffer, resulting in MSG_TRUNC. Instead of using the fixed 4kb size,
+follow the kernel documentation guidelines as to how large the buffer
+should be.
+
+Originally found by Asahi Lina:
+
+https://vt.social/@lina/109976892758680822
+
+Bug: None
+Change-Id: I4790435190167a706fa7490ab57706db1f4a6120
+---
+
+diff --git a/net/base/address_tracker_linux.cc b/net/base/address_tracker_linux.cc
+index 4976cae..f1a1fff 100644
+--- a/net/base/address_tracker_linux.cc
++++ b/net/base/address_tracker_linux.cc
+@@ -14,6 +14,7 @@
+ #include "base/files/scoped_file.h"
+ #include "base/functional/callback_helpers.h"
+ #include "base/logging.h"
++#include "base/memory/page_size.h"
+ #include "base/posix/eintr_wrapper.h"
+ #include "base/task/current_thread.h"
+ #include "base/threading/scoped_blocking_call.h"
+@@ -323,8 +324,30 @@
+ *address_changed = false;
+ *link_changed = false;
+ *tunnel_changed = false;
+- char buffer[4096];
+ bool first_loop = true;
++
++ // Varying sources have different opinions regarding the buffer size needed
++ // for netlink messages to avoid truncation:
++ // - The official documentation on netlink says messages are generally 8kb
++ // or the system page size, whichever is *larger*:
++ // https://www.kernel.org/doc/html/v6.2/userspace-api/netlink/intro.html#buf...
++ // - The kernel headers would imply that messages are generally the system
++ // page size or 8kb, whichever is *smaller*:
++ // https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/inc...
++ // (libmnl follows this.)
++ // - The netlink(7) man page's example always uses a fixed size 8kb buffer:
++ // https://man7.org/linux/man-pages/man7/netlink.7.html
++ // Here, we follow the guidelines in the documentation, for two primary
++ // reasons:
++ // - Erring on the side of a larger size is the safer way to go to avoid
++ // MSG_TRUNC.
++ // - Since this is heap-allocated anyway, there's no risk to the stack by
++ // using the larger size.
++
++ constexpr size_t kMinNetlinkBufferSize = 8 * 1024;
++ std::vector<char> buffer(
++ std::max(base::GetPageSize(), kMinNetlinkBufferSize));
++
+ {
+ absl::optional<base::ScopedBlockingCall> blocking_call;
+ if (tracking_) {
+@@ -334,9 +357,10 @@
+ }
+
+ for (;;) {
+- int rv = HANDLE_EINTR(recv(netlink_fd_.get(), buffer, sizeof(buffer),
+- // Block the first time through loop.
+- first_loop ? 0 : MSG_DONTWAIT));
++ int rv =
++ HANDLE_EINTR(recv(netlink_fd_.get(), buffer.data(), buffer.size(),
++ // Block the first time through loop.
++ first_loop ? 0 : MSG_DONTWAIT));
+ first_loop = false;
+ if (rv == 0) {
+ LOG(ERROR) << "Unexpected shutdown of NETLINK socket.";
+@@ -348,7 +372,8 @@
+ PLOG(ERROR) << "Failed to recv from netlink socket";
+ return;
+ }
+- HandleMessage(buffer, rv, address_changed, link_changed, tunnel_changed);
++ HandleMessage(buffer.data(), rv, address_changed, link_changed,
++ tunnel_changed);
+ }
+ }
+ if (*link_changed || *address_changed)
diff --git a/chromium.spec b/chromium.spec
index 8c8cd9b..94535f3 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -385,6 +385,8 @@ Patch143: chromium-110-v8-gcc.patch
Patch144: chromium-111-v8-std-layout1.patch
Patch145: chromium-111-v8-std-layout2.patch
+Patch146: chromium-110-LargerThan4k.patch
+
# VAAPI
# Upstream turned VAAPI on in Linux in 86
Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
@@ -1000,6 +1002,8 @@ udev.
%patch144 -p1 -b .v8-std-layout1
%patch145 -p1 -b .v8-std-layout2
+%patch146 -p1 -b .LargerThan4k
+
%if %{use_qt}
%patch121 -p1 -b .enable-allowqt
%endif
commit c86221443c8502b82d97e6e1e914e274336b21af
Author: Than Ngo <than(a)redhat.com>
Date: Mon Mar 6 16:24:25 2023 +0100
- update to 111.0.5563.50
- system freetype on fedora > 36
diff --git a/chromium-105.0.5195.52-update-wayland-client-core.patch b/chromium-105.0.5195.52-update-wayland-client-core.patch
deleted file mode 100644
index 86c5c22..0000000
--- a/chromium-105.0.5195.52-update-wayland-client-core.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -up chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h.old-wayland chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h
---- chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h.old-wayland 2022-09-01 19:36:06.099483374 +0000
-+++ chromium-105.0.5195.52/third_party/wayland/src/src/wayland-client-core.h 2022-09-01 22:09:56.523353619 +0000
-@@ -119,9 +119,27 @@ struct wl_display;
- */
- struct wl_event_queue;
-
-+/** Destroy proxy after marshalling
-+ * @ingroup wl_proxy
-+ */
-+#define WL_MARSHAL_FLAG_DESTROY (1 << 0)
-+
- void
- wl_event_queue_destroy(struct wl_event_queue *queue);
-
-+struct wl_proxy *
-+wl_proxy_marshal_flags(struct wl_proxy *proxy, uint32_t opcode,
-+ const struct wl_interface *interface,
-+ uint32_t version,
-+ uint32_t flags, ...);
-+
-+struct wl_proxy *
-+wl_proxy_marshal_array_flags(struct wl_proxy *proxy, uint32_t opcode,
-+ const struct wl_interface *interface,
-+ uint32_t version,
-+ uint32_t flags,
-+ union wl_argument *args);
-+
- void
- wl_proxy_marshal(struct wl_proxy *p, uint32_t opcode, ...);
-
diff --git a/chromium-110-CanvasResourceProvider-pragma.patch b/chromium-110-CanvasResourceProvider-pragma.patch
deleted file mode 100644
index 5732e49..0000000
--- a/chromium-110-CanvasResourceProvider-pragma.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 3e1e86ac882ae0ce4b9ec50834a4ff8becd912ab Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Mon, 19 Dec 2022 16:59:46 +0000
-Subject: [PATCH] GCC: move pragmas in blink::CanvasResourceProvider
-
-GCC does not allow using #pragma inside an enum.
-
-Bug: 819294
-Change-Id: I637b5a616b080d17bb719aae9ec8cf06d0f8c464
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111848
-Reviewed-by: Stephen Chenney <schenney(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1084983}
----
-
-diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
-index e898397f..214ab01 100644
---- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
-+++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider.h
-@@ -68,6 +68,8 @@
- public:
- // These values are persisted to logs. Entries should not be renumbered and
- // numeric values should never be reused.
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- enum ResourceProviderType {
- kTexture [[deprecated]] = 0,
- kBitmap = 1,
-@@ -79,11 +81,9 @@
- kPassThrough = 7,
- kSwapChain = 8,
- kSkiaDawnSharedImage [[deprecated]] = 9,
--#pragma GCC diagnostic push
--#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- kMaxValue = kSkiaDawnSharedImage,
--#pragma GCC diagnostic pop
- };
-+#pragma GCC diagnostic pop
-
- // The following parameters attempt to reach a compromise between not flushing
- // too often, and not accumulating an unreasonable backlog. Flushing too
diff --git a/chromium-110-CredentialUIEntry-const.patch b/chromium-110-CredentialUIEntry-const.patch
deleted file mode 100644
index eb68aa2..0000000
--- a/chromium-110-CredentialUIEntry-const.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From b4e56d22275cae5a910463a966a96345430a83ea Mon Sep 17 00:00:00 2001
-From: Ivan Murashov <ivan.murashov(a)lge.com>
-Date: Sat, 17 Dec 2022 12:06:01 +0000
-Subject: [PATCH] libstdc++: Don't use const members in std::vector in password_manager::CredentialUIEntry
-
-Otherwise build fails when building with use_custom_libcxx=false.
-The error example:
-std::vector must have a non-const, non-volatile value_type
-
-Implementation of std::vector in libstdc++ does not allow const.
-
-Bug: 957519
-Change-Id: I089de2d52df25138d74dbf01fdf61d6301b4d871
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111037
-Reviewed-by: Mohamed Amir Yosef <mamir(a)chromium.org>
-Commit-Queue: Mohamed Amir Yosef <mamir(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1084697}
----
-
-diff --git a/components/password_manager/core/browser/ui/credential_ui_entry.cc b/components/password_manager/core/browser/ui/credential_ui_entry.cc
-index 1e0766a..a9a34f7 100644
---- a/components/password_manager/core/browser/ui/credential_ui_entry.cc
-+++ b/components/password_manager/core/browser/ui/credential_ui_entry.cc
-@@ -97,7 +97,7 @@
- // For cases when the notes differ within grouped passwords (e.g: a
- // credential exists in both account and profile stores), respective notes
- // should be concatenated and linebreak used as a delimiter.
-- std::vector<const std::u16string> notes_with_duplicates;
-+ std::vector<std::u16string> notes_with_duplicates;
- for (const auto& form : forms) {
- // Only notes with an empty `unique_display_name` are supported in the
- // settings UI.
-@@ -109,7 +109,7 @@
- }
- auto unique_notes =
- base::MakeFlatSet<std::u16string>(std::move(notes_with_duplicates));
-- note = base::JoinString(std::vector<const std::u16string>(
-+ note = base::JoinString(std::vector<std::u16string>(
- unique_notes.begin(), unique_notes.end()),
- u"\n");
-
diff --git a/chromium-110-DarkModeLABColorSpace-pow.patch b/chromium-110-DarkModeLABColorSpace-pow.patch
deleted file mode 100644
index 91f1aee..0000000
--- a/chromium-110-DarkModeLABColorSpace-pow.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 795c311aae4b718585bc6194189f061000c823a1 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Fri, 23 Dec 2022 14:28:55 +0000
-Subject: [PATCH] libstdc++: fix narrowing in blink::DarkModeLABColorSpace
-
-Clang-14 errors out with narrowing from double to float. Use std::pow
-instead.
----
- .../renderer/platform/graphics/dark_mode_lab_color_space.h | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h b/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
-index 999c3e5..c18ea7b 100644
---- a/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
-+++ b/third_party/blink/renderer/platform/graphics/dark_mode_lab_color_space.h
-@@ -125,7 +125,7 @@ class DarkModeLABColorSpace {
- // https://en.wikipedia.org/wiki/CIELAB_color_space#Reverse_transformation.
- SkV3 FromXYZ(const SkV3& v) const {
- auto f = [](float x) {
-- return x > kSigma3 ? pow(x, 1.0f / 3.0f)
-+ return x > kSigma3 ? std::pow(x, 1.0f / 3.0f)
- : x / (3 * kSigma2) + 4.0f / 29.0f;
- };
-
-@@ -145,7 +145,8 @@ class DarkModeLABColorSpace {
- // https://en.wikipedia.org/wiki/CIELAB_color_space#Forward_transformation.
- SkV3 ToXYZ(const SkV3& lab) const {
- auto invf = [](float x) {
-- return x > kSigma ? pow(x, 3.0f) : 3.0f * kSigma2 * (x - 4.0f / 29.0f);
-+ return x > kSigma ? std::pow(x, 3.0f)
-+ : 3.0f * kSigma2 * (x - 4.0f / 29.0f);
- };
-
- SkV3 v = {Clamp(lab.x, 0.0f, 100.0f), Clamp(lab.y, -128.0f, 128.0f),
---
-2.38.2
-
diff --git a/chromium-110-InProgressDownloadManager-include.patch b/chromium-110-InProgressDownloadManager-include.patch
deleted file mode 100644
index adc51db..0000000
--- a/chromium-110-InProgressDownloadManager-include.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 63027c62eaa1b6c5b0d2762a511f1611b15d3728 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Mon, 19 Dec 2022 13:56:17 +0000
-Subject: [PATCH] libstdc++: fix incomplete type of download::InProgressDownloadManager
-
-Destructor of std::unique_ptr in libstdc++ uses sizeof() which
-requires full definition of download::InProgressDownloadManager
-for return type of content::BrowserContext::
-RetrieveInProgressDownloadManager().
-
-Bug: 957519
-Change-Id: If99aa8d52238bacb1cb559a300e14ed3a05b7297
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111526
-Reviewed-by: Bo Liu <boliu(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1084924}
----
-
-diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc
-index 6180969..22e9dbb 100644
---- a/content/browser/browser_context.cc
-+++ b/content/browser/browser_context.cc
-@@ -30,6 +30,7 @@
- #include "base/unguessable_token.h"
- #include "build/build_config.h"
- #include "build/chromeos_buildflags.h"
-+#include "components/download/public/common/in_progress_download_manager.h"
- #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h"
- #include "content/browser/blob_storage/chrome_blob_storage_context.h"
- #include "content/browser/browser_context_impl.h"
diff --git a/chromium-110-NativeThemeBase-fabs.patch b/chromium-110-NativeThemeBase-fabs.patch
deleted file mode 100644
index c7d0e8b..0000000
--- a/chromium-110-NativeThemeBase-fabs.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 07f0a87e4409f27854b3a1d17f270a3497f38947 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Mon, 19 Dec 2022 19:07:37 +0000
-Subject: [PATCH] GCC: use fabsf in ui::NativeThemeBase::OutlineColor
-
-Template deduction fails for base::clamp, because return type of
-fabs is double and all other parameters are float.
-
-Bug: 819294
-Change-Id: I34f1c9c99d13f69097d899bfcb0526cbdf4fe1c1
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110869
-Reviewed-by: Peter Kasting <pkasting(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1085034}
----
-
-diff --git a/ui/native_theme/native_theme_base.cc b/ui/native_theme/native_theme_base.cc
-index 169c60c..36db49a 100644
---- a/ui/native_theme/native_theme_base.cc
-+++ b/ui/native_theme/native_theme_base.cc
-@@ -1336,7 +1336,7 @@
- // The following code has been tested to look OK with all of the
- // default GTK themes.
- SkScalar min_diff = base::clamp((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f);
-- SkScalar diff = base::clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
-+ SkScalar diff = base::clamp(fabsf(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
-
- if (hsv1[2] + hsv2[2] > 1.0)
- diff = -diff;
diff --git a/chromium-110-Presenter-include.patch b/chromium-110-Presenter-include.patch
deleted file mode 100644
index 7cfb84b..0000000
--- a/chromium-110-Presenter-include.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From c69b818a9fce2bf0fb81b280d6f4cc15e6fdb8af Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Fri, 16 Dec 2022 17:13:43 +0000
-Subject: [PATCH] GCC: fix incomplete type of gl::Presenter
-
-GCC requires full definition of gl::Presenter for return type
-of gl::GLOzoneEGL::CreateGLContext() with base::scoped_refptr.
----
- ui/ozone/common/gl_ozone_egl.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/ui/ozone/common/gl_ozone_egl.cc b/ui/ozone/common/gl_ozone_egl.cc
-index 9b1d37e..e745dd7 100644
---- a/ui/ozone/common/gl_ozone_egl.cc
-+++ b/ui/ozone/common/gl_ozone_egl.cc
-@@ -13,6 +13,7 @@
- #include "ui/gl/gl_share_group.h"
- #include "ui/gl/gl_surface.h"
- #include "ui/gl/gl_utils.h"
-+#include "ui/gl/presenter.h"
-
- namespace ui {
-
---
-2.37.4
-
diff --git a/chromium-110-StorageQueue-decltype.patch b/chromium-110-StorageQueue-decltype.patch
deleted file mode 100644
index cd0e66c..0000000
--- a/chromium-110-StorageQueue-decltype.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 200fc7c3ec95bc86f6afb55ca3c691e923463104 Mon Sep 17 00:00:00 2001
-From: Leonid Baraz <lbaraz(a)chromium.org>
-Date: Mon, 19 Dec 2022 21:46:04 +0000
-Subject: [PATCH] GCC: fix usage of decltype in reporting::StorageQueue
-
-GCC does not allow to use decltype for the default value of
-a function parameter.
-
-Bug: 819294
-Change-Id: I7ebb255634375ce889933f8b67acb10f0e56ca8d
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111548
-Reviewed-by: Leonid Baraz <lbaraz(a)chromium.org>
-Commit-Queue: Leonid Baraz <lbaraz(a)chromium.org>
-Reviewed-by: Hong Xu <xuhong(a)google.com>
-Cr-Commit-Position: refs/heads/main@{#1085129}
----
-
-diff --git a/components/reporting/storage/storage_queue.cc b/components/reporting/storage/storage_queue.cc
-index c546d55a..49e0f2c 100644
---- a/components/reporting/storage/storage_queue.cc
-+++ b/components/reporting/storage/storage_queue.cc
-@@ -203,7 +203,6 @@
- encryption_module_(encryption_module),
- compression_module_(compression_module) {
- DETACH_FROM_SEQUENCE(storage_queue_sequence_checker_);
-- DCHECK(write_contexts_queue_.empty());
- }
-
- StorageQueue::~StorageQueue() {
-@@ -2133,9 +2132,7 @@
- }
-
- void StorageQueue::TestInjectErrorsForOperation(
-- base::RepeatingCallback<
-- Status(test::StorageQueueOperationKind operation_kind, int64_t)>
-- handler) {
-+ test::ErrorInjectionHandlerType handler) {
- test_injection_handler_ = handler;
- }
-
-diff --git a/components/reporting/storage/storage_queue.h b/components/reporting/storage/storage_queue.h
-index 39edd8b..04d5f9f 100644
---- a/components/reporting/storage/storage_queue.h
-+++ b/components/reporting/storage/storage_queue.h
-@@ -52,6 +52,9 @@
- kWriteLowDiskSpace,
- };
-
-+using ErrorInjectionHandlerType =
-+ base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>;
-+
- } // namespace test
-
- // Storage queue represents single queue of data to be collected and stored
-@@ -142,8 +145,7 @@
- // can be returned as a resulting operation status too.
- // If `handler` is null, error injections is disabled.
- void TestInjectErrorsForOperation(
-- base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>
-- handler = decltype(handler)());
-+ test::ErrorInjectionHandlerType handler = base::NullCallback());
-
- // Access queue options.
- const QueueOptions& options() const { return options_; }
-@@ -492,8 +494,7 @@
- // Test only: records callback to be invoked. It will be called with operation
- // kind and seq id, and will return Status (non-OK status indicates the
- // failure to be injected). In production code must be null.
-- base::RepeatingCallback<Status(test::StorageQueueOperationKind, int64_t)>
-- test_injection_handler_;
-+ test::ErrorInjectionHandlerType test_injection_handler_{base::NullCallback()};
-
- // Weak pointer factory (must be last member in class).
- base::WeakPtrFactory<StorageQueue> weakptr_factory_{this};
diff --git a/chromium-110-SyncIterator-template.patch b/chromium-110-SyncIterator-template.patch
deleted file mode 100644
index c65c7e2..0000000
--- a/chromium-110-SyncIterator-template.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From da8029438ea8f00a154cb6a1bbc8243de39690de Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Sun, 18 Dec 2022 22:11:58 +0000
-Subject: [PATCH] GCC: remove redundant template parameter from SyncIterator
-
-GCC 12 in C++20 mode does not allow this anymore.
-
-Bug: 819294
-Change-Id: I6b22d3919f08fb72a5b1d69eea59c6e95259c16f
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4111547
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Reviewed-by: Kentaro Hara <haraken(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1084808}
----
-
-diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py b/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
-index 1d67fa2..9cec5094 100644
---- a/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
-+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/sync_iterator.py
-@@ -36,7 +36,7 @@
- member_initializer_list=[
- "${base_class_name}(source, kind)",
- ]),
-- CxxFuncDeclNode(name="~${class_name}",
-+ CxxFuncDeclNode(name="~SyncIterator",
- arg_decls=[],
- return_type="",
- override=True,
diff --git a/chromium-110-dpf-arm64.patch b/chromium-110-dpf-arm64.patch
deleted file mode 100644
index a4ba87b..0000000
--- a/chromium-110-dpf-arm64.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From df728d2e2fe8284316ed083c5a210bca1e50986e Mon Sep 17 00:00:00 2001
-From: Jose Dapena Paz <jdapena(a)igalia.com>
-Date: Mon, 16 Jan 2023 12:53:21 +0100
-Subject: [PATCH] GCC: fix distributed point functions build in ARM64 with SVE
-
-SVE build is broken in ARM64, because distributed_point_functions
-is trying to use operator& and operator|.
-
-Bug:819294
-Change-Id: I465efa475ed59031a2cfaf4172ef9fbd8bb05050
----
- dpf/internal/evaluate_prg_hwy.cc | 34 ++++++++++++++------------------
- 1 file changed, 15 insertions(+), 19 deletions(-)
-
-diff --git a/dpf/internal/evaluate_prg_hwy.cc b/dpf/internal/evaluate_prg_hwy.cc
-index 3d743f4..a1dd8e0 100644
---- a//third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc
-+++ b//third_party/distributed_point_functions/code/dpf/internal/evaluate_prg_hwy.cc
-@@ -124,14 +124,14 @@ auto IsBitSet(D d, const V input, int index) {
-
- // Compute input AND index_64 on 64-bit integers.
- auto input_64 = hn::BitCast(d64, input);
-- input_64 &= index_64;
-+ input_64 = hn::And(input_64, index_64);
-
- // Take the OR of every two adjacent 64-bit integers. This ensures that each
- // half of an 128-bit block is nonzero iff at least one half was nonzero.
-- input_64 |= hn::Shuffle01(input_64);
-+ input_64 = hn::Or(input_64, hn::Shuffle01(input_64));
-
- // Compute a 64-bit mask that checks which integers are nonzero.
-- return input_64 != hn::Zero(d64);
-+ return hn::Ne(input_64, hn::Zero(d64));
- }
-
- // Dummy struct to get HWY_ALIGN as a number, for testing if an array of
-@@ -236,24 +236,20 @@ absl::Status EvaluateSeedsHwy(
- // Apply correction.
- const auto correction_seed = hn::LoadDup128(
- d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
-- vec_0 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_0, correction_seed));
-- vec_1 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_1, correction_seed));
-- vec_2 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_2, correction_seed));
-- vec_3 ^=
-- hn::BitCast(d8, hn::IfThenElseZero(control_mask_3, correction_seed));
-+ vec_0 = hn::Xor(vec_0, hn::BitCast(d8, hn::IfThenElseZero(control_mask_0, correction_seed)));
-+ vec_1 = hn::Xor(vec_1, hn::BitCast(d8, hn::IfThenElseZero(control_mask_1, correction_seed)));
-+ vec_2 = hn::Xor(vec_2, hn::BitCast(d8, hn::IfThenElseZero(control_mask_2, correction_seed)));
-+ vec_3 = hn::Xor(vec_3, hn::BitCast(d8, hn::IfThenElseZero(control_mask_3, correction_seed)));
-
- // Extract control bit for next level.
- const auto next_control_mask_0 = IsBitSet(d8, vec_0, 0);
- const auto next_control_mask_1 = IsBitSet(d8, vec_1, 0);
- const auto next_control_mask_2 = IsBitSet(d8, vec_2, 0);
- const auto next_control_mask_3 = IsBitSet(d8, vec_3, 0);
-- vec_0 &= clear_lowest_bit;
-- vec_1 &= clear_lowest_bit;
-- vec_2 &= clear_lowest_bit;
-- vec_3 &= clear_lowest_bit;
-+ vec_0 = hn::And(vec_0, clear_lowest_bit);
-+ vec_1 = hn::And(vec_1, clear_lowest_bit);
-+ vec_2 = hn::And(vec_2, clear_lowest_bit);
-+ vec_3 = hn::And(vec_3, clear_lowest_bit);
-
- // Perform control bit correction.
- const auto correction_control_mask_left =
-@@ -321,10 +317,10 @@ absl::Status EvaluateSeedsHwy(
- // Apply correction.
- const auto correction_seed = hn::LoadDup128(
- d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
-- vec ^= hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed));
-+ vec = hn::Xor(vec, hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed)));
- // Extract control bit for next level.
- const auto next_control_mask = IsBitSet(d8, vec, 0);
-- vec &= clear_lowest_bit;
-+ vec = hn::And(vec, clear_lowest_bit);
-
- // Perform control bit correction.
- const auto correction_control_mask_left =
-@@ -376,9 +372,9 @@ absl::Status EvaluateSeedsHwy(
- // Perform seed correction.
- const auto correction_seed = hn::LoadDup128(
- d64, reinterpret_cast<const uint64_t*>(correction_seeds + j));
-- vec ^= hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed));
-+ vec = hn::Xor(vec, hn::BitCast(d8, hn::IfThenElseZero(control_mask, correction_seed)));
- const auto next_control_mask = IsBitSet(d8, vec, 0);
-- vec &= clear_lowest_bit;
-+ vec = hn::And(vec, clear_lowest_bit);
- const auto correction_control_mask_left =
- correction_controls_left[j] ? mask_all_one : mask_all_zero;
- const auto correction_control_mask_right =
diff --git a/chromium-110-gtktheme.patch b/chromium-110-gtktheme.patch
index eb94e04..3fcaa26 100644
--- a/chromium-110-gtktheme.patch
+++ b/chromium-110-gtktheme.patch
@@ -23,6 +23,25 @@ index 758d0bf..8c91146 100644
Lenny Khazan <lenny.khazan(a)gmail.com>
Leo Wolf <jclw(a)ymail.com>
Leon Han <leon.han(a)intel.com>
+diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
+index 85c3931..2b0c2a84 100644
+--- a/chrome/common/chrome_features.cc
++++ b/chrome/common/chrome_features.cc
+@@ -1430,12 +1430,12 @@
+ BASE_FEATURE(kWebUIDarkMode,
+ "WebUIDarkMode",
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
+- BUILDFLAG(IS_CHROMEOS)
++ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+ base::FEATURE_DISABLED_BY_DEFAULT
+ #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) ||
+- // BUILDFLAG(IS_CHROMEOS)
++ // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ );
+
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/ui/gtk/native_theme_gtk.cc b/ui/gtk/native_theme_gtk.cc
index a60d6e3..1200a80 100644
--- a/ui/gtk/native_theme_gtk.cc
diff --git a/chromium-110-kCustomizeChromeColors-type.patch b/chromium-110-kCustomizeChromeColors-type.patch
deleted file mode 100644
index ac214da..0000000
--- a/chromium-110-kCustomizeChromeColors-type.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3084e834a211e85f6a17e6f8dceb6b44117211d2 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Wed, 21 Dec 2022 19:22:46 +0000
-Subject: [PATCH] GCC: fix conflicting type for kCustomizeChromeColors
-
-GCC cannot match auto with previous declaration.
-
-Bug: 819294
-Change-Id: Ie648daaf264fb2ea177ac46c8a510d481f6fa2f4
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110870
-Reviewed-by: Tibor Goldschwendt <tiborg(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1086011}
----
-
-diff --git a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
-index 2fccadb..383c9e5 100644
---- a/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
-+++ b/chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_colors.cc
-@@ -31,5 +31,6 @@
-
- } // namespace
-
--const auto kCustomizeChromeColors = MakeCustomizeChromeColors(
-- std::make_index_sequence<std::size(kCustomizeChromeColorIds)>{});
-+const decltype(kCustomizeChromeColors) kCustomizeChromeColors =
-+ MakeCustomizeChromeColors(
-+ std::make_index_sequence<std::size(kCustomizeChromeColorIds)>{});
diff --git a/chromium-110-limits.patch b/chromium-110-limits.patch
deleted file mode 100644
index 31a4c1e..0000000
--- a/chromium-110-limits.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-110.0.5481.177/base/memory/ref_counted.h.me chromium-110.0.5481.177/base/memory/ref_counted.h
---- chromium-110.0.5481.177/base/memory/ref_counted.h.me 2023-02-23 13:34:33.174817255 -0500
-+++ chromium-110.0.5481.177/base/memory/ref_counted.h 2023-02-23 13:42:28.646052469 -0500
-@@ -6,6 +6,7 @@
- #define BASE_MEMORY_REF_COUNTED_H_
-
- #include <stddef.h>
-+#include <limits>
-
- #include <utility>
-
diff --git a/chromium-110-raw_ptr-constexpr.patch b/chromium-110-raw_ptr-constexpr.patch
deleted file mode 100644
index ded5855..0000000
--- a/chromium-110-raw_ptr-constexpr.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From bd3af998439424886c641279b6f9bb6e950c7142 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Sun, 18 Dec 2022 16:12:29 +0000
-Subject: [PATCH] GCC: make raw_ptr::operator bool constexpr
-
-Required because autofill::internal::FormForest uses it in
-a constexpr method.
-
-Bug: 819294
-Change-Id: Ib2258c9d98c2e7f88ad192b517b487f834a87481
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110924
-Reviewed-by: Bartek Nowierski <bartekn(a)chromium.org>
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Cr-Commit-Position: refs/heads/main@{#1084785}
----
-
-diff --git a/base/memory/raw_ptr.h b/base/memory/raw_ptr.h
-index 4191f0e..a22f64b7 100644
---- a/base/memory/raw_ptr.h
-+++ b/base/memory/raw_ptr.h
-@@ -1301,7 +1301,9 @@
- // possible, so use it only if absolutely necessary (e.g. for const_cast).
- PA_ALWAYS_INLINE T* get() const { return GetForExtraction(); }
-
-- explicit PA_ALWAYS_INLINE operator bool() const { return !!wrapped_ptr_; }
-+ constexpr explicit PA_ALWAYS_INLINE operator bool() const {
-+ return !!wrapped_ptr_;
-+ }
-
- template <typename U = T,
- typename Unused = std::enable_if_t<
diff --git a/chromium-110-url_canon_internal-cast.patch b/chromium-110-url_canon_internal-cast.patch
deleted file mode 100644
index 41064a7..0000000
--- a/chromium-110-url_canon_internal-cast.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 740d1102e3fdaaed5441b5656205df9d7e422c3a Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Tue, 20 Dec 2022 20:41:12 +0000
-Subject: [PATCH] GCC: add cast for vector types in url/url_canon_internal.cc
-
-GCC requires lax vector conversion for converting __vector(16) to
-SIMD types. Add explicit cast instead.
-
-Bug: 819294
-Change-Id: Icfc9d3586350af469bfd9d83b355d94806430c43
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4110786
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Reviewed-by: Daniel Cheng <dcheng(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1085617}
----
-
-diff --git a/url/url_canon_internal.cc b/url/url_canon_internal.cc
-index e4f7949..f621920 100644
---- a/url/url_canon_internal.cc
-+++ b/url/url_canon_internal.cc
-@@ -49,11 +49,11 @@
- auto mask = b >= 0x24 && b <= 0x7e && b != 0x27 && b != 0x3c && b != 0x3e;
-
- #ifdef __SSE2__
-- if (_mm_movemask_epi8(mask) != 0xffff) {
-+ if (_mm_movemask_epi8(reinterpret_cast<__m128i>(mask)) != 0xffff) {
- return i;
- }
- #else
-- if (vminvq_u8(mask) == 0) {
-+ if (vminvq_u8(reinterpret_cast<uint8x16_t>(mask)) == 0) {
- return i;
- }
- #endif
diff --git a/chromium-110-v8-gcc.patch b/chromium-110-v8-gcc.patch
deleted file mode 100644
index 4bca19a..0000000
--- a/chromium-110-v8-gcc.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 15d123009b7e987e946309cd5724ae17f376bd16 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09(a)googlemail.com>
-Date: Sun, 18 Dec 2022 16:26:02 +0100
-Subject: [PATCH] GCC: fix selection of IMMEDIATE_CRASH
-
-immediate_crash.h still uses V8_CC_GCC define to determine which
-IMMEDIATE_CRASH macro is used. This should be V8_CC_GNU instead.
-Otherwise weird compile errors are happening with turboshaft.
-
-Bug: chromium:819294
-Change-Id: Id77fe7406ae16a804e1e466844f81d6c728ec008
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4111849
-Commit-Queue: Stephan Hartmann <stha09(a)googlemail.com>
-Reviewed-by: Michael Lippautz <mlippautz(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#84923}
----
-
-diff --git a/src/base/immediate-crash.h b/src/base/immediate-crash.h
-index 770cb27..ce6240b 100644
---- a/v8/src/base/immediate-crash.h
-+++ b/v8/src/base/immediate-crash.h
-@@ -140,9 +140,9 @@
- [] { TRAP_SEQUENCE_(); }(); \
- } while (false)
-
--#endif // !V8_CC_GCC
-+#endif // !V8_CC_GNU
-
--#if defined(__clang__) || V8_CC_GCC
-+#if defined(__clang__) || V8_CC_GNU
-
- // __builtin_unreachable() hints to the compiler that this is noreturn and can
- // be packed in the function epilogue.
diff --git a/chromium-111-v8-std-layout1.patch b/chromium-111-v8-std-layout1.patch
deleted file mode 100644
index 95b2633..0000000
--- a/chromium-111-v8-std-layout1.patch
+++ /dev/null
@@ -1,2229 +0,0 @@
-From 472429e623cf48e864a7a2f10d589817a88289a1 Mon Sep 17 00:00:00 2001
-From: Nikolaos Papaspyrou <nikolaos(a)chromium.org>
-Date: Wed, 18 Jan 2023 21:11:59 +0100
-Subject: [PATCH] [heap] Fix saving the callee-saved registers on stack
-
-This CL reinstates the trampoline for pushing the values of
-callee-saved registers on the stack, which is used for stack scanning.
-It reintroduces the set of architecture-specific functions
-PushAllRegistersAndIterateStack, removed in crrev.com/c/3989143.
-The reason for this change is that the simpler architecture-specific
-functions SaveCalleeSavedRegisters failed to correctly save the
-values of the registers, in the presence of C++ compiler optimizations.
-
-It also removes the stack context, introduced in crrev.com/c/4017512,
-and uses again the trampoline for iterating through the stack.
-
-Bug: v8:13257
-Change-Id: I9e656a9b3ba6616168602300f2180b4f340593f3
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4171639
-Commit-Queue: Nikolaos Papaspyrou <nikolaos(a)chromium.org>
-Reviewed-by: Omer Katz <omerkatz(a)chromium.org>
-Reviewed-by: Michael Lippautz <mlippautz(a)chromium.org>
-Cr-Commit-Position: refs/heads/main@{#85394}
-
-(stripped tests)
----
-
-diff --git a/BUILD.bazel b/BUILD.bazel
-index 283eeff..e3269a4 100644
---- a/v8/BUILD.bazel
-+++ b/v8/BUILD.bazel
-@@ -3201,16 +3201,16 @@
- # Note these cannot be v8_target_is_* selects because these contain
- # inline assembly that runs inside the executable. Since these are
- # linked directly into mksnapshot, they must use the actual target cpu.
-- "@v8//bazel/config:is_inline_asm_ia32": ["src/heap/base/asm/ia32/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_x64": ["src/heap/base/asm/x64/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_arm": ["src/heap/base/asm/arm/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_arm64": ["src/heap/base/asm/arm64/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_s390x": ["src/heap/base/asm/s390/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_riscv64": ["src/heap/base/asm/riscv64/save_registers_asm.cc"],
-- "@v8//bazel/config:is_inline_asm_ppc64le": ["src/heap/base/asm/ppc/save_registers_asm.cc"],
-- "@v8//bazel/config:is_msvc_asm_ia32": ["src/heap/base/asm/ia32/save_registers_masm.asm"],
-- "@v8//bazel/config:is_msvc_asm_x64": ["src/heap/base/asm/x64/save_registers_masm.asm"],
-- "@v8//bazel/config:is_msvc_asm_arm64": ["src/heap/base/asm/arm64/save_registers_masm.S"],
-+ "@v8//bazel/config:is_inline_asm_ia32": ["src/heap/base/asm/ia32/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_x64": ["src/heap/base/asm/x64/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_arm": ["src/heap/base/asm/arm/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_arm64": ["src/heap/base/asm/arm64/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_s390x": ["src/heap/base/asm/s390/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_riscv64": ["src/heap/base/asm/riscv64/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_inline_asm_ppc64le": ["src/heap/base/asm/ppc/push_registers_asm.cc"],
-+ "@v8//bazel/config:is_msvc_asm_ia32": ["src/heap/base/asm/ia32/push_registers_masm.asm"],
-+ "@v8//bazel/config:is_msvc_asm_x64": ["src/heap/base/asm/x64/push_registers_masm.asm"],
-+ "@v8//bazel/config:is_msvc_asm_arm64": ["src/heap/base/asm/arm64/push_registers_masm.S"],
- }),
- )
-
-diff --git a/BUILD.gn b/BUILD.gn
-index 80a7eb6..56798db 100644
---- a/v8/BUILD.gn
-+++ b/v8/BUILD.gn
-@@ -5989,31 +5989,31 @@
-
- if (is_clang || !is_win) {
- if (current_cpu == "x64") {
-- sources += [ "src/heap/base/asm/x64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/x64/push_registers_asm.cc" ]
- } else if (current_cpu == "x86") {
-- sources += [ "src/heap/base/asm/ia32/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/ia32/push_registers_asm.cc" ]
- } else if (current_cpu == "arm") {
-- sources += [ "src/heap/base/asm/arm/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/arm/push_registers_asm.cc" ]
- } else if (current_cpu == "arm64") {
-- sources += [ "src/heap/base/asm/arm64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/arm64/push_registers_asm.cc" ]
- } else if (current_cpu == "ppc64") {
-- sources += [ "src/heap/base/asm/ppc/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/ppc/push_registers_asm.cc" ]
- } else if (current_cpu == "s390x") {
-- sources += [ "src/heap/base/asm/s390/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/s390/push_registers_asm.cc" ]
- } else if (current_cpu == "mips64el") {
-- sources += [ "src/heap/base/asm/mips64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/mips64/push_registers_asm.cc" ]
- } else if (current_cpu == "loong64") {
-- sources += [ "src/heap/base/asm/loong64/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/loong64/push_registers_asm.cc" ]
- } else if (current_cpu == "riscv64" || current_cpu == "riscv32") {
-- sources += [ "src/heap/base/asm/riscv/save_registers_asm.cc" ]
-+ sources += [ "src/heap/base/asm/riscv/push_registers_asm.cc" ]
- }
- } else if (is_win) {
- if (current_cpu == "x64") {
-- sources += [ "src/heap/base/asm/x64/save_registers_masm.asm" ]
-+ sources += [ "src/heap/base/asm/x64/push_registers_masm.asm" ]
- } else if (current_cpu == "x86") {
-- sources += [ "src/heap/base/asm/ia32/save_registers_masm.asm" ]
-+ sources += [ "src/heap/base/asm/ia32/push_registers_masm.asm" ]
- } else if (current_cpu == "arm64") {
-- sources += [ "src/heap/base/asm/arm64/save_registers_masm.S" ]
-+ sources += [ "src/heap/base/asm/arm64/push_registers_masm.S" ]
- }
- }
-
-diff --git a/src/execution/isolate.cc b/src/execution/isolate.cc
-index 8a2ec80..31536a1 100644
---- a/v8/src/execution/isolate.cc
-+++ b/v8/src/execution/isolate.cc
-@@ -3075,8 +3075,7 @@
- .get()
- .get();
- current = WasmContinuationObject::cast(current).parent();
-- thread_local_top()->stack_.SetStackStart(
-- reinterpret_cast<void*>(stack->base()));
-+ heap()->SetStackStart(reinterpret_cast<void*>(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()) {
-@@ -3372,9 +3371,12 @@
- 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());
-+ if (saved_isolate) {
-+ isolate->thread_local_top()->stack_ =
-+ std::move(saved_isolate->thread_local_top()->stack_);
-+ } else {
-+ isolate->heap()->SetStackStart(base::Stack::GetStackStart());
-+ }
-
- bool owns_shared_isolate = isolate->owns_shared_isolate_;
- Isolate* maybe_shared_isolate = isolate->shared_isolate_;
-diff --git a/src/execution/thread-local-top.cc b/src/execution/thread-local-top.cc
-index 0d7071d..c115ae0 100644
---- a/v8/src/execution/thread-local-top.cc
-+++ b/v8/src/execution/thread-local-top.cc
-@@ -44,10 +44,13 @@
- Clear();
- isolate_ = isolate;
- thread_id_ = ThreadId::Current();
-- stack_.SetStackStart(base::Stack::GetStackStart());
- #if V8_ENABLE_WEBASSEMBLY
-+ stack_.SetStackStart(base::Stack::GetStackStart(),
-+ v8_flags.experimental_wasm_stack_switching);
- thread_in_wasm_flag_address_ = reinterpret_cast<Address>(
- trap_handler::GetThreadInWasmThreadLocalAddress());
-+#else
-+ stack_.SetStackStart(base::Stack::GetStackStart(), false);
- #endif // V8_ENABLE_WEBASSEMBLY
- #ifdef USE_SIMULATOR
- simulator_ = Simulator::current(isolate);
-diff --git a/src/heap/base/asm/arm/push_registers_asm.cc b/src/heap/base/asm/arm/push_registers_asm.cc
-new file mode 100644
-index 0000000..5246c3f
---- /dev/null
-+++ b/v8/src/heap/base/asm/arm/push_registers_asm.cc
-@@ -0,0 +1,39 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// We maintain 8-byte alignment at calls by pushing an additional
-+// non-callee-saved register (r3).
-+//
-+// Calling convention source:
-+// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A32)
-+// http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4127.html
-+asm(".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ // Only {r4-r11} are callee-saved registers. Push r3 in addition to align
-+ // the stack back to 8 bytes.
-+ " push {r3-r11, lr} \n"
-+ // Pass 1st parameter (r0) unchanged (Stack*).
-+ // Pass 2nd parameter (r1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r2; IterateStackCallback).
-+ " mov r3, r2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mov r2, sp \n"
-+ // Call the callback.
-+ " blx r3 \n"
-+ // Discard all the registers.
-+ " add sp, sp, #36 \n"
-+ // Pop lr into pc which returns and switches mode if needed.
-+ " pop {pc} \n");
-diff --git a/src/heap/base/asm/arm/save_registers_asm.cc b/src/heap/base/asm/arm/save_registers_asm.cc
-deleted file mode 100644
-index ace9503..0000000
---- a/v8/src/heap/base/asm/arm/save_registers_asm.cc
-+++ /dev/null
-@@ -1,36 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// We maintain 8-byte alignment at calls by pushing an additional
--// non-callee-saved register (r3).
--//
--// Calling convention source:
--// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A32)
--// http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4127.html
--
--// 8 32-bit registers = 8 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 8,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // r0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: {r4-r11}.
-- " stm r0, {r4-r11} \n"
-- // Return.
-- " bx lr \n");
-diff --git a/src/heap/base/asm/arm64/push_registers_asm.cc b/src/heap/base/asm/arm64/push_registers_asm.cc
-new file mode 100644
-index 0000000..1efcc34
---- /dev/null
-+++ b/v8/src/heap/base/asm/arm64/push_registers_asm.cc
-@@ -0,0 +1,62 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// We maintain 16-byte alignment.
-+//
-+// Calling convention source:
-+// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A64)
-+
-+asm(
-+#if defined(__APPLE__)
-+ ".globl _PushAllRegistersAndIterateStack \n"
-+ ".private_extern _PushAllRegistersAndIterateStack \n"
-+ ".p2align 2 \n"
-+ "_PushAllRegistersAndIterateStack: \n"
-+#else // !defined(__APPLE__)
-+ ".globl PushAllRegistersAndIterateStack \n"
-+#if !defined(_WIN64)
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+#endif // !defined(_WIN64)
-+ ".p2align 2 \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif // !defined(__APPLE__)
-+ // x19-x29 are callee-saved.
-+ " stp x19, x20, [sp, #-16]! \n"
-+ " stp x21, x22, [sp, #-16]! \n"
-+ " stp x23, x24, [sp, #-16]! \n"
-+ " stp x25, x26, [sp, #-16]! \n"
-+ " stp x27, x28, [sp, #-16]! \n"
-+#ifdef V8_ENABLE_CONTROL_FLOW_INTEGRITY
-+ // Sign return address.
-+ " paciasp \n"
-+#endif
-+ " stp fp, lr, [sp, #-16]! \n"
-+ // Maintain frame pointer.
-+ " mov fp, sp \n"
-+ // Pass 1st parameter (x0) unchanged (Stack*).
-+ // Pass 2nd parameter (x1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (x2; IterateStackCallback)
-+ " mov x7, x2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mov x2, sp \n"
-+ " blr x7 \n"
-+ // Load return address and frame pointer.
-+ " ldp fp, lr, [sp], #16 \n"
-+#ifdef V8_ENABLE_CONTROL_FLOW_INTEGRITY
-+ // Authenticate return address.
-+ " autiasp \n"
-+#endif
-+ // Drop all callee-saved registers.
-+ " add sp, sp, #80 \n"
-+ " ret \n");
-diff --git a/src/heap/base/asm/arm64/push_registers_masm.S b/src/heap/base/asm/arm64/push_registers_masm.S
-new file mode 100644
-index 0000000..888523a
---- /dev/null
-+++ b/v8/src/heap/base/asm/arm64/push_registers_masm.S
-@@ -0,0 +1,32 @@
-+; Copyright 2020 the V8 project authors. All rights reserved.
-+; Use of this source code is governed by a BSD-style license that can be
-+; found in the LICENSE file.
-+
-+; This file is exactly the same as push_registers_asm.cc, just formatted for
-+; the Microsoft Arm Assembler.
-+
-+ AREA |.text|, CODE, ALIGN=4, READONLY
-+ EXPORT PushAllRegistersAndIterateStack
-+PushAllRegistersAndIterateStack
-+ ; x19-x29 are callee-saved
-+ STP x19, x20, [sp, #-16]!
-+ STP x21, x22, [sp, #-16]!
-+ STP x23, x24, [sp, #-16]!
-+ STP x25, x26, [sp, #-16]!
-+ STP x27, x28, [sp, #-16]!
-+ STP fp, lr, [sp, #-16]!
-+ ; Maintain frame pointer
-+ MOV fp, sp
-+ ; Pass 1st parameter (x0) unchanged (Stack*).
-+ ; Pass 2nd parameter (x1) unchanged (StackVisitor*).
-+ ; Save 3rd parameter (x2; IterateStackCallback)
-+ MOV x7, x2
-+ ; Pass 3rd parameter as sp (stack pointer)
-+ MOV x2, sp
-+ BLR x7
-+ ; Load return address
-+ LDR lr, [sp, #8]
-+ ; Restore frame pointer and pop all callee-saved registers.
-+ LDR fp, [sp], #96
-+ RET
-+ END
-diff --git a/src/heap/base/asm/arm64/save_registers_asm.cc b/src/heap/base/asm/arm64/save_registers_asm.cc
-deleted file mode 100644
-index 5fe81d8..0000000
---- a/v8/src/heap/base/asm/arm64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,50 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// We maintain 16-byte alignment.
--//
--// Calling convention source:
--// https://en.wikipedia.org/wiki/Calling_convention#ARM_(A64)
--
--// 11 64-bit registers = 11 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 11,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(
--#if defined(__APPLE__)
-- ".globl _SaveCalleeSavedRegisters \n"
-- ".private_extern _SaveCalleeSavedRegisters \n"
-- ".p2align 2 \n"
-- "_SaveCalleeSavedRegisters: \n"
--#else // !defined(__APPLE__)
-- ".globl SaveCalleeSavedRegisters \n"
--#if !defined(_WIN64)
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
--#endif // !defined(_WIN64)
-- ".p2align 2 \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif // !defined(__APPLE__)
-- // $x0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: x19-x29.
-- " stp x19, x20, [x0], #16 \n"
-- " stp x21, x22, [x0], #16 \n"
-- " stp x23, x24, [x0], #16 \n"
-- " stp x25, x26, [x0], #16 \n"
-- " stp x27, x28, [x0], #16 \n"
-- " str x29, [x0] \n"
-- // Return.
-- " ret \n");
-diff --git a/src/heap/base/asm/arm64/save_registers_masm.S b/src/heap/base/asm/arm64/save_registers_masm.S
-deleted file mode 100644
-index ab79055..0000000
---- a/v8/src/heap/base/asm/arm64/save_registers_masm.S
-+++ /dev/null
-@@ -1,24 +0,0 @@
--; Copyright 2020 the V8 project authors. All rights reserved.
--; Use of this source code is governed by a BSD-style license that can be
--; found in the LICENSE file.
--
--; This file is exactly the same as save_registers_asm.cc, just formatted for
--; the Microsoft Arm Assembler.
--
--; Save all callee-saved registers in the specified buffer.
--; extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
-- AREA |.text|, CODE, ALIGN=4, READONLY
-- EXPORT SaveCalleeSavedRegisters
--SaveCalleeSavedRegisters
-- ; x0: [ intptr_t* buffer ]
-- ; x19-x29 are callee-saved
-- STP x19, x20, [x0], #16
-- STP x21, x22, [x0], #16
-- STP x23, x24, [x0], #16
-- STP x25, x26, [x0], #16
-- STP x27, x28, [x0], #16
-- STR x29, [x0]
-- ; Return.
-- RET
-- END
-diff --git a/src/heap/base/asm/ia32/push_registers_asm.cc b/src/heap/base/asm/ia32/push_registers_asm.cc
-new file mode 100644
-index 0000000..ed9c14a
---- /dev/null
-+++ b/v8/src/heap/base/asm/ia32/push_registers_asm.cc
-@@ -0,0 +1,53 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// We maintain 16-byte alignment at calls. There is an 4-byte return address
-+// on the stack and we push 28 bytes which maintains 16-byte stack alignment
-+// at the call.
-+//
-+// The following assumes cdecl calling convention.
-+// Source: https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl
-+asm(
-+#ifdef _WIN32
-+ ".globl _PushAllRegistersAndIterateStack \n"
-+ "_PushAllRegistersAndIterateStack: \n"
-+#else // !_WIN32
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif // !_WIN32
-+ // [ IterateStackCallback ]
-+ // [ StackVisitor* ]
-+ // [ Stack* ]
-+ // [ ret ]
-+ // ebp is callee-saved. Maintain proper frame pointer for debugging.
-+ " push %ebp \n"
-+ " movl %esp, %ebp \n"
-+ " push %ebx \n"
-+ " push %esi \n"
-+ " push %edi \n"
-+ // Save 3rd parameter (IterateStackCallback).
-+ " movl 28(%esp), %ecx \n"
-+ // Pass 3rd parameter as esp (stack pointer).
-+ " push %esp \n"
-+ // Pass 2nd parameter (StackVisitor*).
-+ " push 28(%esp) \n"
-+ // Pass 1st parameter (Stack*).
-+ " push 28(%esp) \n"
-+ " call *%ecx \n"
-+ // Pop the callee-saved registers.
-+ " addl $24, %esp \n"
-+ // Restore rbp as it was used as frame pointer.
-+ " pop %ebp \n"
-+ " ret \n");
-diff --git a/src/heap/base/asm/ia32/push_registers_masm.asm b/src/heap/base/asm/ia32/push_registers_masm.asm
-new file mode 100644
-index 0000000..a35fd6e
---- /dev/null
-+++ b/v8/src/heap/base/asm/ia32/push_registers_masm.asm
-@@ -0,0 +1,48 @@
-+;; Copyright 2020 the V8 project authors. All rights reserved.
-+;; Use of this source code is governed by a BSD-style license that can be
-+;; found in the LICENSE file.
-+
-+;; MASM syntax
-+;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
-+
-+.model flat, C
-+
-+public PushAllRegistersAndIterateStack
-+
-+.code
-+PushAllRegistersAndIterateStack:
-+ ;; Push all callee-saved registers to get them on the stack for conservative
-+ ;; stack scanning.
-+ ;;
-+ ;; We maintain 16-byte alignment at calls. There is an 8-byte return address
-+ ;; on the stack and we push 72 bytes which maintains 16-byte stack alignment
-+ ;; at the call.
-+ ;;
-+ ;; The following assumes cdecl calling convention.
-+ ;; Source: https://docs.microsoft.com/en-us/cpp/cpp/cdecl?view=vs-2019
-+ ;;
-+ ;; [ IterateStackCallback ]
-+ ;; [ StackVisitor* ]
-+ ;; [ Stack* ]
-+ ;; [ ret ]
-+ push ebp
-+ mov ebp, esp
-+ push ebx
-+ push esi
-+ push edi
-+ ;; Save 3rd parameter (IterateStackCallback).
-+ mov ecx, [ esp + 28 ]
-+ ;; Pass 3rd parameter as esp (stack pointer).
-+ push esp
-+ ;; Pass 2nd parameter (StackVisitor*).
-+ push [ esp + 28 ]
-+ ;; Pass 1st parameter (Stack*).
-+ push [ esp + 28 ]
-+ call ecx
-+ ;; Pop the callee-saved registers.
-+ add esp, 24
-+ ;; Restore rbp as it was used as frame pointer.
-+ pop ebp
-+ ret
-+
-+end
-diff --git a/src/heap/base/asm/ia32/save_registers_asm.cc b/src/heap/base/asm/ia32/save_registers_asm.cc
-deleted file mode 100644
-index 7c05247..0000000
---- a/v8/src/heap/base/asm/ia32/save_registers_asm.cc
-+++ /dev/null
-@@ -1,48 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// The following assumes cdecl calling convention.
--// Source: https://en.wikipedia.org/wiki/X86_calling_conventions#cdecl
--
--// 3 32-bit registers = 3 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 3,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(
--#ifdef _WIN32
-- ".globl _SaveCalleeSavedRegisters \n"
-- "_SaveCalleeSavedRegisters: \n"
--#else // !_WIN32
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif // !_WIN32
-- // 8: [ intptr_t* buffer ]
-- // 4: [ ret ]
-- // 0: [ saved %ebp ]
-- // %ebp is callee-saved. Maintain proper frame pointer for debugging.
-- " push %ebp \n"
-- " movl %esp, %ebp \n"
-- // Load the buffer's address in %ecx.
-- " movl 8(%ebp), %ecx \n"
-- // Save the callee-saved registers.
-- " movl %ebx, 0(%ecx) \n"
-- " movl %esi, 4(%ecx) \n"
-- " movl %edi, 8(%ecx) \n"
-- // Restore %ebp as it was used as frame pointer and return.
-- " pop %ebp \n"
-- " ret \n");
-diff --git a/src/heap/base/asm/ia32/save_registers_masm.asm b/src/heap/base/asm/ia32/save_registers_masm.asm
-deleted file mode 100644
-index 0892b02..0000000
---- a/v8/src/heap/base/asm/ia32/save_registers_masm.asm
-+++ /dev/null
-@@ -1,36 +0,0 @@
--;; Copyright 2020 the V8 project authors. All rights reserved.
--;; Use of this source code is governed by a BSD-style license that can be
--;; found in the LICENSE file.
--
--;; MASM syntax
--;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
--
--.model flat, C
--
--public SaveCalleeSavedRegisters
--
--.code
-- ;; Save all callee-saved registers in the specified buffer.
-- ;; extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
-- ;;
-- ;; The following assumes cdecl calling convention.
-- ;; Source: https://docs.microsoft.com/en-us/cpp/cpp/cdecl?view=vs-2019
--
--SaveCalleeSavedRegisters:
-- ;; 8: [ intptr_t* buffer ]
-- ;; 4: [ ret ]
-- ;; 0: [ saved %ebp ]
-- ;; %ebp is callee-saved. Maintain proper frame pointer for debugging.
-- push ebp
-- mov ebp, esp
-- ;; Load the buffer's address in %ecx.
-- mov ecx, [ebp + 8]
-- ;; Save the callee-saved registers.
-- mov [ecx], ebx
-- mov [ecx + 4], esi
-- mov [ecx + 8], edi
-- ;; Restore %ebp as it was used as frame pointer and return.
-- pop ebp
-- ret
--
--end
-diff --git a/src/heap/base/asm/loong64/push_registers_asm.cc b/src/heap/base/asm/loong64/push_registers_asm.cc
-new file mode 100644
-index 0000000..aa8dcd3
---- /dev/null
-+++ b/v8/src/heap/base/asm/loong64/push_registers_asm.cc
-@@ -0,0 +1,48 @@
-+// Copyright 2021 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+asm(".text \n"
-+ ".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " addi.d $sp, $sp, -96 \n"
-+ " st.d $ra, $sp, 88 \n"
-+ " st.d $s8, $sp, 80 \n"
-+ " st.d $sp, $sp, 72 \n"
-+ " st.d $fp, $sp, 64 \n"
-+ " st.d $s7, $sp, 56 \n"
-+ " st.d $s6, $sp, 48 \n"
-+ " st.d $s5, $sp, 40 \n"
-+ " st.d $s4, $sp, 32 \n"
-+ " st.d $s3, $sp, 24 \n"
-+ " st.d $s2, $sp, 16 \n"
-+ " st.d $s1, $sp, 8 \n"
-+ " st.d $s0, $sp, 0 \n"
-+ // Maintain frame pointer.
-+ " addi.d $s8, $sp, 0 \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback).
-+ " addi.d $a3, $a2, 0 \n"
-+ // Call the callback.
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " addi.d $a2, $sp, 0 \n"
-+ " jirl $ra, $a3, 0 \n"
-+ // Load return address.
-+ " ld.d $ra, $sp, 88 \n"
-+ // Restore frame pointer.
-+ " ld.d $s8, $sp, 80 \n"
-+ // Discard all callee-saved registers.
-+ " addi.d $sp, $sp, 96 \n"
-+ " jirl $zero, $ra, 0 \n");
-diff --git a/src/heap/base/asm/loong64/save_registers_asm.cc b/src/heap/base/asm/loong64/save_registers_asm.cc
-deleted file mode 100644
-index d5b110d..0000000
---- a/v8/src/heap/base/asm/loong64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,40 +0,0 @@
--// Copyright 2021 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--
--// 11 64-bit registers = 11 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 11,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".text \n"
-- ".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // $a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers.
-- " st.d $s8, $a0, 0 \n"
-- " st.d $sp, $a0, 8 \n"
-- " st.d $fp, $a0, 16 \n"
-- " st.d $s7, $a0, 24 \n"
-- " st.d $s6, $a0, 32 \n"
-- " st.d $s5, $a0, 40 \n"
-- " st.d $s4, $a0, 48 \n"
-- " st.d $s3, $a0, 56 \n"
-- " st.d $s2, $a0, 64 \n"
-- " st.d $s1, $a0, 72 \n"
-- " st.d $s0, $a0, 80 \n"
-- // Return.
-- " jirl $zero, $ra, 0 \n");
-diff --git a/src/heap/base/asm/mips64/push_registers_asm.cc b/src/heap/base/asm/mips64/push_registers_asm.cc
-new file mode 100644
-index 0000000..47779e0
---- /dev/null
-+++ b/v8/src/heap/base/asm/mips64/push_registers_asm.cc
-@@ -0,0 +1,49 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+//
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+asm(".text \n"
-+ ".set noreorder \n"
-+ ".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " daddiu $sp, $sp, -96 \n"
-+ " sd $ra, 88($sp) \n"
-+ " sd $s8, 80($sp) \n"
-+ " sd $sp, 72($sp) \n"
-+ " sd $gp, 64($sp) \n"
-+ " sd $s7, 56($sp) \n"
-+ " sd $s6, 48($sp) \n"
-+ " sd $s5, 40($sp) \n"
-+ " sd $s4, 32($sp) \n"
-+ " sd $s3, 24($sp) \n"
-+ " sd $s2, 16($sp) \n"
-+ " sd $s1, 8($sp) \n"
-+ " sd $s0, 0($sp) \n"
-+ // Maintain frame pointer.
-+ " move $s8, $sp \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback).
-+ " move $a3, $a2 \n"
-+ // Call the callback.
-+ " jalr $a3 \n"
-+ // Delay slot: Pass 3rd parameter as sp (stack pointer).
-+ " move $a2, $sp \n"
-+ // Load return address.
-+ " ld $ra, 88($sp) \n"
-+ // Restore frame pointer.
-+ " ld $s8, 80($sp) \n"
-+ " jr $ra \n"
-+ // Delay slot: Discard all callee-saved registers.
-+ " daddiu $sp, $sp, 96 \n");
-diff --git a/src/heap/base/asm/mips64/save_registers_asm.cc b/src/heap/base/asm/mips64/save_registers_asm.cc
-deleted file mode 100644
-index 95bcc31..0000000
---- a/v8/src/heap/base/asm/mips64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,41 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--
--// 9 64-bit registers = 9 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 9,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".text \n"
-- ".set noreorder \n"
-- ".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // $a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers.
-- " sd $gp, 64($a0) \n"
-- " sd $s7, 56($a0) \n"
-- " sd $s6, 48($a0) \n"
-- " sd $s5, 40($a0) \n"
-- " sd $s4, 32($a0) \n"
-- " sd $s3, 24($a0) \n"
-- " sd $s2, 16($a0) \n"
-- " sd $s1, 8($a0) \n"
-- // ... one more in the delay slot!
-- // Return.
-- " jr $ra \n"
-- // Delay slot:
-- " sd $s0, 0($a0) \n");
-diff --git a/src/heap/base/asm/ppc/push_registers_asm.cc b/src/heap/base/asm/ppc/push_registers_asm.cc
-new file mode 100644
-index 0000000..f879980
---- /dev/null
-+++ b/v8/src/heap/base/asm/ppc/push_registers_asm.cc
-@@ -0,0 +1,97 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// PPC ABI source:
-+// http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html
-+
-+// AIX Runtime process stack:
-+// https://www.ibm.com/support/knowledgecenter/ssw_aix_71/assembler/idalangr...
-+asm(
-+#if defined(_AIX)
-+ ".csect .text[PR] \n"
-+ ".align 2 \n"
-+ ".globl .PushAllRegistersAndIterateStack, hidden \n"
-+ ".PushAllRegistersAndIterateStack: \n"
-+#else
-+ ".text \n"
-+ ".align 2 \n"
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif
-+ // Push all callee-saved registers.
-+ // lr, TOC pointer, r16 to r31. 160 bytes.
-+ // The parameter save area shall be allocated by the caller. 112 bytes.
-+ // At anytime, SP (r1) needs to be multiple of 16 (i.e. 16-aligned).
-+ " mflr 0 \n"
-+ " std 0, 16(1) \n"
-+#if defined(_AIX)
-+ " std 2, 40(1) \n"
-+#else
-+ " std 2, 24(1) \n"
-+#endif
-+ " stdu 1, -256(1) \n"
-+ " std 14, 112(1) \n"
-+ " std 15, 120(1) \n"
-+ " std 16, 128(1) \n"
-+ " std 17, 136(1) \n"
-+ " std 18, 144(1) \n"
-+ " std 19, 152(1) \n"
-+ " std 20, 160(1) \n"
-+ " std 21, 168(1) \n"
-+ " std 22, 176(1) \n"
-+ " std 23, 184(1) \n"
-+ " std 24, 192(1) \n"
-+ " std 25, 200(1) \n"
-+ " std 26, 208(1) \n"
-+ " std 27, 216(1) \n"
-+ " std 28, 224(1) \n"
-+ " std 29, 232(1) \n"
-+ " std 30, 240(1) \n"
-+ " std 31, 248(1) \n"
-+ // Pass 1st parameter (r3) unchanged (Stack*).
-+ // Pass 2nd parameter (r4) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r5; IterateStackCallback).
-+ " mr 6, 5 \n"
-+#if defined(_AIX)
-+ // Set up TOC for callee.
-+ " ld 2,8(5) \n"
-+ // AIX uses function descriptors, which means that
-+ // pointers to functions do not point to code, but
-+ // instead point to metadata about them, hence
-+ // need to deterrence.
-+ " ld 6,0(6) \n"
-+#endif
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mr 5, 1 \n"
-+#if !defined(_AIX)
-+ // Set up r12 to be equal to the callee address (in order for TOC
-+ // relocation). Only needed on LE Linux.
-+ " mr 12, 6 \n"
-+#endif
-+ // Call the callback.
-+ " mtctr 6 \n"
-+ " bctrl \n"
-+ // Discard all the registers.
-+ " addi 1, 1, 256 \n"
-+ // Restore lr.
-+ " ld 0, 16(1) \n"
-+ " mtlr 0 \n"
-+#if defined(_AIX)
-+ // Restore TOC pointer.
-+ " ld 2, 40(1) \n"
-+#else
-+ " ld 2, 24(1) \n"
-+#endif
-+ " blr \n");
-diff --git a/src/heap/base/asm/ppc/save_registers_asm.cc b/src/heap/base/asm/ppc/save_registers_asm.cc
-deleted file mode 100644
-index 9e8102a..0000000
---- a/v8/src/heap/base/asm/ppc/save_registers_asm.cc
-+++ /dev/null
-@@ -1,113 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--//
--// PPC ABI source:
--// http://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html
--
--// AIX Runtime process stack:
--// https://www.ibm.com/support/knowledgecenter/ssw_aix_71/assembler/idalangr...
--
--#ifdef __PPC64__
--
--// 20 64-bit registers = 20 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 20,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(
--#if defined(_AIX)
-- ".csect .text[PR] \n"
-- ".align 2 \n"
-- ".globl .SaveCalleeSavedRegisters, hidden \n"
-- ".SaveCalleeSavedRegisters: \n"
--#else
-- ".text \n"
-- ".align 2 \n"
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif
-- // r3: [ intptr_t* buffer ]
-- // Save the callee-saved registers: lr, TOC pointer (r2), r14-r31.
-- " mflr 0 \n"
-- " std 0, 8(3) \n"
-- " std 2, 16(3) \n"
-- " std 14, 24(3) \n"
-- " std 15, 32(3) \n"
-- " std 16, 40(3) \n"
-- " std 17, 48(3) \n"
-- " std 18, 56(3) \n"
-- " std 19, 64(3) \n"
-- " std 20, 72(3) \n"
-- " std 21, 80(3) \n"
-- " std 22, 88(3) \n"
-- " std 23, 96(3) \n"
-- " std 24, 104(3) \n"
-- " std 25, 112(3) \n"
-- " std 26, 120(3) \n"
-- " std 27, 128(3) \n"
-- " std 28, 136(3) \n"
-- " std 29, 144(3) \n"
-- " std 30, 152(3) \n"
-- " std 31, 160(3) \n"
-- // Return.
-- " blr \n");
--
--#else // !__PPC64__
--
--// 20 32-bit registers = 20 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 20,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(
--#if defined(_AIX)
-- ".globl .SaveCalleeSavedRegisters, hidden \n"
-- ".csect .text[PR] \n"
-- ".SaveCalleeSavedRegisters: \n"
--#else
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif
-- // r3: [ intptr_t* buffer ]
-- // Save the callee-saved registers: lr, TOC pointer (r2), r14-r31.
-- " mflr 0 \n"
-- " st 0, 4(3) \n"
-- " st 2, 8(3) \n"
-- " st 14, 12(3) \n"
-- " st 15, 16(3) \n"
-- " st 16, 20(3) \n"
-- " st 17, 24(3) \n"
-- " st 18, 28(3) \n"
-- " st 19, 32(3) \n"
-- " st 20, 36(3) \n"
-- " st 21, 40(3) \n"
-- " st 22, 44(3) \n"
-- " st 23, 48(3) \n"
-- " st 24, 52(3) \n"
-- " st 25, 56(3) \n"
-- " st 26, 60(3) \n"
-- " st 27, 64(3) \n"
-- " st 28, 68(3) \n"
-- " st 29, 72(3) \n"
-- " st 30, 76(3) \n"
-- " st 31, 80(3) \n"
-- // Return.
-- " blr \n");
--
--#endif // __PPC64__
-diff --git a/src/heap/base/asm/riscv/push_registers_asm.cc b/src/heap/base/asm/riscv/push_registers_asm.cc
-new file mode 100644
-index 0000000..7cc13ea
---- /dev/null
-+++ b/v8/src/heap/base/asm/riscv/push_registers_asm.cc
-@@ -0,0 +1,93 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// See asm/x64/push_registers_asm.cc for why the function is not generated
-+// using clang.
-+//
-+// Calling convention source:
-+// https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf Table 18.2
-+#ifdef V8_TARGET_ARCH_RISCV64
-+asm(".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " addi sp, sp, -112 \n"
-+ // Save return address.
-+ " sd ra, 104(sp) \n"
-+ // sp is callee-saved.
-+ " sd sp, 96(sp) \n"
-+ // s0-s11 are callee-saved.
-+ " sd s11, 88(sp) \n"
-+ " sd s10, 80(sp) \n"
-+ " sd s9, 72(sp) \n"
-+ " sd s8, 64(sp) \n"
-+ " sd s7, 56(sp) \n"
-+ " sd s6, 48(sp) \n"
-+ " sd s5, 40(sp) \n"
-+ " sd s4, 32(sp) \n"
-+ " sd s3, 24(sp) \n"
-+ " sd s2, 16(sp) \n"
-+ " sd s1, 8(sp) \n"
-+ " sd s0, 0(sp) \n"
-+ // Maintain frame pointer(fp is s0).
-+ " mv s0, sp \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback) to a3.
-+ " mv a3, a2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mv a2, sp \n"
-+ // Call the callback.
-+ " jalr a3 \n"
-+ // Load return address.
-+ " ld ra, 104(sp) \n"
-+ // Restore frame pointer.
-+ " ld s0, 0(sp) \n"
-+ " addi sp, sp, 112 \n"
-+ " jr ra \n");
-+#elif V8_TARGET_ARCH_RISCV32
-+asm(".global PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers and save return address.
-+ " addi sp, sp, -56 \n"
-+ // Save return address.
-+ " sw ra, 52(sp) \n"
-+ // sp is callee-saved.
-+ " sw sp, 48(sp) \n"
-+ // s0-s11 are callee-saved.
-+ " sw s11, 44(sp) \n"
-+ " sw s10, 40(sp) \n"
-+ " sw s9, 36(sp) \n"
-+ " sw s8, 32(sp) \n"
-+ " sw s7, 28(sp) \n"
-+ " sw s6, 24(sp) \n"
-+ " sw s5, 20(sp) \n"
-+ " sw s4, 16(sp) \n"
-+ " sw s3, 12(sp) \n"
-+ " sw s2, 8(sp) \n"
-+ " sw s1, 4(sp) \n"
-+ " sw s0, 0(sp) \n"
-+ // Maintain frame pointer(fp is s0).
-+ " mv s0, sp \n"
-+ // Pass 1st parameter (a0) unchanged (Stack*).
-+ // Pass 2nd parameter (a1) unchanged (StackVisitor*).
-+ // Save 3rd parameter (a2; IterateStackCallback) to a3.
-+ " mv a3, a2 \n"
-+ // Pass 3rd parameter as sp (stack pointer).
-+ " mv a2, sp \n"
-+ // Call the callback.
-+ " jalr a3 \n"
-+ // Load return address.
-+ " lw ra, 52(sp) \n"
-+ // Restore frame pointer.
-+ " lw s0, 0(sp) \n"
-+ " addi sp, sp, 56 \n"
-+ " jr ra \n");
-+#endif
-diff --git a/src/heap/base/asm/riscv/save_registers_asm.cc b/src/heap/base/asm/riscv/save_registers_asm.cc
-deleted file mode 100644
-index ad0bf98..0000000
---- a/v8/src/heap/base/asm/riscv/save_registers_asm.cc
-+++ /dev/null
-@@ -1,68 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Calling convention source:
--// https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf Table 18.2
--
--#if V8_HOST_ARCH_RISCV64
--// 12 64-bit registers = 12 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 12,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: s0-s11.
-- " sd s11, 88(a0) \n"
-- " sd s10, 80(a0) \n"
-- " sd s9, 72(a0) \n"
-- " sd s8, 64(a0) \n"
-- " sd s7, 56(a0) \n"
-- " sd s6, 48(a0) \n"
-- " sd s5, 40(a0) \n"
-- " sd s4, 32(a0) \n"
-- " sd s3, 24(a0) \n"
-- " sd s2, 16(a0) \n"
-- " sd s1, 8(a0) \n"
-- " sd s0, 0(a0) \n"
-- // Return.
-- " jr ra \n");
--#elif V8_HOST_ARCH_RISCV32
--// 12 32-bit registers = 12 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 12,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 4, "Mismatch in word size");
--
--asm(".global SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // a0: [ intptr_t* buffer ]
-- // Save the callee-saved registers: s0-s11.
-- " sw s11, 44(a0) \n"
-- " sw s10, 40(a0) \n"
-- " sw s9, 36(a0) \n"
-- " sw s8, 32(a0) \n"
-- " sw s7, 28(a0) \n"
-- " sw s6, 24(a0) \n"
-- " sw s5, 20(a0) \n"
-- " sw s4, 16(a0) \n"
-- " sw s3, 12(a0) \n"
-- " sw s2, 8(a0) \n"
-- " sw s1, 4(a0) \n"
-- " sw s0, 0(a0) \n"
-- // Return.
-- " jr ra \n");
--#endif
-diff --git a/src/heap/base/asm/s390/push_registers_asm.cc b/src/heap/base/asm/s390/push_registers_asm.cc
-new file mode 100644
-index 0000000..ef954fa
---- /dev/null
-+++ b/v8/src/heap/base/asm/s390/push_registers_asm.cc
-@@ -0,0 +1,37 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+
-+// See asm/x64/push_registers_clang.cc for why the function is not generated
-+// using clang.
-+
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+
-+// S390 ABI source:
-+// http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_zSeries.html
-+asm(".text \n"
-+ ".align 8 \n"
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // Push all callee-saved registers.
-+ // r6-r13, r14 and sp(r15)
-+ " stmg %r6, %sp, 48(%sp) \n"
-+ // Allocate frame.
-+ " lay %sp, -160(%sp) \n"
-+ // Pass 1st parameter (r2) unchanged (Stack*).
-+ // Pass 2nd parameter (r3) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r4; IterateStackCallback).
-+ " lgr %r5, %r4 \n"
-+ // Pass sp as 3rd parameter. 160+48 to point
-+ // to callee saved region stored above.
-+ " lay %r4, 208(%sp) \n"
-+ // Call the callback.
-+ " basr %r14, %r5 \n"
-+ " lmg %r14,%sp, 272(%sp) \n"
-+ " br %r14 \n");
-diff --git a/src/heap/base/asm/s390/save_registers_asm.cc b/src/heap/base/asm/s390/save_registers_asm.cc
-deleted file mode 100644
-index be92cc2..0000000
---- a/v8/src/heap/base/asm/s390/save_registers_asm.cc
-+++ /dev/null
-@@ -1,34 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--// See asm/x64/save_registers_asm.cc for why the function is not generated
--// using clang.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--
--// S390 ABI source:
--// http://refspecs.linuxbase.org/ELF/zSeries/lzsabi0_zSeries.html
--
--// 10 64-bit registers = 10 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 10,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".text \n"
-- ".align 8 \n"
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // r2: [ intptr_t* buffer ]
-- // Save the callee-saved registers: r6-r13, r14 and sp(r15).
-- " stmg %r6, %sp, 0(%r2) \n"
-- // Return.
-- " br %r14 \n");
-diff --git a/src/heap/base/asm/x64/push_registers_asm.cc b/src/heap/base/asm/x64/push_registers_asm.cc
-new file mode 100644
-index 0000000..1781a58
---- /dev/null
-+++ b/v8/src/heap/base/asm/x64/push_registers_asm.cc
-@@ -0,0 +1,106 @@
-+// Copyright 2020 the V8 project authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+// Push all callee-saved registers to get them on the stack for conservative
-+// stack scanning.
-+//
-+// We cannot rely on clang generating the function and right symbol mangling
-+// as `__attribute__((naked))` does not prevent clang from generating TSAN
-+// function entry stubs (`__tsan_func_entry`). Even with
-+// `__attribute__((no_sanitize_thread)` annotation clang generates the entry
-+// stub.
-+// See https://bugs.llvm.org/show_bug.cgi?id=45400.
-+
-+// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
-+// GN toolchain (e.g. ChromeOS) and not provide them.
-+// _WIN64 Defined as 1 when the compilation target is 64-bit ARM or x64.
-+// Otherwise, undefined.
-+#ifdef _WIN64
-+
-+// We maintain 16-byte alignment at calls. There is an 8-byte return address
-+// on the stack and we push 232 bytes which maintains 16-byte stack alignment
-+// at the call.
-+// Source: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
-+asm(".globl PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+ // rbp is callee-saved. Maintain proper frame pointer for debugging.
-+ " push %rbp \n"
-+ " mov %rsp, %rbp \n"
-+ // Dummy for alignment.
-+ " push $0xCDCDCD \n"
-+ " push %rsi \n"
-+ " push %rdi \n"
-+ " push %rbx \n"
-+ " push %r12 \n"
-+ " push %r13 \n"
-+ " push %r14 \n"
-+ " push %r15 \n"
-+ " sub $160, %rsp \n"
-+ // Use aligned instrs as we are certain that the stack is properly aligned.
-+ " movdqa %xmm6, 144(%rsp) \n"
-+ " movdqa %xmm7, 128(%rsp) \n"
-+ " movdqa %xmm8, 112(%rsp) \n"
-+ " movdqa %xmm9, 96(%rsp) \n"
-+ " movdqa %xmm10, 80(%rsp) \n"
-+ " movdqa %xmm11, 64(%rsp) \n"
-+ " movdqa %xmm12, 48(%rsp) \n"
-+ " movdqa %xmm13, 32(%rsp) \n"
-+ " movdqa %xmm14, 16(%rsp) \n"
-+ " movdqa %xmm15, (%rsp) \n"
-+ // Pass 1st parameter (rcx) unchanged (Stack*).
-+ // Pass 2nd parameter (rdx) unchanged (StackVisitor*).
-+ // Save 3rd parameter (r8; IterateStackCallback)
-+ " mov %r8, %r9 \n"
-+ // Pass 3rd parameter as rsp (stack pointer).
-+ " mov %rsp, %r8 \n"
-+ // Call the callback.
-+ " call *%r9 \n"
-+ // Pop the callee-saved registers.
-+ " add $224, %rsp \n"
-+ // Restore rbp as it was used as frame pointer.
-+ " pop %rbp \n"
-+ " ret \n");
-+
-+#else // !_WIN64
-+
-+// We maintain 16-byte alignment at calls. There is an 8-byte return address
-+// on the stack and we push 56 bytes which maintains 16-byte stack alignment
-+// at the call.
-+// Source: https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-1.0.pdf
-+asm(
-+#ifdef __APPLE__
-+ ".globl _PushAllRegistersAndIterateStack \n"
-+ ".private_extern _PushAllRegistersAndIterateStack \n"
-+ "_PushAllRegistersAndIterateStack: \n"
-+#else // !__APPLE__
-+ ".globl PushAllRegistersAndIterateStack \n"
-+ ".type PushAllRegistersAndIterateStack, %function \n"
-+ ".hidden PushAllRegistersAndIterateStack \n"
-+ "PushAllRegistersAndIterateStack: \n"
-+#endif // !__APPLE__
-+ // rbp is callee-saved. Maintain proper frame pointer for debugging.
-+ " push %rbp \n"
-+ " mov %rsp, %rbp \n"
-+ // Dummy for alignment.
-+ " push $0xCDCDCD \n"
-+ " push %rbx \n"
-+ " push %r12 \n"
-+ " push %r13 \n"
-+ " push %r14 \n"
-+ " push %r15 \n"
-+ // Pass 1st parameter (rdi) unchanged (Stack*).
-+ // Pass 2nd parameter (rsi) unchanged (StackVisitor*).
-+ // Save 3rd parameter (rdx; IterateStackCallback)
-+ " mov %rdx, %r8 \n"
-+ // Pass 3rd parameter as rsp (stack pointer).
-+ " mov %rsp, %rdx \n"
-+ // Call the callback.
-+ " call *%r8 \n"
-+ // Pop the callee-saved registers.
-+ " add $48, %rsp \n"
-+ // Restore rbp as it was used as frame pointer.
-+ " pop %rbp \n"
-+ " ret \n");
-+
-+#endif // !_WIN64
-diff --git a/src/heap/base/asm/x64/push_registers_masm.asm b/src/heap/base/asm/x64/push_registers_masm.asm
-new file mode 100644
-index 0000000..a32e193
---- /dev/null
-+++ b/v8/src/heap/base/asm/x64/push_registers_masm.asm
-@@ -0,0 +1,57 @@
-+;; Copyright 2020 the V8 project authors. All rights reserved.
-+;; Use of this source code is governed by a BSD-style license that can be
-+;; found in the LICENSE file.
-+
-+;; MASM syntax
-+;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
-+
-+public PushAllRegistersAndIterateStack
-+
-+.code
-+PushAllRegistersAndIterateStack:
-+ ;; Push all callee-saved registers to get them on the stack for conservative
-+ ;; stack scanning.
-+ ;;
-+ ;; We maintain 16-byte alignment at calls. There is an 8-byte return address
-+ ;; on the stack and we push 232 bytes which maintains 16-byte stack
-+ ;; alignment at the call.
-+ ;; Source: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
-+ ;;
-+ ;; rbp is callee-saved. Maintain proper frame pointer for debugging.
-+ push rbp
-+ mov rbp, rsp
-+ push 0CDCDCDh ;; Dummy for alignment.
-+ push rsi
-+ push rdi
-+ push rbx
-+ push r12
-+ push r13
-+ push r14
-+ push r15
-+ sub rsp, 160
-+ ;; Use aligned instrs as we are certain that the stack is properly aligned.
-+ movdqa xmmword ptr [rsp + 144], xmm6
-+ movdqa xmmword ptr [rsp + 128], xmm7
-+ movdqa xmmword ptr [rsp + 112], xmm8
-+ movdqa xmmword ptr [rsp + 96], xmm9
-+ movdqa xmmword ptr [rsp + 80], xmm10
-+ movdqa xmmword ptr [rsp + 64], xmm11
-+ movdqa xmmword ptr [rsp + 48], xmm12
-+ movdqa xmmword ptr [rsp + 32], xmm13
-+ movdqa xmmword ptr [rsp + 16], xmm14
-+ movdqa xmmword ptr [rsp], xmm15
-+ ;; Pass 1st parameter (rcx) unchanged (Stack*).
-+ ;; Pass 2nd parameter (rdx) unchanged (StackVisitor*).
-+ ;; Save 3rd parameter (r8; IterateStackCallback)
-+ mov r9, r8
-+ ;; Pass 3rd parameter as rsp (stack pointer).
-+ mov r8, rsp
-+ ;; Call the callback.
-+ call r9
-+ ;; Pop the callee-saved registers.
-+ add rsp, 224
-+ ;; Restore rbp as it was used as frame pointer.
-+ pop rbp
-+ ret
-+
-+end
-diff --git a/src/heap/base/asm/x64/save_registers_asm.cc b/src/heap/base/asm/x64/save_registers_asm.cc
-deleted file mode 100644
-index 855a654..0000000
---- a/v8/src/heap/base/asm/x64/save_registers_asm.cc
-+++ /dev/null
-@@ -1,94 +0,0 @@
--// Copyright 2020 the V8 project authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include <src/heap/base/stack.h>
--
--// Save all callee-saved registers in the specified buffer.
--// extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--//
--// We cannot rely on clang generating the function and right symbol mangling
--// as `__attribute__((naked))` does not prevent clang from generating TSAN
--// function entry stubs (`__tsan_func_entry`). Even with
--// `__attribute__((no_sanitize_thread)` annotation clang generates the entry
--// stub.
--// See https://bugs.llvm.org/show_bug.cgi?id=45400.
--//
--// Do not depend on V8_TARGET_OS_* defines as some embedders may override the
--// GN toolchain (e.g. ChromeOS) and not provide them.
--// _WIN64 Defined as 1 when the compilation target is 64-bit ARM or x64.
--// Otherwise, undefined.
--
--#ifdef _WIN64
--// Source: https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention
--
--// 7 64-bit registers + 1 for alignment purposes = 8 * 1 = 8 intprt_t
--// 10 128-bit registers = 10 * 2 = 20 intptr_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 28,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(".globl SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
-- // %rcx: [ intptr_t* buffer ]
-- // %rbp is callee-saved. Maintain proper frame pointer for debugging.
-- " push %rbp \n"
-- " mov %rsp, %rbp \n"
-- // Save the callee-saved registers.
-- " mov %rsi, 0(%rcx) \n"
-- " mov %rdi, 8(%rcx) \n"
-- " mov %rbx, 16(%rcx) \n"
-- " mov %r12, 24(%rcx) \n"
-- " mov %r13, 32(%rcx) \n"
-- " mov %r14, 40(%rcx) \n"
-- " mov %r15, 48(%rcx) \n"
-- // Skip one slot to achieve proper alignment and use aligned instructions,
-- // as we are sure that the buffer is properly aligned.
-- " movdqa %xmm6, 64(%rcx) \n"
-- " movdqa %xmm7, 80(%rcx) \n"
-- " movdqa %xmm8, 96(%rcx) \n"
-- " movdqa %xmm9, 112(%rcx) \n"
-- " movdqa %xmm10, 128(%rcx) \n"
-- " movdqa %xmm11, 144(%rcx) \n"
-- " movdqa %xmm12, 160(%rcx) \n"
-- " movdqa %xmm13, 176(%rcx) \n"
-- " movdqa %xmm14, 192(%rcx) \n"
-- " movdqa %xmm15, 208(%rcx) \n"
-- // Return.
-- " pop %rbp \n"
-- " ret \n");
--
--#else // !_WIN64
--// Source: https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-1.0.pdf
--
--// 5 64-bit registers = 5 intprt_t
--static_assert(heap::base::Stack::NumberOfCalleeSavedRegisters() == 5,
-- "Mismatch in the number of callee-saved registers");
--static_assert(sizeof(intptr_t) == 8, "Mismatch in word size");
--
--asm(
--#ifdef __APPLE__
-- ".globl _SaveCalleeSavedRegisters \n"
-- ".private_extern _SaveCalleeSavedRegisters \n"
-- "_SaveCalleeSavedRegisters: \n"
--#else // !__APPLE__
-- ".globl SaveCalleeSavedRegisters \n"
-- ".type SaveCalleeSavedRegisters, %function \n"
-- ".hidden SaveCalleeSavedRegisters \n"
-- "SaveCalleeSavedRegisters: \n"
--#endif // !__APPLE__
-- // %rdi: [ intptr_t* buffer ]
-- // %rbp is callee-saved. Maintain proper frame pointer for debugging.
-- " push %rbp \n"
-- " mov %rsp, %rbp \n"
-- // Save the callee-saved registers.
-- " mov %rbx, 0(%rdi) \n"
-- " mov %r12, 8(%rdi) \n"
-- " mov %r13, 16(%rdi) \n"
-- " mov %r14, 24(%rdi) \n"
-- " mov %r15, 32(%rdi) \n"
-- // Restore %rbp as it was used as frame pointer and return.
-- " pop %rbp \n"
-- " ret \n");
--
--#endif // !_WIN64
-diff --git a/src/heap/base/asm/x64/save_registers_masm.asm b/src/heap/base/asm/x64/save_registers_masm.asm
-deleted file mode 100644
-index 29946a4..0000000
---- a/v8/src/heap/base/asm/x64/save_registers_masm.asm
-+++ /dev/null
-@@ -1,43 +0,0 @@
--;; Copyright 2020 the V8 project authors. All rights reserved.
--;; Use of this source code is governed by a BSD-style license that can be
--;; found in the LICENSE file.
--
--;; MASM syntax
--;; https://docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assem...
--
--public SaveCalleeSavedRegisters
--
--.code
-- ;; Save all callee-saved registers in the specified buffer.
-- ;; extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
--
--SaveCalleeSavedRegisters:
-- ;; %rcx: [ intptr_t* buffer ]
-- ;; %rbp is callee-saved. Maintain proper frame pointer for debugging.
-- push rbp
-- mov rbp, rsp
-- ;; Save the callee-saved registers.
-- mov qword ptr [rcx], rsi
-- mov qword ptr [rcx + 8], rdi
-- mov qword ptr [rcx + 16], rbx
-- mov qword ptr [rcx + 24], r12
-- mov qword ptr [rcx + 32], r13
-- mov qword ptr [rcx + 40], r14
-- mov qword ptr [rcx + 48], r15
-- ;; Skip one slot to achieve proper alignment and use aligned instructions,
-- ;; as we are sure that the buffer is properly aligned.
-- movdqa xmmword ptr [rcx + 64], xmm6
-- movdqa xmmword ptr [rcx + 80], xmm7
-- movdqa xmmword ptr [rcx + 96], xmm8
-- movdqa xmmword ptr [rcx + 112], xmm9
-- movdqa xmmword ptr [rcx + 128], xmm10
-- movdqa xmmword ptr [rcx + 144], xmm11
-- movdqa xmmword ptr [rcx + 160], xmm12
-- movdqa xmmword ptr [rcx + 176], xmm13
-- movdqa xmmword ptr [rcx + 192], xmm14
-- movdqa xmmword ptr [rcx + 208], xmm15
-- ;; Restore %rbp as it was used as frame pointer and return.
-- pop rbp
-- ret
--
--end
-diff --git a/src/heap/base/stack.cc b/src/heap/base/stack.cc
-index d8e618d..54a8697 100644
---- a/v8/src/heap/base/stack.cc
-+++ b/v8/src/heap/base/stack.cc
-@@ -6,18 +6,21 @@
-
- #include <limits>
-
-+#include "src/base/platform/platform.h"
- #include "src/base/sanitizer/asan.h"
- #include "src/base/sanitizer/msan.h"
- #include "src/base/sanitizer/tsan.h"
-
- namespace heap::base {
-
--Stack::Stack(const void* stack_start) : stack_start_(stack_start) {}
--
--void Stack::SetStackStart(const void* stack_start) {
-- DCHECK(!context_);
-- stack_start_ = stack_start;
--}
-+// Function with architecture-specific implementation:
-+// Pushes all callee-saved registers to the stack and invokes the callback,
-+// passing the supplied pointers (stack and argument) and the intended stack
-+// marker.
-+using IterateStackCallback = void (*)(const Stack*, StackVisitor*, const void*);
-+extern "C" void PushAllRegistersAndIterateStack(const Stack* stack,
-+ StackVisitor* visitor,
-+ IterateStackCallback callback);
-
- bool Stack::IsOnStack(const void* slot) const {
- DCHECK_NOT_NULL(stack_start_);
-@@ -141,97 +144,62 @@
-
- } // namespace
-
--void Stack::IteratePointers(StackVisitor* visitor) const {
-- DCHECK_NOT_NULL(stack_start_);
-- DCHECK(context_);
-- DCHECK_NOT_NULL(context_->stack_marker);
--
-+// static
-+void Stack::IteratePointersImpl(const Stack* stack, StackVisitor* visitor,
-+ const void* stack_end) {
- #ifdef V8_USE_ADDRESS_SANITIZER
- const void* asan_fake_stack = __asan_get_current_fake_stack();
- #else
- const void* asan_fake_stack = nullptr;
- #endif // V8_USE_ADDRESS_SANITIZER
-
-- // Iterate through the registers.
-- for (intptr_t value : context_->registers) {
-- const void* address = reinterpret_cast<const void*>(value);
-- MSAN_MEMORY_IS_INITIALIZED(&address, sizeof(address));
-- if (address == nullptr) continue;
-- visitor->VisitPointer(address);
-- IterateAsanFakeFrameIfNecessary(visitor, asan_fake_stack, stack_start_,
-- context_->stack_marker, address);
-- }
--
- // Iterate through the stack.
- // All supported platforms should have their stack aligned to at least
- // sizeof(void*).
- constexpr size_t kMinStackAlignment = sizeof(void*);
-- CHECK_EQ(0u, reinterpret_cast<uintptr_t>(context_->stack_marker) &
-- (kMinStackAlignment - 1));
-- IteratePointersInStack(
-- visitor, reinterpret_cast<const void* const*>(context_->stack_marker),
-- stack_start_, asan_fake_stack);
-+ CHECK_EQ(0u,
-+ reinterpret_cast<uintptr_t>(stack_end) & (kMinStackAlignment - 1));
-+ IteratePointersInStack(visitor,
-+ reinterpret_cast<const void* const*>(stack_end),
-+ stack->stack_start_, asan_fake_stack);
-
-- for (const auto& stack : inactive_stacks_) {
-- IteratePointersInStack(visitor, stack.top, stack.start, asan_fake_stack);
-+ for (const auto& segment : stack->inactive_stacks_) {
-+ IteratePointersInStack(visitor, segment.top, segment.start,
-+ asan_fake_stack);
- }
-
- IterateUnsafeStackIfNecessary(visitor);
- }
-
--namespace {
--// Function with architecture-specific implementation:
--// Saves all callee-saved registers in the specified buffer.
--extern "C" void SaveCalleeSavedRegisters(intptr_t* buffer);
-+void Stack::IteratePointers(StackVisitor* visitor) const {
-+ // TODO(v8:13493): Remove the implication as soon as IsOnCurrentStack is
-+ // compatible with stack switching.
-+ DCHECK_IMPLIES(!wasm_stack_switching_, IsOnCurrentStack(stack_start_));
-+ PushAllRegistersAndIterateStack(this, visitor, &IteratePointersImpl);
-+ // No need to deal with callee-saved registers as they will be kept alive by
-+ // the regular conservative stack iteration.
-+ // TODO(chromium:1056170): Add support for SIMD and/or filtering.
-+ IterateUnsafeStackIfNecessary(visitor);
-+}
-+
-+void Stack::IteratePointersUnsafe(StackVisitor* visitor,
-+ const void* stack_end) const {
-+ DCHECK_NOT_NULL(stack_start_);
-+ DCHECK_NOT_NULL(stack_end);
-+ DCHECK_GE(stack_start_, stack_end);
-+ IteratePointersImpl(this, visitor, stack_end);
-+}
-
- #ifdef DEBUG
--
--bool IsOnCurrentStack(const void* ptr) {
-+// static
-+bool Stack::IsOnCurrentStack(const void* ptr) {
- DCHECK_NOT_NULL(ptr);
- const void* current_stack_start = v8::base::Stack::GetStackStart();
- const void* current_stack_top = v8::base::Stack::GetCurrentStackPosition();
- return ptr <= current_stack_start && ptr >= current_stack_top;
- }
--
- #endif // DEBUG
-
--} // namespace
--
--void Stack::SaveContext(bool check_invariant) {
-- // TODO(v8:13493): Remove the method's parameter and the implication as soon
-- // as IsOnCurrentStack is compatible with stack switching.
-- DCHECK_IMPLIES(check_invariant, IsOnCurrentStack(stack_start_));
-- // Contexts can be nested but the marker and the registers are only saved on
-- // the first invocation.
-- if (context_) {
-- ++context_->nesting_counter;
-- return;
-- }
-- // Allocate the context and set the marker.
-- const void* stack_top = v8::base::Stack::GetCurrentStackPosition();
-- DCHECK_NOT_NULL(stack_top);
-- context_ = std::make_unique<Context>(stack_top);
-- // TODO(v8:13493): Remove the implication as soon as IsValidMarker is
-- // compatible with stack switching.
-- DCHECK_IMPLIES(check_invariant, stack_top <= stack_start_);
-- context_->stack_marker = stack_top;
-- // Save the registers.
-- SaveCalleeSavedRegisters(context_->registers.data());
--}
--
--void Stack::ClearContext(bool check_invariant) {
-- // TODO(v8:13493): Remove the method's parameter and the implication as soon
-- // as IsOnCurrentStack is compatible with stack switching.
-- DCHECK_IMPLIES(check_invariant, IsOnCurrentStack(stack_start_));
-- DCHECK(context_);
-- // Skip clearing the context if that was a nested invocation.
-- if (context_->nesting_counter > 0) {
-- --context_->nesting_counter;
-- return;
-- }
-- context_.reset();
--}
--
- void Stack::AddStackSegment(const void* start, const void* top) {
- DCHECK_LE(top, start);
- inactive_stacks_.push_back({start, top});
-diff --git a/src/heap/base/stack.h b/src/heap/base/stack.h
-index 06edf4c..4b0a14e 100644
---- a/v8/src/heap/base/stack.h
-+++ b/v8/src/heap/base/stack.h
-@@ -5,10 +5,9 @@
- #ifndef V8_HEAP_BASE_STACK_H_
- #define V8_HEAP_BASE_STACK_H_
-
--#include <memory>
-+#include <vector>
-
- #include "src/base/macros.h"
--#include "src/base/platform/platform.h"
-
- namespace heap::base {
-
-@@ -30,96 +29,54 @@
- // of relevant GC stack regions where interesting pointers can be found.
- class V8_EXPORT_PRIVATE Stack final {
- public:
-- // The size of the buffer for storing the callee-saved registers is going to
-- // be equal to kNumberOfCalleeSavedRegisters * sizeof(intptr_t).
-- // This is architecture-specific.
-- static constexpr int NumberOfCalleeSavedRegisters() {
-- return Context::kNumberOfCalleeSavedRegisters;
-- }
--
-- explicit Stack(const void* stack_start = nullptr);
-+ explicit Stack(const void* stack_start = nullptr,
-+ bool wasm_stack_switching = false)
-+ : stack_start_(stack_start),
-+ wasm_stack_switching_(wasm_stack_switching) {}
-
- // Sets the start of the stack.
-- void SetStackStart(const void* stack_start);
-+ void SetStackStart(const void* stack_start, bool wasm_stack_switching) {
-+ stack_start_ = stack_start;
-+ wasm_stack_switching_ = wasm_stack_switching;
-+ }
-
- // Returns true if |slot| is part of the stack and false otherwise.
- bool IsOnStack(const void* slot) const;
-
-- // Word-aligned iteration of the stack and the saved registers.
-- // Slot values are passed on to `visitor`.
-+ // Word-aligned iteration of the stack. Callee-saved registers are pushed to
-+ // the stack before iterating pointers. Slot values are passed on to
-+ // `visitor`.
- void IteratePointers(StackVisitor* visitor) const;
-
-- // Saves and clears the stack context, i.e., it sets the stack marker and
-- // saves the registers.
-- // TODO(v8:13493): The parameter is for suppressing the invariant check in
-- // the case of WASM stack switching. It will be removed as soon as context
-- // saving becomes compatible with stack switching.
-- void SaveContext(bool check_invariant = true);
-- void ClearContext(bool check_invariant = true);
-+ // Word-aligned iteration of the stack, starting at `stack_end`. Slot values
-+ // are passed on to `visitor`. This is intended to be used with verifiers that
-+ // only visit a subset of the stack of IteratePointers().
-+ //
-+ // **Ignores:**
-+ // - Callee-saved registers.
-+ // - SafeStack.
-+ void IteratePointersUnsafe(StackVisitor* visitor,
-+ const void* stack_end) const;
-
- void AddStackSegment(const void* start, const void* top);
- void ClearStackSegments();
-
- private:
-- struct Context {
-- // The following constant is architecture-specific.
--#if V8_HOST_ARCH_IA32
-- // Must be consistent with heap/base/asm/ia32/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 3;
--#elif V8_HOST_ARCH_X64
--#ifdef _WIN64
-- // Must be consistent with heap/base/asm/x64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 28;
--#else // !_WIN64
-- // Must be consistent with heap/base/asm/x64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 5;
--#endif // !_WIN64
--#elif V8_HOST_ARCH_ARM64
-- // Must be consistent with heap/base/asm/arm64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 11;
--#elif V8_HOST_ARCH_ARM
-- // Must be consistent with heap/base/asm/arm/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 8;
--#elif V8_HOST_ARCH_PPC64
-- // Must be consistent with heap/base/asm/ppc/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 20;
--#elif V8_HOST_ARCH_PPC
-- // Must be consistent with heap/base/asm/ppc/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 20;
--#elif V8_HOST_ARCH_MIPS64
-- // Must be consistent with heap/base/asm/mips64el/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 9;
--#elif V8_HOST_ARCH_LOONG64
-- // Must be consistent with heap/base/asm/loong64/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 11;
--#elif V8_HOST_ARCH_S390
-- // Must be consistent with heap/base/asm/s390/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 10;
--#elif V8_HOST_ARCH_RISCV32
-- // Must be consistent with heap/base/asm/riscv/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 12;
--#elif V8_HOST_ARCH_RISCV64
-- // Must be consistent with heap/base/asm/riscv/.
-- static constexpr int kNumberOfCalleeSavedRegisters = 12;
--#else
--#error Unknown architecture.
-+#ifdef DEBUG
-+ static bool IsOnCurrentStack(const void* ptr);
- #endif
-
-- explicit Context(const void* marker) : stack_marker(marker) {}
--
-- int nesting_counter = 0;
-- const void* stack_marker;
-- // We always double-align this buffer, to support for longer registers,
-- // e.g., 128-bit registers in WIN64.
-- alignas(2 * sizeof(intptr_t))
-- std::array<intptr_t, kNumberOfCalleeSavedRegisters> registers;
-- };
-+ static void IteratePointersImpl(const Stack* stack, StackVisitor* visitor,
-+ const void* stack_end);
-
- const void* stack_start_;
-- std::unique_ptr<Context> context_;
-
-- // Stack segments that may also contain pointers and should be
-- // scanned.
-+ // TODO(v8:13493): This is for suppressing the check that we are in the
-+ // correct stack, in the case of WASM stack switching. It will be removed as
-+ // soon as context saving becomes compatible with stack switching.
-+ bool wasm_stack_switching_;
-+
-+ // Stack segments that may also contain pointers and should be scanned.
- struct StackSegments {
- const void* start;
- const void* top;
-diff --git a/src/heap/cppgc-js/cpp-heap.cc b/src/heap/cppgc-js/cpp-heap.cc
-index c27c612..63c5212 100644
---- a/v8/src/heap/cppgc-js/cpp-heap.cc
-+++ b/v8/src/heap/cppgc-js/cpp-heap.cc
-@@ -16,6 +16,7 @@
- #include "src/base/logging.h"
- #include "src/base/macros.h"
- #include "src/base/optional.h"
-+#include "src/base/platform/platform.h"
- #include "src/base/platform/time.h"
- #include "src/execution/isolate-inl.h"
- #include "src/flags/flags.h"
-@@ -839,7 +840,7 @@
- const size_t bytes_allocated_in_prefinalizers = ExecutePreFinalizers();
- #if CPPGC_VERIFY_HEAP
- UnifiedHeapMarkingVerifier verifier(*this, *collection_type_);
-- verifier.Run(stack_state_of_prev_gc(),
-+ verifier.Run(stack_state_of_prev_gc(), stack_end_of_current_gc(),
- stats_collector()->marked_bytes_on_current_cycle() +
- bytes_allocated_in_prefinalizers);
- #endif // CPPGC_VERIFY_HEAP
-@@ -942,7 +943,7 @@
- // Finish sweeping in case it is still running.
- sweeper().FinishIfRunning();
-
-- SaveStackContextScope stack_context_scope(stack());
-+ SetStackEndOfCurrentGC(v8::base::Stack::GetCurrentStackPosition());
-
- if (isolate_) {
- reinterpret_cast<v8::Isolate*>(isolate_)
-diff --git a/src/heap/cppgc/heap-base.h b/src/heap/cppgc/heap-base.h
-index ac1dd3f..29a88b2 100644
---- a/v8/src/heap/cppgc/heap-base.h
-+++ b/v8/src/heap/cppgc/heap-base.h
-@@ -183,6 +183,13 @@
- stack_state_of_prev_gc_ = stack_state;
- }
-
-+ const void* stack_end_of_current_gc() const {
-+ return stack_end_of_current_gc_;
-+ }
-+ void SetStackEndOfCurrentGC(const void* stack_end) {
-+ stack_end_of_current_gc_ = stack_end;
-+ }
-+
- void SetInAtomicPauseForTesting(bool value) { in_atomic_pause_ = value; }
-
- virtual void StartIncrementalGarbageCollectionForTesting() = 0;
-@@ -288,6 +295,10 @@
- EmbedderStackState::kNoHeapPointers;
- std::unique_ptr<EmbedderStackState> override_stack_state_;
-
-+ // Marker that signals end of the interesting stack region in which on-heap
-+ // pointers can be found.
-+ const void* stack_end_of_current_gc_ = nullptr;
-+
- bool in_atomic_pause_ = false;
-
- int creation_thread_id_ = v8::base::OS::GetCurrentThreadId();
-diff --git a/src/heap/cppgc/heap.cc b/src/heap/cppgc/heap.cc
-index 7769412..28a11fc 100644
---- a/v8/src/heap/cppgc/heap.cc
-+++ b/v8/src/heap/cppgc/heap.cc
-@@ -166,10 +166,9 @@
- DCHECK(!in_no_gc_scope());
- CHECK(!in_disallow_gc_scope());
- config_.stack_state = stack_state;
-+ SetStackEndOfCurrentGC(v8::base::Stack::GetCurrentStackPosition());
- in_atomic_pause_ = true;
-
-- stack()->SaveContext();
--
- #if defined(CPPGC_YOUNG_GENERATION)
- // Check if the young generation was enabled. We must enable young generation
- // before calling the custom weak callbacks to make sure that the callbacks
-@@ -188,7 +187,7 @@
- const size_t bytes_allocated_in_prefinalizers = ExecutePreFinalizers();
- #if CPPGC_VERIFY_HEAP
- MarkingVerifier verifier(*this, config_.collection_type);
-- verifier.Run(config_.stack_state,
-+ verifier.Run(config_.stack_state, stack_end_of_current_gc(),
- stats_collector()->marked_bytes_on_current_cycle() +
- bytes_allocated_in_prefinalizers);
- #endif // CPPGC_VERIFY_HEAP
-@@ -197,8 +196,6 @@
- #endif
- USE(bytes_allocated_in_prefinalizers);
-
-- stack()->ClearContext();
--
- #if defined(CPPGC_YOUNG_GENERATION)
- ResetRememberedSet();
- #endif // defined(CPPGC_YOUNG_GENERATION)
-diff --git a/src/heap/cppgc/marking-verifier.cc b/src/heap/cppgc/marking-verifier.cc
-index 5508766..b7127c2 100644
---- a/v8/src/heap/cppgc/marking-verifier.cc
-+++ b/v8/src/heap/cppgc/marking-verifier.cc
-@@ -45,7 +45,8 @@
- collection_type_(collection_type) {}
-
- void MarkingVerifierBase::Run(
-- StackState stack_state, v8::base::Optional<size_t> expected_marked_bytes) {
-+ StackState stack_state, const void* stack_end,
-+ v8::base::Optional<size_t> expected_marked_bytes) {
- Traverse(heap_.raw_heap());
- // Avoid verifying the stack when running with TSAN as the TSAN runtime changes
- // stack contents when e.g. working with locks. Specifically, the marker uses
-@@ -62,7 +63,7 @@
- #if !defined(THREAD_SANITIZER) && !defined(CPPGC_POINTER_COMPRESSION)
- if (stack_state == StackState::kMayContainHeapPointers) {
- in_construction_objects_ = &in_construction_objects_stack_;
-- heap_.stack()->IteratePointers(this);
-+ heap_.stack()->IteratePointersUnsafe(this, stack_end);
- // The objects found through the unsafe iteration are only a subset of the
- // regular iteration as they miss objects held alive only from callee-saved
- // registers that are never pushed on the stack and SafeStack.
-diff --git a/src/heap/cppgc/marking-verifier.h b/src/heap/cppgc/marking-verifier.h
-index 5132b3a..5136f29 100644
---- a/v8/src/heap/cppgc/marking-verifier.h
-+++ b/v8/src/heap/cppgc/marking-verifier.h
-@@ -41,7 +41,7 @@
- MarkingVerifierBase(const MarkingVerifierBase&) = delete;
- MarkingVerifierBase& operator=(const MarkingVerifierBase&) = delete;
-
-- void Run(StackState, v8::base::Optional<size_t>);
-+ void Run(StackState, const void*, v8::base::Optional<size_t>);
-
- protected:
- MarkingVerifierBase(HeapBase&, CollectionType, VerificationState&,
-diff --git a/src/heap/heap.cc b/src/heap/heap.cc
-index 4994a3a..f4b7da0 100644
---- a/v8/src/heap/heap.cc
-+++ b/v8/src/heap/heap.cc
-@@ -1685,7 +1685,22 @@
- DevToolsTraceEventScope devtools_trace_event_scope(
- this, IsYoungGenerationCollector(collector) ? "MinorGC" : "MajorGC",
- GarbageCollectionReasonToString(gc_reason));
-- SaveStackContextScope stack_context_scope(&stack());
-+
-+ if (cpp_heap()) {
-+ if (collector == GarbageCollector::MARK_COMPACTOR ||
-+ (collector == GarbageCollector::MINOR_MARK_COMPACTOR &&
-+ CppHeap::From(cpp_heap())->generational_gc_supported())) {
-+ // CppHeap needs a stack marker at the top of all entry points to allow
-+ // deterministic passes over the stack. E.g., a verifier that should
-+ // only find a subset of references of the marker.
-+ //
-+ // TODO(chromium:1056170): Consider adding a component that keeps track
-+ // of relevant GC stack regions where interesting pointers can be found.
-+ static_cast<v8::internal::CppHeap*>(cpp_heap())
-+ ->SetStackEndOfCurrentGC(
-+ v8::base::Stack::GetCurrentStackPosition());
-+ }
-+ }
-
- GarbageCollectionPrologue(gc_reason, gc_callback_flags);
- {
-@@ -2396,8 +2411,6 @@
- DCHECK(incremental_marking_->IsStopped());
- DCHECK_NOT_NULL(isolate()->global_safepoint());
-
-- SaveStackContextScope stack_context_scope(&stack());
--
- isolate()->global_safepoint()->IterateClientIsolates([](Isolate* client) {
- client->heap()->FreeSharedLinearAllocationAreas();
-
-@@ -5809,7 +5822,12 @@
- }
-
- void Heap::SetStackStart(void* stack_start) {
-- stack().SetStackStart(stack_start);
-+#if V8_ENABLE_WEBASSEMBLY
-+ stack().SetStackStart(stack_start,
-+ v8_flags.experimental_wasm_stack_switching);
-+#else
-+ stack().SetStackStart(stack_start, false);
-+#endif // V8_ENABLE_WEBASSEMBLY
- }
-
- ::heap::base::Stack& Heap::stack() {
-@@ -6391,8 +6409,7 @@
- filtering_(filtering),
- filter_(nullptr),
- space_iterator_(nullptr),
-- object_iterator_(nullptr),
-- stack_context_scope_(&heap->stack()) {
-+ object_iterator_(nullptr) {
- heap_->MakeHeapIterable();
- // Start the iteration.
- space_iterator_ = new SpaceIterator(heap_);
-@@ -7371,28 +7388,5 @@
- CppClassNamesAsHeapObjectNameScope::~CppClassNamesAsHeapObjectNameScope() =
- default;
-
--SaveStackContextScope::SaveStackContextScope(::heap::base::Stack* stack)
-- : stack_(stack) {
--#if V8_ENABLE_WEBASSEMBLY
-- // TODO(v8:13493): Do not check the stack context invariant if WASM stack
-- // switching is enabled. This will be removed as soon as context saving
-- // becomes compatible with stack switching.
-- stack_->SaveContext(!v8_flags.experimental_wasm_stack_switching);
--#else
-- stack_->SaveContext();
--#endif // V8_ENABLE_WEBASSEMBLY
--}
--
--SaveStackContextScope::~SaveStackContextScope() {
--#if V8_ENABLE_WEBASSEMBLY
-- // TODO(v8:13493): Do not check the stack context invariant if WASM stack
-- // switching is enabled. This will be removed as soon as context saving
-- // becomes compatible with stack switching.
-- stack_->ClearContext(!v8_flags.experimental_wasm_stack_switching);
--#else
-- stack_->ClearContext();
--#endif // V8_ENABLE_WEBASSEMBLY
--}
--
- } // namespace internal
- } // namespace v8
-diff --git a/src/heap/heap.h b/src/heap/heap.h
-index c93d89c..bc565ca 100644
---- a/v8/src/heap/heap.h
-+++ b/v8/src/heap/heap.h
-@@ -2633,17 +2633,6 @@
- Heap* heap_;
- };
-
--// TODO(v8:13493): This class will move to src/heap/base/stack.h once its
--// implementation no longer needs access to V8 flags.
--class V8_EXPORT_PRIVATE V8_NODISCARD SaveStackContextScope {
-- public:
-- explicit SaveStackContextScope(::heap::base::Stack* stack);
-- ~SaveStackContextScope();
--
-- protected:
-- ::heap::base::Stack* stack_;
--};
--
- class V8_NODISCARD DisableConservativeStackScanningScopeForTesting {
- public:
- explicit inline DisableConservativeStackScanningScopeForTesting(Heap* heap)
-@@ -2695,7 +2684,6 @@
- SpaceIterator* space_iterator_;
- // Object iterator for the space currently being iterated.
- std::unique_ptr<ObjectIterator> object_iterator_;
-- SaveStackContextScope stack_context_scope_;
-
- DISALLOW_GARBAGE_COLLECTION(no_heap_allocation_)
- };
-diff --git a/src/profiler/heap-snapshot-generator.cc b/src/profiler/heap-snapshot-generator.cc
-index e076418..f0b3058 100644
---- a/v8/src/profiler/heap-snapshot-generator.cc
-+++ b/v8/src/profiler/heap-snapshot-generator.cc
-@@ -2055,16 +2055,14 @@
- // its custom name to a generic builtin.
- RootsReferencesExtractor extractor(this);
- ReadOnlyRoots(heap_).Iterate(&extractor);
-- {
-- SaveStackContextScope scope(&heap_->stack());
-- heap_->IterateRoots(&extractor, base::EnumSet<SkipRoot>{SkipRoot::kWeak});
-- // TODO(v8:11800): The heap snapshot generator incorrectly considers the
-- // weak string tables as strong retainers. Move IterateWeakRoots after
-- // SetVisitingWeakRoots.
-- heap_->IterateWeakRoots(&extractor, {});
-- extractor.SetVisitingWeakRoots();
-- heap_->IterateWeakGlobalHandles(&extractor);
-- }
-+ heap_->IterateRoots(&extractor, base::EnumSet<SkipRoot>{SkipRoot::kWeak});
-+ // TODO(v8:11800): The heap snapshot generator incorrectly considers the weak
-+ // string tables as strong retainers. Move IterateWeakRoots after
-+ // SetVisitingWeakRoots.
-+ heap_->IterateWeakRoots(&extractor, {});
-+ extractor.SetVisitingWeakRoots();
-+ heap_->IterateWeakGlobalHandles(&extractor);
-+
- bool interrupted = false;
-
- CombinedHeapObjectIterator iterator(heap_,
diff --git a/chromium-111-v8-std-layout2.patch b/chromium-111-v8-std-layout2.patch
deleted file mode 100644
index db983af..0000000
--- a/chromium-111-v8-std-layout2.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From 916641c08de44e0a915df223d55781c6c912717c Mon Sep 17 00:00:00 2001
-From: Nikolaos Papaspyrou <nikolaos(a)chromium.org>
-Date: Thu, 19 Jan 2023 13:43:10 +0100
-Subject: [PATCH] [heap] Move the Stack object from ThreadLocalTop to Isolate
-
-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: I026a35af3bc6999a09b21f277756d4454c086343
-
-(stripped tests)
----
-
-diff --git a/src/execution/isolate.cc b/src/execution/isolate.cc
-index 31536a1..22b8492 100644
---- a/v8/src/execution/isolate.cc
-+++ b/v8/src/execution/isolate.cc
-@@ -3069,21 +3069,23 @@
- 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();
-- heap()->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();
- }
- }
-@@ -3371,23 +3373,13 @@
- Isolate* saved_isolate = isolate->TryGetCurrent();
- SetIsolateThreadLocals(isolate, nullptr);
- isolate->set_thread_id(ThreadId::Current());
-- if (saved_isolate) {
-- isolate->thread_local_top()->stack_ =
-- std::move(saved_isolate->thread_local_top()->stack_);
-- } else {
-- isolate->heap()->SetStackStart(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
-@@ -4652,6 +4644,10 @@
- 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 afc3d0b..415e476 100644
---- a/v8/src/execution/isolate.h
-+++ b/v8/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"
-@@ -2028,6 +2029,8 @@
- 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
-@@ -2526,6 +2529,9 @@
- // 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 c115ae0..05cc20b 100644
---- a/v8/src/execution/thread-local-top.cc
-+++ b/v8/src/execution/thread-local-top.cc
-@@ -37,7 +37,6 @@
- current_embedder_state_ = nullptr;
- failed_access_check_callback_ = nullptr;
- thread_in_wasm_flag_address_ = kNullAddress;
-- stack_ = ::heap::base::Stack();
- }
-
- void ThreadLocalTop::Initialize(Isolate* isolate) {
-@@ -45,12 +44,8 @@
- isolate_ = isolate;
- thread_id_ = ThreadId::Current();
- #if V8_ENABLE_WEBASSEMBLY
-- stack_.SetStackStart(base::Stack::GetStackStart(),
-- v8_flags.experimental_wasm_stack_switching);
- thread_in_wasm_flag_address_ = reinterpret_cast<Address>(
- trap_handler::GetThreadInWasmThreadLocalAddress());
--#else
-- stack_.SetStackStart(base::Stack::GetStackStart(), false);
- #endif // V8_ENABLE_WEBASSEMBLY
- #ifdef USE_SIMULATOR
- simulator_ = Simulator::current(isolate);
-diff --git a/src/execution/thread-local-top.h b/src/execution/thread-local-top.h
-index 43fec0a..989c817 100644
---- a/v8/src/execution/thread-local-top.h
-+++ b/v8/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 @@
- // 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 @@
-
- // 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 f4b7da0..6efd486 100644
---- a/v8/src/heap/heap.cc
-+++ b/v8/src/heap/heap.cc
-@@ -5830,9 +5830,7 @@
- #endif // V8_ENABLE_WEBASSEMBLY
- }
-
--::heap::base::Stack& Heap::stack() {
-- return isolate_->thread_local_top()->stack_;
--}
-+::heap::base::Stack& Heap::stack() { return isolate_->stack(); }
-
- void Heap::StartTearDown() {
- // Finish any ongoing sweeping to avoid stray background tasks still accessing
diff --git a/chromium-94.0.4606.71-InkDropHost-crash.patch b/chromium-94.0.4606.71-InkDropHost-crash.patch
deleted file mode 100644
index b5e2794..0000000
--- a/chromium-94.0.4606.71-InkDropHost-crash.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h
---- chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash 2021-10-05 16:04:46.313586509 -0400
-+++ chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h 2021-10-05 16:05:12.213732558 -0400
-@@ -228,6 +228,11 @@ class VIEWS_EXPORT InkDropHost {
- // Used to observe View and inform the InkDrop of host-transform changes.
- ViewLayerTransformObserver host_view_transform_observer_;
-
-+ // Declared before |ink_drop_|, because InkDropImpl may call
-+ // RemoveInkDropLayer on partly destructed InkDropHost. In
-+ // that case |ink_drop_mask_| must be still valid.
-+ std::unique_ptr<views::InkDropMask> ink_drop_mask_;
-+
- // Should not be accessed directly. Use GetInkDrop() instead.
- std::unique_ptr<InkDrop> ink_drop_;
-
-@@ -249,8 +254,6 @@ class VIEWS_EXPORT InkDropHost {
- int ink_drop_small_corner_radius_ = 2;
- int ink_drop_large_corner_radius_ = 4;
-
-- std::unique_ptr<views::InkDropMask> ink_drop_mask_;
--
- base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
- base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
- create_ink_drop_ripple_callback_;
diff --git a/chromium-v4l2-fix.patch b/chromium-v4l2-fix.patch
deleted file mode 100644
index 1ae7530..0000000
--- a/chromium-v4l2-fix.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-commit e775ac4770bb1e5dfbfe22c5b56752ed4a2317c5
-Author: Hirokazu Honda <hiroh(a)chromium.org>
-Date: Tue Jan 17 17:54:02 2023 +0000
-
- Revert "media/gpu/v4l2VEA,IP: Workaround to USERPTR API against read-only buf"
-
- This reverts commit 203fdd03a4317f2eac57161ee101515a82df704f.
-
- Reason for revert: This workaround is no longer required because of
- the kernel patch was reverted.
-
- Original change's description:
- > media/gpu/v4l2VEA,IP: Workaround to USERPTR API against read-only buf
- >
- > VideoFrame fed in VEA::Encode() is read-only since R107 if the
- > VideoFrame has a shared memory. V4L2VideoEncodeAccelerator fails
- > because VIDOC_QBUF with USERPTR buffer fails if the pointers
- > references a read-only buffer.
- > The USERPTR API issue is apparently to be fixed by a kernel side.
- > In the meantime, this CL adds the workaround to the issue; the read
- > only buffer is copied to a writable temporary buffer every Encode
- > before VIDIOC_QBUF.
- > Not that VideoFrame has a shared memory in the case of screen share
- > because a camera stack produces GpuMemoryBuffer.
- >
- > Bug: b:243883312
- > Test: video_encode_accelerator_tests on elm, kevin and trogdor
- > Test: screen share in Google Meet on elm, kevin and trogdor
- > Change-Id: I922d98eaf52f80d9cd6c3784a8544bffb1232856
- > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3891421
- > Reviewed-by: Nathan Hebert <nhebert(a)chromium.org>
- > Commit-Queue: Hirokazu Honda <hiroh(a)chromium.org>
- > Cr-Commit-Position: refs/heads/main@{#1046659}
-
- Bug: b:243883312, b:261660224
- Change-Id: I6fe37276f2ebe8c8730cfd3dd766b04277b32a67
- Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4091205
- Reviewed-by: Nathan Hebert <nhebert(a)chromium.org>
- Commit-Queue: Hirokazu Honda <hiroh(a)chromium.org>
- Cr-Commit-Position: refs/heads/main@{#1093388}
-
-diff --git a/media/gpu/v4l2/v4l2_image_processor_backend.cc b/media/gpu/v4l2/v4l2_image_processor_backend.cc
-index dc72a4ac060a9..f3049f4546e2e 100644
---- a/media/gpu/v4l2/v4l2_image_processor_backend.cc
-+++ b/media/gpu/v4l2/v4l2_image_processor_backend.cc
-@@ -925,35 +925,16 @@ bool V4L2ImageProcessorBackend::EnqueueInputRecord(
-
- switch (input_memory_type_) {
- case V4L2_MEMORY_USERPTR: {
-- VideoFrame& frame = *job_record->input_frame;
- const size_t num_planes = V4L2Device::GetNumPlanesOfV4L2PixFmt(
- input_config_.fourcc.ToV4L2PixFmt());
- std::vector<void*> user_ptrs(num_planes);
-- if (frame.storage_type() == VideoFrame::STORAGE_SHMEM) {
-- // TODO(b/243883312): This copies the video frame to a writable buffer
-- // since the USERPTR API requires writable permission. Remove this
-- // workaround once the unreasonable permission is fixed.
-- const size_t buffer_size = frame.shm_region()->GetSize();
-- std::vector<uint8_t> writable_buffer(buffer_size);
-- std::memcpy(writable_buffer.data(), frame.data(0), buffer_size);
-- for (size_t i = 0; i < num_planes; ++i) {
-- const std::intptr_t plane_offset =
-- reinterpret_cast<std::intptr_t>(frame.data(i)) -
-- reinterpret_cast<std::intptr_t>(frame.data(0));
-- user_ptrs[i] = writable_buffer.data() + plane_offset;
-- }
-- job_record->input_frame->AddDestructionObserver(base::BindOnce(
-- [](std::vector<uint8_t>) {}, std::move(writable_buffer)));
-- } else {
-- for (size_t i = 0; i < num_planes; ++i)
-- user_ptrs[i] = frame.writable_data(i);
-- }
--
- for (size_t i = 0; i < num_planes; ++i) {
- int bytes_used =
-- VideoFrame::PlaneSize(frame.format(), i, input_config_.size)
-+ VideoFrame::PlaneSize(job_record->input_frame->format(), i,
-+ input_config_.size)
- .GetArea();
- buffer.SetPlaneBytesUsed(i, bytes_used);
-+ user_ptrs[i] = const_cast<uint8_t*>(job_record->input_frame->data(i));
- }
- if (!std::move(buffer).QueueUserPtr(user_ptrs)) {
- VPLOGF(1) << "Failed to queue a DMABUF buffer to input queue";
-diff --git a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
-index 56389ea3eec08..d452ba48a69e2 100644
---- a/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
-+++ b/media/gpu/v4l2/v4l2_video_encode_accelerator.cc
-@@ -783,7 +783,7 @@ void V4L2VideoEncodeAccelerator::EncodeTask(scoped_refptr<VideoFrame> frame,
- const bool is_expected_storage_type =
- native_input_mode_
- ? frame->storage_type() == VideoFrame::STORAGE_GPU_MEMORY_BUFFER
-- : frame->storage_type() == VideoFrame::STORAGE_SHMEM;
-+ : frame->IsMappable();
- if (!is_expected_storage_type) {
- VLOGF(1) << "Unexpected storage: "
- << VideoFrame::StorageTypeToString(frame->storage_type());
-@@ -1392,27 +1392,16 @@ bool V4L2VideoEncodeAccelerator::EnqueueInputRecord(
- NOTIFY_ERROR(kPlatformFailureError);
- }
-
-- // TODO(b/243883312): This copies the video frame to a writable buffer
-- // since the USERPTR API requires writable permission. Remove this
-- // workaround once the unreasonable permission is fixed.
-- const size_t buffer_size = frame->shm_region()->GetSize();
-- std::vector<uint8_t> writable_buffer(buffer_size);
-- std::memcpy(writable_buffer.data(), frame->data(0), buffer_size);
-+ // The frame data is readable only and the driver doesn't actually write
-+ // the buffer. But USRPTR buffer needs void*. So const_cast<> is required.
- std::vector<void*> user_ptrs(num_planes);
- for (size_t i = 0; i < num_planes; ++i) {
-- const std::intptr_t plane_offset =
-- reinterpret_cast<std::intptr_t>(frame->data(i)) -
-- reinterpret_cast<std::intptr_t>(frame->data(0));
-- user_ptrs[i] = writable_buffer.data() + plane_offset;
-+ user_ptrs[i] = const_cast<uint8_t*>(frame->data(i));
- }
--
- if (!std::move(input_buf).QueueUserPtr(std::move(user_ptrs))) {
-- VPLOGF(1) << "Failed to queue a USRPTR buffer to input queue";
-- NOTIFY_ERROR(kPlatformFailureError);
-+ VPLOGF(1) << "Failed queue a USRPTR buffer to input queue";
- return false;
- }
-- frame->AddDestructionObserver(
-- base::DoNothingWithBoundArgs(std::move(writable_buffer)));
- break;
- }
- case V4L2_MEMORY_DMABUF: {
-@@ -1421,6 +1410,7 @@ bool V4L2VideoEncodeAccelerator::EnqueueInputRecord(
- VPLOGF(1) << "Failed queue a DMABUF buffer to input queue";
- return false;
- }
-+
- // Keep |gmb_handle| alive as long as |frame| is alive so that fds passed
- // to the driver are valid during encoding.
- frame->AddDestructionObserver(base::BindOnce(
diff --git a/chromium.spec b/chromium.spec
index 8c8cd9b..81a6c64 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -190,8 +190,6 @@
%global bundlelibwebp 0
%global bundlelibpng 0
%global bundlelibjpeg 0
-# Needs FT_ClipBox which was implemented after 2.11.0. Should be able to set this back to 0 later.
-%global bundlefreetype 1
%global bundlelibdrm 0
%global bundlefontconfig 0
%global bundleffmpegfree 0
@@ -201,6 +199,12 @@
%else
%global bundlelibaom 0
%endif
+# system freetype on fedora > 36
+%if 0%{?fedora} > 36
+%global bundlefreetype 0
+%else
+%global bundlefreetype 1
+%endif
%endif
### From 2013 until early 2021, Google permitted distribution builds of
@@ -237,7 +241,7 @@
%endif
Name: chromium%{chromium_channel}
-Version: 110.0.5481.177
+Version: 111.0.5563.50
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
@@ -274,9 +278,6 @@ Patch11: chromium-93.0.4577.63-py3-bootstrap.patch
# Add "Fedora" to the user agent string
Patch12: chromium-101.0.4951.41-fedora-user-agent.patch
-# numeric_limits is not a member of std
-Patch13: chromium-110-limits.patch
-
# debian patch, disable font-test
Patch20: chromium-disable-font-tests.patch
@@ -292,9 +293,6 @@ Patch57: chromium-96.0.4664.45-missing-cstring.patch
# Fix headers to look for system paths when we are using system minizip
Patch61: chromium-109-system-minizip-header-fix.patch
-# Update bundled copy of wayland-client-core.h
-Patch62: chromium-105.0.5195.52-update-wayland-client-core.patch
-
# Fix issue where closure_compiler thinks java is only allowed in android builds
# https://bugs.chromium.org/p/chromium/issues/detail?id=1192875
Patch65: chromium-91.0.4472.77-java-only-allowed-in-android-builds.patch
@@ -321,9 +319,6 @@ Patch91: chromium-108-system-opus.patch
# fix prefers-color-scheme
Patch92: chromium-110-gtktheme.patch
-# From gentoo
-Patch98: chromium-94.0.4606.71-InkDropHost-crash.patch
-
# need to explicitly include a kernel header on EL7 to support MFD_CLOEXEC, F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
Patch100: chromium-108-el7-include-fcntl-memfd.patch
@@ -369,21 +364,6 @@ Patch122: chromium-109-gcc13.patch
# Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches
Patch130: chromium-103-VirtualCursor-std-layout.patch
-Patch131: chromium-110-CanvasResourceProvider-pragma.patch
-Patch132: chromium-110-CredentialUIEntry-const.patch
-Patch133: chromium-110-DarkModeLABColorSpace-pow.patch
-Patch134: chromium-110-dpf-arm64.patch
-Patch135: chromium-110-InProgressDownloadManager-include.patch
-Patch136: chromium-110-kCustomizeChromeColors-type.patch
-Patch137: chromium-110-NativeThemeBase-fabs.patch
-Patch138: chromium-110-Presenter-include.patch
-Patch139: chromium-110-raw_ptr-constexpr.patch
-Patch140: chromium-110-StorageQueue-decltype.patch
-Patch141: chromium-110-SyncIterator-template.patch
-Patch142: chromium-110-url_canon_internal-cast.patch
-Patch143: chromium-110-v8-gcc.patch
-Patch144: chromium-111-v8-std-layout1.patch
-Patch145: chromium-111-v8-std-layout2.patch
# VAAPI
# Upstream turned VAAPI on in Linux in 86
@@ -391,10 +371,6 @@ Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
Patch205: chromium-86.0.4240.75-fix-vaapi-on-intel.patch
Patch206: chromium-110-ozone-wayland-vaapi-support.patch
-# V4L2
-# Upstream
-Patch250: chromium-v4l2-fix.patch
-
# Apply these patches to work around EPEL8 issues
Patch300: chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch
@@ -907,8 +883,8 @@ without support for alsa, cups, dbus, gconf, gio, kerberos, pulseaudio, or
udev.
%prep
-
%setup -q -n chromium-%{version}
+
### Chromium Fedora Patches ###
%patch0 -p1 -b .sandboxpie
%patch1 -p1 -b .etc
@@ -920,13 +896,6 @@ udev.
%patch9 -p1 -b .widevine-no-download
%patch11 -p1 -b .py3
-# Fedora branded user agent
-%if 0%{?fedora}
-%patch12 -p1 -b .fedora-user-agent
-%endif
-
-%patch13 -p1 -b .limits
-
%patch20 -p1 -b .disable-font-test
%if 0%{?fedora} || 0%{?rhel} >= 8
@@ -957,7 +926,10 @@ udev.
%patch92 -p1 -b .gtk-prefers-color-scheme
-%patch98 -p1 -b .InkDropHost-crash
+# Fedora branded user agent
+%if 0%{?fedora}
+%patch12 -p1 -b .fedora-user-agent
+%endif
%if ! %{bundleffmpegfree}
%patch114 -p1 -b .system-ffmppeg
@@ -984,21 +956,6 @@ udev.
%endif
%patch130 -p1 -b .VirtualCursor-std-layout
-%patch131 -p1 -b .CanvasResourceProvider-pragma
-%patch132 -p1 -b .CredentialUIEntry-const
-%patch133 -p1 -b .DarkModeLABColorSpace-pow
-%patch134 -p1 -b .dpf-arm64
-%patch135 -p1 -b .InProgressDownloadManager-include
-%patch136 -p1 -b .kCustomizeChromeColors-type
-%patch137 -p1 -b .NativeThemeBase-fabs
-%patch138 -p1 -b .Presenter-include
-%patch139 -p1 -b .raw_ptr-constexpr
-%patch140 -p1 -b .StorageQueue-decltype
-%patch141 -p1 -b .SyncIterator-template
-%patch142 -p1 -b .url_canon_internal-cast
-%patch143 -p1 -b .v8-gcc
-%patch144 -p1 -b .v8-std-layout1
-%patch145 -p1 -b .v8-std-layout2
%if %{use_qt}
%patch121 -p1 -b .enable-allowqt
@@ -1013,10 +970,6 @@ udev.
%patch206 -p1 -b .wayland-vaapi
%endif
-%if %{use_v4l2_codec}
-%patch250 -p1 -b .v4l2-fix
-%endif
-
%if 0%{?rhel} >= 8
%patch300 -p1 -b .disblegnomekeyring
%endif
@@ -1180,12 +1133,6 @@ CHROMIUM_CORE_GN_DEFINES+=' enable_vr=false'
CHROMIUM_CORE_GN_DEFINES+=' build_dawn_tests=false enable_perfetto_unittests=false'
CHROMIUM_CORE_GN_DEFINES+=' disable_fieldtrial_testing_config=true'
CHROMIUM_CORE_GN_DEFINES+=' blink_symbol_level=0 symbol_level=0 v8_symbol_level=0'
-%ifarch aarch64
-%if 0%{?rhel} == 8
-# workaround crash on el8
-CHROMIUM_CORE_GN_DEFINES+=' use_partition_alloc_as_malloc=false enable_backup_ref_ptr_support=false'
-%endif
-%endif
export CHROMIUM_CORE_GN_DEFINES
# browser gn defines
@@ -1593,11 +1540,11 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/libclearkeycdm.so
%endif
%ifarch x86_64 aarch64
-%{chromium_path}/libEGL.so*
-%{chromium_path}/libGLESv2.so*
%{chromium_path}/libvk_swiftshader.so*
%{chromium_path}/libvulkan.so*
%{chromium_path}/vk_swiftshader_icd.json
+%{chromium_path}/libEGL.so*
+%{chromium_path}/libGLESv2.so*
%endif
%{chromium_path}/icudtl.dat
%dir %{chromium_path}/
@@ -1699,6 +1646,10 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
+* Mon Mar 06 2023 Than Ngo <than(a)redhat.com> - 111.0.5563.50-1
+- update to 111.0.5563.50
+- system freetype on fedora > 36
+
* Thu Feb 23 2023 Than Ngo <than(a)redhat.com> - 110.0.5481.177-1
- update to 110.0.5481.177
- workaround for crash on aarch64, rhel8
diff --git a/sources b/sources
index 9aca39c..7f2d4f8 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (node-v16.17.0-linux-x64.tar.xz) = aedfeeb71420a7fbcb07fbc4c5d2ba74ffe4f88c15998809346a84148132ec866dbae4e848531a2a77ca41413f442e1046f981d4f188bdf667faf88069aa28cd
SHA512 (node-v16.17.0-linux-arm64.tar.xz) = ae4aabc2389779c9e1b4a15622cae3ba50e0c313ca3d7a1dc7b2344df06ade1f303d6a75b941d37e2a0ef368cf047c862a822a893684494f55446afd6ab0610e
-SHA512 (chromium-110.0.5481.177-clean.tar.xz) = 3cc3fe325bf773e5da9137272741eda61ca620289a27c1bc16cd3e165f5adc6ebaa00139351c324fcc491497e47659188673edd9b7fd33a2771636d153b69213
+SHA512 (chromium-111.0.5563.50-clean.tar.xz) = 4576e080a55cc1dabf65e14d5380310ee93bfe50e40823adb963bf47d3bbe668b39ef41c3f5e7b8c2aebc8161915926a2f6b37c39cc0289898e515e600743e3c
1 year, 3 months