diff --git a/srcpkgs/chromium/files/musl-patches/musl-fixes.patch b/srcpkgs/chromium/files/musl-patches/musl-fixes.patch index a7832ff32e8..aec60fd6209 100644 --- a/srcpkgs/chromium/files/musl-patches/musl-fixes.patch +++ b/srcpkgs/chromium/files/musl-patches/musl-fixes.patch @@ -75,24 +75,24 @@ #if HAVE_UNISTD_H #include diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc ---- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc -+++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc -@@ -39,7 +39,9 @@ - #endif // defined(OS_ANDROID) && defined(__arm__) - - #if defined(OS_LINUX) && !defined(OS_CHROMEOS) +--- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2021-03-10 07:23:00.145810088 -0500 ++++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc 2021-03-10 10:57:19.405962671 -0500 +@@ -55,7 +55,9 @@ + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. + #if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) +#if defined(__GLIBC__) #include +#endif #include "base/linux_util.h" #include "base/strings/string_split.h" -@@ -295,7 +297,7 @@ void RecordLinuxDistro() { - #endif // defined(OS_LINUX) && !defined(OS_CHROMEOS) - +@@ -316,7 +318,7 @@ void RecordLinuxGlibcVersion() { --#if defined(OS_LINUX) && !defined(OS_CHROMEOS) -+#if defined(__GLIBC__) && !defined(OS_CHROMEOS) + // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch + // of lacros-chrome is complete. +-#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) ++#if defined(__GLIBC__) || BUILDFLAG(IS_CHROMEOS_LACROS) base::Version version(gnu_get_libc_version()); UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE; diff --git a/srcpkgs/chromium/patches/chromium-87-openscreen-include.patch b/srcpkgs/chromium/patches/chromium-87-openscreen-include.patch deleted file mode 100644 index 03ae0e9eda7..00000000000 --- a/srcpkgs/chromium/patches/chromium-87-openscreen-include.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0c0af4cabb7490db473cd2c28f069956974a4d98 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Fri, 2 Oct 2020 12:11:58 +0000 -Subject: [PATCH] IWYU: uint8_t is defined in stdint.h - ---- - third_party/openscreen/src/util/crypto/random_bytes.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/third_party/openscreen/src/util/crypto/random_bytes.h b/third_party/openscreen/src/util/crypto/random_bytes.h -index 3cb2fa8..025b52c 100644 ---- third_party/openscreen/src/util/crypto/random_bytes.h -+++ third_party/openscreen/src/util/crypto/random_bytes.h -@@ -7,6 +7,8 @@ - - #include - -+#include -+ - namespace openscreen { - - std::array GenerateRandomBytes16(); --- -2.26.2 - diff --git a/srcpkgs/chromium/patches/chromium-88-AXTreeFormatter-include.patch b/srcpkgs/chromium/patches/chromium-88-AXTreeFormatter-include.patch deleted file mode 100644 index 54781098920..00000000000 --- a/srcpkgs/chromium/patches/chromium-88-AXTreeFormatter-include.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 6e402d97c2dec5726f37e95f97b7f7e12b1d3b1d Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Wed, 11 Nov 2020 11:02:13 +0100 -Subject: [PATCH] IWYU: include headers for std::vector and std::unique_ptr in AXTreeFormatter - -Fix these build errors with libstdc++: -../../ui/accessibility/platform/inspect/tree_formatter.h:35:12: error: ‘std::vector’ has not been declared -../../ui/accessibility/platform/inspect/tree_formatter.h:61:16: error: ‘unique_ptr’ in namespace ‘std’ does not name a template type - -Bug: 957519 -Change-Id: I402ac0644255b3cd4932ff2fe72d999b125a7895 ---- - -diff --git a/ui/accessibility/platform/inspect/tree_formatter.h b/ui/accessibility/platform/inspect/tree_formatter.h -index 4a70a4d..bb23768 100644 ---- ui/accessibility/platform/inspect/tree_formatter.h -+++ ui/accessibility/platform/inspect/tree_formatter.h -@@ -5,6 +5,9 @@ - #ifndef UI_ACCESSIBILITY_PLATFORM_INSPECT_TREE_FORMATTER_H_ - #define UI_ACCESSIBILITY_PLATFORM_INSPECT_TREE_FORMATTER_H_ - -+#include -+#include -+ - #include "ui/accessibility/platform/inspect/inspect.h" - - #include "ui/gfx/native_widget_types.h" diff --git a/srcpkgs/chromium/patches/chromium-88-BookmarkModelObserver-include.patch b/srcpkgs/chromium/patches/chromium-88-BookmarkModelObserver-include.patch deleted file mode 100644 index 0b26a60a36e..00000000000 --- a/srcpkgs/chromium/patches/chromium-88-BookmarkModelObserver-include.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 127ec3b1bf26ab37f2ae8333f284008868756274 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Sat, 21 Nov 2020 15:59:23 +0000 -Subject: [PATCH] IWYU: size_t is defined stddef.h - -Change-Id: I4400ac7c6004b49ec6e72c44f2754e2166642f88 ---- - -diff --git a/components/bookmarks/browser/bookmark_model_observer.h b/components/bookmarks/browser/bookmark_model_observer.h -index 69c40e7..0e5eb96 100644 ---- components/bookmarks/browser/bookmark_model_observer.h -+++ components/bookmarks/browser/bookmark_model_observer.h -@@ -7,6 +7,8 @@ - - #include - -+#include -+ - class GURL; - - namespace bookmarks { diff --git a/srcpkgs/chromium/patches/chromium-88-CompositorFrameReporter-dcheck.patch b/srcpkgs/chromium/patches/chromium-88-CompositorFrameReporter-dcheck.patch deleted file mode 100644 index aa1c52e0b7e..00000000000 --- a/srcpkgs/chromium/patches/chromium-88-CompositorFrameReporter-dcheck.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 56c654a91600e3bf254aa9f66c1151b0850b6ee4 Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz -Date: Wed, 11 Nov 2020 10:24:47 +0100 -Subject: [PATCH] GCC: do not pass unique_ptr to DCHECK_NE, but the actual pointer, in CompositorFrameReporter - -DCHECK_NE comparison requires CheckOpValueStr to be defined for the -type, or providing an output stream operator. A unique_ptr does not -provide any. - -Compilation in GCC is failing in CompositorFrameReporter because of -this: -../../cc/metrics/compositor_frame_reporter.cc: In member function ‘void cc::CompositorFrameReporter::ReportEventLatencyHistograms() const’: -../../base/check_op.h:224:59: error: no matching function for call to ‘CheckOpValueStr(const std::unique_ptr&)’ - -Fixed comparing the result of get() method for unique_ptr instead of -the unique_ptr. - -Bug: 819294 -Change-Id: I11103d1867c7196c1de92e72f9f12dcfd31c29f1 - -(updated to use DCHECK as suggested in comments) ---- - -diff --git a/cc/metrics/compositor_frame_reporter.cc b/cc/metrics/compositor_frame_reporter.cc -index 725beb0..fafd0f3 100644 ---- cc/metrics/compositor_frame_reporter.cc -+++ cc/metrics/compositor_frame_reporter.cc -@@ -686,7 +686,7 @@ - - void CompositorFrameReporter::ReportEventLatencyHistograms() const { - for (const auto& event_metrics : events_metrics_) { -- DCHECK_NE(event_metrics, nullptr); -+ DCHECK(event_metrics); - const std::string histogram_base_name = - GetEventLatencyHistogramBaseName(*event_metrics); - const int event_type_index = static_cast(event_metrics->type()); diff --git a/srcpkgs/chromium/patches/chromium-88-StringPool-include.patch b/srcpkgs/chromium/patches/chromium-88-StringPool-include.patch deleted file mode 100644 index e55bbae2ece..00000000000 --- a/srcpkgs/chromium/patches/chromium-88-StringPool-include.patch +++ /dev/null @@ -1,20 +0,0 @@ -From 372366b4180533f27d3250a50810828370d697b0 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Sat, 21 Nov 2020 16:12:18 +0000 -Subject: [PATCH] IWYU: include limits for std::numeric_limits - -Change-Id: Ia5226e1432a622f4f4abc8f1b18bcab8638a73c6 ---- - -diff --git a/src/trace_processor/containers/string_pool.h b/src/trace_processor/containers/string_pool.h -index 11ae91c..58c6db2 100644 ---- third_party/perfetto/src/trace_processor/containers/string_pool.h -+++ third_party/perfetto/src/trace_processor/containers/string_pool.h -@@ -22,6 +22,7 @@ - - #include - #include -+#include - - #include "perfetto/ext/base/optional.h" - #include "perfetto/ext/base/paged_memory.h" diff --git a/srcpkgs/chromium/patches/chromium-88-federated_learning-include.patch b/srcpkgs/chromium/patches/chromium-88-federated_learning-include.patch deleted file mode 100644 index 3eb1537d801..00000000000 --- a/srcpkgs/chromium/patches/chromium-88-federated_learning-include.patch +++ /dev/null @@ -1,21 +0,0 @@ -From bcb20babee602b55fe4bd026e13a41d10b89632f Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Sat, 21 Nov 2020 15:55:02 +0000 -Subject: [PATCH] IWYU: include limits for std::numeric_limits - -Change-Id: I1b6b07ebb397a29c84d3ed51ae41523e3ecab497 ---- - -diff --git a/components/federated_learning/floc_constants.cc b/components/federated_learning/floc_constants.cc -index df66e5d..2eb50f1 100644 ---- components/federated_learning/floc_constants.cc -+++ components/federated_learning/floc_constants.cc -@@ -4,6 +4,8 @@ - - #include "components/federated_learning/floc_constants.h" - -+#include -+ - namespace federated_learning { - - // This is only for experimentation and won't be served to websites. diff --git a/srcpkgs/chromium/patches/chromium-88-ideographicSpaceCharacter.patch b/srcpkgs/chromium/patches/chromium-88-ideographicSpaceCharacter.patch deleted file mode 100644 index 38a11423b2d..00000000000 --- a/srcpkgs/chromium/patches/chromium-88-ideographicSpaceCharacter.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 75ff882bb5f2fcd14431e65fa638ae72bdb47086 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Sun, 15 Nov 2020 14:31:23 +0000 -Subject: [PATCH] fix ideographicSpaceCharacter constant for system icu - -https://chromium-review.googlesource.com/c/chromium/src/+/1687411 -renamed ideographicSpaceCharacter to kIdeographicSpaceCharacter. ---- - third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -index fb8ab05..5d4ea13 100644 ---- third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -+++ third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc -@@ -432,7 +432,7 @@ String TextCodecICU::Decode(const char* bytes, - // ICU decodes it as U+E5E5. - if (!strcmp(encoding_.GetName(), "GBK")) { - if (EqualIgnoringASCIICase(encoding_.GetName(), "gb18030")) -- resultString.Replace(0xE5E5, ideographicSpaceCharacter); -+ resultString.Replace(0xE5E5, kIdeographicSpaceCharacter); - // Make GBK compliant to the encoding spec and align with GB18030 - resultString.Replace(0x01F9, 0xE7C8); - // FIXME: Once https://www.w3.org/Bugs/Public/show_bug.cgi?id=28740#c3 --- -2.26.2 - diff --git a/srcpkgs/chromium/patches/chromium-88-ityp-include.patch b/srcpkgs/chromium/patches/chromium-88-ityp-include.patch deleted file mode 100644 index c54b6fffd54..00000000000 --- a/srcpkgs/chromium/patches/chromium-88-ityp-include.patch +++ /dev/null @@ -1,25 +0,0 @@ -From bc383a5dd7fa8f2b535f28815fd6932fbc0d2a45 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Wed, 28 Oct 2020 16:00:35 +0000 -Subject: [PATCH] IWYU: include stddef.h for size_t - ---- - third_party/dawn/src/common/ityp_array.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/third_party/dawn/src/common/ityp_array.h b/third_party/dawn/src/common/ityp_array.h -index 48e080f..c784198 100644 ---- third_party/dawn/src/common/ityp_array.h -+++ third_party/dawn/src/common/ityp_array.h -@@ -21,6 +21,8 @@ - #include - #include - -+#include -+ - namespace ityp { - - // ityp::array is a helper class that wraps std::array with the restriction that --- -2.26.2 - diff --git a/srcpkgs/chromium/patches/chromium-88-vaapi-attribute.patch b/srcpkgs/chromium/patches/chromium-88-vaapi-attribute.patch deleted file mode 100644 index e4161af45c7..00000000000 --- a/srcpkgs/chromium/patches/chromium-88-vaapi-attribute.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 4f4604877f3b666ac7a373ae443e3c3795424569 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Fri, 6 Nov 2020 11:18:42 +0000 -Subject: [PATCH] GCC: fix attribute on function definition - -GCC does not accept attributes at the end for function definitions. -Solution is to move it before function name. Otherwise GCC fails like -this: - -../../base/compiler_specific.h:97:28: error: attributes are not allowed -on a function-definition - 97 | #define WARN_UNUSED_RESULT __attribute__((warn_unused_result)) - | ^~~~~~~~~~~~~ - ../../media/gpu/vaapi/vaapi_wrapper.h:322:36: note: in - expansion of macro 'WARN_UNUSED_RESULT' - 322 | const T* data) WARN_UNUSED_RESULT { - | ^~~~~~~~~~~~~~~~~~ ---- - media/gpu/vaapi/vaapi_wrapper.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h -index fd1fd82..deeda1f 100644 ---- media/gpu/vaapi/vaapi_wrapper.h -+++ media/gpu/vaapi/vaapi_wrapper.h -@@ -318,8 +318,8 @@ class MEDIA_GPU_EXPORT VaapiWrapper - // Convenient templatized version of SubmitBuffer() where |size| is deduced to - // be the size of the type of |*data|. - template -- bool SubmitBuffer(VABufferType va_buffer_type, -- const T* data) WARN_UNUSED_RESULT { -+ bool WARN_UNUSED_RESULT SubmitBuffer(VABufferType va_buffer_type, -+ const T* data) { - return SubmitBuffer(va_buffer_type, sizeof(T), data); - } - // Batch-version of SubmitBuffer(), where the lock for accessing libva is --- -2.26.2 - diff --git a/srcpkgs/chromium/patches/chromium-89-AXTreeSerializer-include.patch b/srcpkgs/chromium/patches/chromium-89-AXTreeSerializer-include.patch new file mode 100644 index 00000000000..7372e44d154 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-89-AXTreeSerializer-include.patch @@ -0,0 +1,25 @@ +From c06ddc4935bf1394812c011ce5d93898ccc8a53a Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Tue, 09 Feb 2021 19:22:57 +0000 +Subject: [PATCH] IWYU: add ctime for std::time + +Bug: None +Change-Id: I8bdae43209984242b9f5e538d74ece4409b65e3c +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2679610 +Reviewed-by: Katie Dektar +Commit-Queue: Katie Dektar +Cr-Commit-Position: refs/heads/master@{#852287} +--- + +diff --git a/ui/accessibility/ax_tree_serializer.h b/ui/accessibility/ax_tree_serializer.h +index ddbbdcd..1790e3b 100644 +--- ui/accessibility/ax_tree_serializer.h ++++ ui/accessibility/ax_tree_serializer.h +@@ -8,6 +8,7 @@ + #include + #include + ++#include + #include + #include + #include diff --git a/srcpkgs/chromium/patches/chromium-89-add-dependency-on-opus-in-webcodecs.patch b/srcpkgs/chromium/patches/chromium-89-add-dependency-on-opus-in-webcodecs.patch new file mode 100644 index 00000000000..c25897791d9 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-89-add-dependency-on-opus-in-webcodecs.patch @@ -0,0 +1,43 @@ +From b5b80df7dafba8cafa4c6c0ba2153dfda467dfc9 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Wed, 27 Jan 2021 20:31:51 +0000 +Subject: [PATCH] add dependency on opus in webcodecs + +webcodecs uses opus, but dependency is missing. With unbundled +opus library build fails, because include path is incomplete. + +Bug: 1169758 +Change-Id: I01369364327461196a81002479636cf45017669a +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2644623 +Reviewed-by: Dale Curtis +Commit-Queue: Dale Curtis +Cr-Commit-Position: refs/heads/master@{#847754} +--- + third_party/blink/renderer/modules/webcodecs/BUILD.gn | 1 + + third_party/blink/renderer/modules/webcodecs/DEPS | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/third_party/blink/renderer/modules/webcodecs/BUILD.gn b/third_party/blink/renderer/modules/webcodecs/BUILD.gn +index fdf4ca0fafc72..01a7bf809ffca 100644 +--- third_party/blink/renderer/modules/webcodecs/BUILD.gn ++++ third_party/blink/renderer/modules/webcodecs/BUILD.gn +@@ -65,6 +65,7 @@ blink_modules_sources("webcodecs") { + "//media/mojo/clients", + "//media/mojo/mojom", + "//third_party/libyuv:libyuv", ++ "//third_party/opus", + ] + if (media_use_openh264) { + deps += [ "//third_party/openh264:encoder" ] +diff --git a/third_party/blink/renderer/modules/webcodecs/DEPS b/third_party/blink/renderer/modules/webcodecs/DEPS +index b8dd596da8caf..ea1919d12205a 100644 +--- third_party/blink/renderer/modules/webcodecs/DEPS ++++ third_party/blink/renderer/modules/webcodecs/DEPS +@@ -19,6 +19,7 @@ include_rules = [ + + "+third_party/libyuv", + "+third_party/openh264", ++ "+third_party/opus", + + "+ui/gfx/color_space.h", + "+ui/gfx/geometry/rect.h", diff --git a/srcpkgs/chromium/patches/chromium-89-dawn-include.patch b/srcpkgs/chromium/patches/chromium-89-dawn-include.patch new file mode 100644 index 00000000000..9876ba20eb5 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-89-dawn-include.patch @@ -0,0 +1,28 @@ +From 5a56bfe8d281250a1deee0d116a9fcde65b9c29a Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Fri, 15 Jan 2021 18:37:05 +0000 +Subject: [PATCH] IWYU: add various missing includes + +std::weak_ptr and std::shared_ptr require map +*int*_t types require cstdint +--- + third_party/dawn/src/dawn_wire/client/Device.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/third_party/dawn/src/dawn_wire/client/Device.h b/third_party/dawn/src/dawn_wire/client/Device.h +index 3f16700..1082549 100644 +--- third_party/dawn/src/dawn_wire/client/Device.h ++++ third_party/dawn/src/dawn_wire/client/Device.h +@@ -22,7 +22,9 @@ + #include "dawn_wire/client/ApiObjects_autogen.h" + #include "dawn_wire/client/ObjectBase.h" + ++#include + #include ++#include + + namespace dawn_wire { namespace client { + +-- +2.26.2 + diff --git a/srcpkgs/chromium/patches/chromium-89-quiche-dcheck.patch b/srcpkgs/chromium/patches/chromium-89-quiche-dcheck.patch new file mode 100644 index 00000000000..b2f164fac9b --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-89-quiche-dcheck.patch @@ -0,0 +1,29 @@ +From 7cd4eab0bfca6192f14d6143410e1ae774eb1c29 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Thu, 31 Dec 2020 11:57:22 +0000 +Subject: [PATCH] GCC: do not pass unique_ptr to DCHECK_NE, but the actual + pointer + +DCHECK_NE comparison requires CheckOpValueStr to be defined for the +type, or providing an output stream operator. A unique_ptr does not +provide any. USE DCHECK instead. +--- + net/third_party/quiche/src/quic/core/quic_path_validator.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/net/third_party/quiche/src/quic/core/quic_path_validator.cc b/net/third_party/quiche/src/quic/core/quic_path_validator.cc +index 0722216..fb2aeaf 100644 +--- net/third_party/quiche/src/quic/core/quic_path_validator.cc ++++ net/third_party/quiche/src/quic/core/quic_path_validator.cc +@@ -68,7 +68,7 @@ void QuicPathValidator::OnPathResponse(const QuicPathFrameBuffer& probing_data, + void QuicPathValidator::StartPathValidation( + std::unique_ptr context, + std::unique_ptr result_delegate) { +- DCHECK_NE(nullptr, context); ++ DCHECK(context); + QUIC_DLOG(INFO) << "Start validating path " << *context + << " via writer: " << context->WriterToUse(); + if (path_context_ != nullptr) { +-- +2.26.2 + diff --git a/srcpkgs/chromium/patches/chromium-89-skia-CropRect.patch b/srcpkgs/chromium/patches/chromium-89-skia-CropRect.patch new file mode 100644 index 00000000000..9712c92658f --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-89-skia-CropRect.patch @@ -0,0 +1,38 @@ +diff --git a/third_party/skia/include/effects/SkImageFilters.h b/third_party/skia/include/effects/SkImageFilters.h +index 04cce0a..d06b007 100644 +--- third_party/skia/include/effects/SkImageFilters.h ++++ third_party/skia/include/effects/SkImageFilters.h +@@ -23,6 +23,9 @@ class SkColorFilter; + class SkPaint; + class SkRegion; + ++constexpr SkRect kNoCropRect = {SK_ScalarNegativeInfinity, SK_ScalarNegativeInfinity, ++ SK_ScalarInfinity, SK_ScalarInfinity}; ++ + // A set of factory functions providing useful SkImageFilter effects. For image filters that take an + // input filter, providing nullptr means it will automatically use the dynamic source image. This + // source depends on how the filter is applied, but is either the contents of a saved layer when +@@ -33,8 +36,6 @@ public: + // to those types as a crop rect for the image filter factories. It's not intended to be used + // directly. + struct CropRect { +- static constexpr SkRect kNoCropRect = {SK_ScalarNegativeInfinity, SK_ScalarNegativeInfinity, +- SK_ScalarInfinity, SK_ScalarInfinity}; + CropRect() : fCropRect(kNoCropRect) {} + // Intentionally not explicit so callers don't have to use this type but can use SkIRect or + // SkRect as desired. +diff --git a/third_party/skia/src/effects/imagefilters/SkImageFilters.cpp b/third_party/skia/src/effects/imagefilters/SkImageFilters.cpp +index 5290b00..fb97fc1 100644 +--- third_party/skia/src/effects/imagefilters/SkImageFilters.cpp ++++ third_party/skia/src/effects/imagefilters/SkImageFilters.cpp +@@ -47,10 +47,6 @@ static SkImageFilter::CropRect to_legacy_crop_rect(const SkImageFilters::CropRec + : SkImageFilter::CropRect(SkRect::MakeEmpty(), 0x0); + } + +-// Allow kNoCropRect to be referenced (for certain builds, e.g. macOS libFuzzer chromium target, +-// see crbug.com/1139725) +-constexpr SkRect SkImageFilters::CropRect::kNoCropRect; +- + void SkImageFilters::RegisterFlattenables() { + SkAlphaThresholdFilter::RegisterFlattenables(); + SkArithmeticImageFilter::RegisterFlattenables(); diff --git a/srcpkgs/chromium/patches/chromium-89-x11-ozone-fix-two-edge-cases.patch b/srcpkgs/chromium/patches/chromium-89-x11-ozone-fix-two-edge-cases.patch new file mode 100644 index 00000000000..7fb586da169 --- /dev/null +++ b/srcpkgs/chromium/patches/chromium-89-x11-ozone-fix-two-edge-cases.patch @@ -0,0 +1,135 @@ +From 5e3a738b1204941aab9f15c0eb3d06e20fefd96e Mon Sep 17 00:00:00 2001 +From: Scott Violet +Date: Mon, 8 Mar 2021 21:07:39 +0000 +Subject: [PATCH] x11/ozone: fix two edge cases + +WindowTreeHost::OnHostMovedInPixels() may trigger a nested message +loop (tab dragging), which when the stack unravels means this may +be deleted. This adds an early out if this happens. + +X11WholeScreenMoveLoop has a similar issue, in so far as notifying +the delegate may delete this. + +BUG=1185482 +TEST=WindowTreeHostPlatform.DeleteHostFromOnHostMovedInPixels + +Change-Id: Ieca1c90b3e4358da50b332abe2941fdbb50c5c25 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2743555 +Reviewed-by: Thomas Anderson +Commit-Queue: Scott Violet +Cr-Commit-Position: refs/heads/master@{#860852} +--- + ui/aura/window_tree_host_platform.cc | 10 ++++- + ui/aura/window_tree_host_platform_unittest.cc | 40 ++++++++++++++++++- + ui/base/x/x11_whole_screen_move_loop.cc | 4 ++ + 3 files changed, 51 insertions(+), 3 deletions(-) + +diff --git a/ui/aura/window_tree_host_platform.cc b/ui/aura/window_tree_host_platform.cc +index ce8395fe07..7589542026 100644 +--- ui/aura/window_tree_host_platform.cc ++++ ui/aura/window_tree_host_platform.cc +@@ -214,13 +214,21 @@ void WindowTreeHostPlatform::OnBoundsChanged(const gfx::Rect& new_bounds) { + float current_scale = compositor()->device_scale_factor(); + float new_scale = ui::GetScaleFactorForNativeView(window()); + gfx::Rect old_bounds = bounds_in_pixels_; ++ auto weak_ref = GetWeakPtr(); + bounds_in_pixels_ = new_bounds; +- if (bounds_in_pixels_.origin() != old_bounds.origin()) ++ if (bounds_in_pixels_.origin() != old_bounds.origin()) { + OnHostMovedInPixels(bounds_in_pixels_.origin()); ++ // Changing the bounds may destroy this. ++ if (!weak_ref) ++ return; ++ } + if (bounds_in_pixels_.size() != old_bounds.size() || + current_scale != new_scale) { + pending_size_ = gfx::Size(); + OnHostResizedInPixels(bounds_in_pixels_.size()); ++ // Changing the size may destroy this. ++ if (!weak_ref) ++ return; + } + DCHECK_GT(on_bounds_changed_recursion_depth_, 0); + if (--on_bounds_changed_recursion_depth_ == 0) { +diff --git a/ui/aura/window_tree_host_platform_unittest.cc b/ui/aura/window_tree_host_platform_unittest.cc +index eda14e2f0c..4de039c88a 100644 +--- ui/aura/window_tree_host_platform_unittest.cc ++++ ui/aura/window_tree_host_platform_unittest.cc +@@ -34,7 +34,7 @@ class TestWindowTreeHost : public WindowTreeHostPlatform { + // OnHostWill/DidProcessBoundsChange. Additionally, this triggers a bounds + // change from within OnHostResized(). Such a scenario happens in production + // code. +-class TestWindowTreeHostObserver : public aura::WindowTreeHostObserver { ++class TestWindowTreeHostObserver : public WindowTreeHostObserver { + public: + TestWindowTreeHostObserver(WindowTreeHostPlatform* host, + ui::PlatformWindow* platform_window) +@@ -51,7 +51,7 @@ class TestWindowTreeHostObserver : public aura::WindowTreeHostObserver { + return on_host_will_process_bounds_change_count_; + } + +- // aura::WindowTreeHostObserver: ++ // WindowTreeHostObserver: + void OnHostResized(WindowTreeHost* host) override { + if (!should_change_bounds_in_on_resized_) + return; +@@ -92,5 +92,41 @@ TEST_F(WindowTreeHostPlatformTest, HostWillProcessBoundsChangeRecursion) { + EXPECT_EQ(1, observer.on_host_will_process_bounds_change_count()); + } + ++// Deletes WindowTreeHostPlatform from OnHostMovedInPixels(). ++class DeleteHostWindowTreeHostObserver : public WindowTreeHostObserver { ++ public: ++ explicit DeleteHostWindowTreeHostObserver( ++ std::unique_ptr host) ++ : host_(std::move(host)) { ++ host_->AddObserver(this); ++ } ++ ~DeleteHostWindowTreeHostObserver() override = default; ++ ++ TestWindowTreeHost* host() { return host_.get(); } ++ ++ // WindowTreeHostObserver: ++ void OnHostMovedInPixels(WindowTreeHost* host, ++ const gfx::Point& new_origin_in_pixels) override { ++ host_->RemoveObserver(this); ++ host_.reset(); ++ } ++ ++ private: ++ std::unique_ptr host_; ++ ++ DISALLOW_COPY_AND_ASSIGN(DeleteHostWindowTreeHostObserver); ++}; ++ ++// Verifies WindowTreeHostPlatform can be safely deleted when calling ++// OnHostMovedInPixels(). ++// Regression test for https://crbug.com/1185482 ++TEST_F(WindowTreeHostPlatformTest, DeleteHostFromOnHostMovedInPixels) { ++ std::unique_ptr host = ++ std::make_unique(); ++ DeleteHostWindowTreeHostObserver observer(std::move(host)); ++ observer.host()->SetBoundsInPixels(gfx::Rect(1, 2, 3, 4)); ++ EXPECT_EQ(nullptr, observer.host()); ++} ++ + } // namespace + } // namespace aura +diff --git a/ui/base/x/x11_whole_screen_move_loop.cc b/ui/base/x/x11_whole_screen_move_loop.cc +index 5ed215db66..db678799db 100644 +--- ui/base/x/x11_whole_screen_move_loop.cc ++++ ui/base/x/x11_whole_screen_move_loop.cc +@@ -78,9 +78,13 @@ X11WholeScreenMoveLoop::~X11WholeScreenMoveLoop() { + void X11WholeScreenMoveLoop::DispatchMouseMovement() { + if (!last_motion_in_screen_) + return; ++ auto weak_ref = weak_factory_.GetWeakPtr(); + delegate_->OnMouseMovement(last_motion_in_screen_->root_location(), + last_motion_in_screen_->flags(), + last_motion_in_screen_->time_stamp()); ++ // The delegate may delete this during dispatch. ++ if (!weak_ref) ++ return; + last_motion_in_screen_.reset(); + } + diff --git a/srcpkgs/chromium/patches/llvm-remove-unsupported-compiler-warnings.patch b/srcpkgs/chromium/patches/llvm-remove-unsupported-compiler-warnings.patch deleted file mode 100644 index 3016b065212..00000000000 --- a/srcpkgs/chromium/patches/llvm-remove-unsupported-compiler-warnings.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- build/config/compiler/BUILD.gn.orig 2021-01-20 09:01:44.362114311 -0500 -+++ build/config/compiler/BUILD.gn 2021-01-20 09:03:41.880232248 -0500 -@@ -1534,9 +1534,6 @@ - - # TODO(https://crbug.com/1028110): Evaluate and possible enable. - "-Wno-deprecated-copy", -- -- # TODO(https://crbug.com/1050281): Clean up, enable. -- "-Wno-non-c-typedef-for-linkage", - ] - - cflags_c += [ -@@ -1548,13 +1545,6 @@ - # TODO(https://crbug.com/1143700): Clean up and re-enable. - cflags_objc = [ "-Wno-gnu-folding-constant" ] - } -- -- if (enable_wmax_tokens) { -- cflags += [ "-Wmax-tokens" ] -- } else { -- # TODO(https://crbug.com/1049569): Remove after Clang 87b235db. -- cflags += [ "-Wno-max-tokens" ] -- } - } - } - } diff --git a/srcpkgs/chromium/patches/sandbox-membarrier.patch b/srcpkgs/chromium/patches/sandbox-membarrier.patch index a31a9f6a5e9..86ca16fc2d7 100644 --- a/srcpkgs/chromium/patches/sandbox-membarrier.patch +++ b/srcpkgs/chromium/patches/sandbox-membarrier.patch @@ -1,53 +1,3 @@ ---- sandbox/linux/system_headers/arm64_linux_syscalls.h -+++ sandbox/linux/system_headers/arm64_linux_syscalls.h -@@ -1063,4 +1063,8 @@ - #define __NR_memfd_create 279 - #endif - -+#if !defined(__NR_membarrier) -+#define __NR_membarrier 283 -+#endif -+ - #endif // SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_ - ---- sandbox/linux/system_headers/arm_linux_syscalls.h -+++ sandbox/linux/system_headers/arm_linux_syscalls.h -@@ -1385,6 +1385,10 @@ - #define __NR_memfd_create (__NR_SYSCALL_BASE+385) - #endif - -+#if !defined(__NR_membarrier) -+#define __NR_membarrier (__NR_SYSCALL_BASE+389) -+#endif -+ - // ARM private syscalls. - #if !defined(__ARM_NR_BASE) - #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000) - ---- sandbox/linux/system_headers/x86_32_linux_syscalls.h -+++ sandbox/linux/system_headers/x86_32_linux_syscalls.h -@@ -1422,5 +1422,9 @@ - #define __NR_memfd_create 356 - #endif - -+#if !defined(__NR_membarrier) -+#define __NR_membarrier 375 -+#endif -+ - #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_ - ---- sandbox/linux/system_headers/x86_64_linux_syscalls.h -+++ sandbox/linux/system_headers/x86_64_linux_syscalls.h -@@ -1290,5 +1290,9 @@ - #define __NR_memfd_create 319 - #endif - -+#if !defined(__NR_membarrier) -+#define __NR_membarrier 324 -+#endif -+ - #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_ - --- sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +++ sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc @@ -370,6 +370,7 @@ diff --git a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch index 805755c2125..389ac3b7aa2 100644 --- a/srcpkgs/chromium/patches/xxx-ppc64le-support.patch +++ b/srcpkgs/chromium/patches/xxx-ppc64le-support.patch @@ -1,6 +1,6 @@ -commit e7944c162ca13b2c30b180c06f917f45643b8cca -Author: q66 -Date: Tue Aug 4 19:57:48 2020 +0200 +commit 2c013a317b1114ef67cdbbc30824b28907b9ea94 +Author: Daniel Kolesa +Date: Wed Mar 3 19:08:29 2021 +0100 ppc64le support @@ -20,10 +20,10 @@ index 286a92a27..ec36a85d3 100755 src_dir = os.path.dirname(script_dir) nacl_dir = os.path.join(src_dir, 'native_client') diff --git chrome/installer/linux/BUILD.gn chrome/installer/linux/BUILD.gn -index b101b0cb2..9fd5a7617 100644 +index 35f01d0a4..28f2e7475 100644 --- chrome/installer/linux/BUILD.gn +++ chrome/installer/linux/BUILD.gn -@@ -92,8 +92,6 @@ packaging_files = packaging_files_binaries + [ +@@ -94,8 +94,6 @@ packaging_files = packaging_files_binaries + [ "$root_out_dir/xdg-mime", "$root_out_dir/xdg-settings", "$root_out_dir/locales/en-US.pak", @@ -32,7 +32,7 @@ index b101b0cb2..9fd5a7617 100644 ] action_foreach("calculate_deb_dependencies") { -@@ -329,7 +327,6 @@ group("installer_deps") { +@@ -315,7 +313,6 @@ group("installer_deps") { ":theme_files", "//chrome", "//chrome:packed_resources", @@ -41,11 +41,11 @@ index b101b0cb2..9fd5a7617 100644 "//third_party/crashpad/crashpad/handler:crashpad_handler", ] diff --git sandbox/features.gni sandbox/features.gni -index 09280d35f..42514157f 100644 +index db30ae6d6..9dc09bf53 100644 --- sandbox/features.gni +++ sandbox/features.gni -@@ -11,6 +11,7 @@ import("//build/config/nacl/config.gni") - use_seccomp_bpf = (is_linux || is_android) && +@@ -11,7 +11,8 @@ import("//build/config/nacl/config.gni") + use_seccomp_bpf = (is_linux || is_chromeos || is_android) && (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm" || current_cpu == "arm64" || - current_cpu == "mipsel" || current_cpu == "mips64el") @@ -53,11 +53,12 @@ index 09280d35f..42514157f 100644 + current_cpu == "ppc64") use_seccomp_bpf = use_seccomp_bpf || is_nacl_nonsfi + diff --git sandbox/linux/BUILD.gn sandbox/linux/BUILD.gn -index c27351f9a..9141e1239 100644 +index e9a94b461..cca1a5da5 100644 --- sandbox/linux/BUILD.gn +++ sandbox/linux/BUILD.gn -@@ -407,6 +407,8 @@ component("sandbox_services") { +@@ -427,6 +427,8 @@ component("sandbox_services") { source_set("sandbox_services_headers") { sources = [ @@ -151,7 +152,7 @@ index 1a407b952..a6aec544e 100644 #error Unsupported target platform diff --git sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc -index a6d2c0dfb..37fdc179a 100644 +index 6a1ec2389..f20c582dd 100644 --- sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc +++ sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc @@ -88,7 +88,8 @@ bool IsBaselinePolicyWatched(int sysno) { @@ -164,7 +165,7 @@ index a6d2c0dfb..37fdc179a 100644 SyscallSets::IsSocketCall(sysno) || #endif #if defined(__arm__) -@@ -210,7 +211,7 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, +@@ -227,7 +228,7 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, } #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ @@ -173,7 +174,7 @@ index a6d2c0dfb..37fdc179a 100644 if (sysno == __NR_mmap) return RestrictMmapFlags(); #endif -@@ -228,7 +229,7 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, +@@ -245,7 +246,7 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, return RestrictPrctl(); #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \ @@ -182,7 +183,7 @@ index a6d2c0dfb..37fdc179a 100644 if (sysno == __NR_socketpair) { // Only allow AF_UNIX, PF_UNIX. Crash if anything else is seen. static_assert(AF_UNIX == PF_UNIX, -@@ -268,7 +269,8 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, +@@ -285,7 +286,8 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno, } #if defined(__i386__) || \ @@ -193,22 +194,20 @@ index a6d2c0dfb..37fdc179a 100644 return RestrictSocketcallCommand(); #endif diff --git sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc -index fc36187c9..1affc9189 100644 +index 01c046dda..7e5a6be82 100644 --- sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc +++ sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc -@@ -291,8 +291,10 @@ TEST_BASELINE_SIGSYS(__NR_timer_create) - #if !defined(__aarch64__) +@@ -302,7 +302,7 @@ TEST_BASELINE_SIGSYS(__NR_sysinfo) + TEST_BASELINE_SIGSYS(__NR_syslog) + TEST_BASELINE_SIGSYS(__NR_timer_create) + +-#if !defined(__aarch64__) ++#if !defined(__aarch64__) && !defined(__powerpc64__) TEST_BASELINE_SIGSYS(__NR_eventfd) TEST_BASELINE_SIGSYS(__NR_inotify_init) -+#if !defined(__powerpc64__) TEST_BASELINE_SIGSYS(__NR_vserver) - #endif -+#endif - - #if defined(LIBC_GLIBC) && !defined(OS_CHROMEOS) - BPF_TEST_C(BaselinePolicy, FutexEINVAL, BaselinePolicy) { diff --git sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc -index f51915edc..ca2f4f106 100644 +index 2a97d3916..8e81aa6cf 100644 --- sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc +++ sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc @@ -40,7 +40,8 @@ @@ -233,7 +232,7 @@ index f51915edc..ca2f4f106 100644 #if defined(OS_ANDROID) #if !defined(F_DUPFD_CLOEXEC) -@@ -98,6 +104,15 @@ +@@ -98,6 +104,15 @@ inline bool IsArchitectureMips() { #endif } @@ -249,7 +248,7 @@ index f51915edc..ca2f4f106 100644 // Ubuntu's version of glibc has a race condition in sem_post that can cause // it to call futex(2) with bogus op arguments. To workaround this, we need // to allow those futex(2) calls to fail with EINVAL, instead of crashing the -@@ -239,6 +254,8 @@ +@@ -239,6 +254,8 @@ ResultExpr RestrictFcntlCommands() { uint64_t kOLargeFileFlag = O_LARGEFILE; if (IsArchitectureX86_64() || IsArchitectureI386() || IsArchitectureMips()) kOLargeFileFlag = 0100000; @@ -258,7 +257,7 @@ index f51915edc..ca2f4f106 100644 const Arg cmd(1); const Arg long_arg(2); -@@ -253,14 +270,23 @@ +@@ -253,14 +270,23 @@ ResultExpr RestrictFcntlCommands() { F_SETLKW, F_GETLK, F_DUPFD, @@ -285,7 +284,7 @@ index f51915edc..ca2f4f106 100644 ResultExpr RestrictSocketcallCommand() { // Unfortunately, we are unable to restrict the first parameter to // socketpair(2). Whilst initially sounding bad, it's noteworthy that very -@@ -413,7 +439,7 @@ +@@ -413,7 +439,7 @@ ResultExpr RestrictPtrace() { #endif return Switch(request) .CASES(( @@ -294,7 +293,6 @@ index f51915edc..ca2f4f106 100644 PTRACE_GETREGS, PTRACE_GETFPREGS, PTRACE_GET_THREAD_AREA, PTRACE_GETREGSET, #endif - diff --git sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h index ba4289f05..9a4d5ab2d 100644 --- sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h @@ -309,7 +307,7 @@ index ba4289f05..9a4d5ab2d 100644 // sendto(2), recvfrom(2), shutdown(2), sendmsg(2) and recvmsg(2). SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictSocketcallCommand(); diff --git sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc -index d3693fd78..d492cf94b 100644 +index 642df7207..34f47eb73 100644 --- sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc +++ sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc @@ -29,7 +29,8 @@ bool SyscallSets::IsAllowedGettime(int sysno) { @@ -322,7 +320,7 @@ index d3693fd78..d492cf94b 100644 case __NR_time: #endif return true; -@@ -41,12 +42,14 @@ bool SyscallSets::IsAllowedGettime(int sysno) { +@@ -45,12 +46,14 @@ bool SyscallSets::IsAllowedGettime(int sysno) { case __NR_clock_nanosleep: // Parameters filtered by RestrictClockID(). case __NR_clock_settime: // Privileged. #if defined(__i386__) || \ @@ -339,7 +337,7 @@ index d3693fd78..d492cf94b 100644 case __NR_stime: #endif default: -@@ -112,7 +115,7 @@ bool SyscallSets::IsFileSystem(int sysno) { +@@ -116,7 +119,7 @@ bool SyscallSets::IsFileSystem(int sysno) { case __NR_faccessat: // EPERM not a valid errno. case __NR_fchmodat: case __NR_fchownat: // Should be called chownat ? @@ -348,7 +346,7 @@ index d3693fd78..d492cf94b 100644 case __NR_newfstatat: // fstatat(). EPERM not a valid errno. #elif defined(__i386__) || defined(__arm__) || \ (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) -@@ -131,7 +134,7 @@ bool SyscallSets::IsFileSystem(int sysno) { +@@ -135,7 +138,7 @@ bool SyscallSets::IsFileSystem(int sysno) { case __NR_memfd_create: case __NR_mkdirat: case __NR_mknodat: @@ -357,7 +355,7 @@ index d3693fd78..d492cf94b 100644 case __NR_oldlstat: case __NR_oldstat: #endif -@@ -145,7 +148,8 @@ bool SyscallSets::IsFileSystem(int sysno) { +@@ -149,7 +152,8 @@ bool SyscallSets::IsFileSystem(int sysno) { #endif case __NR_statfs: // EPERM not a valid errno. #if defined(__i386__) || defined(__arm__) || \ @@ -367,7 +365,7 @@ index d3693fd78..d492cf94b 100644 case __NR_statfs64: #endif case __NR_symlinkat: -@@ -155,7 +159,8 @@ bool SyscallSets::IsFileSystem(int sysno) { +@@ -159,7 +163,8 @@ bool SyscallSets::IsFileSystem(int sysno) { case __NR_truncate64: #endif case __NR_unlinkat: @@ -377,7 +375,7 @@ index d3693fd78..d492cf94b 100644 case __NR_utime: #endif case __NR_utimensat: // New. -@@ -174,7 +179,8 @@ bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) { +@@ -181,7 +186,8 @@ bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) { #endif return true; // TODO(jln): these should be denied gracefully as well (moved below). @@ -387,7 +385,7 @@ index d3693fd78..d492cf94b 100644 case __NR_fadvise64: // EPERM not a valid errno. #endif #if defined(__i386__) -@@ -187,11 +193,12 @@ bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) { +@@ -194,11 +200,12 @@ bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) { case __NR_flock: // EPERM not a valid errno. case __NR_fstatfs: // Give information about the whole filesystem. #if defined(__i386__) || defined(__arm__) || \ @@ -402,7 +400,7 @@ index d3693fd78..d492cf94b 100644 case __NR_oldfstat: #endif #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ -@@ -199,6 +206,8 @@ bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) { +@@ -206,6 +213,8 @@ bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) { case __NR_sync_file_range: // EPERM not a valid errno. #elif defined(__arm__) case __NR_arm_sync_file_range: // EPERM not a valid errno. @@ -411,7 +409,7 @@ index d3693fd78..d492cf94b 100644 #endif default: return false; -@@ -224,7 +233,8 @@ bool SyscallSets::IsDeniedFileSystemAccessViaFd(int sysno) { +@@ -231,7 +240,8 @@ bool SyscallSets::IsDeniedFileSystemAccessViaFd(int sysno) { #endif case __NR_getdents64: // EPERM not a valid errno. #if defined(__i386__) || \ @@ -421,7 +419,7 @@ index d3693fd78..d492cf94b 100644 case __NR_readdir: #endif return true; -@@ -265,7 +275,7 @@ bool SyscallSets::IsGetSimpleId(int sysno) { +@@ -272,7 +282,7 @@ bool SyscallSets::IsGetSimpleId(int sysno) { bool SyscallSets::IsProcessPrivilegeChange(int sysno) { switch (sysno) { case __NR_capset: @@ -430,7 +428,7 @@ index d3693fd78..d492cf94b 100644 case __NR_ioperm: // Intel privilege. case __NR_iopl: // Intel privilege. #endif -@@ -316,7 +326,8 @@ bool SyscallSets::IsAllowedSignalHandling(int sysno) { +@@ -323,7 +333,8 @@ bool SyscallSets::IsAllowedSignalHandling(int sysno) { case __NR_rt_sigreturn: case __NR_rt_sigtimedwait: #if defined(__i386__) || defined(__arm__) || \ @@ -440,7 +438,7 @@ index d3693fd78..d492cf94b 100644 case __NR_sigaction: case __NR_sigprocmask: case __NR_sigreturn: -@@ -332,7 +343,8 @@ bool SyscallSets::IsAllowedSignalHandling(int sysno) { +@@ -339,7 +350,8 @@ bool SyscallSets::IsAllowedSignalHandling(int sysno) { #endif case __NR_signalfd4: #if defined(__i386__) || defined(__arm__) || \ @@ -450,7 +448,7 @@ index d3693fd78..d492cf94b 100644 case __NR_sigpending: case __NR_sigsuspend: #endif -@@ -356,7 +368,7 @@ bool SyscallSets::IsAllowedOperationOnFd(int sysno) { +@@ -363,7 +375,7 @@ bool SyscallSets::IsAllowedOperationOnFd(int sysno) { #endif case __NR_dup3: #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \ @@ -459,7 +457,7 @@ index d3693fd78..d492cf94b 100644 case __NR_shutdown: #endif return true; -@@ -390,7 +402,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) { +@@ -397,7 +409,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) { case __NR_membarrier: case __NR_wait4: case __NR_waitid: @@ -468,7 +466,7 @@ index d3693fd78..d492cf94b 100644 case __NR_waitpid: #endif return true; -@@ -407,7 +419,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) { +@@ -414,7 +426,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) { #endif case __NR_set_tid_address: case __NR_unshare: @@ -477,7 +475,7 @@ index d3693fd78..d492cf94b 100644 case __NR_vfork: #endif default: -@@ -456,7 +468,7 @@ bool SyscallSets::IsAllowedGetOrModifySocket(int sysno) { +@@ -463,7 +475,7 @@ bool SyscallSets::IsAllowedGetOrModifySocket(int sysno) { return true; default: #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \ @@ -486,7 +484,7 @@ index d3693fd78..d492cf94b 100644 case __NR_socketpair: // We will want to inspect its argument. #endif return false; -@@ -466,7 +478,7 @@ bool SyscallSets::IsAllowedGetOrModifySocket(int sysno) { +@@ -473,7 +485,7 @@ bool SyscallSets::IsAllowedGetOrModifySocket(int sysno) { bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) { switch (sysno) { #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \ @@ -495,7 +493,7 @@ index d3693fd78..d492cf94b 100644 case __NR_accept: case __NR_accept4: case __NR_bind: -@@ -481,7 +493,8 @@ bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) { +@@ -488,7 +500,8 @@ bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) { } #if defined(__i386__) || \ @@ -505,7 +503,7 @@ index d3693fd78..d492cf94b 100644 // Big multiplexing system call for sockets. bool SyscallSets::IsSocketCall(int sysno) { switch (sysno) { -@@ -495,7 +508,8 @@ bool SyscallSets::IsSocketCall(int sysno) { +@@ -502,7 +515,8 @@ bool SyscallSets::IsSocketCall(int sysno) { } #endif @@ -515,7 +513,7 @@ index d3693fd78..d492cf94b 100644 bool SyscallSets::IsNetworkSocketInformation(int sysno) { switch (sysno) { case __NR_getpeername: -@@ -520,7 +534,7 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) { +@@ -527,7 +541,7 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) { case __NR_mincore: case __NR_mlockall: #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ @@ -524,7 +522,7 @@ index d3693fd78..d492cf94b 100644 case __NR_mmap: #endif #if defined(__i386__) || defined(__arm__) || \ -@@ -550,7 +564,8 @@ bool SyscallSets::IsAllowedGeneralIo(int sysno) { +@@ -557,7 +571,8 @@ bool SyscallSets::IsAllowedGeneralIo(int sysno) { switch (sysno) { case __NR_lseek: #if defined(__i386__) || defined(__arm__) || \ @@ -534,7 +532,7 @@ index d3693fd78..d492cf94b 100644 case __NR__llseek: #endif #if !defined(__aarch64__) -@@ -562,26 +577,28 @@ bool SyscallSets::IsAllowedGeneralIo(int sysno) { +@@ -569,26 +584,28 @@ bool SyscallSets::IsAllowedGeneralIo(int sysno) { case __NR_readv: case __NR_pread64: #if defined(__arm__) || \ @@ -569,7 +567,7 @@ index d3693fd78..d492cf94b 100644 case __NR_sendmsg: // Could specify destination. case __NR_sendto: // Could specify destination. #endif -@@ -638,7 +655,8 @@ bool SyscallSets::IsAllowedBasicScheduler(int sysno) { +@@ -645,7 +662,8 @@ bool SyscallSets::IsAllowedBasicScheduler(int sysno) { return true; case __NR_getpriority: #if defined(__i386__) || defined(__arm__) || \ @@ -579,7 +577,7 @@ index d3693fd78..d492cf94b 100644 case __NR_nice: #endif case __NR_setpriority: -@@ -650,7 +668,8 @@ bool SyscallSets::IsAllowedBasicScheduler(int sysno) { +@@ -657,7 +675,8 @@ bool SyscallSets::IsAllowedBasicScheduler(int sysno) { bool SyscallSets::IsAdminOperation(int sysno) { switch (sysno) { #if defined(__i386__) || defined(__arm__) || \ @@ -589,7 +587,7 @@ index d3693fd78..d492cf94b 100644 case __NR_bdflush: #endif case __NR_kexec_load: -@@ -666,7 +685,8 @@ bool SyscallSets::IsAdminOperation(int sysno) { +@@ -673,7 +692,8 @@ bool SyscallSets::IsAdminOperation(int sysno) { bool SyscallSets::IsKernelModule(int sysno) { switch (sysno) { @@ -599,7 +597,7 @@ index d3693fd78..d492cf94b 100644 case __NR_create_module: case __NR_get_kernel_syms: // Should ENOSYS. case __NR_query_module: -@@ -699,7 +719,8 @@ bool SyscallSets::IsFsControl(int sysno) { +@@ -706,7 +726,8 @@ bool SyscallSets::IsFsControl(int sysno) { case __NR_swapoff: case __NR_swapon: #if defined(__i386__) || \ @@ -609,7 +607,7 @@ index d3693fd78..d492cf94b 100644 case __NR_umount: #endif case __NR_umount2: -@@ -715,7 +736,7 @@ bool SyscallSets::IsNuma(int sysno) { +@@ -722,7 +743,7 @@ bool SyscallSets::IsNuma(int sysno) { case __NR_getcpu: case __NR_mbind: #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ @@ -618,7 +616,7 @@ index d3693fd78..d492cf94b 100644 case __NR_migrate_pages: #endif case __NR_move_pages: -@@ -744,14 +765,15 @@ bool SyscallSets::IsGlobalProcessEnvironment(int sysno) { +@@ -751,14 +772,15 @@ bool SyscallSets::IsGlobalProcessEnvironment(int sysno) { switch (sysno) { case __NR_acct: // Privileged. #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \ @@ -637,7 +635,7 @@ index d3693fd78..d492cf94b 100644 case __NR_ulimit: #endif case __NR_getrusage: -@@ -785,7 +807,7 @@ bool SyscallSets::IsGlobalSystemStatus(int sysno) { +@@ -792,7 +814,7 @@ bool SyscallSets::IsGlobalSystemStatus(int sysno) { #endif case __NR_sysinfo: case __NR_uname: @@ -646,7 +644,7 @@ index d3693fd78..d492cf94b 100644 case __NR_olduname: case __NR_oldolduname: #endif -@@ -847,8 +869,16 @@ bool SyscallSets::IsSystemVSemaphores(int sysno) { +@@ -854,8 +876,16 @@ bool SyscallSets::IsSystemVSemaphores(int sysno) { } #endif @@ -664,7 +662,7 @@ index d3693fd78..d492cf94b 100644 (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS)) // These give a lot of ambient authority and bypass the setuid sandbox. bool SyscallSets::IsSystemVSharedMemory(int sysno) { -@@ -880,7 +910,8 @@ bool SyscallSets::IsSystemVMessageQueue(int sysno) { +@@ -887,7 +917,8 @@ bool SyscallSets::IsSystemVMessageQueue(int sysno) { #endif #if defined(__i386__) || \ @@ -674,7 +672,7 @@ index d3693fd78..d492cf94b 100644 // Big system V multiplexing system call. bool SyscallSets::IsSystemVIpc(int sysno) { switch (sysno) { -@@ -900,7 +931,8 @@ bool SyscallSets::IsAnySystemV(int sysno) { +@@ -907,7 +938,8 @@ bool SyscallSets::IsAnySystemV(int sysno) { return IsSystemVMessageQueue(sysno) || IsSystemVSemaphores(sysno) || IsSystemVSharedMemory(sysno); #elif defined(__i386__) || \ @@ -684,7 +682,7 @@ index d3693fd78..d492cf94b 100644 return IsSystemVIpc(sysno); #endif } -@@ -953,7 +985,8 @@ bool SyscallSets::IsFaNotify(int sysno) { +@@ -960,7 +992,8 @@ bool SyscallSets::IsFaNotify(int sysno) { bool SyscallSets::IsTimer(int sysno) { switch (sysno) { case __NR_getitimer: @@ -694,7 +692,7 @@ index d3693fd78..d492cf94b 100644 case __NR_alarm: #endif case __NR_setitimer: -@@ -1012,18 +1045,22 @@ bool SyscallSets::IsMisc(int sysno) { +@@ -1019,18 +1052,22 @@ bool SyscallSets::IsMisc(int sysno) { case __NR_syncfs: case __NR_vhangup: // The system calls below are not implemented. @@ -721,7 +719,7 @@ index d3693fd78..d492cf94b 100644 case __NR_gtty: case __NR_idle: case __NR_lock: -@@ -1031,20 +1068,22 @@ bool SyscallSets::IsMisc(int sysno) { +@@ -1038,20 +1075,22 @@ bool SyscallSets::IsMisc(int sysno) { case __NR_prof: case __NR_profil: #endif @@ -889,7 +887,7 @@ index e47e98bf5..d53a7ff56 100644 SECCOMP_RESULT(ctx) = static_cast(ret_val); } diff --git sandbox/linux/seccomp-bpf/trap.cc sandbox/linux/seccomp-bpf/trap.cc -index 9884be8bb..98e4371aa 100644 +index f5b86a73a..5e6c4a068 100644 --- sandbox/linux/seccomp-bpf/trap.cc +++ sandbox/linux/seccomp-bpf/trap.cc @@ -232,6 +232,20 @@ void Trap::SigSys(int nr, LinuxSigInfo* info, ucontext_t* ctx) { @@ -940,23 +938,23 @@ index fcfd2aa12..f6eb32fb7 100644 return syscall(__NR_clone, flags, child_stack, ptid, tls, ctid); #endif diff --git sandbox/linux/syscall_broker/broker_process.cc sandbox/linux/syscall_broker/broker_process.cc -index 8321d2379..7e5ad1de3 100644 +index d72c9d238..77f1d95f5 100644 --- sandbox/linux/syscall_broker/broker_process.cc +++ sandbox/linux/syscall_broker/broker_process.cc -@@ -157,7 +157,7 @@ bool BrokerProcess::IsSyscallAllowed(int sysno) const { - #if defined(__NR_fstatat) - case __NR_fstatat: +@@ -169,7 +169,7 @@ bool BrokerProcess::IsSyscallBrokerable(int sysno, bool fast_check) const { + #if defined(__NR_fstatat64) + case __NR_fstatat64: #endif -#if defined(__x86_64__) || defined(__aarch64__) +#if defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__) case __NR_newfstatat: #endif - return !fast_check_in_client_ || allowed_command_set_.test(COMMAND_STAT); + return !fast_check || allowed_command_set_.test(COMMAND_STAT); diff --git sandbox/linux/system_headers/linux_seccomp.h sandbox/linux/system_headers/linux_seccomp.h -index a60fe2ad3..9dccdb51d 100644 +index 1fa47ed09..39cc9ab53 100644 --- sandbox/linux/system_headers/linux_seccomp.h +++ sandbox/linux/system_headers/linux_seccomp.h -@@ -29,6 +29,9 @@ +@@ -41,6 +41,9 @@ #ifndef EM_AARCH64 #define EM_AARCH64 183 #endif @@ -966,7 +964,7 @@ index a60fe2ad3..9dccdb51d 100644 #ifndef __AUDIT_ARCH_64BIT #define __AUDIT_ARCH_64BIT 0x80000000 -@@ -54,6 +57,12 @@ +@@ -73,6 +76,12 @@ #ifndef AUDIT_ARCH_AARCH64 #define AUDIT_ARCH_AARCH64 (EM_AARCH64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE) #endif @@ -1055,13 +1053,13 @@ index 000000000..07728e087 +//TODO: is it necessary to redefine ucontext on PPC64? + +#endif // SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_UCONTEXT_H_ -diff --git services/service_manager/sandbox/linux/bpf_renderer_policy_linux.cc services/service_manager/sandbox/linux/bpf_renderer_policy_linux.cc -index fb89b3356..1e984731e 100644 +diff --git sandbox/policy/linux/bpf_renderer_policy_linux.cc sandbox/policy/linux/bpf_renderer_policy_linux.cc +index 2588fc792..d455c4601 100644 --- sandbox/policy/linux/bpf_renderer_policy_linux.cc +++ sandbox/policy/linux/bpf_renderer_policy_linux.cc @@ -15,6 +15,11 @@ #include "sandbox/linux/system_headers/linux_syscalls.h" - #include "services/service_manager/sandbox/linux/sandbox_linux.h" + #include "sandbox/policy/linux/sandbox_linux.h" +// On PPC64, TCGETS is defined in terms of struct termios, so we must include termios.h +#ifdef __powerpc64__ @@ -1072,7 +1070,7 @@ index fb89b3356..1e984731e 100644 // once kernel version 4.6 becomes widely used. #include diff --git third_party/angle/src/compiler/translator/InfoSink.h third_party/angle/src/compiler/translator/InfoSink.h -index 3a807e1e..5258617a 100644 +index 3a807e1e3..5258617a7 100644 --- third_party/angle/src/compiler/translator/InfoSink.h +++ third_party/angle/src/compiler/translator/InfoSink.h @@ -92,7 +92,16 @@ class TInfoSinkBase @@ -1094,7 +1092,7 @@ index 3a807e1e..5258617a 100644 } // Write boolean values as their names instead of integral value. diff --git third_party/angle/src/libANGLE/Constants.h third_party/angle/src/libANGLE/Constants.h -index 42964cc1..6607deeb 100644 +index fcbc9246a..39ae66148 100644 --- third_party/angle/src/libANGLE/Constants.h +++ third_party/angle/src/libANGLE/Constants.h @@ -9,6 +9,7 @@ @@ -1106,10 +1104,10 @@ index 42964cc1..6607deeb 100644 #include diff --git third_party/boringssl/BUILD.gn third_party/boringssl/BUILD.gn -index b435499f4..ac8a84b6d 100644 +index 17cf9cda9..8ce96bd32 100644 --- third_party/boringssl/BUILD.gn +++ third_party/boringssl/BUILD.gn -@@ -101,6 +101,13 @@ if (is_win && !is_msan && current_cpu != "arm64") { +@@ -103,6 +103,13 @@ if (is_win && !is_msan && current_cpu != "arm64") { } else { public_configs = [ ":no_asm_config" ] } @@ -1124,10 +1122,10 @@ index b435499f4..ac8a84b6d 100644 public_configs = [ ":no_asm_config" ] } diff --git third_party/breakpad/BUILD.gn third_party/breakpad/BUILD.gn -index 5617de88..dc8bc176 100644 +index 4af3d7bbf..adbf54159 100644 --- third_party/breakpad/BUILD.gn +++ third_party/breakpad/BUILD.gn -@@ -598,7 +598,6 @@ if (is_linux || is_android) { +@@ -596,7 +596,6 @@ if (is_linux || is_chromeos || is_android) { "breakpad/src/client/minidump_file_writer.h", "breakpad/src/common/convert_UTF.cc", "breakpad/src/common/convert_UTF.h", @@ -1135,7 +1133,7 @@ index 5617de88..dc8bc176 100644 "breakpad/src/common/linux/elf_core_dump.cc", "breakpad/src/common/linux/elf_core_dump.h", "breakpad/src/common/linux/elfutils.cc", -@@ -636,6 +635,14 @@ if (is_linux || is_android) { +@@ -634,6 +633,14 @@ if (is_linux || is_chromeos || is_android) { libs = [ "dl" ] @@ -1150,7 +1148,7 @@ index 5617de88..dc8bc176 100644 include_dirs = [ ".", "breakpad/src", -@@ -686,7 +693,6 @@ if (is_linux || is_android) { +@@ -682,7 +689,6 @@ if (is_linux || is_chromeos || is_android) { "breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc", "breakpad/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc", "breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc", @@ -1159,7 +1157,7 @@ index 5617de88..dc8bc176 100644 "breakpad/src/common/linux/file_id_unittest.cc", "breakpad/src/common/linux/linux_libc_support_unittest.cc", diff --git third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h -index 07d9171a..9aed4cb3 100644 +index 07d9171a0..9aed4cb36 100644 --- third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h +++ third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h @@ -44,6 +44,8 @@ typedef MDRawContextARM RawContextCPU; @@ -1172,7 +1170,7 @@ index 07d9171a..9aed4cb3 100644 #error "This code has not been ported to your platform yet." #endif diff --git third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc -index aae1dc13..03afec7a 100644 +index aae1dc13b..03afec7a5 100644 --- third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc +++ third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc @@ -270,7 +270,42 @@ void ThreadInfo::FillCPUContext(RawContextCPU* out) const { @@ -1258,7 +1256,7 @@ index aae1dc13..03afec7a 100644 + } // namespace google_breakpad diff --git third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h -index fb216fa6..593aac82 100644 +index fb216fa6d..593aac822 100644 --- third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h +++ third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h @@ -68,6 +68,10 @@ struct ThreadInfo { @@ -1285,10 +1283,10 @@ index fb216fa6..593aac82 100644 } // namespace google_breakpad diff --git third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc -index ee515c41..1090470f 100644 +index 6eec1be24..741983a1a 100644 --- third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc +++ third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc -@@ -254,6 +254,48 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { +@@ -254,6 +254,48 @@ void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc) { out->float_save.fir = uc->uc_mcontext.fpc_eir; // Unused. #endif } @@ -1338,21 +1336,21 @@ index ee515c41..1090470f 100644 } // namespace google_breakpad diff --git third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h -index 8e74a8a5..7cb667a7 100644 +index 7d4100881..c122ac92e 100644 --- third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h +++ third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h @@ -55,6 +55,9 @@ struct UContextReader { #elif defined(__aarch64__) - static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc, const struct fpsimd_context* fpregs); +#elif defined(__powerpc64__) + static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, + const vrregset_t* vregs); #else - static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc); + static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc); #endif diff --git third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc -index c65feaa1..5a7ab50c 100644 +index a6cb5f984..ae16b64d9 100644 --- third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc +++ third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc @@ -461,9 +461,16 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) { @@ -1373,7 +1371,7 @@ index c65feaa1..5a7ab50c 100644 // and 'float_state' is not a member of CrashContext. ucontext_t* uc_ptr = (ucontext_t*)uc; if (uc_ptr->uc_mcontext.fpregs) { -@@ -701,11 +708,19 @@ bool ExceptionHandler::WriteMinidump() { +@@ -708,11 +715,19 @@ bool ExceptionHandler::WriteMinidump() { } #endif @@ -1394,7 +1392,7 @@ index c65feaa1..5a7ab50c 100644 context.tid = sys_gettid(); // Add an exception stream to the minidump for better reporting. -@@ -726,6 +741,9 @@ bool ExceptionHandler::WriteMinidump() { +@@ -733,6 +748,9 @@ bool ExceptionHandler::WriteMinidump() { #elif defined(__mips__) context.siginfo.si_addr = reinterpret_cast(context.context.uc_mcontext.pc); @@ -1405,7 +1403,7 @@ index c65feaa1..5a7ab50c 100644 #error "This code has not been ported to your platform yet." #endif diff --git third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h -index f44483ff..36ce6d6c 100644 +index f80843ea7..260dd10f7 100644 --- third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h +++ third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h @@ -192,7 +192,11 @@ class ExceptionHandler { @@ -1422,7 +1420,7 @@ index f44483ff..36ce6d6c 100644 // In case of MIPS Linux FP state is already part of ucontext_t so // 'float_state' is not required. diff --git third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc -index 8d8809fa..e2eb031e 100644 +index 35dcbfd4d..7934370fd 100644 --- third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc +++ third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc @@ -307,7 +307,7 @@ TEST(ExceptionHandlerTest, ParallelChildCrashesDontHang) { @@ -1457,7 +1455,7 @@ index 8d8809fa..e2eb031e 100644 const pid_t child = fork(); diff --git third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc -index fa3c1713..6ce709e2 100644 +index fa3c1713a..6ce709e2f 100644 --- third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc +++ third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc @@ -138,7 +138,9 @@ class MicrodumpWriter { @@ -1503,7 +1501,7 @@ index fa3c1713..6ce709e2 100644 #endif LinuxDumper* dumper_; diff --git third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc -index 6339ac0c..291af106 100644 +index 6339ac0cd..291af106b 100644 --- third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc +++ third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc @@ -279,10 +279,19 @@ TEST(MicrodumpWriterTest, BasicWithMappings) { @@ -1530,7 +1528,7 @@ index 6339ac0c..291af106 100644 ASSERT_NE(std::string::npos, buf.find("M 00001000 0000002A 00001000 " diff --git third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc -index 41506898..b93e4afc 100644 +index 415068983..b93e4afcf 100644 --- third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc +++ third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc @@ -112,6 +112,9 @@ bool LinuxCoreDumper::GetThreadInfoByIndex(size_t index, ThreadInfo* info) { @@ -1556,7 +1554,7 @@ index 41506898..b93e4afc 100644 for (int i = EF_R0; i <= EF_R31; i++) info.mcontext.gregs[i - EF_R0] = status->pr_reg[i]; diff --git third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc -index 1112035b..8523dad6 100644 +index 7fd6532ad..199cbfffd 100644 --- third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc +++ third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc @@ -765,7 +765,9 @@ bool LinuxDumper::GetStackInfo(const void** stack, size_t* stack_len, @@ -1571,7 +1569,7 @@ index 1112035b..8523dad6 100644 const MappingInfo* mapping = FindMapping(stack_pointer); if (!mapping) diff --git third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h -index f4a75d90..020981f5 100644 +index 7bee160f1..07bb2b81a 100644 --- third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h +++ third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h @@ -63,7 +63,8 @@ namespace google_breakpad { @@ -1585,7 +1583,7 @@ index f4a75d90..020981f5 100644 #endif diff --git third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc -index 3ad48e50..1688c365 100644 +index 331f4bb34..3f722947f 100644 --- third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc +++ third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc @@ -51,6 +51,8 @@ @@ -1598,7 +1596,7 @@ index 3ad48e50..1688c365 100644 #error This test has not been ported to this platform. #endif diff --git third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc -index e3ddb81a..fa28575e 100644 +index e3ddb81a6..fa28575ef 100644 --- third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc +++ third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc @@ -149,19 +149,27 @@ bool LinuxPtraceDumper::CopyFromProcess(void* dest, pid_t child, @@ -1644,7 +1642,7 @@ index e3ddb81a..fa28575e 100644 #error "This code hasn't been ported to your platform yet." #endif diff --git third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc -index ea6b9a12..9b318fe0 100644 +index da71e15dc..12bfb317a 100644 --- third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc +++ third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc @@ -462,6 +462,9 @@ TEST(LinuxPtraceDumperTest, VerifyStackReadWithMultipleThreads) { @@ -1667,7 +1665,7 @@ index ea6b9a12..9b318fe0 100644 #error This test has not been ported to this platform. #endif diff --git third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc -index f8cdf2a1..cb808c15 100644 +index 32634ef00..2a56948de 100644 --- third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc +++ third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc @@ -136,7 +136,9 @@ class MinidumpWriter { @@ -1724,7 +1722,7 @@ index f8cdf2a1..cb808c15 100644 #endif LinuxDumper* dumper_; diff --git third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h -index e3b0b16d..ccd8aa0a 100644 +index e3b0b16da..ccd8aa0a4 100644 --- third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h +++ third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h @@ -48,6 +48,8 @@ class ExceptionHandler; @@ -1737,7 +1735,7 @@ index e3b0b16d..ccd8aa0a 100644 typedef std::remove_pointer::type fpstate_t; #endif diff --git third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc -index 3017a49a..364efd79 100644 +index d192e5cbb..fc1bfa8d7 100644 --- third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc +++ third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc @@ -715,6 +715,9 @@ TEST(MinidumpWriterTest, InvalidStackPointer) { @@ -1751,7 +1749,7 @@ index 3017a49a..364efd79 100644 # error "This code has not been ported to your platform yet." #endif diff --git third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc -index 4e938269..f0ff15d9 100644 +index 99362945c..c54ba7145 100644 --- third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc +++ third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc @@ -65,8 +65,7 @@ bool MemoryMappedFile::Map(const char* path, size_t offset) { @@ -1765,7 +1763,7 @@ index 4e938269..f0ff15d9 100644 if (sys_fstat(fd, &st) == -1 || st.st_size < 0) { #else diff --git third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc -index fad59f40..616496d6 100644 +index fad59f40c..616496d67 100644 --- third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc +++ third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc @@ -176,9 +176,10 @@ TEST_F(MemoryMappedFileTest, RemapAfterMap) { @@ -1783,10 +1781,10 @@ index fad59f40..616496d6 100644 data1[i] = i & 0x7f; } diff --git third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc -index 43c86314..27325b81 100644 +index 5803b90d5..2a1cf14f0 100644 --- third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc +++ third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc -@@ -57,8 +57,9 @@ +@@ -57,8 +57,9 @@ TEST(PageAllocatorTest, LargeObject) { EXPECT_EQ(0U, allocator.pages_allocated()); uint8_t* p = reinterpret_cast(allocator.Alloc(10000)); @@ -1798,7 +1796,7 @@ index 43c86314..27325b81 100644 uint8_t* p = reinterpret_cast(allocator.Alloc(i)); ASSERT_FALSE(p == NULL); diff --git third_party/breakpad/breakpad/src/processor/exploitability_linux.cc third_party/breakpad/breakpad/src/processor/exploitability_linux.cc -index ccc9f145..debaed4d 100644 +index 798056dfa..22bd81fff 100644 --- third_party/breakpad/breakpad/src/processor/exploitability_linux.cc +++ third_party/breakpad/breakpad/src/processor/exploitability_linux.cc @@ -202,12 +202,14 @@ bool ExploitabilityLinux::EndedOnIllegalWrite(uint64_t instruction_ptr) { @@ -1817,7 +1815,7 @@ index ccc9f145..debaed4d 100644 // Unsupported architecture. Note that ARM architectures are not // supported because objdump does not support ARM. diff --git third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc -index 528ee5f2..72764d6c 100644 +index 528ee5f21..72764d6c1 100644 --- third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc +++ third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc @@ -104,6 +104,8 @@ ExploitabilityFor(const string& filename) { @@ -1875,7 +1873,7 @@ index 528ee5f2..72764d6c 100644 } // namespace diff --git third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc -index a60be323..35b11b6d 100644 +index aade82c99..195aa73f3 100644 --- third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc +++ third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc @@ -77,6 +77,8 @@ @@ -1959,7 +1957,7 @@ index a60be323..35b11b6d 100644 #error "This code has not been ported to your platform yet" #endif diff --git third_party/crashpad/crashpad/CONTRIBUTORS third_party/crashpad/crashpad/CONTRIBUTORS -index 8724b7f3..8e29424e 100644 +index 8724b7f32..8e29424ef 100644 --- third_party/crashpad/crashpad/CONTRIBUTORS +++ third_party/crashpad/crashpad/CONTRIBUTORS @@ -13,3 +13,4 @@ Mark Mentovai @@ -1968,7 +1966,7 @@ index 8724b7f3..8e29424e 100644 Joshua Peraza +Shawn Anastasio diff --git third_party/crashpad/crashpad/compat/linux/sys/user.h third_party/crashpad/crashpad/compat/linux/sys/user.h -index 6ed77a98..1fd83469 100644 +index 6ed77a98e..1fd83469a 100644 --- third_party/crashpad/crashpad/compat/linux/sys/user.h +++ third_party/crashpad/crashpad/compat/linux/sys/user.h @@ -15,6 +15,7 @@ @@ -1980,7 +1978,7 @@ index 6ed77a98..1fd83469 100644 #include diff --git third_party/crashpad/crashpad/minidump/minidump_context.h third_party/crashpad/crashpad/minidump/minidump_context.h -index 3a3e603c..3118d9e9 100644 +index 3a3e603cb..3118d9e9f 100644 --- third_party/crashpad/crashpad/minidump/minidump_context.h +++ third_party/crashpad/crashpad/minidump/minidump_context.h @@ -592,6 +592,70 @@ struct MinidumpContextMIPS64 { @@ -2055,7 +2053,7 @@ index 3a3e603c..3118d9e9 100644 #endif // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_ diff --git third_party/crashpad/crashpad/minidump/minidump_context_writer.cc third_party/crashpad/crashpad/minidump/minidump_context_writer.cc -index d7e53a49..d89eb9e0 100644 +index d7e53a493..d89eb9e01 100644 --- third_party/crashpad/crashpad/minidump/minidump_context_writer.cc +++ third_party/crashpad/crashpad/minidump/minidump_context_writer.cc @@ -101,6 +101,13 @@ MinidumpContextWriter::CreateFromSnapshot(const CPUContext* context_snapshot) { @@ -2121,7 +2119,7 @@ index d7e53a49..d89eb9e0 100644 + } // namespace crashpad diff --git third_party/crashpad/crashpad/minidump/minidump_context_writer.h third_party/crashpad/crashpad/minidump/minidump_context_writer.h -index d4ab936e..1d22fc59 100644 +index d4ab936ee..1d22fc59c 100644 --- third_party/crashpad/crashpad/minidump/minidump_context_writer.h +++ third_party/crashpad/crashpad/minidump/minidump_context_writer.h @@ -315,6 +315,45 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter { @@ -2171,7 +2169,7 @@ index d4ab936e..1d22fc59 100644 #endif // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_WRITER_H_ diff --git third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc -index 3216a906..a9fcbe9d 100644 +index 3216a906b..a9fcbe9d8 100644 --- third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc +++ third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc @@ -213,6 +213,21 @@ TEST(MinidumpContextWriter, MIPS64_FromSnapshot) { @@ -2197,10 +2195,10 @@ index 3216a906..a9fcbe9d 100644 } // namespace test } // namespace crashpad diff --git third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc -index a1340760..95dc9252 100644 +index 0974e3ddf..b71ec5880 100644 --- third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc +++ third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc -@@ -126,6 +126,8 @@ std::string MinidumpMiscInfoDebugBuildString() { +@@ -135,6 +135,8 @@ std::string MinidumpMiscInfoDebugBuildString() { static constexpr char kCPU[] = "mips"; #elif defined(ARCH_CPU_MIPS64EL) static constexpr char kCPU[] = "mips64"; @@ -2210,10 +2208,10 @@ index a1340760..95dc9252 100644 #error define kCPU for this CPU #endif diff --git third_party/crashpad/crashpad/snapshot/capture_memory.cc third_party/crashpad/crashpad/snapshot/capture_memory.cc -index a51626cc..61e0b20a 100644 +index 7a1b2763c..beda8da9e 100644 --- third_party/crashpad/crashpad/snapshot/capture_memory.cc +++ third_party/crashpad/crashpad/snapshot/capture_memory.cc -@@ -111,6 +111,11 @@ void CaptureMemory::PointedToByContext(const CPUContext& context, +@@ -112,6 +112,11 @@ void CaptureMemory::PointedToByContext(const CPUContext& context, for (size_t i = 0; i < base::size(context.mipsel->regs); ++i) { MaybeCaptureMemoryAround(delegate, context.mipsel->regs[i]); } @@ -2226,7 +2224,7 @@ index a51626cc..61e0b20a 100644 #error Port. #endif diff --git third_party/crashpad/crashpad/snapshot/cpu_architecture.h third_party/crashpad/crashpad/snapshot/cpu_architecture.h -index 811a7209..f4f83981 100644 +index 811a72095..f4f83981d 100644 --- third_party/crashpad/crashpad/snapshot/cpu_architecture.h +++ third_party/crashpad/crashpad/snapshot/cpu_architecture.h @@ -43,7 +43,10 @@ enum CPUArchitecture { @@ -2242,7 +2240,7 @@ index 811a7209..f4f83981 100644 } // namespace crashpad diff --git third_party/crashpad/crashpad/snapshot/cpu_context.cc third_party/crashpad/crashpad/snapshot/cpu_context.cc -index 6fb8d7e7..b01f7cad 100644 +index c75b5555e..aeade577a 100644 --- third_party/crashpad/crashpad/snapshot/cpu_context.cc +++ third_party/crashpad/crashpad/snapshot/cpu_context.cc @@ -169,6 +169,8 @@ uint64_t CPUContext::InstructionPointer() const { @@ -2272,7 +2270,7 @@ index 6fb8d7e7..b01f7cad 100644 case kCPUArchitectureX86: case kCPUArchitectureARM: diff --git third_party/crashpad/crashpad/snapshot/cpu_context.h third_party/crashpad/crashpad/snapshot/cpu_context.h -index fb23c467..eebede63 100644 +index fb23c4679..eebede63c 100644 --- third_party/crashpad/crashpad/snapshot/cpu_context.h +++ third_party/crashpad/crashpad/snapshot/cpu_context.h @@ -352,6 +352,24 @@ struct CPUContextMIPS64 { @@ -2309,7 +2307,7 @@ index fb23c467..eebede63 100644 }; diff --git third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h -index 9f46a489..aa677c4e 100644 +index 9f46a4897..aa677c4eb 100644 --- third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h +++ third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h @@ -15,6 +15,7 @@ @@ -2400,24 +2398,20 @@ index 9f46a489..aa677c4e 100644 } // namespace crashpad diff --git third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc -index be22c903..c5df23d1 100644 +index d32bd1937..2dd538c2b 100644 --- third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc +++ third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc -@@ -159,9 +159,11 @@ void TestAgainstTarget(PtraceConnection* connection) { - const bool is_vdso_mapping = +@@ -192,6 +192,8 @@ void TestAgainstTarget(PtraceConnection* connection) { device == 0 && inode == 0 && mapping_name == "[vdso]"; + #if defined(ARCH_CPU_X86) + static constexpr char kPrefix[] = "linux-gate.so."; ++#elif defined(ARCH_CPU_PPC64) ++ static constexpr char kPrefix[] = "linux-vdso64.so."; + #else static constexpr char kPrefix[] = "linux-vdso.so."; -+ static constexpr char kPrefix64[] = "linux-vdso64.so."; - return is_vdso_mapping == - (module_name.empty() || -- module_name.compare(0, strlen(kPrefix), kPrefix) == 0); -+ module_name.compare(0, strlen(kPrefix), kPrefix) == 0 || -+ module_name.compare(0, strlen(kPrefix64), kPrefix64) == 0); - }, - module_mapping->name, - module_mapping->device, + #endif diff --git third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc -index cd40b3b1..6bcf23b6 100644 +index cd40b3b12..6bcf23b6f 100644 --- third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc +++ third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc @@ -323,6 +323,69 @@ bool ExceptionSnapshotLinux::ReadContext( @@ -2491,7 +2485,7 @@ index cd40b3b1..6bcf23b6 100644 bool ExceptionSnapshotLinux::Initialize(ProcessReaderLinux* process_reader, diff --git third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h -index ea0cd210..e42df520 100644 +index ea0cd2106..e42df520f 100644 --- third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h +++ third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h @@ -84,6 +84,8 @@ class ExceptionSnapshotLinux final : public ExceptionSnapshot { @@ -2504,7 +2498,7 @@ index ea0cd210..e42df520 100644 } context_union_; CPUContext context_; diff --git third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc -index e4ff1ab7..25534dd0 100644 +index c17170b43..b6a714cc6 100644 --- third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc +++ third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc @@ -296,7 +296,28 @@ void ExpectContext(const CPUContext& actual, const NativeCPUContext& expected) { @@ -2537,7 +2531,7 @@ index e4ff1ab7..25534dd0 100644 #error Port. #endif diff --git third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc -index b96abfe7..df12ca56 100644 +index ee246e8bc..9555dce04 100644 --- third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc +++ third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc @@ -108,6 +108,8 @@ void ProcessReaderLinux::Thread::InitializeStack(ProcessReaderLinux* reader) { @@ -2549,21 +2543,8 @@ index b96abfe7..df12ca56 100644 #else #error Port. #endif -diff --git third_party/crashpad/crashpad/snapshot/linux/process_reader_linux_test.cc third_party/crashpad/crashpad/snapshot/linux/process_reader_linux_test.cc -index 5b572361..049c3285 100644 ---- third_party/crashpad/crashpad/snapshot/linux/process_reader_linux_test.cc -+++ third_party/crashpad/crashpad/snapshot/linux/process_reader_linux_test.cc -@@ -612,6 +612,8 @@ bool WriteTestModule(const base::FilePath& module_path) { - module.ehdr.e_machine = EM_AARCH64; - #elif defined(ARCH_CPU_MIPSEL) || defined(ARCH_CPU_MIPS64EL) - module.ehdr.e_machine = EM_MIPS; -+#elif defined(ARCH_CPU_PPC64) -+ module.ehdr.e_machine = EM_PPC64; - #endif - - module.ehdr.e_version = EV_CURRENT; diff --git third_party/crashpad/crashpad/snapshot/linux/signal_context.h third_party/crashpad/crashpad/snapshot/linux/signal_context.h -index 11002468..8e335a09 100644 +index 110024680..a1f2da259 100644 --- third_party/crashpad/crashpad/snapshot/linux/signal_context.h +++ third_party/crashpad/crashpad/snapshot/linux/signal_context.h @@ -422,6 +422,89 @@ static_assert(offsetof(UContext, mcontext.fpregs) == @@ -2657,10 +2638,10 @@ index 11002468..8e335a09 100644 #error Port. #endif // ARCH_CPU_X86_FAMILY diff --git third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc -index 8564d3d4..b690ecd4 100644 +index a99da3e4b..03b973083 100644 --- third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc +++ third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc -@@ -203,6 +203,8 @@ CPUArchitecture SystemSnapshotLinux::GetCPUArchitecture() const { +@@ -204,6 +204,8 @@ CPUArchitecture SystemSnapshotLinux::GetCPUArchitecture() const { #elif defined(ARCH_CPU_MIPS_FAMILY) return process_reader_->Is64Bit() ? kCPUArchitectureMIPS64EL : kCPUArchitectureMIPSEL; @@ -2669,7 +2650,7 @@ index 8564d3d4..b690ecd4 100644 #else #error port to your architecture #endif -@@ -218,6 +220,9 @@ uint32_t SystemSnapshotLinux::CPURevision() const { +@@ -219,6 +221,9 @@ uint32_t SystemSnapshotLinux::CPURevision() const { #elif defined(ARCH_CPU_MIPS_FAMILY) // Not implementable on MIPS return 0; @@ -2679,7 +2660,7 @@ index 8564d3d4..b690ecd4 100644 #else #error port to your architecture #endif -@@ -238,6 +243,9 @@ std::string SystemSnapshotLinux::CPUVendor() const { +@@ -239,6 +244,9 @@ std::string SystemSnapshotLinux::CPUVendor() const { #elif defined(ARCH_CPU_MIPS_FAMILY) // Not implementable on MIPS return std::string(); @@ -2689,7 +2670,7 @@ index 8564d3d4..b690ecd4 100644 #else #error port to your architecture #endif -@@ -371,6 +379,9 @@ bool SystemSnapshotLinux::NXEnabled() const { +@@ -372,6 +380,9 @@ bool SystemSnapshotLinux::NXEnabled() const { #elif defined(ARCH_CPU_MIPS_FAMILY) // Not implementable on MIPS return false; @@ -2699,8 +2680,21 @@ index 8564d3d4..b690ecd4 100644 #else #error Port. #endif // ARCH_CPU_X86_FAMILY +diff --git third_party/crashpad/crashpad/snapshot/linux/test_modules.cc third_party/crashpad/crashpad/snapshot/linux/test_modules.cc +index b2450c206..7ba78b2ae 100644 +--- third_party/crashpad/crashpad/snapshot/linux/test_modules.cc ++++ third_party/crashpad/crashpad/snapshot/linux/test_modules.cc +@@ -110,6 +110,8 @@ bool WriteTestModule(const base::FilePath& module_path, + module.ehdr.e_machine = EM_AARCH64; + #elif defined(ARCH_CPU_MIPSEL) || defined(ARCH_CPU_MIPS64EL) + module.ehdr.e_machine = EM_MIPS; ++#elif defined(ARCH_CPU_PPC64) ++ module.ehdr.e_machine = EM_PPC64; + #endif + + module.ehdr.e_version = EV_CURRENT; diff --git third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc -index e3e2bebd..8ef43752 100644 +index e3e2bebdd..8ef43752e 100644 --- third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc +++ third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc @@ -186,6 +186,14 @@ bool ThreadSnapshotLinux::Initialize(ProcessReaderLinux* process_reader, @@ -2719,7 +2713,7 @@ index e3e2bebd..8ef43752 100644 #error Port. #endif diff --git third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h -index 44cc6f6d..d4136461 100644 +index 44cc6f6d9..d4136461e 100644 --- third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h +++ third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h @@ -68,6 +68,8 @@ class ThreadSnapshotLinux final : public ThreadSnapshot { @@ -2732,7 +2726,7 @@ index 44cc6f6d..d4136461 100644 #error Port. #endif // ARCH_CPU_X86_FAMILY diff --git third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc -index d3d5ebdf..3fd730cb 100644 +index d3d5ebdfb..3fd730cb5 100644 --- third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc +++ third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc @@ -56,6 +56,11 @@ bool AuxiliaryVector::Read(PtraceConnection* connection) { @@ -2747,23 +2741,8 @@ index d3d5ebdf..3fd730cb 100644 if (!MapInsertOrReplace(&values_, type, value, nullptr)) { LOG(ERROR) << "duplicate auxv entry"; return false; -diff --git third_party/crashpad/crashpad/util/linux/ptrace_broker.cc third_party/crashpad/crashpad/util/linux/ptrace_broker.cc -index 155a1e0c..5e50ceb5 100644 ---- third_party/crashpad/crashpad/util/linux/ptrace_broker.cc -+++ third_party/crashpad/crashpad/util/linux/ptrace_broker.cc -@@ -94,8 +94,8 @@ int PtraceBroker::Run() { - } - - bool PtraceBroker::AllocateAttachments() { -- constexpr size_t page_size = 4096; -- constexpr size_t alloc_size = -+ static size_t page_size = getpagesize(); -+ size_t alloc_size = - (sizeof(ScopedPtraceAttach) + page_size - 1) & ~(page_size - 1); - void* alloc = sbrk(alloc_size); - if (reinterpret_cast(alloc) == -1) { diff --git third_party/crashpad/crashpad/util/linux/ptracer.cc third_party/crashpad/crashpad/util/linux/ptracer.cc -index 557e0d36..08ae434b 100644 +index 557e0d363..08ae434b8 100644 --- third_party/crashpad/crashpad/util/linux/ptracer.cc +++ third_party/crashpad/crashpad/util/linux/ptracer.cc @@ -398,6 +398,64 @@ bool GetThreadArea64(pid_t tid, @@ -2842,7 +2821,7 @@ index 557e0d36..08ae434b 100644 info->thread_context, &info->thread_specific_data_address, diff --git third_party/crashpad/crashpad/util/linux/thread_info.h third_party/crashpad/crashpad/util/linux/thread_info.h -index 5b55c24a..dea0d1f3 100644 +index 5b55c24a7..dea0d1f39 100644 --- third_party/crashpad/crashpad/util/linux/thread_info.h +++ third_party/crashpad/crashpad/util/linux/thread_info.h @@ -28,6 +28,10 @@ @@ -2964,10 +2943,10 @@ index 5b55c24a..dea0d1f3 100644 LinuxVMAddress thread_specific_data_address; }; diff --git third_party/crashpad/crashpad/util/misc/capture_context.h third_party/crashpad/crashpad/util/misc/capture_context.h -index 3ff71184..3e82f4b9 100644 +index d21a24f19..acc325349 100644 --- third_party/crashpad/crashpad/util/misc/capture_context.h +++ third_party/crashpad/crashpad/util/misc/capture_context.h -@@ -68,6 +68,7 @@ using NativeCPUContext = ucontext_t; +@@ -69,6 +69,7 @@ using NativeCPUContext = ucontext_t; //! macOS/Linux/Fuchsia | x86_64 | `%%rdi` //! Linux | ARM/ARM64 | `r0`/`x0` //! Linux | MIPS/MIPS64 | `$a0` @@ -2976,7 +2955,7 @@ index 3ff71184..3e82f4b9 100644 //! Additionally, the value `LR` on ARM/ARM64 will be the return address of //! this function. diff --git third_party/crashpad/crashpad/util/misc/capture_context_linux.S third_party/crashpad/crashpad/util/misc/capture_context_linux.S -index 52215ee5..b3e4a3ec 100644 +index 52215ee5d..b3e4a3ec7 100644 --- third_party/crashpad/crashpad/util/misc/capture_context_linux.S +++ third_party/crashpad/crashpad/util/misc/capture_context_linux.S @@ -32,7 +32,7 @@ @@ -3204,7 +3183,7 @@ index 52215ee5..b3e4a3ec 100644 + blr #endif // __i386__ diff --git third_party/crashpad/crashpad/util/misc/capture_context_test.cc third_party/crashpad/crashpad/util/misc/capture_context_test.cc -index cf23c2de..5f264bc9 100644 +index cf23c2def..5f264bc92 100644 --- third_party/crashpad/crashpad/util/misc/capture_context_test.cc +++ third_party/crashpad/crashpad/util/misc/capture_context_test.cc @@ -57,7 +57,7 @@ void TestCaptureContext() { @@ -3217,10 +3196,10 @@ index cf23c2de..5f264bc9 100644 // likely fail. const uintptr_t kReferencePC = diff --git third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc -index 9fc5db28..5f69f8dc 100644 +index 30a2ab21d..60509f21d 100644 --- third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc +++ third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc -@@ -36,6 +36,8 @@ void SanityCheckContext(const NativeCPUContext& context) { +@@ -35,6 +35,8 @@ void SanityCheckContext(const NativeCPUContext& context) { EXPECT_EQ(context.uc_mcontext.regs[0], FromPointerCast(&context)); #elif defined(ARCH_CPU_MIPS_FAMILY) EXPECT_EQ(context.uc_mcontext.gregs[4], FromPointerCast(&context)); @@ -3229,7 +3208,7 @@ index 9fc5db28..5f69f8dc 100644 #endif } -@@ -50,6 +52,8 @@ uintptr_t ProgramCounterFromContext(const NativeCPUContext& context) { +@@ -49,6 +51,8 @@ uintptr_t ProgramCounterFromContext(const NativeCPUContext& context) { return context.uc_mcontext.pc; #elif defined(ARCH_CPU_MIPS_FAMILY) return context.uc_mcontext.pc; @@ -3238,7 +3217,7 @@ index 9fc5db28..5f69f8dc 100644 #endif } -@@ -64,6 +68,8 @@ uintptr_t StackPointerFromContext(const NativeCPUContext& context) { +@@ -63,6 +67,8 @@ uintptr_t StackPointerFromContext(const NativeCPUContext& context) { return context.uc_mcontext.sp; #elif defined(ARCH_CPU_MIPS_FAMILY) return context.uc_mcontext.gregs[29]; @@ -3248,10 +3227,10 @@ index 9fc5db28..5f69f8dc 100644 } diff --git third_party/crashpad/crashpad/util/posix/signals_test.cc third_party/crashpad/crashpad/util/posix/signals_test.cc -index 58bfa8f8..8fc37c46 100644 ---- third_party/crashpad/crashpad/util/posix/signals_test.cc.orig 2020-11-17 13:39:47.000000000 -0500 -+++ third_party/crashpad/crashpad/util/posix/signals_test.cc 2020-11-18 21:06:33.433408623 -0500 -@@ -46,9 +46,9 @@ +index 54cc2f19f..298b5c993 100644 +--- third_party/crashpad/crashpad/util/posix/signals_test.cc ++++ third_party/crashpad/crashpad/util/posix/signals_test.cc +@@ -46,9 +46,9 @@ bool CanCauseSignal(int sig) { return sig == SIGABRT || sig == SIGALRM || sig == SIGBUS || @@ -3263,7 +3242,7 @@ index 58bfa8f8..8fc37c46 100644 #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARMEL) sig == SIGILL || #endif // defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARMEL) -@@ -117,9 +117,11 @@ +@@ -117,9 +117,11 @@ void CauseSignal(int sig) { break; } @@ -3276,7 +3255,7 @@ index 58bfa8f8..8fc37c46 100644 case SIGFPE: { // Optimization makes this tricky, so get zero from a system call likely // to succeed, and try to do something with the result. -@@ -137,7 +139,7 @@ +@@ -137,7 +139,7 @@ void CauseSignal(int sig) { fstat(quotient, &stat_buf); break; } @@ -3286,10 +3265,10 @@ index 58bfa8f8..8fc37c46 100644 #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARMEL) case SIGILL: { diff --git third_party/dav1d/BUILD.gn third_party/dav1d/BUILD.gn -index 788dc6cf..5fd7e8fd 100644 +index 6b4566fc3..c07f732ad 100644 --- third_party/dav1d/BUILD.gn +++ third_party/dav1d/BUILD.gn -@@ -182,6 +182,8 @@ static_library("dav1d_8bit") { +@@ -184,6 +184,8 @@ static_library("dav1d_8bit") { sources += arm_template_sources } else if (current_cpu == "arm64") { sources += arm_template_sources @@ -3298,7 +3277,7 @@ index 788dc6cf..5fd7e8fd 100644 } cflags = dav1d_copts -@@ -210,6 +212,8 @@ static_library("dav1d_10bit") { +@@ -212,6 +214,8 @@ static_library("dav1d_10bit") { sources += arm_template_sources } else if (current_cpu == "arm64") { sources += arm_template_sources @@ -3307,9 +3286,9 @@ index 788dc6cf..5fd7e8fd 100644 } cflags = dav1d_copts -@@ -256,6 +260,21 @@ if (current_cpu == "x86" || current_cpu == "x64") { - ":dav1d_config", - ] +@@ -263,6 +267,21 @@ if (current_cpu == "x86" || current_cpu == "x64") { + defines = [ "PREFIX" ] + } + cflags = dav1d_copts + } @@ -3329,7 +3308,7 @@ index 788dc6cf..5fd7e8fd 100644 cflags = dav1d_copts } } -@@ -285,5 +304,7 @@ static_library("dav1d") { +@@ -292,5 +311,7 @@ static_library("dav1d") { } } else if (current_cpu == "arm" || current_cpu == "arm64") { deps += [ ":dav1d_arm" ] @@ -3339,7 +3318,7 @@ index 788dc6cf..5fd7e8fd 100644 } diff --git third_party/dav1d/config/linux/ppc64/config.h third_party/dav1d/config/linux/ppc64/config.h new file mode 100644 -index 00000000..f6ca57f7 +index 000000000..9fbbf75cc --- /dev/null +++ third_party/dav1d/config/linux/ppc64/config.h @@ -0,0 +1,39 @@ @@ -3383,10 +3362,10 @@ index 00000000..f6ca57f7 +#define HAVE_UNISTD_H 1 + diff --git third_party/dav1d/dav1d_generated.gni third_party/dav1d/dav1d_generated.gni -index 8becac02..d5f4fcac 100644 +index c59cb0821..3060284a8 100644 --- third_party/dav1d/dav1d_generated.gni +++ third_party/dav1d/dav1d_generated.gni -@@ -71,6 +71,11 @@ arm_template_sources = [ +@@ -82,6 +82,11 @@ arm_template_sources = [ "libdav1d/src/arm/mc_init_tmpl.c", ] @@ -3399,7 +3378,7 @@ index 8becac02..d5f4fcac 100644 "libdav1d/src/cdef_apply_tmpl.c", "libdav1d/src/cdef_tmpl.c", diff --git third_party/dav1d/generate_source.py third_party/dav1d/generate_source.py -index 9ab5e00b..ad3feffe 100755 +index 9ab5e00b8..ad3feffee 100755 --- third_party/dav1d/generate_source.py +++ third_party/dav1d/generate_source.py @@ -50,7 +50,8 @@ def WriteGn(fd): @@ -3413,7 +3392,7 @@ index 9ab5e00b..ad3feffe 100755 WriteArray(fd, "template_sources", template_sources) diff --git third_party/dav1d/libdav1d/src/ppc/types.h third_party/dav1d/libdav1d/src/ppc/types.h -index 0b4bd72f..a0caa5e7 100644 +index 0b4bd72f0..a0caa5e71 100644 --- third_party/dav1d/libdav1d/src/ppc/types.h +++ third_party/dav1d/libdav1d/src/ppc/types.h @@ -51,4 +51,19 @@ @@ -3437,10 +3416,10 @@ index 0b4bd72f..a0caa5e7 100644 + #endif /* DAV1D_SRC_PPC_TYPES_H */ diff --git third_party/lss/linux_syscall_support.h third_party/lss/linux_syscall_support.h -index d2baee9d..9955ce44 100644 +index e4ac22644..1c57015db 100644 --- third_party/lss/linux_syscall_support.h +++ third_party/lss/linux_syscall_support.h -@@ -3922,7 +3922,7 @@ struct kernel_statfs { +@@ -3947,7 +3947,7 @@ struct kernel_statfs { LSS_REG(2, buf); LSS_BODY(void*, mmap2, "0"(__r2)); } @@ -3449,7 +3428,7 @@ index d2baee9d..9955ce44 100644 #define __NR__mmap2 __NR_mmap2 LSS_INLINE _syscall6(void*, _mmap2, void*, s, size_t, l, int, p, -@@ -4033,7 +4033,7 @@ struct kernel_statfs { +@@ -4058,7 +4058,7 @@ struct kernel_statfs { #if defined(__i386__) || \ defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \ (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) || \ @@ -3471,10 +3450,10 @@ index bdac4d784..51e0f2cac 100644 # define SIMD_SZ 4 # define VZERO() ((vector float) vec_splat_u8(0)) diff --git third_party/skia/src/sksl/SkSLString.cpp third_party/skia/src/sksl/SkSLString.cpp -index 88eb1c7d..4be33fa5 100644 +index ec3e56964..4cf8999a2 100644 --- third_party/skia/src/sksl/SkSLString.cpp +++ third_party/skia/src/sksl/SkSLString.cpp -@@ -240,7 +240,12 @@ String to_string(double value) { +@@ -234,7 +234,12 @@ String to_string(double value) { if (needsDotZero) { buffer << ".0"; } @@ -3487,12 +3466,12 @@ index 88eb1c7d..4be33fa5 100644 + return String(ret.c_str()); } - SKSL_INT stoi(const String& s) { + bool stod(const StringFragment& s, SKSL_FLOAT* value) { diff --git third_party/sqlite/src/amalgamation/sqlite3.c third_party/sqlite/src/amalgamation/sqlite3.c -index 1b2c2ec7..7593dba1 100644 +index 6b4a7899d..b8c7fe414 100644 --- third_party/sqlite/src/amalgamation/sqlite3.c +++ third_party/sqlite/src/amalgamation/sqlite3.c -@@ -14400,7 +14400,8 @@ typedef INT16_TYPE LogEst; +@@ -14474,7 +14474,8 @@ typedef INT16_TYPE LogEst; # if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ @@ -3503,10 +3482,10 @@ index 1b2c2ec7..7593dba1 100644 # elif defined(sparc) || defined(__ppc__) || \ defined(__ARMEB__) || defined(__AARCH64EB__) diff --git third_party/sqlite/src/amalgamation_dev/sqlite3.c third_party/sqlite/src/amalgamation_dev/sqlite3.c -index 19c87689..c7ab039e 100644 +index d30c9b7de..cf75a69d9 100644 --- third_party/sqlite/src/amalgamation_dev/sqlite3.c +++ third_party/sqlite/src/amalgamation_dev/sqlite3.c -@@ -14413,7 +14413,8 @@ typedef INT16_TYPE LogEst; +@@ -14487,7 +14487,8 @@ typedef INT16_TYPE LogEst; # if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ @@ -3517,10 +3496,10 @@ index 19c87689..c7ab039e 100644 # elif defined(sparc) || defined(__ppc__) || \ defined(__ARMEB__) || defined(__AARCH64EB__) diff --git third_party/sqlite/src/ext/rtree/rtree.c third_party/sqlite/src/ext/rtree/rtree.c -index efaef813..4cd57d55 100644 +index f5b57a5e2..80a2d0ad8 100644 --- third_party/sqlite/src/ext/rtree/rtree.c +++ third_party/sqlite/src/ext/rtree/rtree.c -@@ -432,7 +432,7 @@ struct RtreeMatchArg { +@@ -450,7 +450,7 @@ struct RtreeMatchArg { #if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ @@ -3530,10 +3509,10 @@ index efaef813..4cd57d55 100644 #elif defined(sparc) || defined(__ppc__) # define SQLITE_BYTEORDER 4321 diff --git third_party/sqlite/src/src/sqliteInt.h third_party/sqlite/src/src/sqliteInt.h -index 122e26ad..ec21dcb5 100644 +index 245070d4f..b25164e95 100644 --- third_party/sqlite/src/src/sqliteInt.h +++ third_party/sqlite/src/src/sqliteInt.h -@@ -868,7 +868,8 @@ typedef INT16_TYPE LogEst; +@@ -877,7 +877,8 @@ typedef INT16_TYPE LogEst; # if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ @@ -3544,10 +3523,10 @@ index 122e26ad..ec21dcb5 100644 # elif defined(sparc) || defined(__ppc__) || \ defined(__ARMEB__) || defined(__AARCH64EB__) diff --git third_party/webrtc/modules/desktop_capture/differ_block.cc third_party/webrtc/modules/desktop_capture/differ_block.cc -index dd9ab457..c005d959 100644 ---- third_party/webrtc/modules/desktop_capture/differ_block.cc.orig 2020-11-17 13:42:02.000000000 -0500 -+++ third_party/webrtc/modules/desktop_capture/differ_block.cc 2020-11-18 21:11:03.039905360 -0500 -@@ -30,11 +30,7 @@ +index 4f0c5430c..54ee0829e 100644 +--- third_party/webrtc/modules/desktop_capture/differ_block.cc ++++ third_party/webrtc/modules/desktop_capture/differ_block.cc +@@ -30,11 +30,7 @@ bool VectorDifference(const uint8_t* image1, const uint8_t* image2) { static bool (*diff_proc)(const uint8_t*, const uint8_t*) = nullptr; if (!diff_proc) { @@ -3560,7 +3539,7 @@ index dd9ab457..c005d959 100644 bool have_sse2 = GetCPUInfo(kSSE2) != 0; // For x86 processors, check if SSE2 is supported. if (have_sse2 && kBlockSize == 32) { -@@ -44,6 +40,10 @@ +@@ -44,6 +40,10 @@ bool VectorDifference(const uint8_t* image1, const uint8_t* image2) { } else { diff_proc = &VectorDifference_C; } @@ -3572,10 +3551,10 @@ index dd9ab457..c005d959 100644 } diff --git third_party/webrtc/rtc_base/system/arch.h third_party/webrtc/rtc_base/system/arch.h -index ed216e66..25d36c07 100644 +index be2367b85..be4ee4233 100644 --- third_party/webrtc/rtc_base/system/arch.h +++ third_party/webrtc/rtc_base/system/arch.h -@@ -50,6 +50,18 @@ +@@ -79,6 +79,18 @@ #elif defined(__EMSCRIPTEN__) #define WEBRTC_ARCH_32_BITS #define WEBRTC_ARCH_LITTLE_ENDIAN @@ -3594,15 +3573,15 @@ index ed216e66..25d36c07 100644 #else #error Please add support for your architecture in rtc_base/system/arch.h #endif - diff --git v8/BUILD.gn v8/BUILD.gn -index 167e63503..125c445ea 100644 +diff --git v8/BUILD.gn v8/BUILD.gn +index f39529a3a..e84fc449e 100644 --- v8/BUILD.gn +++ v8/BUILD.gn -@@ -696,6 +696,12 @@ config("toolchain") { +@@ -850,6 +850,12 @@ config("toolchain") { } if (host_byteorder == "little") { defines += [ "V8_TARGET_ARCH_PPC_LE" ] -+ cflags += [ ++ cflags += [ + # Enable usage of AltiVec, VSX, and other POWER8 and higher features + "-mcpu=power8", + "-maltivec", @@ -3612,11 +3591,11 @@ index 167e63503..125c445ea 100644 defines += [ "V8_TARGET_ARCH_PPC_BE" ] if (current_os == "aix") { diff --git ui/gl/features.gni ui/gl/features.gni -index cb2c98649..5e09bc1f7 100644 +index 5fda9b6..3d2dd8b 100644 --- ui/gl/features.gni +++ ui/gl/features.gni -@@ -25,5 +25,6 @@ declare_args() { - is_chromeos || is_fuchsia) && +@@ -32,5 +32,6 @@ declare_args() { + (is_mac && use_egl) || is_chromeos_ash || is_fuchsia) && (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64" || - target_cpu == "mipsel" || target_cpu == "mips64el") @@ -3624,11 +3603,11 @@ index cb2c98649..5e09bc1f7 100644 + target_cpu == "ppc64") } diff --git v8/test/BUILD.gn v8/test/BUILD.gn -index f6d30537a..287b27080 100644 +index fb872ad39..45fc585dd 100644 --- v8/test/BUILD.gn +++ v8/test/BUILD.gn -@@ -31,7 +31,7 @@ group("gn_all") { - deps += [ +@@ -36,7 +36,7 @@ group("gn_all") { + "benchmarks/cpp:gn_all", "cctest:cctest", "cctest:generate-bytecode-expectations", - "unittests:unittests", @@ -3636,7 +3615,7 @@ index f6d30537a..287b27080 100644 ] } } -@@ -73,7 +73,7 @@ group("v8_bot_default") { +@@ -78,7 +78,7 @@ group("v8_bot_default") { "message:v8_message", "mjsunit:v8_mjsunit", "mkgrokdump:mkgrokdump", @@ -3645,7 +3624,7 @@ index f6d30537a..287b27080 100644 "wasm-api-tests:wasm_api_tests", "wasm-js:v8_wasm_js", "wasm-spec-tests:v8_wasm_spec_tests", -@@ -93,7 +93,7 @@ group("v8_default") { +@@ -98,7 +98,7 @@ group("v8_default") { "message:v8_message", "mjsunit:v8_mjsunit", "mkgrokdump:mkgrokdump", diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template index 098cb904da9..5800c4e6e10 100644 --- a/srcpkgs/chromium/template +++ b/srcpkgs/chromium/template @@ -1,7 +1,7 @@ # Template file for 'chromium' pkgname=chromium # See http://www.chromium.org/developers/calendar for the latest version -version=88.0.4324.182 +version=89.0.4389.82 revision=1 archs="i686* x86_64* aarch64* armv7l* ppc64le*" short_desc="Google's attempt at creating a safer, faster, and more stable browser" @@ -9,7 +9,7 @@ maintainer="Enno Boland " license="BSD-3-Clause" homepage="https://www.chromium.org/" distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz" -checksum=30411fc3ec2d33df4c5cad41f21affa3823c80f7dbd394f6d68f9a1e81015b81 +checksum=df4914407b68afdc6449cb8e3f1b08d110eb8689ac41f86490e337fa4d1be379 nocross=yes lib32disabled=yes @@ -36,7 +36,7 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel re2-devel fontconfig-devel freetype-devel opus-devel ffmpeg-devel libva-devel python-setuptools xcb-proto - $(vopt_if pipewire libpipewire0.2-devel) $(vopt_if sndio sndio-devel)" + $(vopt_if pipewire pipewire-devel) $(vopt_if sndio sndio-devel)" depends="libexif hwids desktop-file-utils hicolor-icon-theme xdg-utils" case "$XBPS_TARGET_MACHINE" in @@ -91,7 +91,7 @@ do_configure() { # compile gn early, so it can be used to generate gni stuff AR="ar" CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD LD=$CXX_FOR_BUILD \ - python2 tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles + tools/gn/bootstrap/bootstrap.py --skip-generate-buildfiles # we need to generate ppc64 stuff for libvpx as it's not shipped # this has to be done before unbundling, but after gn is built @@ -152,16 +152,14 @@ do_configure() { done # switch to system provided dependencies - python2 build/linux/unbundle/replace_gn_files.py --system-libraries ${system} + build/linux/unbundle/replace_gn_files.py --system-libraries ${system} - python2 third_party/libaddressinput/chromium/tools/update-strings.py + third_party/libaddressinput/chromium/tools/update-strings.py # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) # Note: These are for Void Linux use ONLY. conf+=( 'google_api_key="AIzaSyA9gWazKaHaNIPPg2hrMj6_ZSG8AFmq738"' - 'google_default_client_id="126659149423-hoo6ickbk3p1u2qjsdsp0ddciurfvb4t.apps.googleusercontent.com"' - 'google_default_client_secret="_ozIx2D-DKm_se_2NPwV4l5b"' ) conf+=( @@ -199,6 +197,7 @@ do_configure() { conf+=( "rtc_use_pipewire=$(vopt_if pipewire true false)" + 'rtc_pipewire_version="0.3"' ) # Use explicit library dependencies instead of dlopen.