From 2cc48024d02729f92d5677f578fcb7bf03dc76ca Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Tue, 23 Nov 2021 14:06:49 -0500 Subject: chromium 98.0.4710.4 (test) --- .../chromium/files/chromium-95-libyuv-arm.patch | 13 ++ .../files/chromium-97-ScrollView-reference.patch | 23 +++ .../files/chromium-98-EnumTable-crash.patch | 76 ++++++++ .../chromium/files/chromium-98-compiler.patch | 213 +++++++++++++++++++++ .../chromium/files/chromium-98-system-libdrm.patch | 34 ++++ 5 files changed, 359 insertions(+) create mode 100644 www-client/chromium/files/chromium-95-libyuv-arm.patch create mode 100644 www-client/chromium/files/chromium-97-ScrollView-reference.patch create mode 100644 www-client/chromium/files/chromium-98-EnumTable-crash.patch create mode 100644 www-client/chromium/files/chromium-98-compiler.patch create mode 100644 www-client/chromium/files/chromium-98-system-libdrm.patch (limited to 'www-client/chromium/files') diff --git a/www-client/chromium/files/chromium-95-libyuv-arm.patch b/www-client/chromium/files/chromium-95-libyuv-arm.patch new file mode 100644 index 0000000..25a8cdb --- /dev/null +++ b/www-client/chromium/files/chromium-95-libyuv-arm.patch @@ -0,0 +1,13 @@ +diff --git a/third_party/libyuv/source/row_neon.cc b/third_party/libyuv/source/row_neon.cc +index 6ef6f1c..e4a9e1e 100644 +--- a/third_party/libyuv/source/row_neon.cc ++++ b/third_party/libyuv/source/row_neon.cc +@@ -2346,7 +2346,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb, + uint16_t* dst_ab64, + int width) { + asm volatile( +- "vld1.8 q4, %3 \n" // shuffler ++ "vld1.8 {d8, d9}, %3 \n" // shuffler + "1: \n" + "vld1.8 {q0}, [%0]! \n" + "vld1.8 {q2}, [%0]! \n" diff --git a/www-client/chromium/files/chromium-97-ScrollView-reference.patch b/www-client/chromium/files/chromium-97-ScrollView-reference.patch new file mode 100644 index 0000000..91354e4 --- /dev/null +++ b/www-client/chromium/files/chromium-97-ScrollView-reference.patch @@ -0,0 +1,23 @@ +From ce58517e546f3f3433931609683b5b4e455bbb7f Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann +Date: Fri, 5 Nov 2021 15:48:05 +0000 +Subject: [PATCH] GCC: fix undefined reference to ScrollView::SetContents() + +--- + ui/views/controls/scroll_view.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/ui/views/controls/scroll_view.h b/ui/views/controls/scroll_view.h +index 3bd5a8bf..f850728c 100644 +--- a/ui/views/controls/scroll_view.h ++++ b/ui/views/controls/scroll_view.h +@@ -386,6 +386,9 @@ + ScrollViewCallbackList on_contents_scroll_ended_; + }; + ++// Required for WebAppUrlHandlerIntentPickerView ++template View* ScrollView::SetContents(std::unique_ptr a_view); ++ + BEGIN_VIEW_BUILDER(VIEWS_EXPORT, ScrollView, View) + VIEW_BUILDER_VIEW_TYPE_PROPERTY(View, Contents) + VIEW_BUILDER_PROPERTY(ui::LayerType, ContentsLayerType) diff --git a/www-client/chromium/files/chromium-98-EnumTable-crash.patch b/www-client/chromium/files/chromium-98-EnumTable-crash.patch new file mode 100644 index 0000000..f058ec1 --- /dev/null +++ b/www-client/chromium/files/chromium-98-EnumTable-crash.patch @@ -0,0 +1,76 @@ +diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h +index 842553a..89de703 100644 +--- a/components/cast_channel/enum_table.h ++++ b/components/cast_channel/enum_table.h +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + #include "base/check_op.h" + #include "base/notreached.h" +@@ -187,7 +188,6 @@ class + inline constexpr GenericEnumTableEntry(int32_t value); + inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str); + +- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete; + GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete; + + private: +@@ -253,7 +253,6 @@ class EnumTable { + constexpr Entry(E value, base::StringPiece str) + : GenericEnumTableEntry(static_cast(value), str) {} + +- Entry(const Entry&) = delete; + Entry& operator=(const Entry&) = delete; + }; + +@@ -312,15 +311,14 @@ class EnumTable { + if (is_sorted_) { + const std::size_t index = static_cast(value); + if (ANALYZER_ASSUME_TRUE(index < data_.size())) { +- const auto& entry = data_.begin()[index]; ++ const auto& entry = data_[index]; + if (ANALYZER_ASSUME_TRUE(entry.has_str())) + return entry.str(); + } + return absl::nullopt; + } + return GenericEnumTableEntry::FindByValue( +- reinterpret_cast(data_.begin()), +- data_.size(), static_cast(value)); ++ &data_[0], data_.size(), static_cast(value)); + } + + // This overload of GetString is designed for cases where the argument is a +@@ -348,8 +346,7 @@ class EnumTable { + // enum value directly. + absl::optional GetEnum(base::StringPiece str) const { + auto* entry = GenericEnumTableEntry::FindByString( +- reinterpret_cast(data_.begin()), +- data_.size(), str); ++ &data_[0], data_.size(), str); + return entry ? static_cast(entry->value) : absl::optional(); + } + +@@ -364,7 +361,7 @@ class EnumTable { + // Align the data on a cache line boundary. + alignas(64) + #endif +- std::initializer_list data_; ++ const std::vector data_; + bool is_sorted_; + + constexpr EnumTable(std::initializer_list data, bool is_sorted) +@@ -376,8 +373,8 @@ class EnumTable { + + for (std::size_t i = 0; i < data.size(); i++) { + for (std::size_t j = i + 1; j < data.size(); j++) { +- const Entry& ei = data.begin()[i]; +- const Entry& ej = data.begin()[j]; ++ const Entry& ei = data[i]; ++ const Entry& ej = data[j]; + DCHECK(ei.value != ej.value) + << "Found duplicate enum values at indices " << i << " and " << j; + DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str())) diff --git a/www-client/chromium/files/chromium-98-compiler.patch b/www-client/chromium/files/chromium-98-compiler.patch new file mode 100644 index 0000000..49826bf --- /dev/null +++ b/www-client/chromium/files/chromium-98-compiler.patch @@ -0,0 +1,213 @@ +From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001 +From: Mike Gilbert +Date: Sun, 14 Nov 2021 09:03:47 +0000 +Subject: [PATCH] Disable various compiler configs + +--- + build/config/compiler/BUILD.gn | 98 ++++++---------------------------- + 1 file changed, 17 insertions(+), 81 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 46ab685..a60f0ff 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,24 +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" ] +- } +- } +- } +- + # C11/C++11 compiler flags setup. + # --------------------------- + if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) || +@@ -1221,45 +1201,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. +@@ -1546,7 +1487,7 @@ config("chromium_code") { + defines = [ "_HAS_NODISCARD" ] + } + } else { +- cflags = [ "-Wall" ] ++ cflags = [] + if (treat_warnings_as_errors) { + cflags += [ "-Werror" ] + +@@ -1555,10 +1496,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. +@@ -1567,15 +1504,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" ] +@@ -1943,7 +1871,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. +@@ -1983,7 +1912,8 @@ config("optimize") { + } + + # Turn off optimizations. +-config("no_optimize") { ++config("no_optimize") { } ++config("xno_optimize") { + if (is_win) { + cflags = [ + "/Od", # Disable optimization. +@@ -2023,7 +1953,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: +@@ -2056,7 +1987,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: +@@ -2082,7 +2014,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 +@@ -2202,7 +2135,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. +@@ -2326,7 +2260,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 = [] +@@ -2395,7 +2330,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" ] + +-- +2.32.0 + diff --git a/www-client/chromium/files/chromium-98-system-libdrm.patch b/www-client/chromium/files/chromium-98-system-libdrm.patch new file mode 100644 index 0000000..f2f18be --- /dev/null +++ b/www-client/chromium/files/chromium-98-system-libdrm.patch @@ -0,0 +1,34 @@ +diff --git a/media/gpu/chromeos/BUILD.gn b/media/gpu/chromeos/BUILD.gn +index a5c8945..d742d80 100644 +--- a/media/gpu/chromeos/BUILD.gn ++++ b/media/gpu/chromeos/BUILD.gn +@@ -32,6 +32,7 @@ source_set("chromeos") { + + if (use_vaapi) { + deps += [ ++ "//build/config/linux/libdrm", + "//media/gpu/vaapi", + "//media/gpu/vaapi:common", + ] +diff --git a/media/gpu/chromeos/video_decoder_pipeline.cc b/media/gpu/chromeos/video_decoder_pipeline.cc +index 2d77cd9..1883fd4 100644 +--- a/media/gpu/chromeos/video_decoder_pipeline.cc ++++ b/media/gpu/chromeos/video_decoder_pipeline.cc +@@ -4,6 +4,9 @@ + + #include "media/gpu/chromeos/video_decoder_pipeline.h" + ++#if BUILDFLAG(USE_VAAPI) ++#include ++#endif + #include + + #include "base/bind.h" +@@ -28,7 +31,6 @@ + + #if BUILDFLAG(USE_VAAPI) + #include "media/gpu/vaapi/vaapi_video_decoder.h" +-#include "third_party/libdrm/src/include/drm/drm_fourcc.h" + #elif BUILDFLAG(USE_V4L2_CODEC) + #include "media/gpu/v4l2/v4l2_video_decoder.h" + #else -- cgit v1.2.3