From f47ad9f0ff5f00da978f70c1c5000ac2d454aaa0 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Wed, 8 Dec 2021 18:16:38 -0500 Subject: chromium 98.0.4750.0 (test) --- .../files/chromium-98-MiraclePtr-gcc-ice.patch | 91 ++++++++++ .../files/chromium-98-c++17-constexpr-1.patch | 65 +++++++ .../chromium/files/chromium-98-compiler-r1.patch | 200 +++++++++++++++++++++ .../chromium/files/chromium-glibc-2.34.patch | 50 ++++++ 4 files changed, 406 insertions(+) create mode 100644 www-client/chromium/files/chromium-98-MiraclePtr-gcc-ice.patch create mode 100644 www-client/chromium/files/chromium-98-c++17-constexpr-1.patch create mode 100644 www-client/chromium/files/chromium-98-compiler-r1.patch create mode 100644 www-client/chromium/files/chromium-glibc-2.34.patch (limited to 'www-client/chromium/files') 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 gl_; +--- a/ui/accessibility/ax_node.h ++++ b/ui/accessibility/ax_node.h +@@ -822,10 +822,10 @@ AXNode::ChildIteratorBase*LastChild)()) ++ if (child_ == (parent_.get()->*LastChild)()) + child_ = nullptr; + else +- child_ = (child_->*NextSibling)(); ++ child_ = (child_.get()->*NextSibling)(); + } + + return *this; +@@ -850,12 +850,12 @@ AXNode::ChildIteratorBase*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 +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 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 +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 +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 + #include + #include ++#include + #include + #include + #include +@@ -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 + -- cgit v1.2.3