summaryrefslogtreecommitdiff
path: root/www-client/chromium/files
diff options
context:
space:
mode:
Diffstat (limited to 'www-client/chromium/files')
-rw-r--r--www-client/chromium/files/chromium-98-MiraclePtr-gcc-ice.patch91
-rw-r--r--www-client/chromium/files/chromium-98-c++17-constexpr-1.patch65
-rw-r--r--www-client/chromium/files/chromium-98-compiler-r1.patch200
-rw-r--r--www-client/chromium/files/chromium-glibc-2.34.patch50
4 files changed, 406 insertions, 0 deletions
diff --git a/www-client/chromium/files/chromium-98-MiraclePtr-gcc-ice.patch b/www-client/chromium/files/chromium-98-MiraclePtr-gcc-ice.patch
new file mode 100644
index 0000000..c538bef
--- /dev/null
+++ b/www-client/chromium/files/chromium-98-MiraclePtr-gcc-ice.patch
@@ -0,0 +1,91 @@
+Workaround GCC ICE with MiraclePtr, see https://gcc.gnu.org/PR103455
+
+--- a/gpu/command_buffer/client/gl_helper.h
++++ b/gpu/command_buffer/client/gl_helper.h
+@@ -34,7 +34,7 @@ class ScopedGLuint {
+ GenFunc gen_func,
+ DeleteFunc delete_func)
+ : gl_(gl), id_(0u), delete_func_(delete_func) {
+- (gl_->*gen_func)(1, &id_);
++ (gl_.get()->*gen_func)(1, &id_);
+ }
+
+ operator GLuint() const { return id_; }
+@@ -46,7 +46,7 @@ class ScopedGLuint {
+
+ ~ScopedGLuint() {
+ if (id_ != 0) {
+- (gl_->*delete_func_)(1, &id_);
++ (gl_.get()->*delete_func_)(1, &id_);
+ }
+ }
+
+@@ -86,13 +86,13 @@ class ScopedBinder {
+ typedef void (gles2::GLES2Interface::*BindFunc)(GLenum target, GLuint id);
+ ScopedBinder(gles2::GLES2Interface* gl, GLuint id, BindFunc bind_func)
+ : gl_(gl), bind_func_(bind_func) {
+- (gl_->*bind_func_)(Target, id);
++ (gl_.get()->*bind_func_)(Target, id);
+ }
+
+ ScopedBinder(const ScopedBinder&) = delete;
+ ScopedBinder& operator=(const ScopedBinder&) = delete;
+
+- virtual ~ScopedBinder() { (gl_->*bind_func_)(Target, 0); }
++ virtual ~ScopedBinder() { (gl_.get()->*bind_func_)(Target, 0); }
+
+ private:
+ raw_ptr<gles2::GLES2Interface> gl_;
+--- a/ui/accessibility/ax_node.h
++++ b/ui/accessibility/ax_node.h
+@@ -822,10 +822,10 @@ AXNode::ChildIteratorBase<NodeType,
+ // increment the iterator past the end, we remain at the past-the-end iterator
+ // condition.
+ if (child_ && parent_) {
+- if (child_ == (parent_->*LastChild)())
++ if (child_ == (parent_.get()->*LastChild)())
+ child_ = nullptr;
+ else
+- child_ = (child_->*NextSibling)();
++ child_ = (child_.get()->*NextSibling)();
+ }
+
+ return *this;
+@@ -850,12 +850,12 @@ AXNode::ChildIteratorBase<NodeType,
+ // If the iterator is past the end, |child_=nullptr|, decrement the iterator
+ // gives us the last iterator element.
+ if (!child_)
+- child_ = (parent_->*LastChild)();
++ child_ = (parent_.get()->*LastChild)();
+ // Decrement the iterator gives us the previous element, except when the
+ // iterator is at the beginning; in which case, decrementing the iterator
+ // remains at the beginning.
+- else if (child_ != (parent_->*FirstChild)())
+- child_ = (child_->*PreviousSibling)();
++ else if (child_ != (parent_.get()->*FirstChild)())
++ child_ = (child_.get()->*PreviousSibling)();
+ }
+
+ return *this;
+--- a/ui/views/layout/flex_layout_types.cc
++++ b/ui/views/layout/flex_layout_types.cc
+@@ -59,7 +59,7 @@ class LazySize {
+ const gfx::Size& operator*() const { return *get(); }
+ const gfx::Size* get() const {
+ if (!size_)
+- size_ = (view_->*size_func_)();
++ size_ = (view_.get()->*size_func_)();
+ return &size_.value();
+ }
+ LazyDimension width() const {
+--- a/chrome/browser/ui/views/passwords/auto_signin_first_run_dialog_view.cc
++++ b/chrome/browser/ui/views/passwords/auto_signin_first_run_dialog_view.cc
+@@ -37,7 +37,7 @@ AutoSigninFirstRunDialogView::AutoSigninFirstRunDialogView(
+ auto call_controller = [](AutoSigninFirstRunDialogView* dialog,
+ ControllerCallbackFn func) {
+ if (dialog->controller_) {
+- (dialog->controller_->*func)();
++ (dialog->controller_.get()->*func)();
+ }
+ };
+ SetAcceptCallback(
diff --git a/www-client/chromium/files/chromium-98-c++17-constexpr-1.patch b/www-client/chromium/files/chromium-98-c++17-constexpr-1.patch
new file mode 100644
index 0000000..d368b36
--- /dev/null
+++ b/www-client/chromium/files/chromium-98-c++17-constexpr-1.patch
@@ -0,0 +1,65 @@
+From a5935eff52dcc65b02a49fb89aa2c9ec5ad3e4a6 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 1 Dec 2021 08:47:30 +0000
+Subject: [PATCH] GCC: remove constexpr to fix linker error
+
+---
+ .../allocator_shim_default_dispatch_to_partition_alloc.cc | 2 +-
+ components/services/app_service/public/cpp/icon_types.cc | 2 +-
+ content/browser/web_package/signed_exchange_prologue.cc | 2 +-
+ device/bluetooth/bluetooth_adapter.cc | 2 +-
+ 4 files changed, 4 insertion(+), 4 deletion(-)
+
+diff --git a/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc b/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc
+index 80eb4b8..4707224 100644
+--- a/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc
++++ b/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc
+@@ -605,7 +605,7 @@ void ConfigurePartitionAlloc() {
+ } // namespace allocator
+ } // namespace base
+
+-constexpr AllocatorDispatch AllocatorDispatch::default_dispatch = {
++const AllocatorDispatch AllocatorDispatch::default_dispatch = {
+ &base::internal::PartitionMalloc, // alloc_function
+ &base::internal::PartitionMallocUnchecked, // alloc_unchecked_function
+ &base::internal::PartitionCalloc, // alloc_zero_initialized_function
+diff --git a/components/services/app_service/public/cpp/icon_types.cc b/components/services/app_service/public/cpp/icon_types.cc
+index c857d15..292232e 100644
+--- a/components/services/app_service/public/cpp/icon_types.cc
++++ b/components/services/app_service/public/cpp/icon_types.cc
+@@ -21,7 +21,7 @@ bool IconKey::operator==(const IconKey& other) const {
+ }
+
+ constexpr uint64_t IconKey::kDoesNotChangeOverTime = 0;
+-constexpr int32_t IconKey::kInvalidResourceId = 0;
++const int32_t IconKey::kInvalidResourceId = 0;
+
+ IconValue::IconValue() = default;
+ IconValue::~IconValue() = default;
+diff --git a/content/browser/web_package/signed_exchange_prologue.cc b/content/browser/web_package/signed_exchange_prologue.cc
+index 9dfb4ac..a1f99eb 100644
+--- a/content/browser/web_package/signed_exchange_prologue.cc
++++ b/content/browser/web_package/signed_exchange_prologue.cc
+@@ -30,7 +30,7 @@ constexpr size_t kMaximumCBORHeaderLength = 512 * 1024;
+
+ namespace signed_exchange_prologue {
+
+-constexpr size_t BeforeFallbackUrl::kEncodedSizeInBytes =
++const size_t BeforeFallbackUrl::kEncodedSizeInBytes =
+ sizeof(kSignedExchangeMagic) + kFallbackUrlLengthFieldSizeInBytes;
+
+ size_t Parse2BytesEncodedLength(base::span<const uint8_t> input) {
+diff --git a/device/bluetooth/bluetooth_adapter.cc b/device/bluetooth/bluetooth_adapter.cc
+index ddde285..9c794c9 100644
+--- a/device/bluetooth/bluetooth_adapter.cc
++++ b/device/bluetooth/bluetooth_adapter.cc
+@@ -674,6 +674,6 @@ void BluetoothAdapter::RemoveTimedOutDevices() {
+ }
+
+ // static
+-constexpr base::TimeDelta BluetoothAdapter::timeoutSec = base::Seconds(180);
++const base::TimeDelta BluetoothAdapter::timeoutSec = base::Seconds(180);
+
+ } // namespace device
+--
+2.32.0
diff --git a/www-client/chromium/files/chromium-98-compiler-r1.patch b/www-client/chromium/files/chromium-98-compiler-r1.patch
new file mode 100644
index 0000000..9d39d24
--- /dev/null
+++ b/www-client/chromium/files/chromium-98-compiler-r1.patch
@@ -0,0 +1,200 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index 8048ec5e8..bd68c4f78 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -291,9 +291,7 @@ config("compiler") {
+
+ configs += [
+ # See the definitions below.
+- ":clang_revision",
+ ":rustc_revision",
+- ":compiler_cpu_abi",
+ ":compiler_codegen",
+ ":compiler_deterministic",
+ ]
+@@ -534,23 +532,6 @@ config("compiler") {
+ ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+ }
+
+- if (is_clang && !is_nacl && current_os != "zos") {
+- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+-
+- # TODO(hans): Remove this once Clang generates better optimized debug info
+- # by default. https://crbug.com/765793
+- cflags += [
+- "-mllvm",
+- "-instcombine-lower-dbg-declare=0",
+- ]
+- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
+- if (is_win) {
+- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
+- } else {
+- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
+- }
+- }
+-
+ # TODO(crbug.com/1235145): Investigate why/if this should be needed.
+ if (is_win) {
+ cflags += [ "/clang:-ffp-contract=off" ]
+@@ -1231,45 +1212,6 @@ config("compiler_deterministic") {
+ }
+ }
+
+- # Makes builds independent of absolute file path.
+- if (is_clang && strip_absolute_paths_from_debug_symbols) {
+- # If debug option is given, clang includes $cwd in debug info by default.
+- # For such build, this flag generates reproducible obj files even we use
+- # different build directory like "out/feature_a" and "out/feature_b" if
+- # we build same files with same compile flag.
+- # Other paths are already given in relative, no need to normalize them.
+- if (is_nacl) {
+- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
+- cflags += [
+- "-Xclang",
+- "-fdebug-compilation-dir",
+- "-Xclang",
+- ".",
+- ]
+- } else {
+- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
+- # and -fcoverage-compilation-dir=.
+- cflags += [ "-ffile-compilation-dir=." ]
+- }
+- if (!is_win) {
+- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
+- asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
+- }
+-
+- if (is_win && use_lld) {
+- if (symbol_level == 2 || (is_clang && using_sanitizer)) {
+- # Absolutize source file paths for PDB. Pass the real build directory
+- # if the pdb contains source-level debug information and if linker
+- # reproducibility is not critical.
+- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ]
+- } else {
+- # Use a fake fixed base directory for paths in the pdb to make the pdb
+- # output fully deterministic and independent of the build directory.
+- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ]
+- }
+- }
+- }
+-
+ # Tells the compiler not to use absolute paths when passing the default
+ # paths to the tools it invokes. We don't want this because we don't
+ # really need it and it can mess up the goma cache entries.
+@@ -1556,7 +1498,7 @@ config("chromium_code") {
+ defines = [ "_HAS_NODISCARD" ]
+ }
+ } else {
+- cflags = [ "-Wall" ]
++ cflags = []
+ if (treat_warnings_as_errors) {
+ cflags += [ "-Werror" ]
+
+@@ -1565,10 +1507,6 @@ config("chromium_code") {
+ # well.
+ ldflags = [ "-Werror" ]
+ }
+- if (is_clang) {
+- # Enable extra warnings for chromium_code when we control the compiler.
+- cflags += [ "-Wextra" ]
+- }
+
+ # In Chromium code, we define __STDC_foo_MACROS in order to get the
+ # C99 macros on Mac and Linux.
+@@ -1577,15 +1515,6 @@ config("chromium_code") {
+ "__STDC_FORMAT_MACROS",
+ ]
+
+- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
+- current_cpu != "s390" && current_cpu != "ppc64" &&
+- current_cpu != "mips" && current_cpu != "mips64") {
+- # Non-chromium code is not guaranteed to compile cleanly with
+- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
+- # disabled, so only do that for Release build.
+- defines += [ "_FORTIFY_SOURCE=2" ]
+- }
+-
+ if (is_mac) {
+ cflags_objc = [ "-Wobjc-missing-property-synthesis" ]
+ cflags_objcc = [ "-Wobjc-missing-property-synthesis" ]
+@@ -1988,7 +1917,8 @@ config("default_stack_frames") {
+ }
+
+ # Default "optimization on" config.
+-config("optimize") {
++config("optimize") { }
++config("xoptimize") {
+ if (is_win) {
+ if (chrome_pgo_phase != 2) {
+ # Favor size over speed, /O1 must be before the common flags.
+@@ -2026,7 +1956,8 @@ config("optimize") {
+ }
+
+ # Turn off optimizations.
+-config("no_optimize") {
++config("no_optimize") { }
++config("xno_optimize") {
+ if (is_win) {
+ cflags = [
+ "/Od", # Disable optimization.
+@@ -2066,7 +1997,8 @@ config("no_optimize") {
+ # Turns up the optimization level. On Windows, this implies whole program
+ # optimization and link-time code generation which is very expensive and should
+ # be used sparingly.
+-config("optimize_max") {
++config("optimize_max") { }
++config("xoptimize_max") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2099,7 +2031,8 @@ config("optimize_max") {
+ #
+ # TODO(crbug.com/621335) - rework how all of these configs are related
+ # so that we don't need this disclaimer.
+-config("optimize_speed") {
++config("optimize_speed") { }
++config("xoptimize_speed") {
+ if (is_nacl && is_nacl_irt) {
+ # The NaCl IRT is a special case and always wants its own config.
+ # Various components do:
+@@ -2125,7 +2058,8 @@ config("optimize_speed") {
+ }
+ }
+
+-config("optimize_fuzzing") {
++config("optimize_fuzzing") { }
++config("xoptimize_fuzzing") {
+ cflags = [ "-O1" ] + common_optimize_on_cflags
+ rustflags = [ "-Copt-level=1" ]
+ ldflags = common_optimize_on_ldflags
+@@ -2245,7 +2179,8 @@ config("win_pdbaltpath") {
+ }
+
+ # Full symbols.
+-config("symbols") {
++config("symbols") { }
++config("xsymbols") {
+ if (is_win) {
+ if (is_clang) {
+ cflags = [ "/Z7" ] # Debug information in the .obj files.
+@@ -2369,7 +2304,8 @@ config("symbols") {
+ # Minimal symbols.
+ # This config guarantees to hold symbol for stack trace which are shown to user
+ # when crash happens in unittests running on buildbot.
+-config("minimal_symbols") {
++config("minimal_symbols") { }
++config("xminimal_symbols") {
+ if (is_win) {
+ # Functions, files, and line tables only.
+ cflags = []
+@@ -2438,7 +2374,8 @@ config("minimal_symbols") {
+ # This configuration contains function names only. That is, the compiler is
+ # told to not generate debug information and the linker then just puts function
+ # names in the final debug information.
+-config("no_symbols") {
++config("no_symbols") { }
++config("xno_symbols") {
+ if (is_win) {
+ ldflags = [ "/DEBUG" ]
+
diff --git a/www-client/chromium/files/chromium-glibc-2.34.patch b/www-client/chromium/files/chromium-glibc-2.34.patch
new file mode 100644
index 0000000..64c03a6
--- /dev/null
+++ b/www-client/chromium/files/chromium-glibc-2.34.patch
@@ -0,0 +1,50 @@
+From 600d63c2c59a9892dbc5423d7d8bb1565a9f91e7 Mon Sep 17 00:00:00 2001
+From: Michel Salim <michel@fb.com>
+Date: Thu, 04 Nov 2021 14:22:40 -0700
+Subject: [PATCH] Handle long SIGSTKSZ in glibc > 2.33
+
+`SIGSTKSZ` is no longer constant in glibc > 2.33 but a function
+returning a long. Cast before taking `max`.
+
+See https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=85e84fe53699fe9e392edffa993612ce08b2954a;hb=HEAD
+
+Signed-off-by: Michel Salim <michel@fb.com>
+Change-Id: I197f8ff3053eede80d6aed096be4f0113dd43241
+(relocated to chromium repo, removed static)
+---
+
+diff --git a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+index ca353c4..5cdabcf 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+@@ -138,7 +138,7 @@
+ // SIGSTKSZ may be too small to prevent the signal handlers from overrunning
+ // the alternative stack. Ensure that the size of the alternative stack is
+ // large enough.
+- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
++ const unsigned kSigStackSize = std::max(16384U, (unsigned)SIGSTKSZ);
+
+ // Only set an alternative stack if there isn't already one, or if the current
+ // one is too small.
+diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc
+index ca6b595..1c1ee42 100644
+--- a/sandbox/linux/services/credentials.cc
++++ b/sandbox/linux/services/credentials.cc
+@@ -11,6 +11,7 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <sys/syscall.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+@@ -100,7 +101,8 @@ bool ChrootToSafeEmptyDir() {
+ // TODO(crbug.com/1247458) Broken in MSan builds after LLVM f1bb30a4956f.
+ clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS;
+
+- char tls_buf[PTHREAD_STACK_MIN] = {0};
++ char tls_buf[PTHREAD_STACK_MIN];
++ memset(tls_buf, 0, PTHREAD_STACK_MIN);
+ tls = tls_buf;
+ #endif
+