Merge branch 'rawhide' into epel8

epel8
Than Ngo 6 months ago
commit c133216171

@ -1,7 +1,7 @@
Index: chromium-123.0.6312.58/third_party/boringssl/src/cmake/perlasm.cmake
Index: chromium-124.0.6367.60/third_party/boringssl/src/cmake/perlasm.cmake
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/cmake/perlasm.cmake
+++ chromium-123.0.6312.58/third_party/boringssl/src/cmake/perlasm.cmake
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/cmake/perlasm.cmake
+++ chromium-124.0.6367.60/third_party/boringssl/src/cmake/perlasm.cmake
@@ -17,6 +17,7 @@ function(add_perlasm_target dest src)
DEPENDS
${src}
@ -18,12 +18,12 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/cmake/perlasm.cmake
+ add_perlasm_target("${dest}-linux.S" ${src} linux64le)
+ append_to_parent_scope("${var}_ASM" "${dest}-linux.S")
elseif(arch STREQUAL "x86")
add_perlasm_target("${dest}-apple.S" ${src} macosx -fPIC -DOPENSSL_IA32_SSE2 ${ARGN})
add_perlasm_target("${dest}-linux.S" ${src} elf -fPIC -DOPENSSL_IA32_SSE2 ${ARGN})
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/CMakeLists.txt
add_perlasm_target("${dest}-apple.S" ${src} macosx -fPIC ${ARGN})
add_perlasm_target("${dest}-linux.S" ${src} elf -fPIC ${ARGN})
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/CMakeLists.txt
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/CMakeLists.txt
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/CMakeLists.txt
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/CMakeLists.txt
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/CMakeLists.txt
@@ -26,6 +26,7 @@ perlasm(CRYPTO_SOURCES aarch64 cipher_ex
perlasm(CRYPTO_SOURCES aarch64 test/trampoline-armv8 test/asm/trampoline-armv8.pl)
perlasm(CRYPTO_SOURCES arm chacha/chacha-armv4 chacha/asm/chacha-armv4.pl)
@ -40,10 +40,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/CMakeLists.txt
crypto.c
curve25519/curve25519.c
curve25519/curve25519_64_adx.c
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/abi_self_test.cc
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/abi_self_test.cc
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/abi_self_test.cc
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/abi_self_test.cc
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/abi_self_test.cc
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/abi_self_test.cc
@@ -521,3 +521,289 @@ TEST(ABITest, AArch64) {
CHECK_ABI_NO_UNWIND(abi_test_clobber_v15_upper);
}
@ -334,10 +334,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/abi_self_test.cc
+ CHECK_ABI_NO_UNWIND(abi_test_clobber_lr);
+}
+#endif // OPENSSL_PPC64LE && SUPPORTS_ABI_TEST
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/cpu_ppc64le.c
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/cpu_ppc64le.c
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/cpu_ppc64le.c
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/cpu_ppc64le.c
@@ -0,0 +1,38 @@
+/* Copyright (c) 2016, Google Inc.
+ *
@ -377,10 +377,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/cpu_ppc64le.c
+}
+
+#endif // OPENSSL_PPC64LE
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/crypto.c
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/crypto.c
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/crypto.c
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/crypto.c
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/crypto.c
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/crypto.c
@@ -25,10 +25,12 @@ static_assert(sizeof(ossl_ssize_t) == si
"ossl_ssize_t should be the same size as size_t");
@ -419,10 +419,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/crypto.c
#elif defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
#include <openssl/arm_arch.h>
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/CMakeLists.txt
@@ -19,6 +19,8 @@ perlasm(BCM_SOURCES arm sha1-armv4-large
perlasm(BCM_SOURCES arm sha256-armv4 sha/asm/sha256-armv4.pl)
perlasm(BCM_SOURCES arm sha512-armv4 sha/asm/sha512-armv4.pl)
@ -432,10 +432,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/CMakeL
perlasm(BCM_SOURCES x86 aesni-x86 aes/asm/aesni-x86.pl)
perlasm(BCM_SOURCES x86 bn-586 bn/asm/bn-586.pl)
perlasm(BCM_SOURCES x86 co-586 bn/asm/co-586.pl)
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/aes/asm/aesp8-ppc.pl
@@ -0,0 +1,3809 @@
+#! /usr/bin/env perl
+# Copyright 2014-2018 The OpenSSL Project Authors. All Rights Reserved.
@ -4246,10 +4246,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/aes/as
+}
+
+close STDOUT or die "error closing STDOUT: $!";
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/aes/internal.h
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/aes/internal.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/aes/internal.h
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/aes/internal.h
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/aes/internal.h
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/aes/internal.h
@@ -59,6 +59,12 @@ OPENSSL_INLINE int vpaes_capable(void) {
OPENSSL_INLINE int vpaes_capable(void) { return CRYPTO_is_NEON_capable(); }
#endif
@ -4263,10 +4263,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/aes/in
#endif
#endif // !NO_ASM
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/bcm.c
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/bcm.c
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/bcm.c
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/bcm.c
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/bcm.c
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/bcm.c
@@ -102,6 +102,7 @@
#include "self_check/fips.c"
#include "self_check/self_check.c"
@ -4275,10 +4275,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/bcm.c
#include "sha/sha1.c"
#include "sha/sha256.c"
#include "sha/sha512.c"
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/bn/bn.c
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/bn/bn.c
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/bn/bn.c
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/bn/bn.c
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/bn/bn.c
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/bn/bn.c
@@ -384,6 +384,23 @@ int bn_expand(BIGNUM *bn, size_t bits) {
}
@ -4303,10 +4303,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/bn/bn.
if ((size_t)bn->width <= words) {
if (!bn_wexpand(bn, words)) {
return 0;
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/cipher/e_aes.c
@@ -1455,6 +1455,8 @@ int EVP_has_aes_hardware(void) {
return hwaes_capable() && crypto_gcm_clmul_enabled();
#elif defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
@ -4316,10 +4316,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/cipher
#else
return 0;
#endif
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/modes/asm/ghashp8-ppc.pl
@@ -0,0 +1,671 @@
+#! /usr/bin/env perl
+# Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
@ -4992,10 +4992,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/
+}
+
+close STDOUT or die "error closing STDOUT: $!"; # enforce flush
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/modes/gcm.c
@@ -228,6 +228,13 @@ void CRYPTO_ghash_init(gmult_func *out_m
*out_hash = gcm_ghash_neon;
return;
@ -5010,10 +5010,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/
#endif
gcm_init_nohw(out_table, H);
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/gcm_test.cc
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/modes/gcm_test.cc
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/modes/gcm_test.cc
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/gcm_test.cc
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/modes/gcm_test.cc
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/modes/gcm_test.cc
@@ -215,5 +215,15 @@ TEST(GCMTest, ABI) {
}
}
@ -5030,10 +5030,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/
+#endif // GHASH_ASM_PPC64LE
}
#endif // SUPPORTS_ABI_TEST && !OPENSSL_NO_ASM
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/internal.h
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/modes/internal.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/modes/internal.h
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/internal.h
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/modes/internal.h
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/modes/internal.h
@@ -325,6 +325,13 @@ void aes_gcm_dec_kernel(const uint8_t *i
const u128 Htable[16]);
#endif
@ -5048,10 +5048,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/modes/
#endif
#endif // OPENSSL_NO_ASM
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/rand/getrandom_fillin.h
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/rand/getrandom_fillin.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/rand/getrandom_fillin.h
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/rand/getrandom_fillin.h
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/rand/getrandom_fillin.h
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/rand/getrandom_fillin.h
@@ -30,6 +30,8 @@
#define EXPECTED_NR_getrandom 278
#elif defined(OPENSSL_ARM)
@ -5061,10 +5061,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/rand/g
#elif defined(OPENSSL_RISCV64)
#define EXPECTED_NR_getrandom 278
#endif
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/rand/rand.c
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/rand/rand.c
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/rand/rand.c
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/rand/rand.c
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/rand/rand.c
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/rand/rand.c
@@ -431,6 +431,11 @@ void RAND_bytes_with_additional_data(uin
// Take a read lock around accesses to |state->drbg|. This is needed to
// avoid returning bad entropy if we race with
@ -5077,11 +5077,11 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/rand/r
CRYPTO_MUTEX_lock_read(&state->clear_drbg_lock);
#endif
if (!CTR_DRBG_reseed(&state->drbg, seed, reseed_additional_data,
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/sha/internal.h
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/sha/internal.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/fipsmodule/sha/internal.h
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/sha/internal.h
@@ -23,17 +23,25 @@
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/sha/internal.h
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/sha/internal.h
@@ -23,6 +23,17 @@
extern "C" {
#endif
@ -5090,8 +5090,8 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/sha/in
+// POWER has an intrinsics-based implementation of SHA-1 and thus the functions
+// normally defined in assembly are available even with |OPENSSL_NO_ASM| in
+// this case.
+#define SHA1_ASM
+void sha1_block_data_order(uint32_t *state, const uint8_t *in,
+#define SHA1_ASM_PPC64
+void sha1_block_data_order_ppc64(uint32_t *state, const uint8_t *in,
+ size_t num_blocks);
+#endif
+
@ -5099,21 +5099,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/sha/in
// Define SHA{n}[_{variant}]_ASM if sha{n}_block_data_order[_{variant}] is
// defined in assembly.
#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86)
-#define SHA1_ASM
#define SHA256_ASM
#define SHA512_ASM
-void sha1_block_data_order(uint32_t *state, const uint8_t *data,
- size_t num_blocks);
void sha256_block_data_order(uint32_t *state, const uint8_t *data,
size_t num_blocks);
void sha512_block_data_order(uint64_t *state, const uint8_t *data,
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/sha/sha1-altivec.c
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/sha/sha1-altivec.c
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/sha/sha1-altivec.c
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/sha/sha1-altivec.c
@@ -0,0 +1,361 @@
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
@ -5186,7 +5175,7 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/sha/sh
+
+#include <altivec.h>
+
+void sha1_block_data_order(uint32_t *state, const uint8_t *data, size_t num);
+void sha1_block_data_order_ppc64(uint32_t *state, const uint8_t *data, size_t num);
+
+static uint32_t rotate(uint32_t a, int n) { return (a << n) | (a >> (32 - n)); }
+
@ -5304,7 +5293,7 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/sha/sh
+ (b) = rotate((b), 30); \
+ } while (0)
+
+void sha1_block_data_order(uint32_t *state, const uint8_t *data, size_t num) {
+void sha1_block_data_order_ppc64(uint32_t *state, const uint8_t *data, size_t num) {
+ uint32_t A, B, C, D, E, T;
+
+ A = state[0];
@ -5476,10 +5465,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/fipsmodule/sha/sh
+#undef BODY_20_39
+#undef BODY_40_59
+#undef BODY_60_79
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/internal.h
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/internal.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/internal.h
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/internal.h
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/internal.h
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/internal.h
@@ -181,7 +181,7 @@ extern "C" {
@ -5489,7 +5478,7 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/internal.h
// OPENSSL_cpuid_setup initializes the platform-specific feature cache.
void OPENSSL_cpuid_setup(void);
#endif
@@ -1622,6 +1622,16 @@ OPENSSL_INLINE int CRYPTO_is_ARMv8_SHA51
@@ -1632,6 +1632,16 @@ OPENSSL_INLINE int CRYPTO_is_ARMv8_SHA51
#endif // OPENSSL_ARM || OPENSSL_AARCH64
@ -5506,10 +5495,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/internal.h
#if defined(BORINGSSL_DISPATCH_TEST)
// Runtime CPU dispatch testing support
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/perlasm/ppc-xlate.pl
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/perlasm/ppc-xlate.pl
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/perlasm/ppc-xlate.pl
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/perlasm/ppc-xlate.pl
@@ -0,0 +1,320 @@
+#! /usr/bin/env perl
+# Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
@ -5831,10 +5820,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/perlasm/ppc-xlate
+___
+
+close STDOUT or die "error closing STDOUT: $!";
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/test/abi_test.h
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/test/abi_test.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/crypto/test/abi_test.h
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/test/abi_test.h
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/test/abi_test.h
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/test/abi_test.h
@@ -179,7 +179,78 @@ struct alignas(16) Reg128 {
CALLER_STATE_REGISTER(uint64_t, x28) \
CALLER_STATE_REGISTER(uint64_t, x29)
@ -5941,10 +5930,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/test/abi_test.h
static_assert(sizeof...(args) <= 8,
"too many arguments for abi_test_trampoline");
Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/test/asm/trampoline-ppc.pl
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/test/asm/trampoline-ppc.pl
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/crypto/test/asm/trampoline-ppc.pl
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/test/asm/trampoline-ppc.pl
@@ -0,0 +1,262 @@
+#!/usr/bin/env perl
+# Copyright (c) 2019, Google Inc.
@ -6208,10 +6197,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/crypto/test/asm/trampoli
+
+print $code;
+close STDOUT or die "error closing STDOUT: $!";
Index: chromium-123.0.6312.58/third_party/boringssl/src/include/openssl/target.h
Index: chromium-124.0.6367.60/third_party/boringssl/src/include/openssl/target.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/include/openssl/target.h
+++ chromium-123.0.6312.58/third_party/boringssl/src/include/openssl/target.h
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/include/openssl/target.h
+++ chromium-124.0.6367.60/third_party/boringssl/src/include/openssl/target.h
@@ -34,6 +34,9 @@
#elif defined(__ARMEL__) || defined(_M_ARM)
#define OPENSSL_32_BIT
@ -6222,10 +6211,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/include/openssl/target.h
#elif defined(__MIPSEL__) && !defined(__LP64__)
#define OPENSSL_32_BIT
#define OPENSSL_MIPS
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/main.cc
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/main.cc
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/main.cc
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/main.cc
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/main.cc
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/acvp/modulewrapper/main.cc
@@ -37,6 +37,8 @@ int main(int argc, char **argv) {
puts("ARM (32-bit)");
#elif defined(OPENSSL_AARCH64)
@ -6235,10 +6224,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/acvp/modu
#else
#error "FIPS build not supported on this architecture"
#endif
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/delocate.go
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/delocate.go
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/util/fipstools/delocate/delocate.go
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/delocate.go
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/util/fipstools/delocate/delocate.go
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/delocate.go
@@ -54,7 +54,8 @@ type stringWriter interface {
type processorType int
@ -6838,10 +6827,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
case "str", "bl", "ldr", "st1":
return aarch64
}
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/delocate.peg
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/delocate.peg
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/util/fipstools/delocate/delocate.peg
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/delocate.peg
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/util/fipstools/delocate/delocate.peg
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/delocate.peg
@@ -12,7 +12,7 @@
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
@ -6851,10 +6840,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
# https://github.com/pointlander/peg. delocate.go has a go:generate line for
# rebuilding delocate.peg.go from this file.
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/delocate_test.go
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/delocate_test.go
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/util/fipstools/delocate/delocate_test.go
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/delocate_test.go
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/util/fipstools/delocate/delocate_test.go
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/delocate_test.go
@@ -39,6 +39,11 @@ func (test *delocateTest) Path(file stri
var delocateTests = []delocateTest{
@ -6867,10 +6856,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
{"x86_64-Basic", []string{"in.s"}, "out.s"},
{"x86_64-BSS", []string{"in.s"}, "out.s"},
{"x86_64-GOTRewrite", []string{"in.s"}, "out.s"},
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-GlobalEntry/in.s
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-GlobalEntry/in.s
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-GlobalEntry/in.s
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-GlobalEntry/in.s
@@ -0,0 +1,9 @@
+ .text
+foo:
@ -6881,10 +6870,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
+ .localentry foo,.-foo
+.LVL0:
+ bl
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-GlobalEntry/out.s
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-GlobalEntry/out.s
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-GlobalEntry/out.s
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-GlobalEntry/out.s
@@ -0,0 +1,62 @@
+.text
+.file 1 "inserted_by_delocate.c"
@ -6948,19 +6937,19 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
+.byte 0xff
+.byte 0x31
+.byte 0x80
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-LoadToR0/in.s
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-LoadToR0/in.s
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-LoadToR0/in.s
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-LoadToR0/in.s
@@ -0,0 +1,4 @@
+ .text
+foo:
+ addis 22,2,bar@toc@ha
+ ld 0,bar@toc@l(22)
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-LoadToR0/out.s
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-LoadToR0/out.s
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-LoadToR0/out.s
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-LoadToR0/out.s
@@ -0,0 +1,72 @@
+.text
+.file 1 "inserted_by_delocate.c"
@ -7034,10 +7023,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
+.byte 0xff
+.byte 0x31
+.byte 0x80
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample/in.s
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample/in.s
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample/in.s
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample/in.s
@@ -0,0 +1,161 @@
+ .file "foo.c"
+ .abiversion 2
@ -7200,10 +7189,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
+ .size exported_function,.-exported_function
+ .ident "GCC: (Ubuntu 4.9.2-10ubuntu13) 4.9.2"
+ .section .note.GNU-stack,"",@progbits
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample/out.s
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample/out.s
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample/out.s
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample/out.s
@@ -0,0 +1,552 @@
+.text
+.file 1 "inserted_by_delocate.c"
@ -7757,10 +7746,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
+.byte 0xff
+.byte 0x31
+.byte 0x80
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample2/in.s
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample2/in.s
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample2/in.s
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample2/in.s
@@ -0,0 +1,226 @@
+ .file "foo.c"
+ .abiversion 2
@ -7988,10 +7977,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
+ .zero 20
+ .ident "GCC: (Ubuntu 4.9.2-10ubuntu13) 4.9.2"
+ .section .note.GNU-stack,"",@progbits
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample2/out.s
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample2/out.s
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample2/out.s
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-Sample2/out.s
@@ -0,0 +1,677 @@
+.text
+.file 1 "inserted_by_delocate.c"
@ -8670,10 +8659,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
+.byte 0xff
+.byte 0x31
+.byte 0x80
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-TOCWithOffset/in.s
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-TOCWithOffset/in.s
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-TOCWithOffset/in.s
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-TOCWithOffset/in.s
@@ -0,0 +1,23 @@
+ .text
+foo:
@ -8698,10 +8687,10 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
+
+ addis 4, 2, 1+foo-2@toc@ha+3
+ addi 4, 4, 1+foo-2@toc@l+3
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-TOCWithOffset/out.s
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-TOCWithOffset/out.s
===================================================================
--- /dev/null
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-TOCWithOffset/out.s
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/fipstools/delocate/testdata/ppc64le-TOCWithOffset/out.s
@@ -0,0 +1,178 @@
+.text
+.file 1 "inserted_by_delocate.c"
@ -8881,15 +8870,30 @@ Index: chromium-123.0.6312.58/third_party/boringssl/src/util/fipstools/delocate/
+.byte 0xff
+.byte 0x31
+.byte 0x80
Index: chromium-123.0.6312.58/third_party/boringssl/src/util/generate_build_files.py
Index: chromium-124.0.6367.60/third_party/boringssl/src/util/generate_build_files.py
===================================================================
--- chromium-123.0.6312.58.orig/third_party/boringssl/src/util/generate_build_files.py
+++ chromium-123.0.6312.58/third_party/boringssl/src/util/generate_build_files.py
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/util/generate_build_files.py
+++ chromium-124.0.6367.60/third_party/boringssl/src/util/generate_build_files.py
@@ -34,6 +34,7 @@ OS_ARCH_COMBOS = [
('apple', 'x86_64', 'macosx', [], 'S'),
('linux', 'arm', 'linux32', [], 'S'),
('linux', 'aarch64', 'linux64', [], 'S'),
+ ('linux', 'ppc64le', 'linux64le', [], 'S'),
('linux', 'x86', 'elf', ['-fPIC', '-DOPENSSL_IA32_SSE2'], 'S'),
('linux', 'x86', 'elf', ['-fPIC'], 'S'),
('linux', 'x86_64', 'elf', [], 'S'),
('win', 'x86', 'win32n', ['-DOPENSSL_IA32_SSE2'], 'asm'),
('win', 'x86', 'win32n', [], 'asm'),
Index: chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c
===================================================================
--- chromium-124.0.6367.60.orig/third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c
+++ chromium-124.0.6367.60/third_party/boringssl/src/crypto/fipsmodule/sha/sha1.c
@@ -416,6 +416,10 @@ static void sha1_block_data_order(uint32
return;
}
#endif
+#if defined(SHA1_ASM_PPC64)
+ sha1_block_data_order_ppc64(state, data, num);
+ return;
+#endif
sha1_block_data_order_nohw(state, data, num);
}

@ -1,23 +0,0 @@
From 61dcf0ff9603e8f5b0a859fb0837c51527ebae43 Mon Sep 17 00:00:00 2001
From: Colin Samples <colin.samples+git@gmail.com>
Date: Fri, 1 Nov 2019 11:50:52 -0400
Subject: [PATCH] Add PPC64 support for libdav1d
---
third_party/dav1d/BUILD.gn | 21 ++++++++++++++++++++
third_party/dav1d/generate_configs.py | 28 ++-------------------------
third_party/dav1d/generate_source.py | 2 ++
3 files changed, 25 insertions(+), 26 deletions(-)
Index: chromium-120.0.6099.71/third_party/dav1d/generate_configs.py
===================================================================
--- chromium-120.0.6099.71.orig/third_party/dav1d/generate_configs.py
+++ chromium-120.0.6099.71/third_party/dav1d/generate_configs.py
@@ -203,6 +203,7 @@ def main():
linux_env = os.environ
linux_env['CC'] = 'clang'
+ GenerateConfig('config/linux/ppc64', linux_env)
GenerateConfig('config/linux/x64', linux_env)
noasm_dir = 'config/linux-noasm/x64'

@ -1,14 +0,0 @@
Index: chromium-120.0.6099.71/third_party/highway/BUILD.gn
===================================================================
--- chromium-120.0.6099.71.orig/third_party/highway/BUILD.gn
+++ chromium-120.0.6099.71/third_party/highway/BUILD.gn
@@ -13,6 +13,9 @@ config("libhwy_external_config") {
# explicitly disabling AVX2 and AVX3 targets.
defines += [ "HWY_BROKEN_TARGETS=(HWY_AVX2|HWY_AVX3)" ]
}
+ if (target_cpu == "ppc64") {
+ defines += [ "TOOLCHAIN_MISS_ASM_HWCAP_H" ]
+ }
}
source_set("libhwy") {

@ -1,33 +0,0 @@
From e14024659e0fc2af3df6ec56ce39a8e93b75722d Mon Sep 17 00:00:00 2001
From: Colin Samples <colin.samples+git@gmail.com>
Date: Sun, 8 Dec 2019 19:25:02 -0500
Subject: [PATCH] Fix libdav1d compilation on clang ppc
---
src/ppc/dav1d_types.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
Index: chromium-120.0.6099.71/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h
===================================================================
--- chromium-120.0.6099.71.orig/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h
+++ chromium-120.0.6099.71/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h
@@ -51,4 +51,19 @@
#define u16l_to_i32(v) ((i32x4) vec_mergel((u16x8) v, vec_splat_u16(0)))
#define i16l_to_i32(v) ((i32x4) vec_unpackl((i16x8)v))
+#if defined(__clang__)
+#undef vec_splats
+#define vec_splats(N) \
+ _Generic((N), \
+ unsigned char: ((u8x16)(N)), \
+ signed char: ((i8x16)(N)), \
+ unsigned short: ((u16x8)(N)), \
+ signed short: ((i16x8)(N)), \
+ unsigned int: ((u32x4)(N)), \
+ signed int: ((i32x4)(N)), \
+ unsigned long long: ((u64x2)(N)), \
+ signed long long: ((i64x2)(N)) \
+ )
+#endif
+
#endif /* DAV1D_SRC_PPC_TYPES_H */

@ -54,10 +54,8 @@ https://wiki.raptorcs.com/wiki/Porting/Chromium
src/tools/linux/md2core/minidump-2-core.cc | 45 +++++++++++++++
25 files changed, 281 insertions(+), 35 deletions(-)
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
--- a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
+++ b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
@@ -51,6 +51,8 @@ typedef MDRawContextRISCV64 RawContextCP
# else
# error "Unexpected __riscv_xlen"
@ -67,10 +65,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dum
#else
#error "This code has not been ported to your platform yet."
#endif
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
--- a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
@@ -336,7 +336,42 @@ void ThreadInfo::FillCPUContext(RawConte
#error "Unexpected __riscv_xlen"
#endif
@ -153,10 +149,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dum
+#endif
+
} // namespace google_breakpad
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
--- a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
+++ b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
@@ -67,6 +67,10 @@ struct ThreadInfo {
// Use the structures defined in <sys/user.h>
struct user_regs_struct regs;
@ -180,10 +174,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dum
};
} // namespace google_breakpad
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
--- a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
@@ -324,6 +324,48 @@ void UContextReader::FillCPUContext(RawC
#error "Unexpected __riscv_xlen"
#endif
@ -233,10 +225,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dum
#endif
} // namespace google_breakpad
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
--- a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+++ b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
@@ -54,6 +54,9 @@ struct UContextReader {
#elif defined(__aarch64__)
static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
@ -247,10 +237,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/dum
#else
static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc);
#endif
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
@@ -464,6 +464,13 @@ bool ExceptionHandler::HandleSignal(int
memcpy(&g_crash_context_.float_state, fp_ptr,
sizeof(g_crash_context_.float_state));
@ -295,10 +283,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/han
#elif defined(__riscv)
context.siginfo.si_addr =
reinterpret_cast<void*>(context.context.uc_mcontext.__gregs[REG_PC]);
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
+++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
@@ -200,7 +200,11 @@ class ExceptionHandler {
siginfo_t siginfo;
pid_t tid; // the crashing thread.
@ -312,10 +298,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/han
fpstate_t float_state;
#endif
};
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
@@ -321,7 +321,7 @@ TEST(ExceptionHandlerTest, ParallelChild
ASSERT_EQ(SIGSEGV, WTERMSIG(status));
return;
@ -347,10 +331,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/han
const int kOffset = kMemorySize - sizeof(kIllegalInstruction);
const pid_t child = fork();
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
--- a/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
@@ -141,7 +141,9 @@ class MicrodumpWriter {
const MicrodumpExtraInfo& microdump_extra_info,
LinuxDumper* dumper)
@ -393,10 +375,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/mic
const google_breakpad::fpstate_t* const float_state_;
#endif
LinuxDumper* dumper_;
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
--- a/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
@@ -282,10 +282,19 @@ TEST(MicrodumpWriterTest, BasicWithMappi
CrashAndGetMicrodump(mappings, MicrodumpExtraInfo(), &buf);
ASSERT_TRUE(ContainsMicrodump(buf));
@ -420,10 +400,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/mic
#else
ASSERT_NE(std::string::npos,
buf.find("M 00001000 0000002A 00001000 "
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
@@ -118,6 +118,9 @@ bool LinuxCoreDumper::GetThreadInfoByInd
#elif defined(__riscv)
stack_pointer = reinterpret_cast<uint8_t*>(
@ -446,10 +424,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
# if defined(__ANDROID__)
for (int i = EF_R0; i <= EF_R31; i++)
info.mcontext.gregs[i - EF_R0] = status->pr_reg[i];
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
@@ -770,7 +770,9 @@ bool LinuxDumper::GetStackInfo(const voi
reinterpret_cast<uint8_t*>(int_stack_pointer & ~(page_size - 1));
@ -461,10 +437,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
const MappingInfo* mapping = FindMapping(stack_pointer);
if (!mapping)
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
+++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
@@ -64,7 +64,8 @@ namespace google_breakpad {
typedef Elf32_auxv_t elf_aux_entry;
#elif defined(__x86_64) || defined(__aarch64__) || \
@ -475,10 +449,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
typedef Elf64_auxv_t elf_aux_entry;
#endif
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
@@ -56,6 +56,8 @@
#define TID_PTR_REGISTER "$1"
#elif defined(__riscv)
@ -488,17 +460,9 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
#else
#error This test has not been ported to this platform.
#endif
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
@@ -152,19 +152,27 @@ bool LinuxPtraceDumper::CopyFromProcess(
return true;
}
-bool LinuxPtraceDumper::ReadRegisterSet(ThreadInfo* info, pid_t tid)
-{
+bool LinuxPtraceDumper::ReadRegisterSet(ThreadInfo* info, pid_t tid) {
--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
@@ -189,12 +189,12 @@ bool LinuxPtraceDumper::ReadRegisterSet(
#ifdef PTRACE_GETREGSET
struct iovec io;
info->GetGeneralPurposeRegisters(&io.iov_base, &io.iov_len);
@ -510,7 +474,12 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
info->GetFloatingPointRegisters(&io.iov_base, &io.iov_len);
- if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) {
+ if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) {
return false;
// We are going to check if we can read VFP registers on ARM32.
// Currently breakpad does not support VFP registers to be a part of minidump,
// so this is only to confirm that we can actually read FP registers.
@@ -214,6 +214,15 @@ bool LinuxPtraceDumper::ReadRegisterSet(
}
#endif // defined(__arm__)
}
+
+#if defined(__powerpc64__)
@ -524,7 +493,7 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
return true;
#else
return false;
@@ -312,6 +320,9 @@ bool LinuxPtraceDumper::GetThreadInfoByI
@@ -378,6 +387,9 @@ bool LinuxPtraceDumper::GetThreadInfoByI
#elif defined(__riscv)
stack_pointer = reinterpret_cast<uint8_t*>(
info->mcontext.__gregs[MD_CONTEXT_RISCV_REG_SP]);
@ -534,10 +503,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
#else
# error "This code hasn't been ported to your platform yet."
#endif
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
@@ -470,6 +470,9 @@ TEST(LinuxPtraceDumperTest, VerifyStackR
#elif defined(__riscv)
pid_t* process_tid_location =
@ -557,10 +524,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
#else
#error This test has not been ported to this platform.
#endif
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
@@ -144,7 +144,9 @@ class MinidumpWriter {
: fd_(minidump_fd),
path_(minidump_path),
@ -614,10 +579,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
const google_breakpad::fpstate_t* const float_state_; // ditto
#endif
LinuxDumper* dumper_;
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
+++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
@@ -47,6 +47,8 @@ class ExceptionHandler;
#if defined(__aarch64__)
@ -627,10 +590,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
#elif !defined(__ARM_EABI__) && !defined(__mips__)
typedef std::remove_pointer<fpregset_t>::type fpstate_t;
#endif
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
+++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
@@ -723,6 +723,9 @@ TEST(MinidumpWriterTest, InvalidStackPoi
#elif defined(__riscv)
context.context.uc_mcontext.__gregs[MD_CONTEXT_RISCV_REG_SP] =
@ -641,10 +602,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/client/linux/min
#else
# error "This code has not been ported to your platform yet."
#endif
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
--- a/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
+++ b/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
@@ -72,8 +72,7 @@ bool MemoryMappedFile::Map(const char* p
#if defined(__x86_64__) || defined(__aarch64__) || \
@ -655,10 +614,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/common/linux/mem
struct kernel_stat st;
if (sys_fstat(fd, &st) == -1 || st.st_size < 0) {
#else
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
--- a/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
+++ b/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
@@ -179,9 +179,10 @@ TEST_F(MemoryMappedFileTest, RemapAfterM
TEST_F(MemoryMappedFileTest, MapWithOffset) {
// Put more data in the test file this time. Offsets can only be
@ -673,10 +630,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/common/linux/mem
for (size_t i = 0; i < data1_size; ++i) {
data1[i] = i & 0x7f;
}
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
--- a/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
+++ b/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
@@ -60,8 +60,9 @@ TEST(PageAllocatorTest, LargeObject) {
EXPECT_EQ(0U, allocator.pages_allocated());
@ -688,10 +643,8 @@ Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/common/memory_al
for (unsigned i = 1; i < 10; ++i) {
uint8_t* p = reinterpret_cast<uint8_t*>(allocator.Alloc(i));
ASSERT_FALSE(p == NULL);
Index: chromium-120.0.6099.71/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
===================================================================
--- chromium-120.0.6099.71.orig/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
+++ chromium-120.0.6099.71/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
--- a/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
+++ b/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
@@ -82,6 +82,8 @@
#define ELF_ARCH EM_AARCH64
#elif defined(__riscv)

@ -1,101 +0,0 @@
Index: chromium-120.0.6099.71/third_party/highway/src/hwy/ops/ppc_vsx-inl.h
===================================================================
--- chromium-120.0.6099.71.orig/third_party/highway/src/hwy/ops/ppc_vsx-inl.h
+++ chromium-120.0.6099.71/third_party/highway/src/hwy/ops/ppc_vsx-inl.h
@@ -36,6 +36,8 @@
#include "hwy/ops/shared-inl.h"
+#undef __SIZEOF_INT128__
+
HWY_BEFORE_NAMESPACE();
namespace hwy {
namespace HWY_NAMESPACE {
@@ -2844,7 +2846,6 @@ struct CompressIsPartition {
namespace detail {
-#if HWY_TARGET > HWY_PPC10 || __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__
// fallback for missing vec_extractm
template <size_t N>
HWY_INLINE uint64_t ExtractSignBits(Vec128<uint8_t, N> sign_bits,
@@ -2857,22 +2858,16 @@ HWY_INLINE uint64_t ExtractSignBits(Vec1
return extracted.raw[__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__];
}
-#endif // HWY_TARGET > HWY_PPC10
-
template <typename T, size_t N>
HWY_INLINE uint64_t BitsFromMask(hwy::SizeTag<1> /*tag*/,
Mask128<T, N> mask) {
const DFromM<decltype(mask)> d;
const Repartition<uint8_t, decltype(d)> du8;
const VFromD<decltype(du8)> sign_bits = BitCast(du8, VecFromMask(d, mask));
-#if HWY_TARGET <= HWY_PPC10 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
- return static_cast<uint64_t>(vec_extractm(sign_bits.raw));
-#else
const __vector unsigned char kBitShuffle = {
120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0
};
return ExtractSignBits(sign_bits, kBitShuffle);
-#endif // HWY_TARGET <= HWY_PPC10
}
template <typename T, size_t N>
@@ -2882,10 +2877,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si
const Repartition<uint8_t, decltype(d)> du8;
const VFromD<decltype(du8)> sign_bits = BitCast(du8, VecFromMask(d, mask));
-#if HWY_TARGET <= HWY_PPC10 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
- const RebindToUnsigned<decltype(d)> du;
- return static_cast<uint64_t>(vec_extractm(BitCast(du, sign_bits).raw));
-#else
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
const __vector unsigned char kBitShuffle = {
112, 96, 80, 64, 48, 32, 16, 0, 128, 128, 128, 128, 128, 128, 128, 128};
@@ -2894,7 +2885,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si
128, 128, 128, 128, 128, 128, 128, 128, 112, 96, 80, 64, 48, 32, 16, 0};
#endif
return ExtractSignBits(sign_bits, kBitShuffle);
-#endif // HWY_TARGET <= HWY_PPC10
}
template <typename T, size_t N>
@@ -2903,10 +2893,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si
const DFromM<decltype(mask)> d;
const Repartition<uint8_t, decltype(d)> du8;
const VFromD<decltype(du8)> sign_bits = BitCast(du8, VecFromMask(d, mask));
-#if HWY_TARGET <= HWY_PPC10 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
- const RebindToUnsigned<decltype(d)> du;
- return static_cast<uint64_t>(vec_extractm(BitCast(du, sign_bits).raw));
-#else
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
const __vector unsigned char kBitShuffle = {
96, 64, 32, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128};
@@ -2915,7 +2901,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 96, 64, 32, 0};
#endif
return ExtractSignBits(sign_bits, kBitShuffle);
-#endif // HWY_TARGET <= HWY_PPC10
}
template <typename T, size_t N>
@@ -2924,10 +2909,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si
const DFromM<decltype(mask)> d;
const Repartition<uint8_t, decltype(d)> du8;
const VFromD<decltype(du8)> sign_bits = BitCast(du8, VecFromMask(d, mask));
-#if HWY_TARGET <= HWY_PPC10 && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
- const RebindToUnsigned<decltype(d)> du;
- return static_cast<uint64_t>(vec_extractm(BitCast(du, sign_bits).raw));
-#else
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
const __vector unsigned char kBitShuffle = {64, 0, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128,
@@ -2938,7 +2919,6 @@ HWY_INLINE uint64_t BitsFromMask(hwy::Si
128, 128, 64, 0};
#endif
return ExtractSignBits(sign_bits, kBitShuffle);
-#endif // HWY_TARGET <= HWY_PPC10
}
// Returns the lowest N of the mask bits.

@ -1,6 +1,3 @@
diff --git a/third_party/libvpx/source/config/linux/ppc64/vp8_rtcd.h b/third_party/libvpx/source/config/linux/ppc64/vp8_rtcd.h
deleted file mode 100644
index 225647f..0000000
--- a/third_party/libvpx/source/config/linux/ppc64/vp8_rtcd.h
+++ /dev/null
@@ -1,320 +0,0 @@
@ -324,9 +321,6 @@ index 225647f..0000000
-#endif
-
-#endif
diff --git a/third_party/libvpx/source/config/linux/ppc64/vp9_rtcd.h b/third_party/libvpx/source/config/linux/ppc64/vp9_rtcd.h
deleted file mode 100644
index d0ceec1..0000000
--- a/third_party/libvpx/source/config/linux/ppc64/vp9_rtcd.h
+++ /dev/null
@@ -1,193 +0,0 @@
@ -523,12 +517,9 @@ index d0ceec1..0000000
-#endif
-
-#endif
diff --git a/third_party/libvpx/source/config/linux/ppc64/vpx_config.asm b/third_party/libvpx/source/config/linux/ppc64/vpx_config.asm
deleted file mode 100644
index cf14597..0000000
--- a/third_party/libvpx/source/config/linux/ppc64/vpx_config.asm
+++ /dev/null
@@ -1,107 +0,0 @@
@@ -1,108 +0,0 @@
-@ This file was created from a .asm file
-@ using the ads2gas.pl script.
-.syntax unified
@ -551,6 +542,7 @@ index cf14597..0000000
-.equ HAVE_NEON_DOTPROD , 0
-.equ HAVE_NEON_I8MM , 0
-.equ HAVE_SVE , 0
-.equ HAVE_SVE2 , 0
-.equ HAVE_MIPS32 , 0
-.equ HAVE_DSPR2 , 0
-.equ HAVE_MSA , 0
@ -636,9 +628,6 @@ index cf14597..0000000
-.equ DECODE_WIDTH_LIMIT , 16384
-.equ DECODE_HEIGHT_LIMIT , 16384
- .section .note.GNU-stack,"",%progbits
diff --git a/third_party/libvpx/source/config/linux/ppc64/vpx_config.c b/third_party/libvpx/source/config/linux/ppc64/vpx_config.c
deleted file mode 100644
index 9b870e7..0000000
--- a/third_party/libvpx/source/config/linux/ppc64/vpx_config.c
+++ /dev/null
@@ -1,10 +0,0 @@
@ -652,12 +641,9 @@ index 9b870e7..0000000
-#include "vpx/vpx_codec.h"
-static const char* const cfg = "--target=ppc64le-linux-gcc --enable-external-build --enable-postproc --enable-multi-res-encoding --enable-temporal-denoising --enable-vp9-temporal-denoising --enable-vp9-postproc --size-limit=16384x16384 --enable-realtime-only --disable-install-docs --disable-libyuv";
-const char *vpx_codec_build_config(void) {return cfg;}
diff --git a/third_party/libvpx/source/config/linux/ppc64/vpx_config.h b/third_party/libvpx/source/config/linux/ppc64/vpx_config.h
deleted file mode 100644
index 8be04cc..0000000
--- a/third_party/libvpx/source/config/linux/ppc64/vpx_config.h
+++ /dev/null
@@ -1,116 +0,0 @@
@@ -1,117 +0,0 @@
-/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
-/* */
-/* Use of this source code is governed by a BSD-style license */
@ -689,6 +675,7 @@ index 8be04cc..0000000
-#define HAVE_NEON_DOTPROD 0
-#define HAVE_NEON_I8MM 0
-#define HAVE_SVE 0
-#define HAVE_SVE2 0
-#define HAVE_MIPS32 0
-#define HAVE_DSPR2 0
-#define HAVE_MSA 0
@ -774,9 +761,6 @@ index 8be04cc..0000000
-#define DECODE_WIDTH_LIMIT 16384
-#define DECODE_HEIGHT_LIMIT 16384
-#endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/ppc64/vpx_dsp_rtcd.h b/third_party/libvpx/source/config/linux/ppc64/vpx_dsp_rtcd.h
deleted file mode 100644
index 8749b43..0000000
--- a/third_party/libvpx/source/config/linux/ppc64/vpx_dsp_rtcd.h
+++ /dev/null
@@ -1,2128 +0,0 @@
@ -2908,9 +2892,6 @@ index 8749b43..0000000
-#endif
-
-#endif
diff --git a/third_party/libvpx/source/config/linux/ppc64/vpx_scale_rtcd.h b/third_party/libvpx/source/config/linux/ppc64/vpx_scale_rtcd.h
deleted file mode 100644
index 37be459..0000000
--- a/third_party/libvpx/source/config/linux/ppc64/vpx_scale_rtcd.h
+++ /dev/null
@@ -1,100 +0,0 @@

File diff suppressed because it is too large Load Diff

@ -1,35 +0,0 @@
--- a/third_party/libvpx/libvpx_srcs.gni
+++ b/third_party/libvpx/libvpx_srcs.gni
@@ -4302,6 +4302,7 @@
"//third_party/libvpx/source/libvpx/vp9/common/vp9_seg_common.c",
"//third_party/libvpx/source/libvpx/vp9/common/vp9_thread_common.c",
"//third_party/libvpx/source/libvpx/vp9/common/vp9_tile_common.c",
+ "//third_party/libvpx/source/libvpx/vp9/common/ppc/vp9_idct_vsx.c",
"//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodeframe.c",
"//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decodemv.c",
"//third_party/libvpx/source/libvpx/vp9/decoder/vp9_decoder.c",
@@ -4340,6 +4341,7 @@
"//third_party/libvpx/source/libvpx/vp9/encoder/vp9_svc_layercontext.c",
"//third_party/libvpx/source/libvpx/vp9/encoder/vp9_tokenize.c",
"//third_party/libvpx/source/libvpx/vp9/encoder/vp9_treewriter.c",
+ "//third_party/libvpx/source/libvpx/vp9/encoder/ppc/vp9_quantize_vsx.c",
"//third_party/libvpx/source/libvpx/vp9/vp9_cx_iface.c",
"//third_party/libvpx/source/libvpx/vp9/vp9_dx_iface.c",
"//third_party/libvpx/source/libvpx/vp9/vp9_iface_common.c",
@@ -4368,6 +4370,16 @@
"//third_party/libvpx/source/libvpx/vpx_dsp/variance.c",
"//third_party/libvpx/source/libvpx/vpx_dsp/vpx_convolve.c",
"//third_party/libvpx/source/libvpx/vpx_dsp/vpx_dsp_rtcd.c",
+ "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/deblock_vsx.c",
+ "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/fdct32x32_vsx.c",
+ "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/hadamard_vsx.c",
+ "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/intrapred_vsx.c",
+ "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/inv_txfm_vsx.c",
+ "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/quantize_vsx.c",
+ "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/sad_vsx.c",
+ "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/subtract_vsx.c",
+ "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/variance_vsx.c",
+ "//third_party/libvpx/source/libvpx/vpx_dsp/ppc/vpx_convolve_vsx.c",
"//third_party/libvpx/source/libvpx/vpx_mem/vpx_mem.c",
"//third_party/libvpx/source/libvpx/vpx_ports/ppc_cpudetect.c",
"//third_party/libvpx/source/libvpx/vpx_scale/generic/gen_scalers.c",

@ -1,43 +0,0 @@
Index: chromium-120.0.6099.71/third_party/dav1d/config/linux/ppc64/config.h
===================================================================
--- /dev/null
+++ chromium-120.0.6099.71/third_party/dav1d/config/linux/ppc64/config.h
@@ -0,0 +1,38 @@
+/*
+ * Autogenerated by the Meson build system.
+ * Do not edit, your changes will be lost.
+ */
+
+#pragma once
+
+#define ARCH_AARCH64 0
+
+#define ARCH_ARM 0
+
+#define ARCH_PPC64LE 1
+
+#define ARCH_X86 0
+
+#define ARCH_X86_32 0
+
+#define ARCH_X86_64 0
+
+#define CONFIG_16BPC 1
+
+#define CONFIG_8BPC 1
+
+// #define CONFIG_LOG 1 -- Logging is controlled by Chromium
+
+#define ENDIANNESS_BIG 0
+
+#define HAVE_ASM 1
+
+#define HAVE_CLOCK_GETTIME 1
+
+#define HAVE_DLSYM 1
+
+#define HAVE_GETAUXVAL 1
+
+#define HAVE_POSIX_MEMALIGN 1
+
+#define HAVE_UNISTD_H 1

@ -1,8 +1,6 @@
Index: chromium-120.0.6099.71/third_party/libvpx/generate_gni.sh
===================================================================
--- chromium-120.0.6099.71.orig/third_party/libvpx/generate_gni.sh
+++ chromium-120.0.6099.71/third_party/libvpx/generate_gni.sh
@@ -411,7 +411,7 @@ gen_config_files linux/mipsel "--target=
--- a/third_party/libvpx/generate_gni.sh
+++ b/third_party/libvpx/generate_gni.sh
@@ -423,7 +423,7 @@ gen_config_files linux/mipsel "--target=
gen_config_files linux/mips64el "--target=mips64-linux-gcc ${all_platforms}"
gen_config_files linux/loongarch \
"--target=loongarch64-linux-gcc ${all_platforms}"
@ -10,11 +8,9 @@ Index: chromium-120.0.6099.71/third_party/libvpx/generate_gni.sh
+gen_config_files linux/ppc64 "--target=generic-gnu $HIGHBD ${all_platforms}"
gen_config_files linux/generic "--target=generic-gnu $HIGHBD ${all_platforms}"
gen_config_files win/arm64-highbd \
"--target=arm64-win64-vs15 ${all_platforms} ${HIGHBD}"
Index: chromium-120.0.6099.71/third_party/libvpx/source/libvpx/build/make/rtcd.pl
===================================================================
--- chromium-120.0.6099.71.orig/third_party/libvpx/source/libvpx/build/make/rtcd.pl
+++ chromium-120.0.6099.71/third_party/libvpx/source/libvpx/build/make/rtcd.pl
"--target=arm64-win64-vs15 ${all_platforms} ${HIGHBD} ${disable_sve}"
--- a/third_party/libvpx/source/libvpx/build/make/rtcd.pl
+++ b/third_party/libvpx/source/libvpx/build/make/rtcd.pl
@@ -492,8 +492,9 @@ if ($opts{arch} eq 'x86') {
&require(@REQUIRES);
arm;
@ -27,11 +23,9 @@ Index: chromium-120.0.6099.71/third_party/libvpx/source/libvpx/build/make/rtcd.p
} elsif ($opts{arch} =~ /loongarch/ ) {
@ALL_ARCHS = filter(qw/lsx lasx/);
loongarch;
Index: chromium-120.0.6099.71/third_party/libvpx/BUILD.gn
===================================================================
--- chromium-120.0.6099.71.orig/third_party/libvpx/BUILD.gn
+++ chromium-120.0.6099.71/third_party/libvpx/BUILD.gn
@@ -93,6 +93,14 @@ config("libvpx_config") {
--- a/third_party/libvpx/BUILD.gn
+++ b/third_party/libvpx/BUILD.gn
@@ -94,6 +94,14 @@ config("libvpx_config") {
"-Wno-sign-compare",
]
}

@ -1,13 +0,0 @@
diff -up chromium-122.0.6261.57/base/allocator/partition_allocator/partition_alloc.gni.me chromium-122.0.6261.57/base/allocator/partition_allocator/partition_alloc.gni
--- chromium-122.0.6261.57/base/allocator/partition_allocator/partition_alloc.gni.me 2024-02-22 20:22:44.115269845 +0100
+++ chromium-122.0.6261.57/base/allocator/partition_allocator/partition_alloc.gni 2024-02-22 20:23:07.067681890 +0100
@@ -29,8 +29,7 @@ if (is_nacl) {
assert(false, "Unknown CPU: $current_cpu")
}
-has_memory_tagging =
- current_cpu == "arm64" && is_clang && !is_asan && (is_linux || is_android)
+has_memory_tagging = false
declare_args() {
# Causes all the allocations to be routed via allocator_shim.cc. Usually,

@ -0,0 +1,13 @@
diff -up chromium-124.0.6367.60/base/allocator/partition_allocator/partition_alloc.gni.me chromium-124.0.6367.60/base/allocator/partition_allocator/partition_alloc.gni
--- chromium-124.0.6367.60/base/allocator/partition_allocator/partition_alloc.gni.me 2024-04-18 15:12:34.007397489 +0200
+++ chromium-124.0.6367.60/base/allocator/partition_allocator/partition_alloc.gni 2024-04-18 15:13:06.166051954 +0200
@@ -32,8 +32,7 @@ if (is_nacl) {
# Increases the size of the empty slot span ring.
use_large_empty_slot_span_ring = is_mac
-has_memory_tagging =
- current_cpu == "arm64" && is_clang && !is_asan && (is_linux || is_android)
+has_memory_tagging = false
declare_args() {
# Causes all the allocations to be routed via allocator_shim.cc. Usually,

@ -0,0 +1,53 @@
--- chromium-124.0.6367.60/third_party/dav1d/libdav1d/src/arm/asm.S 2024-04-15 22:34:36.000000000 +0200
+++ chromium-122.0.6261.128/third_party/dav1d/libdav1d/src/arm/asm.S 2024-03-13 00:38:27.000000000 +0100
@@ -34,50 +34,6 @@
#define x18 do_not_use_x18
#define w18 do_not_use_w18
-#if HAVE_AS_ARCH_DIRECTIVE
- .arch AS_ARCH_LEVEL
-#endif
-
-#if HAVE_AS_ARCHEXT_DOTPROD_DIRECTIVE
-#define ENABLE_DOTPROD .arch_extension dotprod
-#define DISABLE_DOTPROD .arch_extension nodotprod
-#else
-#define ENABLE_DOTPROD
-#define DISABLE_DOTPROD
-#endif
-#if HAVE_AS_ARCHEXT_I8MM_DIRECTIVE
-#define ENABLE_I8MM .arch_extension i8mm
-#define DISABLE_I8MM .arch_extension noi8mm
-#else
-#define ENABLE_I8MM
-#define DISABLE_I8MM
-#endif
-#if HAVE_AS_ARCHEXT_SVE_DIRECTIVE
-#define ENABLE_SVE .arch_extension sve
-#define DISABLE_SVE .arch_extension nosve
-#else
-#define ENABLE_SVE
-#define DISABLE_SVE
-#endif
-#if HAVE_AS_ARCHEXT_SVE2_DIRECTIVE
-#define ENABLE_SVE2 .arch_extension sve2
-#define DISABLE_SVE2 .arch_extension nosve2
-#else
-#define ENABLE_SVE2
-#define DISABLE_SVE2
-#endif
-
-/* If we do support the .arch_extension directives, disable support for all
- * the extensions that we may use, in case they were implicitly enabled by
- * the .arch level. This makes it clear if we try to assemble an instruction
- * from an unintended extension set; we only allow assmbling such instructions
- * within regions where we explicitly enable those extensions. */
-DISABLE_DOTPROD
-DISABLE_I8MM
-DISABLE_SVE
-DISABLE_SVE2
-
-
/* Support macros for
* - Armv8.3-A Pointer Authentication and
* - Armv8.5-A Branch Target Identification

@ -25,15 +25,6 @@ else
[ -f "$xdg_app_dir/mimeapps.list" ] || touch "$xdg_app_dir/mimeapps.list"
fi
# Always use our versions of ffmpeg libs.
# This also makes RPMs find the compatibly-named library symlinks.
if [[ -n "$LD_LIBRARY_PATH" ]]; then
LD_LIBRARY_PATH="$HERE:$HERE/lib:$LD_LIBRARY_PATH"
else
LD_LIBRARY_PATH="$HERE:$HERE/lib"
fi
export LD_LIBRARY_PATH
export CHROME_VERSION_EXTRA="Built from source for @@BUILD_TARGET@@"
# We don't want bug-buddy intercepting our crashes. http://crbug.com/24120

@ -184,9 +184,9 @@
%endif
# enable qt backend
%if 0%{?fedora} >= 40
%global use_qt6 1
%global use_qt 0
%if 0%{?rhel} > 9 || 0%{?fedora}
%global use_qt6 0
%global use_qt 1
%else
%global use_qt6 0
%global use_qt 1
@ -202,7 +202,6 @@
%global bundlewoff2 1
%global bundlelibaom 1
%global bundlelibavif 1
%global bundledav1d 1
%global bundlesnappy 1
# Fedora's Python 2 stack is being removed, we use the bundled Python libraries
@ -240,12 +239,16 @@
%global bundlelibXNVCtrl 1
%global bundlelibxml 1
%global bundlelibevent 1
%global bundlehighway 1
%global bundledav1d 1
%else
%if 0%{?fedora} > 38 || 0%{?rhel} > 9
%global bundlebrotli 0
%else
%global bundlebrotli 1
%endif
%global bundlehighway 0
%global bundledav1d 0
%global bundleopus 0
%global bundlelibusbx 0
%global bundlelibwebp 0
@ -306,8 +309,8 @@
%endif
Name: chromium%{chromium_channel}
Version: 124.0.6367.60
Release: 1%{?dist}
Version: 124.0.6367.118
Release: 2%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
License: BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.0-only)
@ -433,7 +436,7 @@ Patch304: chromium-117-string-convert.patch
# disable memory tagging in epel7 and epel8 on aarch64 due to new feature IFUNC-Resolver
# not supported in old glibc < 2.30, error: fatal error: 'sys/ifunc.h' file not found
Patch305: chromium-122-arm64-memory_tagging.patch
Patch305: chromium-124-arm64-memory_tagging.patch
Patch306: chromium-119-assert.patch
@ -460,6 +463,9 @@ Patch315: chromium-124-python3-assignment-expressions.patch
# add -ftrivial-auto-var-init=zero and -fwrapv
Patch316: chromium-122-clang-build-flags.patch
# build error: unknown architectural extension on aarch64 (epel and < f39)
Patch317: chromium-124-libdav1d-aarch64.patch
# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2239523
# https://bugs.chromium.org/p/chromium/issues/detail?id=1145581#c60
# Disable BTI until this is fixed upstream.
@ -525,8 +531,6 @@ Patch389: 0002-third_party-libvpx-Remove-bad-ppc64-config.patch
Patch390: 0002-third-party-boringssl-add-generated-files.patch
Patch391: 0003-third_party-libvpx-Add-ppc64-generated-config.patch
# Enabling VSX causes artifacts to appear in VP9 videos
Patch392: 0003-third_party-libvpx-Add-ppc64-vsx-files.patch
Patch393: 0003-third_party-ffmpeg-Add-ppc64-generated-config.patch
Patch394: 0004-third_party-libvpx-work-around-ambiguous-vsx.patch
# Enable VSX acceleration in Skia. Requires POWER8 or higher.
@ -540,12 +544,8 @@ Patch400: fix-rust-linking.patch
Patch401: fix-breakpad-compile.patch
Patch402: fix-partition-alloc-compile.patch
Patch403: 0002-Add-ppc64-trap-instructions.patch
Patch404: 0001-Fix-highway-ppc-hwcap.patch
Patch405: 0001-Add-PPC64-support-for-libdav1d.patch
Patch406: 0001-Fix-libdav1d-compilation-on-clang-ppc.patch
Patch407: fix-ppc64-linux-syscalls-headers.patch
Patch408: 0003-thirdparty-fix-dav1d-gn.patch
Patch409: use-sysconf-page-size-on-ppc64.patch
Patch410: dawn-fix-typos.patch
@ -556,11 +556,6 @@ Patch412: fix-swiftshader-compile.patch
# Suppress harmless compiler warning messages that appear on ppc64 due to arch-specific warning flags being passed
Patch413: fix-unknown-warning-option-messages.diff
# Needed on Debian while POWER8 remains the build target
# POWER9 enables hardware 128 bit vector support (ISA 3.0),
# and Highway gets confused when building in POWER8 mode
# (POWER8 compiler flags) on POWER9 hosts.
Patch414: 0002-Highway-disable-128-bit-vsx.patch
Patch415: fix-clang-selection.patch
# upstream patches
@ -772,6 +767,10 @@ BuildRequires: woff2-devel
BuildRequires: libdav1d-devel
%endif
%if ! %{bundlehighway}
BuildRequires: highway-devel
%endif
%if ! %{bundlelibavif}
BuildRequires: libavif-devel
%endif
@ -1213,6 +1212,7 @@ udev.
%patch -P315 -p1 -b .assignment-expressions
%ifarch aarch64
%patch -P305 -p1 -b .memory_tagging
%patch -P317 -p1 -b .libdav1d-aarch64
%endif
%endif
@ -1285,8 +1285,6 @@ udev.
%patch -P389 -p1 -b .0002-third_party-libvpx-Remove-bad-ppc64-config
%patch -P390 -p1 -b .0002-third-party-boringssl-add-generated-files
%patch -P391 -p1 -b .0003-third_party-libvpx-Add-ppc64-generated-config
#patch -P392 -p1 -b .0003-third_party-libvpx-Add-ppc64-vsx-files
#patch -P393 -p1 -b .0003-third_party-ffmpeg-Add-ppc64-generated-config
%patch -P394 -p1 -b .0004-third_party-libvpx-work-around-ambiguous-vsx
%patch -P395 -p1 -b .skia-vsx-instructions
@ -1299,12 +1297,8 @@ udev.
%patch -P401 -p1 -b .fix-breakpad-compile
%patch -P402 -p1 -b .fix-partition-alloc-compile
%patch -P403 -p1 -b .0002-Add-ppc64-trap-instructions
%patch -P404 -p1 -b .0001-Fix-highway-ppc-hwcap
%patch -P405 -p1 -b .0001-Add-PPC64-support-for-libdav1d
%patch -P406 -p1 -b .0001-Fix-libdav1d-compilation-on-clang-ppc
%patch -P407 -p1 -b .fix-ppc64-linux-syscalls-headers
%patch -P408 -p1 -b .0003-thirdparty-fix-dav1d-gn
%patch -P409 -p1 -b .use-sysconf-page-size-on-ppc64
%patch -P410 -p1 -b .dawn-fix-typos
@ -1313,7 +1307,6 @@ udev.
%patch -P412 -p1 -b .fix-swiftshader-compile.patch
%patch -P413 -p1 -b .fix-unknown-warning-option-messages
%patch -P414 -p1 -b .0002-Highway-disable-128-bit-vsx
%patch -P415 -p1 -b .fix-clang-selection
%endif
@ -1383,6 +1376,10 @@ sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' remoting/host/setup/d
# bz#2265957, add correct platform
sed -i "s/Linux x86_64/Linux %{_arch}/" content/common/user_agent.cc
%if ! %{bundledav1d}
cp -a third_party/dav1d/version/version.h third_party/dav1d/libdav1d/include/dav1d/
%endif
%build
# utf8 issue on epel7, Internal parsing error 'ascii' codec can't
# decode byte 0xe2 in position 474: ordinal not in range(128)
@ -1637,6 +1634,9 @@ system_libs=()
%if ! %{bundledav1d}
system_libs+=(dav1d)
%endif
%if ! %{bundlehighway}
system_libs+=(highway)
%endif
%if ! %{bundlefontconfig}
system_libs+=(fontconfig)
%endif
@ -2115,6 +2115,31 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%endif
%changelog
* Sun May 05 2024 Than Ngo <than@redhat.com> - 124.0.6367.118-2
- fixed build errors on el8
- refreshed clean_ffmpeg.sh
- added missing files for bundle ffmpeg
* Wed May 01 2024 Than Ngo <than@redhat.com> - 124.0.6367.118-1
- update to 124.0.6367.118
* High CVE-2024-4331: Use after free in Picture In Picture
* High CVE-2024-4368: Use after free in Dawn
- use system highway
* Sat Apr 27 2024 Than Ngo <than@redhat.com> - 124.0.6367.91-1
- update to 124.0.6367.91
- fixed bz#2277228 - chromium wrapper causes library issues (symbol lookup error)
- use system dav1d
* Wed Apr 24 2024 Than Ngo <than@redhat.com> - 124.0.6367.78-1
- update to 124.0.6367.78
* Critical CVE-2024-4058: Type Confusion in ANGLE
* High CVE-2024-4059: Out of bounds read in V8 API
* High CVE-2024-4060: Use after free in Dawn
* Sat Apr 20 2024 Than Ngo <than@redhat.com> - 124.0.6367.60-2
- fix waylang regression
* Tue Apr 16 2024 Than Ngo <than@redhat.com> - 124.0.6367.60-1
- update to 124.0.6367.60

@ -1,5 +1,6 @@
#!/bin/bash
# Copyright 2013-2015 Tomas Popela <tpopela@redhat.com>
# Copyright 2022-2024 Than Ngo <than@redhat.com>
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
@ -42,6 +43,10 @@ function copy_files() {
where=$(pwd)
pushd $1
patch -p0 < ../ffmpeg-clean.patch
popd
if ! generated_files=$(./get_free_ffmpeg_source_files.py "$1" "$2"); then
exit 1
fi
@ -175,6 +180,9 @@ header_files=" libavcodec/x86/inline_asm.h \
libavformat/version.h \
libavformat/version_major.h \
libavformat/w64.h \
libavformat/iamf_parse.h \
libavformat/iamf_reader.h \
libavformat/iamf.h \
libavutil/aarch64/cpu.h \
libavutil/x86/asm.h \
libavutil/x86/bswap.h \
@ -215,6 +223,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavutil/timestamp.h \
libavutil/tx_priv.h \
libavutil/version.h \
libavutil/sfc64.h \
libswresample/swresample.h \
libswresample/version.h \
libswresample/version_major.h \

@ -0,0 +1,14 @@
diff -up third_party/ffmpeg/ffmpeg_generated.gni.me third_party/ffmpeg/ffmpeg_generated.gni
--- third_party/ffmpeg/ffmpeg_generated.gni.me 2024-05-05 00:45:53.017100841 +0200
+++ third_party/ffmpeg/ffmpeg_generated.gni 2024-05-05 00:46:20.244559951 +0200
@@ -17,8 +17,8 @@ use_linux_config = is_linux || is_chrome
if ((is_android && current_cpu == "arm" && arm_use_neon) ||
(is_android && current_cpu == "arm64") ||
(is_android && current_cpu == "x64") ||
- (is_android && current_cpu == "x86") || is_apple || is_win ||
- use_linux_config) {
+ (is_android && current_cpu == "x86") || (is_apple) || (is_win) ||
+ (use_linux_config)) {
ffmpeg_c_sources += [
"libavcodec/ac3_channel_layout_tab.c",
"libavcodec/ac3_parser.c",

@ -1,8 +1,8 @@
Index: chromium-123.0.6312.58/third_party/skia/BUILD.gn
Index: chromium-124.0.6367.60/third_party/skia/BUILD.gn
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/BUILD.gn
+++ chromium-123.0.6312.58/third_party/skia/BUILD.gn
@@ -199,6 +199,12 @@ opts("skx") {
--- chromium-124.0.6367.60.orig/third_party/skia/BUILD.gn
+++ chromium-124.0.6367.60/third_party/skia/BUILD.gn
@@ -191,6 +191,12 @@ opts("skx") {
}
}
@ -15,7 +15,7 @@ Index: chromium-123.0.6312.58/third_party/skia/BUILD.gn
# Any feature of Skia that requires third-party code should be optional and use this template.
template("optional") {
if (invoker.enabled) {
@@ -1474,6 +1480,7 @@ skia_component("skia") {
@@ -1482,6 +1488,7 @@ skia_component("skia") {
":skx",
":typeface_fontations",
":vello",
@ -23,7 +23,7 @@ Index: chromium-123.0.6312.58/third_party/skia/BUILD.gn
":webp_decode",
":wuffs",
":xml",
@@ -1651,7 +1658,10 @@ skia_static_library("pathkit") {
@@ -1659,7 +1666,10 @@ skia_static_library("pathkit") {
public_configs = [ ":skia_public" ]
configs = skia_library_configs
@ -35,10 +35,10 @@ Index: chromium-123.0.6312.58/third_party/skia/BUILD.gn
sources = []
sources += skia_pathops_sources
Index: chromium-123.0.6312.58/third_party/skia/gn/skia/BUILD.gn
Index: chromium-124.0.6367.60/third_party/skia/gn/skia/BUILD.gn
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/gn/skia/BUILD.gn
+++ chromium-123.0.6312.58/third_party/skia/gn/skia/BUILD.gn
--- chromium-124.0.6367.60.orig/third_party/skia/gn/skia/BUILD.gn
+++ chromium-124.0.6367.60/third_party/skia/gn/skia/BUILD.gn
@@ -163,6 +163,8 @@ config("default") {
"-mfpmath=sse",
]
@ -48,10 +48,10 @@ Index: chromium-123.0.6312.58/third_party/skia/gn/skia/BUILD.gn
}
if (malloc != "" && !is_win) {
Index: chromium-123.0.6312.58/third_party/skia/include/core/SkTypes.h
Index: chromium-124.0.6367.60/third_party/skia/include/core/SkTypes.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/include/core/SkTypes.h
+++ chromium-123.0.6312.58/third_party/skia/include/core/SkTypes.h
--- chromium-124.0.6367.60.orig/third_party/skia/include/core/SkTypes.h
+++ chromium-124.0.6367.60/third_party/skia/include/core/SkTypes.h
@@ -195,5 +195,44 @@ static constexpr uint32_t SK_InvalidGenI
*/
static constexpr uint32_t SK_InvalidUniqueID = 0;
@ -97,10 +97,10 @@ Index: chromium-123.0.6312.58/third_party/skia/include/core/SkTypes.h
+
#endif
Index: chromium-123.0.6312.58/third_party/skia/src/base/SkSpinlock.cpp
Index: chromium-124.0.6367.60/third_party/skia/src/base/SkSpinlock.cpp
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/base/SkSpinlock.cpp
+++ chromium-123.0.6312.58/third_party/skia/src/base/SkSpinlock.cpp
--- chromium-124.0.6367.60.orig/third_party/skia/src/base/SkSpinlock.cpp
+++ chromium-124.0.6367.60/third_party/skia/src/base/SkSpinlock.cpp
@@ -33,7 +33,8 @@
#endif
@ -111,10 +111,10 @@ Index: chromium-123.0.6312.58/third_party/skia/src/base/SkSpinlock.cpp
#include <emmintrin.h>
static void do_pause() { _mm_pause(); }
#else
Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkBitmapProcState_opts.h
Index: chromium-124.0.6367.60/third_party/skia/src/opts/SkBitmapProcState_opts.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/opts/SkBitmapProcState_opts.h
+++ chromium-123.0.6312.58/third_party/skia/src/opts/SkBitmapProcState_opts.h
--- chromium-124.0.6367.60.orig/third_party/skia/src/opts/SkBitmapProcState_opts.h
+++ chromium-124.0.6367.60/third_party/skia/src/opts/SkBitmapProcState_opts.h
@@ -21,7 +21,13 @@
// The rest are scattershot at the moment but I want to get them
// all migrated to be normal code inside SkBitmapProcState.cpp.
@ -130,10 +130,10 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkBitmapProcState_opts.h
#include <immintrin.h>
#elif defined(SK_ARM_HAS_NEON)
#include <arm_neon.h>
Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkBlitRow_opts.h
Index: chromium-124.0.6367.60/third_party/skia/src/opts/SkBlitRow_opts.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/opts/SkBlitRow_opts.h
+++ chromium-123.0.6312.58/third_party/skia/src/opts/SkBlitRow_opts.h
--- chromium-124.0.6367.60.orig/third_party/skia/src/opts/SkBlitRow_opts.h
+++ chromium-124.0.6367.60/third_party/skia/src/opts/SkBlitRow_opts.h
@@ -69,7 +69,7 @@
#endif
@ -143,10 +143,10 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkBlitRow_opts.h
static inline __m128i SkPMSrcOver_SSE2(const __m128i& src, const __m128i& dst) {
__m128i scale = _mm_sub_epi32(_mm_set1_epi32(256),
Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
Index: chromium-124.0.6367.60/third_party/skia/src/opts/SkRasterPipeline_opts.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/opts/SkRasterPipeline_opts.h
+++ chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
--- chromium-124.0.6367.60.orig/third_party/skia/src/opts/SkRasterPipeline_opts.h
+++ chromium-124.0.6367.60/third_party/skia/src/opts/SkRasterPipeline_opts.h
@@ -1,5 +1,6 @@
/*
* Copyright 2018 Google Inc.
@ -154,7 +154,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
@@ -74,6 +75,8 @@ using NoCtx = const void*;
@@ -75,6 +76,8 @@ using NoCtx = const void*;
#define JUMPER_IS_SCALAR
#elif defined(SK_ARM_HAS_NEON)
#define JUMPER_IS_NEON
@ -163,7 +163,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SKX
#define JUMPER_IS_SKX
#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_AVX2
@@ -106,6 +109,8 @@ using NoCtx = const void*;
@@ -107,6 +110,8 @@ using NoCtx = const void*;
#include <math.h>
#elif defined(JUMPER_IS_NEON)
#include <arm_neon.h>
@ -172,7 +172,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
#else
#include <immintrin.h>
#endif
@@ -197,6 +202,182 @@ namespace SK_OPTS_NS {
@@ -200,6 +205,184 @@ namespace SK_OPTS_NS {
ptr[3] = a;
}
@ -227,10 +227,12 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
+ }
+
+ SI F mad(F f, F m, F a) { return vec_madd(f,m,a); }
+ SI F nmad(F f, F m, F a) { return vec_msub(f,m,a); }
+ SI F floor_(F v) { return vec_floor(v); }
+ SI F ceil_(F v) { return vec_ceil(v); }
+ SI F sqrt_(F v) { return vec_sqrt(v); }
+ SI U32 round(F v) { return vec_cts((vector float)vec_rint(v), 0); }
+ SI I32 iround(F v) { return vec_cts((vector float)vec_rint(v), 0); }
+ SI U32 round(F v) { return vec_ctu((vector float)vec_rint(v), 0); }
+ SI U32 round(F v, F scale) { return vec_cts((vector float)vec_rint(v*scale), 0); }
+
+ template <typename T>
@ -355,7 +357,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
#elif defined(JUMPER_IS_NEON)
template <typename T> using V = Vec<4, T>;
using F = V<float >;
@@ -1004,6 +1185,15 @@ SI F from_half(U16 h) {
@@ -1025,6 +1208,15 @@ SI F from_half(U16 h) {
#elif defined(JUMPER_IS_HSW)
return _mm256_cvtph_ps((__m128i)h);
@ -371,7 +373,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
#else
// Remember, a half is 1-5-10 (sign-exponent-mantissa) with 15 exponent bias.
U32 sem = expand(h),
@@ -1027,6 +1217,16 @@ SI U16 to_half(F f) {
@@ -1048,6 +1240,16 @@ SI U16 to_half(F f) {
#elif defined(JUMPER_IS_HSW)
return (U16)_mm256_cvtps_ph(f, _MM_FROUND_CUR_DIRECTION);
@ -388,7 +390,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
#else
// Remember, a float is 1-8-23 (sign-exponent-mantissa) with 127 exponent bias.
U32 sem = sk_bit_cast<U32>(f),
@@ -1102,7 +1302,7 @@ static constexpr size_t N = sizeof(F) /
@@ -1123,7 +1325,7 @@ static constexpr size_t N = sizeof(F) /
// instead of {b,a} on the stack. Narrow stages work best for __vectorcall.
#define ABI __vectorcall
#define JUMPER_NARROW_STAGES 1
@ -397,7 +399,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
// These platforms are ideal for wider stages, and their default ABI is ideal.
#define ABI
#define JUMPER_NARROW_STAGES 0
@@ -4874,6 +5074,10 @@ SI F sqrt_(F x) {
@@ -5023,6 +5225,10 @@ SI F sqrt_(F x) {
float32x4_t lo,hi;
split(x, &lo,&hi);
return join<F>(sqrt(lo), sqrt(hi));
@ -408,7 +410,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
#else
return F{
sqrtf(x[0]), sqrtf(x[1]), sqrtf(x[2]), sqrtf(x[3]),
@@ -4897,6 +5101,10 @@ SI F floor_(F x) {
@@ -5046,6 +5252,10 @@ SI F floor_(F x) {
__m128 lo,hi;
split(x, &lo,&hi);
return join<F>(_mm_floor_ps(lo), _mm_floor_ps(hi));
@ -419,7 +421,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
#else
F roundtrip = cast<F>(cast<I32>(x));
return roundtrip - if_then_else(roundtrip > x, F_(1), F_(0));
@@ -4908,6 +5116,7 @@ SI F floor_(F x) {
@@ -5057,6 +5267,7 @@ SI F floor_(F x) {
// (2 * a * b + (1 << 15)) >> 16
// The result is a number on [-1, 1).
// Note: on neon this is a saturating multiply while the others are not.
@ -427,7 +429,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
SI I16 scaled_mult(I16 a, I16 b) {
#if defined(JUMPER_IS_SKX)
return (I16)_mm256_mulhrs_epi16((__m256i)a, (__m256i)b);
@@ -4919,6 +5128,22 @@ SI I16 scaled_mult(I16 a, I16 b) {
@@ -5068,6 +5279,22 @@ SI I16 scaled_mult(I16 a, I16 b) {
return vqrdmulhq_s16(a, b);
#elif defined(JUMPER_IS_NEON)
return vqrdmulhq_s16(a, b);
@ -450,7 +452,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
#else
const I32 roundingTerm = I32_(1 << 14);
return cast<I16>((cast<I32>(a) * cast<I32>(b) + roundingTerm) >> 15);
@@ -4940,7 +5165,26 @@ SI U16 constrained_add(I16 a, U16 b) {
@@ -5089,7 +5316,26 @@ SI U16 constrained_add(I16 a, U16 b) {
SkASSERT(-ib <= ia && ia <= 65535 - ib);
}
#endif
@ -477,7 +479,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
}
SI F fract(F x) { return x - floor_(x); }
@@ -5798,8 +6042,14 @@ STAGE_GP(bilerp_clamp_8888, const SkRast
@@ -5947,8 +6193,14 @@ STAGE_GP(bilerp_clamp_8888, const SkRast
// 2^-8 * v = 2^-9 * (tx*(R - L) + (R + L))
// v = 1/2 * (tx*(R - L) + (R + L))
auto lerpX = [&](U16 left, U16 right) -> U16 {
@ -492,7 +494,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
// The constrained_add is the most subtle part of lerp. The first term is on the interval
// [-1, 1), and the second term is on the interval is on the interval [0, 1) because
// both terms are too high by a factor of 2 which will be handled below. (Both R and L are
@@ -5811,7 +6061,12 @@ STAGE_GP(bilerp_clamp_8888, const SkRast
@@ -5960,7 +6212,12 @@ STAGE_GP(bilerp_clamp_8888, const SkRast
U16 v2 = constrained_add(scaled_mult(tx, width), middle) + 1;
// Divide by 2 to calculate v and at the same time bring the intermediate value onto the
// interval [0, 1/2] to set up for the lerpY.
@ -505,7 +507,7 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
};
const uint32_t* ptr;
@@ -5845,9 +6100,15 @@ STAGE_GP(bilerp_clamp_8888, const SkRast
@@ -5994,9 +6251,15 @@ STAGE_GP(bilerp_clamp_8888, const SkRast
I16 width = (I16)bottom - (I16)top;
U16 middle = bottom + top;
// Add + 0x80 for rounding.
@ -522,60 +524,10 @@ Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkRasterPipeline_opts.h
};
r = lerpY(topR, bottomR);
Index: chromium-123.0.6312.58/third_party/skia/src/opts/SkSwizzler_opts.h
Index: chromium-124.0.6367.60/third_party/skia/src/base/SkVx.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/opts/SkSwizzler_opts.h
+++ chromium-123.0.6312.58/third_party/skia/src/opts/SkSwizzler_opts.h
@@ -17,7 +17,10 @@
#include <cmath>
#include <utility>
-#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1
+#if defined(SK_PPC64_HAS_SSE_COMPAT)
+ #include <emmintrin.h>
+ #include <tmmintrin.h>
+#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1
#include <immintrin.h>
#elif defined(SK_ARM_HAS_NEON)
#include <arm_neon.h>
@@ -43,6 +43,33 @@
static inline float SkReciprocalAlpha(float a) {
return SkReciprocalAlpha_portable(a);
}
+#elif defined(SK_PPC64_HAS_SSE_COMPAT)
+// -- VSX -- Harden against timing attacks
+SK_NO_SANITIZE("float-divide-by-zero")
+static inline float SkReciprocalAlphaTimes255(float a) {
+ SkASSERT(0 <= a && a <= 255);
+
+ vector float vA{a,a,a,a};
+ vector float vB{255.0f,255.0f,255.0f,255.0f};
+ vector float vC{0.0f,0.0f,0.0f,0.0f};
+ vector float q = vec_div(vB, vA);
+ vector float vCmp{static_cast<float>(vA != vC)};
+
+ return vec_and(vCmp, q)[0];
+}
+
+SK_NO_SANITIZE("float-divide-by-zero")
+static inline float SkReciprocalAlpha(float a) {
+ SkASSERT(0 <= a && a <= 1);
+
+ vector float vA{a,a,a,a};
+ vector float vB{1.0f,1.0f,1.0f,1.0f};
+ vector float vC{0.0f,0.0f,0.0f,0.0f};
+ vector float q = vec_div(vB, vA);
+ vector float vCmp{static_cast<float>(vA != vC)};
+
+ return vec_and(vCmp, q)[0];
+}
#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1 && (defined(__clang__) || !defined(_MSC_VER))
// -- SSE -- Harden against timing attacks -- MSVC is not supported.
using F4 = __m128;
Index: chromium-123.0.6312.58/third_party/skia/src/base/SkVx.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/base/SkVx.h
+++ chromium-123.0.6312.58/third_party/skia/src/base/SkVx.h
--- chromium-124.0.6367.60.orig/third_party/skia/src/base/SkVx.h
+++ chromium-124.0.6367.60/third_party/skia/src/base/SkVx.h
@@ -42,7 +42,13 @@
#if SKVX_USE_SIMD
@ -591,10 +543,10 @@ Index: chromium-123.0.6312.58/third_party/skia/src/base/SkVx.h
#elif defined(SK_ARM_HAS_NEON)
#include <arm_neon.h>
#elif defined(__wasm_simd128__)
Index: chromium-123.0.6312.58/third_party/skia/src/core/SkBlitMask_opts_ssse3.cpp
Index: chromium-124.0.6367.60/third_party/skia/src/core/SkBlitMask_opts_ssse3.cpp
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/core/SkBlitMask_opts_ssse3.cpp
+++ chromium-123.0.6312.58/third_party/skia/src/core/SkBlitMask_opts_ssse3.cpp
--- chromium-124.0.6367.60.orig/third_party/skia/src/core/SkBlitMask_opts_ssse3.cpp
+++ chromium-124.0.6367.60/third_party/skia/src/core/SkBlitMask_opts_ssse3.cpp
@@ -9,7 +9,7 @@
#include "src/core/SkBlitMask.h"
#include "src/core/SkOptsTargets.h"
@ -604,23 +556,23 @@ Index: chromium-123.0.6312.58/third_party/skia/src/core/SkBlitMask_opts_ssse3.cp
// The order of these includes is important:
// 1) Select the target CPU architecture by defining SK_OPTS_TARGET and including SkOpts_SetTarget
Index: chromium-123.0.6312.58/third_party/skia/src/core/SkSwizzler_opts_ssse3.cpp
Index: chromium-124.0.6367.60/third_party/skia/src/core/SkSwizzler_opts_ssse3.cpp
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/core/SkSwizzler_opts_ssse3.cpp
+++ chromium-123.0.6312.58/third_party/skia/src/core/SkSwizzler_opts_ssse3.cpp
@@ -11,7 +11,7 @@
--- chromium-124.0.6367.60.orig/third_party/skia/src/core/SkSwizzler_opts_ssse3.cpp
+++ chromium-124.0.6367.60/third_party/skia/src/core/SkSwizzler_opts_ssse3.cpp
@@ -10,7 +10,7 @@
#include "src/core/SkOptsTargets.h"
#include "src/core/SkSwizzlePriv.h"
-#if defined(SK_CPU_X86) && !defined(SK_ENABLE_OPTIMIZE_SIZE)
+#if (defined(SK_CPU_X86) || defined(SK_CPU_PPC64)) && !defined(SK_ENABLE_OPTIMIZE_SIZE)
-#if defined(SK_CPU_X86) && \
+#if (defined(SK_CPU_X86) || defined(SK_CPU_PPC64)) && \
!defined(SK_ENABLE_OPTIMIZE_SIZE) && \
SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_SSSE3
// The order of these includes is important:
// 1) Select the target CPU architecture by defining SK_OPTS_TARGET and including SkOpts_SetTarget
Index: chromium-123.0.6312.58/third_party/skia/src/core/SkBlitMask_opts.cpp
Index: chromium-124.0.6367.60/third_party/skia/src/core/SkBlitMask_opts.cpp
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/core/SkBlitMask_opts.cpp
+++ chromium-123.0.6312.58/third_party/skia/src/core/SkBlitMask_opts.cpp
--- chromium-124.0.6367.60.orig/third_party/skia/src/core/SkBlitMask_opts.cpp
+++ chromium-124.0.6367.60/third_party/skia/src/core/SkBlitMask_opts.cpp
@@ -25,7 +25,7 @@ namespace SkOpts {
static bool init() {
#if defined(SK_ENABLE_OPTIMIZE_SIZE)
@ -630,10 +582,10 @@ Index: chromium-123.0.6312.58/third_party/skia/src/core/SkBlitMask_opts.cpp
#if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_SSSE3
if (SkCpu::Supports(SkCpu::SSSE3)) { Init_BlitMask_ssse3(); }
#endif
Index: chromium-123.0.6312.58/third_party/skia/src/core/SkBitmapProcState_opts.cpp
Index: chromium-124.0.6367.60/third_party/skia/src/core/SkBitmapProcState_opts.cpp
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/core/SkBitmapProcState_opts.cpp
+++ chromium-123.0.6312.58/third_party/skia/src/core/SkBitmapProcState_opts.cpp
--- chromium-124.0.6367.60.orig/third_party/skia/src/core/SkBitmapProcState_opts.cpp
+++ chromium-124.0.6367.60/third_party/skia/src/core/SkBitmapProcState_opts.cpp
@@ -25,7 +25,7 @@ namespace SkOpts {
static bool init() {
#if defined(SK_ENABLE_OPTIMIZE_SIZE)
@ -643,10 +595,10 @@ Index: chromium-123.0.6312.58/third_party/skia/src/core/SkBitmapProcState_opts.c
#if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_SSSE3
if (SkCpu::Supports(SkCpu::SSSE3)) { Init_BitmapProcState_ssse3(); }
#endif
Index: chromium-123.0.6312.58/third_party/skia/src/core/SkCpu.h
Index: chromium-124.0.6367.60/third_party/skia/src/core/SkCpu.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/core/SkCpu.h
+++ chromium-123.0.6312.58/third_party/skia/src/core/SkCpu.h
--- chromium-124.0.6367.60.orig/third_party/skia/src/core/SkCpu.h
+++ chromium-124.0.6367.60/third_party/skia/src/core/SkCpu.h
@@ -55,7 +55,7 @@ inline bool SkCpu::Supports(uint32_t mas
// If we mask in compile-time known lower limits, the compiler can
@ -656,10 +608,10 @@ Index: chromium-123.0.6312.58/third_party/skia/src/core/SkCpu.h
#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1
features |= SSE1;
#endif
Index: chromium-123.0.6312.58/third_party/skia/src/core/SkBitmapProcState_opts_ssse3.cpp
Index: chromium-124.0.6367.60/third_party/skia/src/core/SkBitmapProcState_opts_ssse3.cpp
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/src/core/SkBitmapProcState_opts_ssse3.cpp
+++ chromium-123.0.6312.58/third_party/skia/src/core/SkBitmapProcState_opts_ssse3.cpp
--- chromium-124.0.6367.60.orig/third_party/skia/src/core/SkBitmapProcState_opts_ssse3.cpp
+++ chromium-124.0.6367.60/third_party/skia/src/core/SkBitmapProcState_opts_ssse3.cpp
@@ -8,7 +8,7 @@
#include "include/private/base/SkFeatures.h"
#include "src/core/SkOptsTargets.h"
@ -669,10 +621,10 @@ Index: chromium-123.0.6312.58/third_party/skia/src/core/SkBitmapProcState_opts_s
// The order of these includes is important:
// 1) Select the target CPU architecture by defining SK_OPTS_TARGET and including SkOpts_SetTarget
Index: chromium-123.0.6312.58/third_party/skia/include/private/base/SkFeatures.h
Index: chromium-124.0.6367.60/third_party/skia/include/private/base/SkFeatures.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/include/private/base/SkFeatures.h
+++ chromium-123.0.6312.58/third_party/skia/include/private/base/SkFeatures.h
--- chromium-124.0.6367.60.orig/third_party/skia/include/private/base/SkFeatures.h
+++ chromium-124.0.6367.60/third_party/skia/include/private/base/SkFeatures.h
@@ -63,6 +63,8 @@
#if defined(__i386) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64)
@ -682,15 +634,94 @@ Index: chromium-123.0.6312.58/third_party/skia/include/private/base/SkFeatures.h
#endif
/**
Index: chromium-123.0.6312.58/third_party/skia/modules/skcms/src/skcms_internals.h
Index: chromium-124.0.6367.60/third_party/skia/modules/skcms/src/skcms_internals.h
===================================================================
--- chromium-123.0.6312.58.orig/third_party/skia/modules/skcms/src/skcms_internals.h
+++ chromium-123.0.6312.58/third_party/skia/modules/skcms/src/skcms_internals.h
@@ -46,6 +46,7 @@ extern "C" {
--- chromium-124.0.6367.60.orig/third_party/skia/modules/skcms/src/skcms_internals.h
+++ chromium-124.0.6367.60/third_party/skia/modules/skcms/src/skcms_internals.h
@@ -47,6 +47,7 @@ extern "C" {
&& !defined(__EMSCRIPTEN__) \
&& !defined(__arm__) \
&& !defined(__riscv) \
+ && !defined(__powerpc64__) \
&& !defined(__loongarch__) \
&& !defined(_WIN32) && !defined(__SYMBIAN32__)
#define SKCMS_HAS_MUSTTAIL 1
#endif
Index: chromium-124.0.6367.60/third_party/skia/src/opts/SkSwizzler_opts.inc
===================================================================
--- chromium-124.0.6367.60.orig/third_party/skia/src/opts/SkSwizzler_opts.inc
+++ chromium-124.0.6367.60/third_party/skia/src/opts/SkSwizzler_opts.inc
@@ -14,7 +14,10 @@
#include <cmath>
#include <utility>
-#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1
+#if defined(SK_PPC64_HAS_SSE_COMPAT)
+ #include <emmintrin.h>
+ #include <tmmintrin.h>
+#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1
#include <immintrin.h>
#elif defined(SK_ARM_HAS_NEON)
#include <arm_neon.h>
@@ -61,6 +64,33 @@ SI float reciprocal_alpha_times_255(floa
SI float reciprocal_alpha(float a) {
return reciprocal_alpha_portable(a);
}
+#elif defined(SK_PPC64_HAS_SSE_COMPAT)
+// -- VSX -- Harden against timing attacks
+SK_NO_SANITIZE("float-divide-by-zero")
+static inline float reciprocal_alpha_times_255(float a) {
+ SkASSERT(0 <= a && a <= 255);
+
+ vector float vA{a,a,a,a};
+ vector float vB{255.0f,255.0f,255.0f,255.0f};
+ vector float vC{0.0f,0.0f,0.0f,0.0f};
+ vector float q = vec_div(vB, vA);
+ vector float vCmp{static_cast<float>(vA != vC)};
+
+ return vec_and(vCmp, q)[0];
+}
+
+SK_NO_SANITIZE("float-divide-by-zero")
+static inline float reciprocal_alpha(float a) {
+ SkASSERT(0 <= a && a <= 1);
+
+ vector float vA{a,a,a,a};
+ vector float vB{1.0f,1.0f,1.0f,1.0f};
+ vector float vC{0.0f,0.0f,0.0f,0.0f};
+ vector float q = vec_div(vB, vA);
+ vector float vCmp{static_cast<float>(vA != vC)};
+
+ return vec_and(vCmp, q)[0];
+}
#elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE1 && (defined(__clang__) || !defined(_MSC_VER))
// -- SSE -- Harden against timing attacks -- MSVC is not supported.
using F4 = __m128;
Index: chromium-124.0.6367.60/third_party/skia/src/core/SkBlitter_ARGB32.cpp
===================================================================
--- chromium-124.0.6367.60.orig/third_party/skia/src/core/SkBlitter_ARGB32.cpp
+++ chromium-124.0.6367.60/third_party/skia/src/core/SkBlitter_ARGB32.cpp
@@ -372,7 +372,11 @@ static inline SkPMColor blend_lcd16_opaq
// Load four destination pixels into dst_sse.
__m128i dst_sse = _mm_load_si128(d);
// Load four 16-bit masks into lower half of mask_sse.
+#if defined(SK_CPU_PPC64)
+ __m128i mask_sse = _mm_loadl_epi64(reinterpret_cast<const __m128i*>(mask));
+#else
__m128i mask_sse = _mm_loadu_si64(mask);
+#endif
// Check whether masks are equal to 0 and get the highest bit
// of each byte of result, if masks are all zero, we will get
@@ -438,7 +442,12 @@ static inline SkPMColor blend_lcd16_opaq
// Load four destination pixels into dst_sse.
__m128i dst_sse = _mm_load_si128(d);
// Load four 16-bit masks into lower half of mask_sse.
+#if defined(SK_CPU_PPC64)
+ __m128i mask_sse = _mm_loadl_epi64(reinterpret_cast<const __m128i*>(mask));
+#else
__m128i mask_sse = _mm_loadu_si64(mask);
+#endif
+
// Check whether masks are equal to 0 and get the highest bit
// of each byte of result, if masks are all zero, we will get

@ -2,4 +2,4 @@ SHA512 (node-v20.6.1-linux-arm64.tar.xz) = adfcaf2c22614797fd69fb46d94c1cbf64dea
SHA512 (node-v20.6.1-linux-x64.tar.xz) = 7e15c05041a9a50f0046266aadb2e092a5aefbec19be1c7c809471add520cb57c7df3c47d88b1888b29bf2979dca3c92adddfd965370fa2a9da4ea02186464fd
SHA512 (linux-arm64-0.19.2.tgz) = 8a0d8fec6786fffcd6954d00820037a55d61e60762c74300df0801f8db27057562c221a063bedfb8df56af9ba80abb366336987e881782c5996e6f871abd3dc6
SHA512 (linux-x64-0.19.2.tgz) = a31cc74c4bfa54f9b75d735a1cfc944d3b5efb7c06bfba9542da9a642ae0b2d235ea00ae84d3ad0572c406405110fe7b61377af0fd15803806ef78d20fc6f05d
SHA512 (chromium-124.0.6367.60-clean.tar.xz) = 6f04675e17a38e7793bb6944db316c0e175fba57aa6376ce3d09365651e37f3d981f0b35403dfa1272c4f3b2aaa5453103e530dd408196c238244dea2f83eda6
SHA512 (chromium-124.0.6367.118-clean.tar.xz) = 770060a81051cdace4c60ae4fc32c1dcb233bfac61b1ec149d640736c0db4bfb6d50692033d6b927ca6fa4a0437fc432537cc0bd6d3468254168239f3836a06e

@ -1,8 +1,6 @@
Index: chromium-120.0.6099.71/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
===================================================================
--- chromium-120.0.6099.71.orig/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
+++ chromium-120.0.6099.71/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
@@ -172,7 +172,11 @@ SystemPageBaseMask() {
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
@@ -176,7 +176,11 @@ SystemPageBaseMask() {
return ~SystemPageOffsetMask();
}
@ -13,12 +11,10 @@ Index: chromium-120.0.6099.71/base/allocator/partition_allocator/src/partition_a
+#endif
constexpr size_t kPageMetadataSize = 1 << kPageMetadataShift;
} // namespace partition_alloc::internal
Index: chromium-120.0.6099.71/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
===================================================================
--- chromium-120.0.6099.71.orig/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
+++ chromium-120.0.6099.71/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
@@ -90,7 +90,11 @@ struct SlotSpanMetadata {
} // namespace internal
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
@@ -86,7 +86,11 @@ struct SlotSpanMetadata {
// CHECK()ed in AllocNewSlotSpan().
// The maximum number of bits needed to cover all currently supported OSes.
@ -30,7 +26,7 @@ Index: chromium-120.0.6099.71/base/allocator/partition_allocator/src/partition_a
static_assert(kMaxSlotsPerSlotSpan < (1 << kMaxSlotsPerSlotSpanBits), "");
// |marked_full| isn't equivalent to being full. Slot span is marked as full
@@ -104,7 +108,11 @@ struct SlotSpanMetadata {
@@ -100,7 +104,11 @@ struct SlotSpanMetadata {
private:
const uint32_t can_store_raw_size_ : 1;
uint32_t freelist_is_sorted_ : 1;
@ -42,10 +38,8 @@ Index: chromium-120.0.6099.71/base/allocator/partition_allocator/src/partition_a
// If |in_empty_cache_|==1, |empty_cache_index| is undefined and mustn't be
// used.
uint16_t in_empty_cache_ : 1;
Index: chromium-120.0.6099.71/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
===================================================================
--- chromium-120.0.6099.71.orig/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
+++ chromium-120.0.6099.71/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
@@ -21,6 +21,11 @@ static constexpr size_t kMaxSlotsPerSlot
// currently (kMaxSlotsPerSlotSpanBits == 13) not supported by the code,
// so we use the 16 kiB maximum (64 kiB will crash).

Loading…
Cancel
Save