Compare commits
12 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8d5de440a | ||
|
|
0394cbfd88 | ||
|
|
fd08b7f2aa | ||
|
|
49f9d90fed | ||
|
|
dc5563fadc | ||
|
|
41b39ddd67 | ||
|
|
80bcafdb84 | ||
|
|
0d42519a6b | ||
|
|
0fdb33886e | ||
|
|
37b6f9161b | ||
|
|
2edf2df0e9 | ||
|
|
315fb3751f |
18 changed files with 19885 additions and 17978 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -21,8 +21,3 @@
|
|||
/qtwebengine-everywhere-src-6.10.0-rc-clean.tar.xz
|
||||
/qtwebengine-everywhere-src-6.10.0-clean.tar.xz
|
||||
/qtwebengine-everywhere-src-6.10.1-clean.tar.xz
|
||||
/qtwebengine-everywhere-src-6.10.2-clean.tar.xz
|
||||
/qtwebengine-everywhere-src-6.10.3-clean.tar.xz
|
||||
/qtwebengine-everywhere-src-6.11.0-clean.tar.xz
|
||||
/qtwebengine-everywhere-src-6.11.1-clean.tar.xz
|
||||
/qtwebengine-everywhere-src-6.11.2-clean.tar.xz
|
||||
|
|
|
|||
|
|
@ -87,8 +87,8 @@
|
|||
|
||||
Summary: Qt6 - QtWebEngine components
|
||||
Name: qt6-qtwebengine
|
||||
Version: 6.11.2
|
||||
Release: 2%{?dist}
|
||||
Version: 6.10.1
|
||||
Release: 2.1%{?dist}
|
||||
|
||||
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
|
||||
# See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html
|
||||
|
|
@ -133,28 +133,20 @@ Patch5: qtwebengine-chromium-141-glibc-2.42-SYS_SECCOMP.patch
|
|||
## Upstream patches:
|
||||
# https://bugreports.qt.io/browse/QTBUG-129985
|
||||
Patch80: qtwebengine-fix-arm-build.patch
|
||||
Patch81: qtwebengine-codegen-fix-signed-integer-overflow-in-assembler-growbuffer.patch
|
||||
|
||||
## Upstreamable patches:
|
||||
Patch101: qtwebengine-fix-build-against-gcc16.patch
|
||||
Patch102: qtwebengine-fix-delay-signature.patch
|
||||
Patch100: qtwebengine-add-missing-pipewire-headers.patch
|
||||
|
||||
## ppc64le port
|
||||
Patch200: qtwebengine-6.9-ppc64.patch
|
||||
Patch201: qtwebengine-chromium-ppc64.patch
|
||||
# https://github.com/google/highway/commit/dcc0ca1cd4245ecff9e5ba50818e47d5e2ccf699
|
||||
Patch202: qtwebengine-chromium-ppc64-highway.patch
|
||||
# disable musttail attribute for GCC build
|
||||
Patch203: qtwebengine-chromium-ppc64-skia-musttail.patch
|
||||
# update crashpad for kernel 7.2+
|
||||
Patch204: qtwebengine-chromium-ppc64-crashpad.patch
|
||||
# update for libvpx from chromium 150
|
||||
Patch205: qtwebengine-chromium-ppc64-libvpx.patch
|
||||
# update for libaom from chromium 150
|
||||
Patch206: qtwebengine-chromium-ppc64-libaom.patch
|
||||
|
||||
# handled by qt6-srpm-macros, which defines %%qt6_qtwebengine_arches
|
||||
ExclusiveArch: %{qt6_qtwebengine_arches}
|
||||
# FIXME use/update qt6_qtwebengine_arches
|
||||
# 32-bit arches not supported (https://bugreports.qt.io/browse/QTBUG-102143)
|
||||
ExclusiveArch: aarch64 x86_64 ppc64le
|
||||
|
||||
BuildRequires: cmake
|
||||
BuildRequires: ninja-build >= 1.7.2
|
||||
|
|
@ -177,7 +169,7 @@ BuildRequires: bison
|
|||
BuildRequires: flex
|
||||
BuildRequires: perl-interpreter
|
||||
|
||||
BuildRequires: nodejs >= 14.9, /usr/bin/node
|
||||
BuildRequires: nodejs >= 14.9
|
||||
BuildRequires: krb5-devel
|
||||
BuildRequires: git-core
|
||||
|
||||
|
|
@ -489,27 +481,23 @@ popd
|
|||
%patch -P2 -p1 -b .link-pipewire
|
||||
%patch -P3 -p1 -b .aarch64-new-stat
|
||||
%patch -P4 -p1 -b .use-openh264
|
||||
%if 0%{?fedora} > 43 || 0%{?rhel} > 10
|
||||
%if 0%{?fedora} > 43
|
||||
%patch -P5 -p1 -b .chromium-141-glibc-2.42-SYS_SECCOMP
|
||||
%endif
|
||||
|
||||
## upstream patches
|
||||
%patch -P80 -p1 -b .fix-arm-build
|
||||
%patch -P81 -p1 -b .codegen-fix-signed-integer-overflow-in-assembler-growbuffer
|
||||
|
||||
## upstreamable patches
|
||||
%patch -P101 -p1 -b .fix-build-against-gcc16
|
||||
%patch -P102 -p1 -b .fix-delay-signature
|
||||
%patch -P100 -p1 -b .add-missing-pipewire-headers
|
||||
|
||||
# ppc64le support
|
||||
%patch -P200 -p1
|
||||
%patch -P201 -p1
|
||||
%patch -P202 -p1
|
||||
%patch -P203 -p1
|
||||
%patch -P204 -p1
|
||||
pushd src/3rdparty/chromium
|
||||
%patch -P205 -p1
|
||||
%patch -P206 -p1
|
||||
%patch -P201 -p1
|
||||
pushd third_party/highway/src
|
||||
%patch -P202 -p1
|
||||
popd
|
||||
popd
|
||||
|
||||
|
||||
|
|
@ -569,6 +557,7 @@ export NINJA_PATH=%{__ninja}
|
|||
# this follows the logic of the Configure summary to turn on and off
|
||||
%cmake_qt6 \
|
||||
-DCMAKE_TOOLCHAIN_FILE:STRING="%{_libdir}/cmake/Qt6/qt.toolchain.cmake" \
|
||||
-DQT_GENERATE_SBOM=OFF \
|
||||
-DFEATURE_webengine_build_gn:BOOL=ON \
|
||||
-DFEATURE_webengine_jumbo_build:BOOL=ON \
|
||||
-DFEATURE_webengine_developer_build:BOOL=OFF \
|
||||
|
|
@ -662,6 +651,12 @@ mkdir -p %{buildroot}%{_qtwebengine_dictionaries_dir}
|
|||
sed -i -e "s|%{version} \${_Qt6WebEngine|%{lesser_version} \${_Qt6WebEngine|" \
|
||||
%{buildroot}%{_qt6_libdir}/cmake/Qt6WebEngine*/Qt6WebEngine*Config.cmake
|
||||
|
||||
rm -rf %{buildroot}/usr/tests/
|
||||
rm -f %{buildroot}/usr/lib64/qt6/bin/testbrowser
|
||||
rm -rf %{buildroot}/usr/lib64/cmake/Qt6WebEngineQuickTestMockDelegatesQml/
|
||||
rm -f %{buildroot}/usr/lib64/libQt6WebEngineQuickTestMockDelegatesQml.a
|
||||
rm -f %{buildroot}/usr/lib64/libQt6WebEngineQuickTestMockDelegatesQml.prl
|
||||
rm -f %{buildroot}/usr/lib64/pkgconfig/Qt6WebEngineQuickTestMockDelegatesQml.pc
|
||||
|
||||
%if 0%{?rhel} && 0%{?rhel} < 10
|
||||
%filetriggerin -- %{_datadir}/myspell
|
||||
|
|
@ -680,8 +675,6 @@ done
|
|||
|
||||
%files
|
||||
%license LICENSE.*
|
||||
%{_qt6_archdatadir}/sbom/%{qt_module}-%{version}.spdx
|
||||
%{_qt6_archdatadir}/sbom/qtpdf-%{version}.spdx
|
||||
%{_qt6_libdir}/libQt6WebEngineCore.so.*
|
||||
%{_qt6_libdir}/libQt6WebEngineQuick.so.*
|
||||
%{_qt6_libdir}/libQt6WebEngineQuickDelegatesQml.so.*
|
||||
|
|
@ -859,41 +852,8 @@ done
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Aug 25 2026 Jan Grulich <jgrulich@redhat.com> - 6.11.2-2
|
||||
- PPC/s390: Codegen - fix signed integer overdlow in Assembler:GrowBuffer
|
||||
|
||||
* Mon Aug 24 2026 Jan Grulich <jgrulich@redhat.com> - 6.11.2-1
|
||||
- 6.11.2
|
||||
|
||||
* Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 6.11.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
|
||||
|
||||
* Mon Jun 08 2026 František Zatloukal <fzatlouk@redhat.com> - 6.11.1-2
|
||||
- Rebuilt for icu 78.3
|
||||
|
||||
* Wed May 13 2026 Jan Grulich <jgrulich@redhat.com> - 6.11.1-1
|
||||
- Update to 6.11.1
|
||||
|
||||
* Wed Apr 15 2026 Jan Grulich <jgrulich@redhat.com> - 6.11.0-1
|
||||
- 6.11.0
|
||||
|
||||
* Thu Apr 02 2026 Jan Grulich <jgrulich@redhat.com> - 6.10.3-1
|
||||
- 6.10.3
|
||||
|
||||
* Tue Feb 10 2026 Jan Grulich <jgrulich@redhat.com> - 6.10.2-1
|
||||
- 6.10.2
|
||||
|
||||
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 6.10.1-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
|
||||
* Tue Jan 13 2026 Jan Grulich <jgrulich@redhat.com> - 6.10.1-5
|
||||
- Fix Quick popup window positioning under X11
|
||||
|
||||
* Sun Jan 11 2026 Jan Grulich <jgrulich@redhat.com> - 6.10.1-4
|
||||
- Apply the "Move GPU info logging into the GPU thread" patch
|
||||
|
||||
* Thu Jan 08 2026 Jan Grulich <jgrulich@redhat.com> - 6.10.1-3
|
||||
- Move GPU info logging into the GPU thread
|
||||
* Tue Dec 09 2025 Troy Dawson <tdawson@redhat.com> - 6.10.1-2.1
|
||||
- Turn off SBOM for EPEL10
|
||||
|
||||
* Fri Nov 21 2025 Jan Grulich <jgrulich@redhat.com> - 6.10.1-2
|
||||
- Rebuild for Koji infra issue
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
diff --git a/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc b/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc
|
||||
index 2116af1381..4f1002457c 100644
|
||||
index d421682..ffa75a7 100644
|
||||
--- a/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/rtc_base/physical_socket_server.cc
|
||||
@@ -79,6 +79,11 @@ typedef void* SockOptArg;
|
||||
#endif // WEBRTC_POSIX
|
||||
@@ -77,6 +77,11 @@ typedef void* SockOptArg;
|
||||
|
||||
#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__)
|
||||
|
||||
#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC)
|
||||
+// Seems that kernel 5.2.0 renames this define to SIOCGSTAMP_OLD
|
||||
+#ifndef SIOCGSTAMP
|
||||
+#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
|
|
|
|||
|
|
@ -1,8 +1,21 @@
|
|||
diff --git a/src/3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h b/src/3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h
|
||||
index 8988836508..c306fa38d2 100644
|
||||
--- a/src/3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h
|
||||
+++ b/src/3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h
|
||||
@@ -215,8 +215,11 @@ struct seccomp_notif_addfd {
|
||||
Fix FTBFS
|
||||
|
||||
/usr/include/bits/siginfo-consts.h:219:3: error: expected identifier
|
||||
219 | SYS_SECCOMP = 1, /* Seccomp triggered. */
|
||||
| ^
|
||||
../../sandbox/linux/system_headers/linux_seccomp.h:220:39: note: expanded from macro 'SYS_SECCOMP'
|
||||
220 | #define SYS_SECCOMP 1
|
||||
| ^
|
||||
../../sandbox/linux/seccomp-bpf/trap.cc:159:46: error: use of undeclared identifier 'SYS_SECCOMP'
|
||||
159 | if (nr != LINUX_SIGSYS || info->si_code != SYS_SECCOMP || !ctx ||
|
||||
| ^~~~~~~~~~~
|
||||
/usr/include/bits/siginfo-consts.h:220:23: note: expanded from macro 'SYS_SECCOMP'
|
||||
220 | # define SYS_SECCOMP SYS_SECCOMP
|
||||
|
||||
diff -up chromium-141.0.7390.122/src/3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h.me chromium-141.0.7390.122/src/3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h
|
||||
--- chromium-141.0.7390.122/src/3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h.me 2025-10-28 10:05:44.970248151 +0100
|
||||
+++ chromium-141.0.7390.122/src/3rdparty/chromium/sandbox/linux/system_headers/linux_seccomp.h 2025-10-28 10:05:52.291345772 +0100
|
||||
@@ -214,8 +214,11 @@ struct seccomp_notif_addfd {
|
||||
#define SECCOMP_RET_INVALID 0x00010000U // Illegal return value
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
diff -up crashpad/crashpad/util/linux/thread_info.h.orig crashpad/crashpad/util/linux/thread_info.h
|
||||
--- a/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h.orig 2026-07-20 11:53:30.368774491 +0000
|
||||
+++ b/src/3rdparty/chromium/third_party/crashpad/crashpad/util/linux/thread_info.h 2026-07-20 11:53:25.102810828 +0000
|
||||
@@ -165,6 +165,10 @@ union ThreadContext {
|
||||
uint64_t dar;
|
||||
uint64_t dsisr;
|
||||
uint64_t result;
|
||||
+#if defined(PT_EXIT_FLAGS)
|
||||
+ uint64_t exit_flags;
|
||||
+ uint64_t __pt_regs_pad[3];
|
||||
+#endif
|
||||
#else
|
||||
#error Port.
|
||||
#endif // ARCH_CPU_X86_FAMILY
|
||||
|
|
@ -1,8 +1,14 @@
|
|||
diff --git a/src/3rdparty/chromium/third_party/highway/src/hwy/ops/ppc_vsx-inl.h b/src/3rdparty/chromium/third_party/highway/src/hwy/ops/ppc_vsx-inl.h
|
||||
index d216c54853..73e736e8ba 100644
|
||||
--- a/src/3rdparty/chromium/third_party/highway/src/hwy/ops/ppc_vsx-inl.h
|
||||
+++ b/src/3rdparty/chromium/third_party/highway/src/hwy/ops/ppc_vsx-inl.h
|
||||
@@ -3701,16 +3701,73 @@ static HWY_INLINE V VsxF2INormalizeSrcVals(V v) {
|
||||
commit dcc0ca1cd4245ecff9e5ba50818e47d5e2ccf699
|
||||
Author: John Platts <john_platts@hotmail.com>
|
||||
Date: Fri Jan 17 12:16:49 2025 -0600
|
||||
|
||||
Fix for GCC 15 compiler error on PPC8/PPC9/PPC10
|
||||
|
||||
diff --git a/hwy/ops/ppc_vsx-inl.h b/hwy/ops/ppc_vsx-inl.h
|
||||
index 86d6d98c..3564ae0b 100644
|
||||
--- a/hwy/ops/ppc_vsx-inl.h
|
||||
+++ b/hwy/ops/ppc_vsx-inl.h
|
||||
@@ -3744,16 +3744,73 @@ static HWY_INLINE V VsxF2INormalizeSrcVals(V v) {
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
@ -81,7 +87,7 @@ index d216c54853..73e736e8ba 100644
|
|||
#else
|
||||
const RebindToFloat<decltype(di64)> df64;
|
||||
return ConvertTo(di64, PromoteTo(df64, v));
|
||||
@@ -3719,12 +3776,11 @@ HWY_API VFromD<D> PromoteTo(D di64, VFromD<Rebind<float, D>> v) {
|
||||
@@ -3762,12 +3819,11 @@ HWY_API VFromD<D> PromoteTo(D di64, VFromD<Rebind<float, D>> v) {
|
||||
|
||||
template <class D, HWY_IF_U64_D(D)>
|
||||
HWY_API VFromD<D> PromoteTo(D du64, VFromD<Rebind<float, D>> v) {
|
||||
|
|
@ -99,7 +105,7 @@ index d216c54853..73e736e8ba 100644
|
|||
#else
|
||||
const RebindToFloat<decltype(du64)> df64;
|
||||
return ConvertTo(du64, PromoteTo(df64, v));
|
||||
@@ -3829,12 +3885,10 @@ HWY_API VFromD<D> PromoteUpperTo(D df64, Vec128<uint32_t> v) {
|
||||
@@ -3876,12 +3932,10 @@ HWY_API VFromD<D> PromoteUpperTo(D df64, Vec128<uint32_t> v) {
|
||||
|
||||
template <class D, HWY_IF_V_SIZE_D(D, 16), HWY_IF_I64_D(D)>
|
||||
HWY_API VFromD<D> PromoteUpperTo(D di64, Vec128<float> v) {
|
||||
|
|
@ -116,7 +122,7 @@ index d216c54853..73e736e8ba 100644
|
|||
#else
|
||||
const RebindToFloat<decltype(di64)> df64;
|
||||
return ConvertTo(di64, PromoteUpperTo(df64, v));
|
||||
@@ -3843,13 +3897,10 @@ HWY_API VFromD<D> PromoteUpperTo(D di64, Vec128<float> v) {
|
||||
@@ -3890,13 +3944,10 @@ HWY_API VFromD<D> PromoteUpperTo(D di64, Vec128<float> v) {
|
||||
|
||||
template <class D, HWY_IF_V_SIZE_D(D, 16), HWY_IF_U64_D(D)>
|
||||
HWY_API VFromD<D> PromoteUpperTo(D du64, Vec128<float> v) {
|
||||
|
|
@ -134,7 +140,7 @@ index d216c54853..73e736e8ba 100644
|
|||
#else
|
||||
const RebindToFloat<decltype(du64)> df64;
|
||||
return ConvertTo(du64, PromoteUpperTo(df64, v));
|
||||
@@ -3937,20 +3988,18 @@ HWY_INLINE VFromD<D> PromoteEvenTo(hwy::SignedTag /*to_type_tag*/,
|
||||
@@ -3984,20 +4035,18 @@ HWY_INLINE VFromD<D> PromoteEvenTo(hwy::SignedTag /*to_type_tag*/,
|
||||
hwy::SizeTag<8> /*to_lane_size_tag*/,
|
||||
hwy::FloatTag /*from_type_tag*/, D d_to,
|
||||
V v) {
|
||||
|
|
@ -162,7 +168,7 @@ index d216c54853..73e736e8ba 100644
|
|||
#endif
|
||||
#else
|
||||
const RebindToFloat<decltype(d_to)> df64;
|
||||
@@ -3965,22 +4014,18 @@ HWY_INLINE VFromD<D> PromoteEvenTo(hwy::UnsignedTag /*to_type_tag*/,
|
||||
@@ -4012,22 +4061,18 @@ HWY_INLINE VFromD<D> PromoteEvenTo(hwy::UnsignedTag /*to_type_tag*/,
|
||||
hwy::SizeTag<8> /*to_lane_size_tag*/,
|
||||
hwy::FloatTag /*from_type_tag*/, D d_to,
|
||||
V v) {
|
||||
|
|
@ -192,7 +198,7 @@ index d216c54853..73e736e8ba 100644
|
|||
#endif
|
||||
#else
|
||||
const RebindToFloat<decltype(d_to)> df64;
|
||||
@@ -4022,20 +4067,18 @@ HWY_INLINE VFromD<D> PromoteOddTo(hwy::SignedTag /*to_type_tag*/,
|
||||
@@ -4069,20 +4114,18 @@ HWY_INLINE VFromD<D> PromoteOddTo(hwy::SignedTag /*to_type_tag*/,
|
||||
hwy::SizeTag<8> /*to_lane_size_tag*/,
|
||||
hwy::FloatTag /*from_type_tag*/, D d_to,
|
||||
V v) {
|
||||
|
|
@ -220,7 +226,7 @@ index d216c54853..73e736e8ba 100644
|
|||
#endif
|
||||
#else
|
||||
const RebindToFloat<decltype(d_to)> df64;
|
||||
@@ -4050,22 +4093,18 @@ HWY_INLINE VFromD<D> PromoteOddTo(hwy::UnsignedTag /*to_type_tag*/,
|
||||
@@ -4097,22 +4140,18 @@ HWY_INLINE VFromD<D> PromoteOddTo(hwy::UnsignedTag /*to_type_tag*/,
|
||||
hwy::SizeTag<8> /*to_lane_size_tag*/,
|
||||
hwy::FloatTag /*from_type_tag*/, D d_to,
|
||||
V v) {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/src/3rdparty/chromium/third_party/skia/modules/skcms/src/skcms_internals.h b/src/3rdparty/chromium/third_party/skia/modules/skcms/src/skcms_internals.h
|
||||
index c869cd95a4..8c65b5c6c5 100644
|
||||
--- a/src/3rdparty/chromium/third_party/skia/modules/skcms/src/skcms_internals.h
|
||||
+++ b/src/3rdparty/chromium/third_party/skia/modules/skcms/src/skcms_internals.h
|
||||
@@ -57,7 +57,7 @@ extern "C" {
|
||||
#define SKCMS_HAS_MUSTTAIL 1
|
||||
#endif
|
||||
#elif !defined(__clang__) && !defined(SKCMS_HAS_MUSTTAIL)
|
||||
- #if __has_cpp_attribute(clang::musttail)
|
||||
+ #if __has_cpp_attribute(clang::musttail) && !defined(__powerpc64__)
|
||||
#define SKCMS_HAS_MUSTTAIL 1
|
||||
#else
|
||||
#define SKCMS_HAS_MUSTTAIL 0
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,105 +0,0 @@
|
|||
From 9197b407b59db8c36cc4ded4a0b8e330cadd78bd Mon Sep 17 00:00:00 2001
|
||||
From: Milad Fa <mfarazma@ibm.com>
|
||||
Date: Tue, 28 Apr 2026 13:05:23 +0000
|
||||
Subject: [PATCH] PPC/s390: [codegen] Fix signed integer overflow in
|
||||
Assembler::GrowBuffer
|
||||
|
||||
Port 19b8e4cb5e838e786d3883b531765b3b07514dfb
|
||||
|
||||
Original Commit Message:
|
||||
|
||||
Compiling extremely large functions could cause `Assembler::GrowBuffer`
|
||||
to calculate a negative buffer size due to a signed integer overflow
|
||||
when doubling the size. This bypassed the out-of-memory guard and
|
||||
resulted in a massive heap-based buffer overflow.
|
||||
|
||||
This CL fixes the issue by:
|
||||
1. Moving `kMaximalBufferSize` to `AssemblerBase` as a common constant.
|
||||
2. Adding a non-static helper method `ComputeNewBufferSize` to
|
||||
`AssemblerBase` that takes a `BufferGrowthStrategy` enum flag.
|
||||
3. Adding a `DCHECK` to ensure the new size fits within `int` boundaries.
|
||||
4. Updating `GrowBuffer` in arm, arm64, ia32, and x64 to use this helper.
|
||||
5. Adding a check against `kMaximalBufferSize` in
|
||||
`BaselineCompiler::AllocateBuffer` to prevent huge initial
|
||||
allocations.
|
||||
|
||||
R=victorgomes@chromium.org, junyan1@ibm.com
|
||||
BUG=
|
||||
LOG=N
|
||||
|
||||
Change-Id: I12a42713627049add7c4b7e7b7ccb1b124d8e843
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7796624
|
||||
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
|
||||
Commit-Queue: Milad Farazmand <mfarazma@ibm.com>
|
||||
Cr-Commit-Position: refs/heads/main@{#106891}
|
||||
---
|
||||
src/codegen/ppc/assembler-ppc.cc | 5 +----
|
||||
src/codegen/ppc/assembler-ppc.h | 3 ---
|
||||
src/codegen/s390/assembler-s390.cc | 5 +----
|
||||
src/codegen/s390/assembler-s390.h | 3 ---
|
||||
4 files changed, 2 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/src/3rdparty/chromium/v8/src/codegen//ppc/assembler-ppc.cc b/src/3rdparty/chromium/v8/src/codegen//ppc/assembler-ppc.cc
|
||||
index d605e20715d5..4cdbf60a578d 100644
|
||||
--- a/src/3rdparty/chromium/v8/src/codegen//ppc/assembler-ppc.cc
|
||||
+++ b/src/3rdparty/chromium/v8/src/codegen//ppc/assembler-ppc.cc
|
||||
@@ -2068,12 +2068,9 @@ void Assembler::GrowBuffer(int needed) {
|
||||
|
||||
// Compute new buffer size.
|
||||
int old_size = buffer_->size();
|
||||
- int new_size = std::min(2 * old_size, old_size + 1 * MB);
|
||||
+ int new_size = ComputeNewBufferSize(BufferGrowthStrategy::kDoubleCapped1MB);
|
||||
int space = buffer_space() + (new_size - old_size);
|
||||
new_size += (space < needed) ? needed - space : 0;
|
||||
-
|
||||
- // Some internal data structures overflow for very large buffers,
|
||||
- // they must ensure that kMaximalBufferSize is not too large.
|
||||
if (new_size > kMaximalBufferSize) {
|
||||
V8::FatalProcessOutOfMemory(nullptr, "Assembler::GrowBuffer");
|
||||
}
|
||||
diff --git a/src/3rdparty/chromium/v8/src/codegen//ppc/assembler-ppc.h b/src/3rdparty/chromium/v8/src/codegen//ppc/assembler-ppc.h
|
||||
index 2295c8a2c584..5d4178c1ab36 100644
|
||||
--- a/src/3rdparty/chromium/v8/src/codegen//ppc/assembler-ppc.h
|
||||
+++ b/src/3rdparty/chromium/v8/src/codegen//ppc/assembler-ppc.h
|
||||
@@ -1443,9 +1443,6 @@ class Assembler : public AssemblerBase {
|
||||
RelocInfoWriter reloc_info_writer;
|
||||
|
||||
private:
|
||||
- // Avoid overflows for displacements etc.
|
||||
- static const int kMaximalBufferSize = 512 * MB;
|
||||
-
|
||||
// Repeated checking whether the trampoline pool should be emitted is rather
|
||||
// expensive. By default we only check again once a number of instructions
|
||||
// has been generated.
|
||||
diff --git a/src/3rdparty/chromium/v8/src/codegen//s390/assembler-s390.cc b/src/3rdparty/chromium/v8/src/codegen//s390/assembler-s390.cc
|
||||
index db51cd96c5f2..75d6fdefa442 100644
|
||||
--- a/src/3rdparty/chromium/v8/src/codegen//s390/assembler-s390.cc
|
||||
+++ b/src/3rdparty/chromium/v8/src/codegen//s390/assembler-s390.cc
|
||||
@@ -773,12 +773,9 @@ void Assembler::GrowBuffer(int needed) {
|
||||
|
||||
// Compute new buffer size.
|
||||
int old_size = buffer_->size();
|
||||
- int new_size = std::min(2 * old_size, old_size + 1 * MB);
|
||||
+ int new_size = ComputeNewBufferSize(BufferGrowthStrategy::kDoubleCapped1MB);
|
||||
int space = buffer_space() + (new_size - old_size);
|
||||
new_size += (space < needed) ? needed - space : 0;
|
||||
-
|
||||
- // Some internal data structures overflow for very large buffers,
|
||||
- // they must ensure that kMaximalBufferSize is not too large.
|
||||
if (new_size > kMaximalBufferSize) {
|
||||
V8::FatalProcessOutOfMemory(nullptr, "Assembler::GrowBuffer");
|
||||
}
|
||||
diff --git a/src/3rdparty/chromium/v8/src/codegen//s390/assembler-s390.h b/src/3rdparty/chromium/v8/src/codegen//s390/assembler-s390.h
|
||||
index 5f4aca67ea5d..8cef29e287ee 100644
|
||||
--- a/src/3rdparty/chromium/v8/src/codegen//s390/assembler-s390.h
|
||||
+++ b/src/3rdparty/chromium/v8/src/codegen//s390/assembler-s390.h
|
||||
@@ -1383,9 +1383,6 @@ class V8_EXPORT_PRIVATE Assembler : public AssemblerBase {
|
||||
void RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data = 0);
|
||||
|
||||
private:
|
||||
- // Avoid overflows for displacements etc.
|
||||
- static const int kMaximalBufferSize = 512 * MB;
|
||||
-
|
||||
// Relocation info generation
|
||||
// Each relocation is encoded as a variable size value
|
||||
static constexpr int kMaxRelocSize = RelocInfoWriter::kMaxSize;
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
|
||||
index 129d41d9f6..28b5ff7cfc 100644
|
||||
index d5e9b715e..af4c046c4 100644
|
||||
--- a/src/core/CMakeLists.txt
|
||||
+++ b/src/core/CMakeLists.txt
|
||||
@@ -590,6 +590,10 @@ foreach(arch ${archs})
|
||||
@@ -570,6 +570,10 @@ foreach(arch ${archs})
|
||||
list(APPEND gnArgArg libyuv_use_sve=false)
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/src/3rdparty/chromium/base/strings/to_string.h b/src/3rdparty/chromium/base/strings/to_string.h
|
||||
index ab7da292d1..7295a2d218 100644
|
||||
--- a/src/3rdparty/chromium/base/strings/to_string.h
|
||||
+++ b/src/3rdparty/chromium/base/strings/to_string.h
|
||||
@@ -6,6 +6,7 @@
|
||||
#define BASE_STRINGS_TO_STRING_H_
|
||||
|
||||
#include <concepts>
|
||||
+#include <cstdint>
|
||||
#include <memory>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
diff -up a/src/3rdparty/chromium/third_party/blink/renderer/platform/audio/delay.cc b/src/3rdparty/chromium/third_party/blink/renderer/platform/audio/delay.cc
|
||||
--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/audio/delay.cc
|
||||
+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/audio/delay.cc
|
||||
@@ -107,8 +107,8 @@
|
||||
#if !(defined(ARCH_CPU_X86_FAMILY) || defined(CPU_ARM_NEON))
|
||||
// Default scalar versions if simd/neon are not available.
|
||||
std::tuple<size_t, size_t> Delay::ProcessARateVector(
|
||||
- float* destination,
|
||||
- uint32_t frames_to_process) const {
|
||||
+ base::span<float> destination,
|
||||
+ size_t frames_to_process) const {
|
||||
// We don't have a vectorized version, so just do nothing and return the 0 to
|
||||
// indicate no frames processed and return the current write_index_.
|
||||
return std::make_tuple(0, write_index_);
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni b/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||
index 82e822c0df..7111c0455e 100644
|
||||
index 5a1c43c..82870d2 100644
|
||||
--- a/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||
+++ b/src/3rdparty/chromium/third_party/webrtc/webrtc.gni
|
||||
@@ -144,7 +144,7 @@ declare_args() {
|
||||
@@ -150,7 +150,7 @@ declare_args() {
|
||||
rtc_use_pipewire = is_linux && use_sysroot
|
||||
|
||||
# Set this to link PipeWire and required libraries directly instead of using the dlopen.
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
|
||||
index d3bc20cf4f..129d41d9f6 100644
|
||||
index cc992b4..7b6326f 100644
|
||||
--- a/src/core/CMakeLists.txt
|
||||
+++ b/src/core/CMakeLists.txt
|
||||
@@ -463,6 +463,8 @@ foreach(arch ${archs})
|
||||
@@ -449,6 +449,8 @@ foreach(arch ${archs})
|
||||
use_bluez=false
|
||||
is_cfi=false
|
||||
use_ozone=true
|
||||
|
|
|
|||
17
series.ppc64
17
series.ppc64
|
|
@ -11,9 +11,25 @@
|
|||
# or use prepare-ppc64.sh script to generate the patchset
|
||||
#
|
||||
|
||||
ppc64le/sandbox/0001-linux-seccomp-bpf-ppc64-glibc-workaround-in-SIGSYS-h.patch
|
||||
ppc64le/sandbox/0001-sandbox-Enable-seccomp_bpf-for-ppc64.patch
|
||||
ppc64le/sandbox/0001-services-service_manager-sandbox-linux-Fix-TCGETS-de.patch
|
||||
ppc64le/sandbox/0001-sandbox-linux-bpf_dsl-Update-syscall-ranges-for-ppc6.patch
|
||||
ppc64le/sandbox/0001-sandbox-linux-Implement-partial-support-for-ppc64-sy.patch
|
||||
ppc64le/sandbox/0001-sandbox-linux-Update-IsSyscallAllowed-in-broker_proc.patch
|
||||
ppc64le/sandbox/0001-sandbox-linux-Update-syscall-helpers-lists-for-ppc64.patch
|
||||
ppc64le/sandbox/0002-sandbox-linux-bpf_dsl-Modify-seccomp_macros-to-add-s.patch
|
||||
ppc64le/sandbox/0003-sandbox-linux-system_headers-Update-linux-seccomp-he.patch
|
||||
ppc64le/sandbox/0004-sandbox-linux-system_headers-Update-linux-signal-hea.patch
|
||||
ppc64le/sandbox/0005-sandbox-linux-seccomp-bpf-Add-ppc64-syscall-stub.patch
|
||||
ppc64le/sandbox/0005-sandbox-linux-update-unit-test-for-ppc64.patch
|
||||
ppc64le/sandbox/0006-sandbox-linux-disable-timedwait-time64-ppc64.patch
|
||||
ppc64le/sandbox/0007-sandbox-linux-add-ppc64-stat.patch
|
||||
ppc64le/sandbox/Sandbox-linux-services-credentials.cc-PPC.patch
|
||||
ppc64le/sandbox/0008-sandbox-fix-ppc64le-glibc234.patch
|
||||
ppc64le/third_party/0001-third_party-angle-Include-missing-header-cstddef-in-.patch
|
||||
ppc64le/third_party/0001-Add-PPC64-support-for-boringssl.patch
|
||||
ppc64le/third_party/0001-third_party-lss-Don-t-look-for-mmap2-on-ppc64.patch
|
||||
ppc64le/third_party/0002-third_party-lss-kernel-structs.patch
|
||||
ppc64le/libaom/0001-Add-ppc64-target-to-libaom.patch
|
||||
ppc64le/libaom/0001-Add-pregenerated-config-for-libaom-on-ppc64.patch
|
||||
|
|
@ -22,6 +38,7 @@ ppc64le/third_party/0002-Add-PPC64-generated-files-for-boringssl.patch
|
|||
ppc64le/third_party/0003-third_party-libvpx-Add-ppc64-generated-config.patch
|
||||
ppc64le/crashpad/0001-Implement-support-for-PPC64-on-Linux.patch
|
||||
ppc64le/fixes/fix-partition-alloc-compile.patch
|
||||
ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch
|
||||
ppc64le/third_party/dawn-fix-ppc64le-detection.patch
|
||||
ppc64le/core/add-ppc64-pthread-stack-size.patch
|
||||
ppc64le/third_party/0001-third-party-hwy-wrong-include.patch
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1,2 +1,2 @@
|
|||
SHA512 (pulseaudio-12.2-headers.tar.gz) = a5a9bcbb16030b3bc83cc0cc8f5e7f90e0723d3e83258a5c77eacb32eaa267118a73fa7814fbcc99a24e4907916a2b371ebb6dedc4f45541c3acf6c834fd35be
|
||||
SHA512 (qtwebengine-everywhere-src-6.11.2-clean.tar.xz) = aec68ec745a69bb8f543100b603e914781519f6df42e58215d5953f28648a6a6433eca42bf8ac6f190a49c79f03b47b95c9fc80b4ba047ff3a9f407ef228ddc1
|
||||
SHA512 (qtwebengine-everywhere-src-6.10.1-clean.tar.xz) = c297c030623663dce4943562ca60ac64067702dd96b487f5786fb765c477162ee7d040e6ecb4b820ff9ef162259e1f56bd1054e20e0982fef90fa32857a462c9
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue