summaryrefslogtreecommitdiff
path: root/www-client/chromium/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
committerV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
commit2771f79232c273bc2a57d23bf335dd81ccf6af28 (patch)
treec8af0fd04194aed03cf067d44e53c7edd3e9ab84 /www-client/chromium/files
parente9d044d4b9b71200a96adfa280848858c0f468c9 (diff)
gentoo resync : 05.12.2021
Diffstat (limited to 'www-client/chromium/files')
-rw-r--r--www-client/chromium/files/chromium-95-eigen-avx-1.patch229
-rw-r--r--www-client/chromium/files/chromium-95-eigen-avx-2.patch30
-rw-r--r--www-client/chromium/files/chromium-95-eigen-avx-3.patch44
-rw-r--r--www-client/chromium/files/chromium-95-harfbuzz-3.patch31
-rw-r--r--www-client/chromium/files/chromium-95-maldoca-zlib.patch13
-rw-r--r--www-client/chromium/files/chromium-95-xfce-maximize.patch30
-rw-r--r--www-client/chromium/files/chromium-96-xfce-maximize.patch51
-rw-r--r--www-client/chromium/files/chromium-98-EnumTable-crash.patch (renamed from www-client/chromium/files/chromium-93-EnumTable-crash.patch)35
-rw-r--r--www-client/chromium/files/chromium-98-system-libdrm.patch34
-rw-r--r--www-client/chromium/files/chromium-glibc-2.34.patch50
10 files changed, 151 insertions, 396 deletions
diff --git a/www-client/chromium/files/chromium-95-eigen-avx-1.patch b/www-client/chromium/files/chromium-95-eigen-avx-1.patch
deleted file mode 100644
index 21d520cc4d44..000000000000
--- a/www-client/chromium/files/chromium-95-eigen-avx-1.patch
+++ /dev/null
@@ -1,229 +0,0 @@
-From 3d4ba855e014987cad86d62a8dff533492255695 Mon Sep 17 00:00:00 2001
-From: Antonio Sanchez <cantonios@google.com>
-Date: Wed, 1 Sep 2021 14:11:21 -0700
-Subject: [PATCH] Fix AVX integer packet issues.
-
-Most are instances of AVX2 functions not protected by
-`EIGEN_VECTORIZE_AVX2`. There was also a missing semi-colon
-for AVX512.
----
- Eigen/src/Core/arch/AVX/PacketMath.h | 83 ++++++++++++++++++-------
- Eigen/src/Core/arch/AVX512/PacketMath.h | 6 +-
- 2 files changed, 63 insertions(+), 26 deletions(-)
-
-diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
-index dc1a1d6b0..247ee4efd 100644
---- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
-+++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
-@@ -262,10 +262,6 @@ template<> EIGEN_STRONG_INLINE Packet4d peven_mask(const Packet4d& /*a*/) { retu
- template<> EIGEN_STRONG_INLINE Packet8f pload1<Packet8f>(const float* from) { return _mm256_broadcast_ss(from); }
- template<> EIGEN_STRONG_INLINE Packet4d pload1<Packet4d>(const double* from) { return _mm256_broadcast_sd(from); }
-
--template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return _mm256_add_ps(_mm256_set1_ps(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
--template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return _mm256_add_pd(_mm256_set1_pd(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
--template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return _mm256_add_epi32(_mm256_set1_epi32(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
--
- template<> EIGEN_STRONG_INLINE Packet8f padd<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_add_ps(a,b); }
- template<> EIGEN_STRONG_INLINE Packet4d padd<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_add_pd(a,b); }
- template<> EIGEN_STRONG_INLINE Packet8i padd<Packet8i>(const Packet8i& a, const Packet8i& b) {
-@@ -278,6 +274,10 @@ template<> EIGEN_STRONG_INLINE Packet8i padd<Packet8i>(const Packet8i& a, const
- #endif
- }
-
-+template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return padd(pset1(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
-+template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return padd(pset1(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
-+template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return padd(pset1(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
-+
- template<> EIGEN_STRONG_INLINE Packet8f psub<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_sub_ps(a,b); }
- template<> EIGEN_STRONG_INLINE Packet4d psub<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_sub_pd(a,b); }
- template<> EIGEN_STRONG_INLINE Packet8i psub<Packet8i>(const Packet8i& a, const Packet8i& b) {
-@@ -300,7 +300,7 @@ template<> EIGEN_STRONG_INLINE Packet4d pnegate(const Packet4d& a)
- }
- template<> EIGEN_STRONG_INLINE Packet8i pnegate(const Packet8i& a)
- {
-- return _mm256_sub_epi32(_mm256_set1_epi32(0), a);
-+ return psub(pzero(a), a);
- }
-
- template<> EIGEN_STRONG_INLINE Packet8f pconj(const Packet8f& a) { return a; }
-@@ -419,7 +419,13 @@ template<> EIGEN_STRONG_INLINE Packet4d pmin<Packet4d>(const Packet4d& a, const
- #endif
- }
- template<> EIGEN_STRONG_INLINE Packet8i pmin<Packet8i>(const Packet8i& a, const Packet8i& b) {
-+#ifdef EIGEN_VECTORIZE_AVX2
- return _mm256_min_epi32(a, b);
-+#else
-+ __m128i lo = _mm_min_epi32(_mm256_extractf128_si256(a, 0), _mm256_extractf128_si256(b, 0));
-+ __m128i hi = _mm_min_epi32(_mm256_extractf128_si256(a, 1), _mm256_extractf128_si256(b, 1));
-+ return _mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1);
-+#endif
- }
-
- template<> EIGEN_STRONG_INLINE Packet8f pmax<Packet8f>(const Packet8f& a, const Packet8f& b) {
-@@ -445,7 +451,13 @@ template<> EIGEN_STRONG_INLINE Packet4d pmax<Packet4d>(const Packet4d& a, const
- #endif
- }
- template<> EIGEN_STRONG_INLINE Packet8i pmax<Packet8i>(const Packet8i& a, const Packet8i& b) {
-+#ifdef EIGEN_VECTORIZE_AVX2
- return _mm256_max_epi32(a, b);
-+#else
-+ __m128i lo = _mm_max_epi32(_mm256_extractf128_si256(a, 0), _mm256_extractf128_si256(b, 0));
-+ __m128i hi = _mm_max_epi32(_mm256_extractf128_si256(a, 1), _mm256_extractf128_si256(b, 1));
-+ return _mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1);
-+#endif
- }
-
- // Add specializations for min/max with prescribed NaN progation.
-@@ -641,17 +653,25 @@ template<> EIGEN_STRONG_INLINE Packet8f ploaddup<Packet8f>(const float* from)
- // then we can perform a consistent permutation on the global register to get everything in shape:
- return _mm256_permute_ps(tmp, _MM_SHUFFLE(3,3,2,2));
- }
--// Loads 2 doubles from memory a returns the packet {a0, a0 a1, a1}
-+// Loads 2 doubles from memory a returns the packet {a0, a0, a1, a1}
- template<> EIGEN_STRONG_INLINE Packet4d ploaddup<Packet4d>(const double* from)
- {
- Packet4d tmp = _mm256_broadcast_pd((const __m128d*)(const void*)from);
- return _mm256_permute_pd(tmp, 3<<2);
- }
--// Loads 4 integers from memory a returns the packet {a0, a0 a1, a1, a2, a2, a3, a3}
-+// Loads 4 integers from memory a returns the packet {a0, a0, a1, a1, a2, a2, a3, a3}
- template<> EIGEN_STRONG_INLINE Packet8i ploaddup<Packet8i>(const int* from)
- {
-- Packet8i a = _mm256_castsi128_si256(pload<Packet4i>(from));
-+#ifdef EIGEN_VECTORIZE_AVX2
-+ const Packet8i a = _mm256_castsi128_si256(pload<Packet4i>(from));
- return _mm256_permutevar8x32_epi32(a, _mm256_setr_epi32(0, 0, 1, 1, 2, 2, 3, 3));
-+#else
-+ __m256 tmp = _mm256_broadcast_ps((const __m128*)(const void*)from);
-+ // mimic an "inplace" permutation of the lower 128bits using a blend
-+ tmp = _mm256_blend_ps(tmp,_mm256_castps128_ps256(_mm_permute_ps( _mm256_castps256_ps128(tmp), _MM_SHUFFLE(1,0,1,0))), 15);
-+ // then we can perform a consistent permutation on the global register to get everything in shape:
-+ return _mm256_castps_si256(_mm256_permute_ps(tmp, _MM_SHUFFLE(3,3,2,2)));
-+#endif
- }
-
- // Loads 2 floats from memory a returns the packet {a0, a0 a0, a0, a1, a1, a1, a1}
-@@ -662,7 +682,7 @@ template<> EIGEN_STRONG_INLINE Packet8f ploadquad<Packet8f>(const float* from)
- }
- template<> EIGEN_STRONG_INLINE Packet8i ploadquad<Packet8i>(const int* from)
- {
-- return _mm256_inserti128_si256(_mm256_set1_epi32(*from), _mm_set1_epi32(*(from+1)), 1);
-+ return _mm256_insertf128_si256(_mm256_set1_epi32(*from), _mm_set1_epi32(*(from+1)), 1);
- }
-
- template<> EIGEN_STRONG_INLINE void pstore<float>(float* to, const Packet8f& from) { EIGEN_DEBUG_ALIGNED_STORE _mm256_store_ps(to, from); }
-@@ -723,13 +743,13 @@ template<> EIGEN_DEVICE_FUNC inline void pscatter<double, Packet4d>(double* to,
- }
- template<> EIGEN_DEVICE_FUNC inline void pscatter<int, Packet8i>(int* to, const Packet8i& from, Index stride)
- {
-- __m128i low = _mm256_extracti128_si256(from, 0);
-+ __m128i low = _mm256_extractf128_si256(from, 0);
- to[stride*0] = _mm_extract_epi32(low, 0);
- to[stride*1] = _mm_extract_epi32(low, 1);
- to[stride*2] = _mm_extract_epi32(low, 2);
- to[stride*3] = _mm_extract_epi32(low, 3);
-
-- __m128i high = _mm256_extracti128_si256(from, 1);
-+ __m128i high = _mm256_extractf128_si256(from, 1);
- to[stride*4] = _mm_extract_epi32(high, 0);
- to[stride*5] = _mm_extract_epi32(high, 1);
- to[stride*6] = _mm_extract_epi32(high, 2);
-@@ -803,7 +823,13 @@ template<> EIGEN_STRONG_INLINE Packet4d pabs(const Packet4d& a)
- }
- template<> EIGEN_STRONG_INLINE Packet8i pabs(const Packet8i& a)
- {
-+#ifdef EIGEN_VECTORIZE_AVX2
- return _mm256_abs_epi32(a);
-+#else
-+ __m128i lo = _mm_abs_epi32(_mm256_extractf128_si256(a, 0));
-+ __m128i hi = _mm_abs_epi32(_mm256_extractf128_si256(a, 1));
-+ return _mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1);
-+#endif
- }
-
- template<> EIGEN_STRONG_INLINE Packet8f pfrexp<Packet8f>(const Packet8f& a, Packet8f& exponent) {
-@@ -989,16 +1015,27 @@ ptranspose(PacketBlock<Packet8f,4>& kernel) {
- #define MM256_SHUFFLE_EPI32(A, B, M) \
- _mm256_castps_si256(_mm256_shuffle_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B), M))
-
-+#ifdef EIGEN_VECTORIZE_AVX2
-+#define MM256_UNPACKLO_EPI32(A, B) \
-+ _mm256_castps_si256(_mm256_unpacklo_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
-+#define MM256_UNPACKHI_EPI32(A, B) \
-+ _mm256_castps_si256(_mm256_unpackhi_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
-+#else
-+#define MM256_UNPACKLO_EPI32(A, B) _mm256_unpacklo_ps(A, B)
-+#define MM256_UNPACKHI_EPI32(A, B) _mm256_unpackhi_ps(A, B)
-+#endif
-+
-+
- EIGEN_DEVICE_FUNC inline void
- ptranspose(PacketBlock<Packet8i,8>& kernel) {
-- __m256i T0 = _mm256_unpacklo_epi32(kernel.packet[0], kernel.packet[1]);
-- __m256i T1 = _mm256_unpackhi_epi32(kernel.packet[0], kernel.packet[1]);
-- __m256i T2 = _mm256_unpacklo_epi32(kernel.packet[2], kernel.packet[3]);
-- __m256i T3 = _mm256_unpackhi_epi32(kernel.packet[2], kernel.packet[3]);
-- __m256i T4 = _mm256_unpacklo_epi32(kernel.packet[4], kernel.packet[5]);
-- __m256i T5 = _mm256_unpackhi_epi32(kernel.packet[4], kernel.packet[5]);
-- __m256i T6 = _mm256_unpacklo_epi32(kernel.packet[6], kernel.packet[7]);
-- __m256i T7 = _mm256_unpackhi_epi32(kernel.packet[6], kernel.packet[7]);
-+ __m256i T0 = MM256_UNPACKLO_EPI32(kernel.packet[0], kernel.packet[1]);
-+ __m256i T1 = MM256_UNPACKHI_EPI32(kernel.packet[0], kernel.packet[1]);
-+ __m256i T2 = MM256_UNPACKLO_EPI32(kernel.packet[2], kernel.packet[3]);
-+ __m256i T3 = MM256_UNPACKHI_EPI32(kernel.packet[2], kernel.packet[3]);
-+ __m256i T4 = MM256_UNPACKLO_EPI32(kernel.packet[4], kernel.packet[5]);
-+ __m256i T5 = MM256_UNPACKHI_EPI32(kernel.packet[4], kernel.packet[5]);
-+ __m256i T6 = MM256_UNPACKLO_EPI32(kernel.packet[6], kernel.packet[7]);
-+ __m256i T7 = MM256_UNPACKHI_EPI32(kernel.packet[6], kernel.packet[7]);
- __m256i S0 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(1,0,1,0));
- __m256i S1 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(3,2,3,2));
- __m256i S2 = MM256_SHUFFLE_EPI32(T1,T3,_MM_SHUFFLE(1,0,1,0));
-@@ -1019,10 +1056,10 @@ ptranspose(PacketBlock<Packet8i,8>& kernel) {
-
- EIGEN_DEVICE_FUNC inline void
- ptranspose(PacketBlock<Packet8i,4>& kernel) {
-- __m256i T0 = _mm256_unpacklo_epi32(kernel.packet[0], kernel.packet[1]);
-- __m256i T1 = _mm256_unpackhi_epi32(kernel.packet[0], kernel.packet[1]);
-- __m256i T2 = _mm256_unpacklo_epi32(kernel.packet[2], kernel.packet[3]);
-- __m256i T3 = _mm256_unpackhi_epi32(kernel.packet[2], kernel.packet[3]);
-+ __m256i T0 = MM256_UNPACKLO_EPI32(kernel.packet[0], kernel.packet[1]);
-+ __m256i T1 = MM256_UNPACKHI_EPI32(kernel.packet[0], kernel.packet[1]);
-+ __m256i T2 = MM256_UNPACKLO_EPI32(kernel.packet[2], kernel.packet[3]);
-+ __m256i T3 = MM256_UNPACKHI_EPI32(kernel.packet[2], kernel.packet[3]);
-
- __m256i S0 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(1,0,1,0));
- __m256i S1 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(3,2,3,2));
-diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h
-index 6ce15c677..0810f66ee 100644
---- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h
-+++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h
-@@ -1028,7 +1028,7 @@ template<> EIGEN_STRONG_INLINE Packet8d pldexp<Packet8d>(const Packet8d& a, cons
-
- // AVX512F does not define _mm512_extracti32x8_epi32 to extract _m256i from _m512i
- #define EIGEN_EXTRACT_8i_FROM_16i(INPUT, OUTPUT) \
-- __m256i OUTPUT##_0 = _mm512_extracti32x8_epi32(INPUT, 0) \
-+ __m256i OUTPUT##_0 = _mm512_extracti32x8_epi32(INPUT, 0); \
- __m256i OUTPUT##_1 = _mm512_extracti32x8_epi32(INPUT, 1)
- #else
- #define EIGEN_EXTRACT_8f_FROM_16f(INPUT, OUTPUT) \
-@@ -1037,7 +1037,7 @@ template<> EIGEN_STRONG_INLINE Packet8d pldexp<Packet8d>(const Packet8d& a, cons
- _mm512_extractf32x4_ps(INPUT, 1), 1); \
- __m256 OUTPUT##_1 = _mm256_insertf128_ps( \
- _mm256_castps128_ps256(_mm512_extractf32x4_ps(INPUT, 2)), \
-- _mm512_extractf32x4_ps(INPUT, 3), 1);
-+ _mm512_extractf32x4_ps(INPUT, 3), 1)
-
- #define EIGEN_EXTRACT_8i_FROM_16i(INPUT, OUTPUT) \
- __m256i OUTPUT##_0 = _mm256_insertf128_si256( \
-@@ -1045,7 +1045,7 @@ template<> EIGEN_STRONG_INLINE Packet8d pldexp<Packet8d>(const Packet8d& a, cons
- _mm512_extracti32x4_epi32(INPUT, 1), 1); \
- __m256i OUTPUT##_1 = _mm256_insertf128_si256( \
- _mm256_castsi128_si256(_mm512_extracti32x4_epi32(INPUT, 2)), \
-- _mm512_extracti32x4_epi32(INPUT, 3), 1);
-+ _mm512_extracti32x4_epi32(INPUT, 3), 1)
- #endif
-
- #ifdef EIGEN_VECTORIZE_AVX512DQ
---
-GitLab
-
diff --git a/www-client/chromium/files/chromium-95-eigen-avx-2.patch b/www-client/chromium/files/chromium-95-eigen-avx-2.patch
deleted file mode 100644
index 1cb8007b6a6a..000000000000
--- a/www-client/chromium/files/chromium-95-eigen-avx-2.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From def145547fc6abd14236e103b9443a36064f664f Mon Sep 17 00:00:00 2001
-From: Antonio Sanchez <cantonios@google.com>
-Date: Thu, 2 Sep 2021 16:21:07 -0700
-Subject: [PATCH] Add missing packet types in pset1 call.
-
-Oops, introduced this when "fixing" integer packets.
----
- Eigen/src/Core/arch/AVX/PacketMath.h | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
-index 247ee4efd..8da9031dc 100644
---- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
-+++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
-@@ -274,9 +274,9 @@ template<> EIGEN_STRONG_INLINE Packet8i padd<Packet8i>(const Packet8i& a, const
- #endif
- }
-
--template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return padd(pset1(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
--template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return padd(pset1(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
--template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return padd(pset1(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
-+template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return padd(pset1<Packet8f>(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
-+template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return padd(pset1<Packet4d>(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
-+template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return padd(pset1<Packet8i>(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
-
- template<> EIGEN_STRONG_INLINE Packet8f psub<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_sub_ps(a,b); }
- template<> EIGEN_STRONG_INLINE Packet4d psub<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_sub_pd(a,b); }
---
-GitLab
-
diff --git a/www-client/chromium/files/chromium-95-eigen-avx-3.patch b/www-client/chromium/files/chromium-95-eigen-avx-3.patch
deleted file mode 100644
index 44e9ef4e0ec0..000000000000
--- a/www-client/chromium/files/chromium-95-eigen-avx-3.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 7792b1e909a98703181aecb8810b4b654004c25d Mon Sep 17 00:00:00 2001
-From: Antonio Sanchez <cantonios@google.com>
-Date: Fri, 3 Sep 2021 10:41:35 -0700
-Subject: [PATCH] Fix AVX2 PacketMath.h.
-
-There were a couple typos ps -> epi32, and an unaligned load issue.
----
- Eigen/src/Core/arch/AVX/PacketMath.h | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
-index 8da9031dc..41cb7af9c 100644
---- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
-+++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
-@@ -663,7 +663,7 @@ template<> EIGEN_STRONG_INLINE Packet4d ploaddup<Packet4d>(const double* from)
- template<> EIGEN_STRONG_INLINE Packet8i ploaddup<Packet8i>(const int* from)
- {
- #ifdef EIGEN_VECTORIZE_AVX2
-- const Packet8i a = _mm256_castsi128_si256(pload<Packet4i>(from));
-+ const Packet8i a = _mm256_castsi128_si256(ploadu<Packet4i>(from));
- return _mm256_permutevar8x32_epi32(a, _mm256_setr_epi32(0, 0, 1, 1, 2, 2, 3, 3));
- #else
- __m256 tmp = _mm256_broadcast_ps((const __m128*)(const void*)from);
-@@ -1015,14 +1015,14 @@ ptranspose(PacketBlock<Packet8f,4>& kernel) {
- #define MM256_SHUFFLE_EPI32(A, B, M) \
- _mm256_castps_si256(_mm256_shuffle_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B), M))
-
--#ifdef EIGEN_VECTORIZE_AVX2
-+#ifndef EIGEN_VECTORIZE_AVX2
- #define MM256_UNPACKLO_EPI32(A, B) \
- _mm256_castps_si256(_mm256_unpacklo_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
- #define MM256_UNPACKHI_EPI32(A, B) \
- _mm256_castps_si256(_mm256_unpackhi_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
- #else
--#define MM256_UNPACKLO_EPI32(A, B) _mm256_unpacklo_ps(A, B)
--#define MM256_UNPACKHI_EPI32(A, B) _mm256_unpackhi_ps(A, B)
-+#define MM256_UNPACKLO_EPI32(A, B) _mm256_unpacklo_epi32(A, B)
-+#define MM256_UNPACKHI_EPI32(A, B) _mm256_unpackhi_epi32(A, B)
- #endif
-
-
---
-GitLab
-
diff --git a/www-client/chromium/files/chromium-95-harfbuzz-3.patch b/www-client/chromium/files/chromium-95-harfbuzz-3.patch
deleted file mode 100644
index 33fe9556aaf3..000000000000
--- a/www-client/chromium/files/chromium-95-harfbuzz-3.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
-From: Dominik Röttsches <drott@chromium.org>
-Date: Tue, 28 Sep 2021 15:31:50 +0000
-Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
-
-Fixed: 1252284
-Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
-Commit-Queue: Dominik Röttsches <drott@chromium.org>
-Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
-Auto-Submit: Dominik Röttsches <drott@chromium.org>
-Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
-Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#925776}
-
-(only components/paint_preview/common/subset_font.cc)
----
-
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index 45daea7b1..43a448e 100644
---- a/components/paint_preview/common/subset_font.cc
-+++ b/components/paint_preview/common/subset_font.cc
-@@ -79,7 +79,7 @@
- // Retain all variation information for OpenType variation fonts. See:
- // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
- hb_set_t* skip_subset =
-- hb_subset_input_no_subset_tables_set(input.get()); // Owned by |input|.
-+ hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
- hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
- hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));
diff --git a/www-client/chromium/files/chromium-95-maldoca-zlib.patch b/www-client/chromium/files/chromium-95-maldoca-zlib.patch
deleted file mode 100644
index 1f64a66ddcdb..000000000000
--- a/www-client/chromium/files/chromium-95-maldoca-zlib.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/third_party/maldoca/BUILD.gn b/third_party/maldoca/BUILD.gn
-index eeab205..29a0a2c 100644
---- a/third_party/maldoca/BUILD.gn
-+++ b/third_party/maldoca/BUILD.gn
-@@ -224,7 +224,7 @@ source_set("maldoca-ole") {
- "//third_party/libxml",
- "//third_party/protobuf:protobuf_lite",
- "//third_party/re2",
-- "//third_party/zlib:zlib_common_headers",
-+ "//third_party/zlib:zlib",
- "//third_party/zlib/google:zip",
- ]
-
diff --git a/www-client/chromium/files/chromium-95-xfce-maximize.patch b/www-client/chromium/files/chromium-95-xfce-maximize.patch
deleted file mode 100644
index 296d97873ddc..000000000000
--- a/www-client/chromium/files/chromium-95-xfce-maximize.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 603d765ca5154db27718d89a2ee9be2a95a64254 Mon Sep 17 00:00:00 2001
-From: Alexander Dunaev <adunaev@igalia.com>
-Date: Fri, 29 Oct 2021 20:54:46 +0700
-Subject: [PATCH] [linux/xfce] Set zero insets on maximising the window.
-
-It turned out that Xfwm handles the frame insets not the way KWin and
-Mutter do.
-
-Bug: 1260821
-Change-Id: I69e71049157c03b74d78bc5edb7a60bf39cdda8b
----
-
-diff --git a/ui/platform_window/x11/x11_window.cc b/ui/platform_window/x11/x11_window.cc
-index dd381747..706f19c 100644
---- a/ui/platform_window/x11/x11_window.cc
-+++ b/ui/platform_window/x11/x11_window.cc
-@@ -676,6 +676,13 @@
- // save this one for later too.
- should_maximize_after_map_ = !window_mapped_in_client_;
-
-+ // Some WMs keep respecting the frame extents even if the window is maximised.
-+ // Remove the insets when maximising. The extents will be set again when the
-+ // window is restored to normal state.
-+ // See https://crbug.com/1260821
-+ if (CanSetDecorationInsets())
-+ SetDecorationInsets(nullptr);
-+
- SetWMSpecState(true, x11::GetAtom("_NET_WM_STATE_MAXIMIZED_VERT"),
- x11::GetAtom("_NET_WM_STATE_MAXIMIZED_HORZ"));
- }
diff --git a/www-client/chromium/files/chromium-96-xfce-maximize.patch b/www-client/chromium/files/chromium-96-xfce-maximize.patch
new file mode 100644
index 000000000000..77cf410cfe95
--- /dev/null
+++ b/www-client/chromium/files/chromium-96-xfce-maximize.patch
@@ -0,0 +1,51 @@
+From 245e71ae8de3f4b5f3478739be819981bb12dfab Mon Sep 17 00:00:00 2001
+From: Alexander Dunaev <adunaev@igalia.com>
+Date: Sat, 13 Nov 2021 06:35:35 +0000
+Subject: [PATCH] [linux/xfce] Introduced a hack for Xfwm.
+
+This proposes an alternative to [1]. Either this patch or that one
+should be landed, but not both. See the linked crbug for the details.
+
+Setting the frame extents via the _GTK_FRAME_EXTENTS property turned out
+to be problematic at Xfwm. While the issue is agreed to be a bug in the
+window manager, for now we disable setting the frame extents on that WM.
+
+This patch introduces a logic that disables setting the window property
+on Xfwm.
+
+[1] https://chromium-review.googlesource.com/c/chromium/src/+/3275653
+
+Bug: 1260821
+Change-Id: I4b734ac0dc2b97d7ed6b1842564a33ec6e4b4035
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3275272
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Commit-Queue: Alexander Dunaev <adunaev@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#941444}
+---
+
+diff --git a/ui/platform_window/x11/x11_window.cc b/ui/platform_window/x11/x11_window.cc
+index 2b20835..4fa2992 100644
+--- a/ui/platform_window/x11/x11_window.cc
++++ b/ui/platform_window/x11/x11_window.cc
+@@ -1016,6 +1016,21 @@
+ }
+
+ bool X11Window::CanSetDecorationInsets() const {
++ // Xfwm handles _GTK_FRAME_EXTENTS a bit unexpected way. That is a known bug
++ // that will be eventually fixed, but for now we have to disable the function
++ // for Xfce. The block below should be removed when Xfwm is updated with the
++ // fix and is known to work properly.
++ // See https://crbug.com/1260821.
++ {
++ static WindowManagerName wm_name = WM_OTHER;
++ static bool checked_for_wm = false;
++ if (!checked_for_wm) {
++ wm_name = GuessWindowManager();
++ checked_for_wm = true;
++ }
++ if (wm_name == WM_XFWM4)
++ return false;
++ }
+ return ui::WmSupportsHint(x11::GetAtom("_GTK_FRAME_EXTENTS"));
+ }
+
diff --git a/www-client/chromium/files/chromium-93-EnumTable-crash.patch b/www-client/chromium/files/chromium-98-EnumTable-crash.patch
index a5c2defa0ae2..f058ec18327a 100644
--- a/www-client/chromium/files/chromium-93-EnumTable-crash.patch
+++ b/www-client/chromium/files/chromium-98-EnumTable-crash.patch
@@ -1,5 +1,5 @@
diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
-index a63ae86..83ada65 100644
+index 842553a..89de703 100644
--- a/components/cast_channel/enum_table.h
+++ b/components/cast_channel/enum_table.h
@@ -8,6 +8,7 @@
@@ -9,27 +9,24 @@ index a63ae86..83ada65 100644
+#include <vector>
#include "base/check_op.h"
- #include "base/macros.h"
-@@ -213,7 +214,7 @@ class
+ #include "base/notreached.h"
+@@ -187,7 +188,6 @@ class
+ inline constexpr GenericEnumTableEntry(int32_t value);
+ inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str);
- template <typename E>
- friend class EnumTable;
-- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
-+ DISALLOW_ASSIGN(GenericEnumTableEntry);
- };
+- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete;
+ GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete;
- // Yes, these constructors really needs to be inlined. Even though they look
-@@ -251,8 +252,7 @@ class EnumTable {
- // Constructor for regular entries.
+ private:
+@@ -253,7 +253,6 @@ class EnumTable {
constexpr Entry(E value, base::StringPiece str)
: GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
--
-- DISALLOW_COPY_AND_ASSIGN(Entry);
-+ DISALLOW_ASSIGN(Entry);
+
+- Entry(const Entry&) = delete;
+ Entry& operator=(const Entry&) = delete;
};
- static_assert(sizeof(E) <= sizeof(int32_t),
-@@ -307,15 +307,14 @@ class EnumTable {
+@@ -312,15 +311,14 @@ class EnumTable {
if (is_sorted_) {
const std::size_t index = static_cast<std::size_t>(value);
if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
@@ -47,7 +44,7 @@ index a63ae86..83ada65 100644
}
// This overload of GetString is designed for cases where the argument is a
-@@ -343,8 +342,7 @@ class EnumTable {
+@@ -348,8 +346,7 @@ class EnumTable {
// enum value directly.
absl::optional<E> GetEnum(base::StringPiece str) const {
auto* entry = GenericEnumTableEntry::FindByString(
@@ -57,7 +54,7 @@ index a63ae86..83ada65 100644
return entry ? static_cast<E>(entry->value) : absl::optional<E>();
}
-@@ -359,7 +357,7 @@ class EnumTable {
+@@ -364,7 +361,7 @@ class EnumTable {
// Align the data on a cache line boundary.
alignas(64)
#endif
@@ -66,7 +63,7 @@ index a63ae86..83ada65 100644
bool is_sorted_;
constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
-@@ -371,8 +369,8 @@ class EnumTable {
+@@ -376,8 +373,8 @@ class EnumTable {
for (std::size_t i = 0; i < data.size(); i++) {
for (std::size_t j = i + 1; j < data.size(); j++) {
diff --git a/www-client/chromium/files/chromium-98-system-libdrm.patch b/www-client/chromium/files/chromium-98-system-libdrm.patch
new file mode 100644
index 000000000000..f2f18beda3db
--- /dev/null
+++ b/www-client/chromium/files/chromium-98-system-libdrm.patch
@@ -0,0 +1,34 @@
+diff --git a/media/gpu/chromeos/BUILD.gn b/media/gpu/chromeos/BUILD.gn
+index a5c8945..d742d80 100644
+--- a/media/gpu/chromeos/BUILD.gn
++++ b/media/gpu/chromeos/BUILD.gn
+@@ -32,6 +32,7 @@ source_set("chromeos") {
+
+ if (use_vaapi) {
+ deps += [
++ "//build/config/linux/libdrm",
+ "//media/gpu/vaapi",
+ "//media/gpu/vaapi:common",
+ ]
+diff --git a/media/gpu/chromeos/video_decoder_pipeline.cc b/media/gpu/chromeos/video_decoder_pipeline.cc
+index 2d77cd9..1883fd4 100644
+--- a/media/gpu/chromeos/video_decoder_pipeline.cc
++++ b/media/gpu/chromeos/video_decoder_pipeline.cc
+@@ -4,6 +4,9 @@
+
+ #include "media/gpu/chromeos/video_decoder_pipeline.h"
+
++#if BUILDFLAG(USE_VAAPI)
++#include <drm_fourcc.h>
++#endif
+ #include <memory>
+
+ #include "base/bind.h"
+@@ -28,7 +31,6 @@
+
+ #if BUILDFLAG(USE_VAAPI)
+ #include "media/gpu/vaapi/vaapi_video_decoder.h"
+-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
+ #elif BUILDFLAG(USE_V4L2_CODEC)
+ #include "media/gpu/v4l2/v4l2_video_decoder.h"
+ #else
diff --git a/www-client/chromium/files/chromium-glibc-2.34.patch b/www-client/chromium/files/chromium-glibc-2.34.patch
new file mode 100644
index 000000000000..64c03a6adae6
--- /dev/null
+++ b/www-client/chromium/files/chromium-glibc-2.34.patch
@@ -0,0 +1,50 @@
+From 600d63c2c59a9892dbc5423d7d8bb1565a9f91e7 Mon Sep 17 00:00:00 2001
+From: Michel Salim <michel@fb.com>
+Date: Thu, 04 Nov 2021 14:22:40 -0700
+Subject: [PATCH] Handle long SIGSTKSZ in glibc > 2.33
+
+`SIGSTKSZ` is no longer constant in glibc > 2.33 but a function
+returning a long. Cast before taking `max`.
+
+See https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=85e84fe53699fe9e392edffa993612ce08b2954a;hb=HEAD
+
+Signed-off-by: Michel Salim <michel@fb.com>
+Change-Id: I197f8ff3053eede80d6aed096be4f0113dd43241
+(relocated to chromium repo, removed static)
+---
+
+diff --git a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+index ca353c4..5cdabcf 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+@@ -138,7 +138,7 @@
+ // SIGSTKSZ may be too small to prevent the signal handlers from overrunning
+ // the alternative stack. Ensure that the size of the alternative stack is
+ // large enough.
+- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
++ const unsigned kSigStackSize = std::max(16384U, (unsigned)SIGSTKSZ);
+
+ // Only set an alternative stack if there isn't already one, or if the current
+ // one is too small.
+diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc
+index ca6b595..1c1ee42 100644
+--- a/sandbox/linux/services/credentials.cc
++++ b/sandbox/linux/services/credentials.cc
+@@ -11,6 +11,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <sys/syscall.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+@@ -100,7 +101,8 @@ bool ChrootToSafeEmptyDir() {
+ // TODO(crbug.com/1247458) Broken in MSan builds after LLVM f1bb30a4956f.
+ clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS;
+
+- char tls_buf[PTHREAD_STACK_MIN] = {0};
++ char tls_buf[PTHREAD_STACK_MIN];
++ memset(tls_buf, 0, PTHREAD_STACK_MIN);
+ tls = tls_buf;
+ #endif
+