2
0
mirror of https://codeberg.org/kiss-community/repo synced 2025-04-01 10:42:52 -06:00

chromium: Add all the patches.

This commit is contained in:
Dylan Araps 2019-07-28 18:49:11 +03:00
parent e466328429
commit 88dd5993ab
35 changed files with 1468 additions and 3 deletions

View File

@ -1,7 +1,8 @@
#!/bin/sh -e
patch -p1 < chromium-optional-atk-r1.patch
patch -p1 < chromium-optional-dbus-r5.patch
for patch in *.patch; do
patch -p1 < "$patch"
done
# Fix 'python2' shebangs.
find . -type f -name \*.py -exec sed -i '1s|python$|&2|' {} \;
@ -18,12 +19,16 @@ exec python2 "\$@"
EOF
chmod +x ./fix-python-bin/python
# Ensure these ENVARS are used.
tc-export AR CC CXX NM
python2 tools/gn/bootstrap/bootstrap.py -s -v \
--gn-gen-args 'is_debug=false use_jumbo_build=true enable_nacl=false symbol_level=0 blink_symbol_level=0 enable_nacl_nonsfi=false use_gtk3=true use_gold=false treat_warnings_as_errors=false fatal_linker_warnings=false use_sysroot=false use_cups=false rtc_use_x11=true use_atk=false use_dbus=false safe_browsing_mode=0 use_pulseaudio=false use_use_gconf=false use_gio=false use_gnome_keyring=false use_kerberos=false'
out/Release/gn gen out/Release \
--args='is_debug=false use_jumbo_build=true enable_nacl=false symbol_level=0 blink_symbol_level=0 enable_nacl_nonsfi=false use_gtk3=true use_gold=false treat_warnings_as_errors=false fatal_linker_warnings=false use_sysroot=false use_cups=false rtc_use_x11=true use_atk=false use_dbus=false safe_browsing_mode=0 use_pulseaudio=false use_use_gconf=false use_gio=false use_gnome_keyring=false use_kerberos=false' \
--script-executable=/usr/bin/python2
ninja -C out/Release chrome chromedriver
# Temporary.
sh

View File

@ -1,3 +1,35 @@
510e6ca7ccc218b401b375c13656f6aecab196b03142026dc3602b9d1804a5ac chromium-75.0.3770.142.tar.xz
ece2d462169429541a7fa1cc7f3f72698e883292500dde6f1c64ce165dd6abd9 chromium-75-fix-gn-gen.patch
b386cb54d0229c640cc44012a9dbb0b822c979810a62be92dc44e1a3c8a457d3 chromium-75-gcc-angle-fix.patch
1830b37534e2adf7fd22569c1bbe10eb29bcf85bd9437dc5039c91e7097dc627 chromium-75-llvm8.patch
3376f7868124a45a8ee325b1fbd607aabdfd86adba6b77d49b1399dcddc70605 chromium-75-lss.patch
a53cf274de7b13ab06fb7867b45b4bfdb1229c5686f3874b2854e3172824ce19 chromium-75-noexcept.patch
788ad2094f5c6991c3c4514000d153a1ecb3a23767594092748b6e85a367ddbd chromium-75-pure-virtual.patch
762f707ebd9397e7be2ba47bc106911dc2535ff82f37dbbeeded683b66bffa32 chromium-75-unique_ptr.patch
365e1a76dc3e508846a221d4490d134ed7fa3d36a3a28ce0b03f5d66c1503778 chromium-compiler-r9.patch
daa26bab3a3a9f8b8539dffefa7a07f6d7ac07476d7ae762e3f0169985e429ff chromium-fix-char_traits.patch
75c31df557238c5bdc2b91401b13b381b68c812594d89f8f053e0e489d4991c2 chromium-optional-atk-r1.patch
6592a17ac557d4cdd5dbb9cd2445c95c1668f17d8c95a7f5ebf42ebbde35430e chromium-optional-dbus-r5.patch
f0e59aee57bffc87ab8d51f1f893ec8ed561769328352a9124f717e886b8054f chromium-url-formatter.patch
8c6ecc26aab9f4acc911350d9bb1e40f32cad144b6a08c9d7b188e9598d0f2de chromium-widevine-r4.patch
6d921355eaef7101a0713e0e7a88b7a7c4e8aa28391325399fdd0a59f2358d13 musl-cdefs-r2.patch
fec5590225bf3d0238ee45f8f67fcb032946abe351383653c3026ce4e706d48f musl-dlopen.patch
f1375a3acd205ee46dd5d7c729e09d19982833f71e5eb1fb9c3ec5d3de5ffe90 musl-dns-r2.patch
f1f414b16acc1986eca620c264fffc1a73e6468e4d8ae076b8ab7c2266c66c58 musl-execinfo-r8.patch
49537286728fe29d2e9d3e9040480576aa13be862fb68596fb9629462aab30c1 musl-fpstate-r1.patch
f2f8d67f26dc69e050950b522410cab6ab8ee4170ad810f15ed75ce30fe0ae8d musl-headers-r1.patch
a7bffd948d4f55c7d57985f85b6fbbbbea3a6638be223b6b7863008dd1b72006 musl-libcpp.patch
50505f127d17e25c298848b8a02664fd03083ebbd33e3318f818cd4657a51fee musl-mallinfo-r7.patch
2fbc6fba166788e5f6d8a4846fcffc00f703f47b37f16a5e832132e01cc8c565 musl-pthread-r5.patch
375df387335a82bea9362f819a93575877de94eae96528347726e6b5d9c4a4cd musl-ptrace.patch
c8dac5abf0cd34f1eee71c6c1bce619ec213d9d2f9511654ccc947a2ad0e6850 musl-realpath.patch
ebde3be74f0db9486cf99cd7faafb29f1472f432046b8801c494cff5713c8d94 musl-sandbox-r3.patch
8b183ce939a5ec37dee6af3e473ce71bd86c9cf1e647a667b4a3f760b56404de musl-secure_getenv-r1.patch
3ff4f1eb041048efe9ff8ce5d91fcb092d2fc06e373459ca2d9d590ee176dfb9 musl-siginfo.patch
675c056977f396ec135c50b25601cf10b545c357e5a21baf7e0e4fe71e3ecdf1 musl-socket.patch
5813a3031e97178a3e36fe48b24f3ddec934f43505819b66dcea5c0dd340644c musl-stacksize-r3.patch
4e96a1204c6cc0d9ab38a7232121709b48ed1704391c30ed3ba7b22bc0881b92 musl-stacktrace-r2.patch
1f10590d5322968667874c4aa5a4314e9dc5f659091de67f032ebe9654cd5482 musl-syscall.patch
a4b0374c536128483cdaeb706f2b1a7144168ae6e44d9ca2df7445d1be780afc musl-ucontext-r1.patch
72d806af57a729d36b1eb482419245fba4c58d035fc20e58dbbcf88c35d50e97 musl-v8-monotonic-pthread-cont_timedwait.patch
e191334207865e43b831492913d58cae4c89449d32b362b9f9aa7e1d196837a9 musl-wordsize-r1.patch

View File

@ -0,0 +1,27 @@
Fix 'gn gen' when gn is built in debug config
Fixes this DCHECK:
https://cs.chromium.org/chromium/gn/tools/gn/source_file.cc?q=source_file.cc&sq=package:chromium&dr&l=21
BUG=None
Change-Id: Ide60a650c800d4a0981b4f28cf0427fa91616464
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1613888
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#660103}
diff --git a/tools/perf/contrib/vr_benchmarks/BUILD.gn b/tools/perf/contrib/vr_benchmarks/BUILD.gn
index 758057a..51644e0 100644
--- a/tools/perf/contrib/vr_benchmarks/BUILD.gn
+++ b/tools/perf/contrib/vr_benchmarks/BUILD.gn
@@ -72,7 +72,7 @@
"//chrome/browser/resources/vr/assets/vr_assets_component_files.json",
]
outputs = [
- "$target_gen_dir/vr_assets_profile/",
+ "$target_gen_dir/vr_assets_profile",
]
args = [
"--output",

View File

@ -0,0 +1,20 @@
--- a/third_party/angle/src/common/debug.h 2019-06-02 17:59:16.698392030 -0000
+++ b/third_party/angle/src/common/debug.h 2019-06-02 17:59:48.738265672 -0000
@@ -248,7 +248,7 @@
# define EVENT(message, ...) (void(0))
#endif
-#if defined(COMPILER_GCC) || defined(__clang__)
+#if defined(__GNUC__) || defined(__clang__)
# define ANGLE_CRASH() __builtin_trap()
#else
# define ANGLE_CRASH() ((void)(*(volatile char *)0 = 0)), __assume(0)
@@ -336,7 +336,7 @@
# define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
_Pragma("clang diagnostic push") _Pragma("clang diagnostic error \"-Wpadded\"")
# define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("clang diagnostic pop")
-#elif defined(COMPILER_GCC)
+#elif defined(__GNUC__)
# define ANGLE_ENABLE_STRUCT_PADDING_WARNINGS \
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic error \"-Wpadded\"")
# define ANGLE_DISABLE_STRUCT_PADDING_WARNINGS _Pragma("GCC diagnostic pop")

View File

@ -0,0 +1,17 @@
Issue 945938: Build fails with clang/llvm-8
https://bugs.chromium.org/p/chromium/issues/detail?id=945938&q=TabStripModelChange&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Component%20Status%20Owner%20Summary%20OS%20Modified
diff --git a/chrome/browser/ui/tabs/tab_strip_model_observer.h b/chrome/browser/ui/tabs/tab_strip_model_observer.h
index 6c8bce5..7f67b7d 100644
--- a/chrome/browser/ui/tabs/tab_strip_model_observer.h
+++ b/chrome/browser/ui/tabs/tab_strip_model_observer.h
@@ -135,7 +135,7 @@ class TabStripModelChange {
private:
const Type type_ = kSelectionOnly;
- const std::vector<Delta> deltas_;
+ std::vector<Delta> deltas_;
DISALLOW_COPY_AND_ASSIGN(TabStripModelChange);
};

View File

@ -0,0 +1,63 @@
--- a/third_party/lss/BUILD.gn
+++ b/third_party/lss/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright 2019 The Crashpad Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("../../build/crashpad_buildconfig.gni")
+
+config("lss_config") {
+ if (crashpad_is_in_chromium) {
+ defines = [ "CRASHPAD_LSS_SOURCE_EXTERNAL" ]
+ } else {
+ defines = [ "CRASHPAD_LSS_SOURCE_EMBEDDED" ]
+ }
+}
+
+source_set("lss") {
+ public_configs = [ ":lss_config" ]
+
+ sources = [
+ "lss.h",
+ ]
+}
--- a/third_party/lss/lss.h
+++ b/third_party/lss/lss.h
@@ -0,0 +1,26 @@
+// Copyright 2019 The Crashpad Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef CRASHPAD_THIRD_PARTY_LSS_LSS_H_
+#define CRASHPAD_THIRD_PARTY_LSS_LSS_H_
+
+#if defined(CRASHPAD_LSS_SOURCE_EXTERNAL)
+#include "third_party/lss/linux_syscall_support.h"
+#elif defined(CRASHPAD_LSS_SOURCE_EMBEDDED)
+#include "third_party/lss/lss/linux_syscall_support.h"
+#else
+#error Unknown lss source
+#endif
+
+#endif // CRASHPAD_THIRD_PARTY_LSS_LSS_H_

View File

@ -0,0 +1,101 @@
From 41d954dec0669c9a85730c0bde7df7ba7a0ff43e Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Thu, 06 Jun 2019 15:30:49 +0000
Subject: [PATCH] Fix AutocompleteMatch move constructor/assign operator noexcept
For AutocompleteMatch to declare noexcept them, all the contained
properties need to be noexcept too. This is required at least
for SuggestionAnswer, because base::string16 will make default
calculated signature of the move operator noexcept(false).
To avoid this issue we explicitely declare them on SuggestionAnswer,
and its member classes TextField and ImageLine.
Bug: 819294
Change-Id: I8714f2c6352a3292bdebdc3aed9790270e49c580
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1554669
Reviewed-by: Kevin Bailey <krb@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#666714}
---
diff --git a/components/omnibox/browser/suggestion_answer.cc b/components/omnibox/browser/suggestion_answer.cc
index 151e55f..a0c9049 100644
--- a/components/omnibox/browser/suggestion_answer.cc
+++ b/components/omnibox/browser/suggestion_answer.cc
@@ -55,6 +55,12 @@
SuggestionAnswer::TextField::TextField() = default;
SuggestionAnswer::TextField::~TextField() = default;
+SuggestionAnswer::TextField::TextField(const TextField&) = default;
+SuggestionAnswer::TextField::TextField(TextField&&) noexcept = default;
+SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ const TextField&) = default;
+SuggestionAnswer::TextField& SuggestionAnswer::TextField::operator=(
+ TextField&&) noexcept = default;
// static
bool SuggestionAnswer::TextField::ParseTextField(const base::Value& field_json,
@@ -93,9 +99,12 @@
SuggestionAnswer::ImageLine::ImageLine()
: num_text_lines_(1) {}
SuggestionAnswer::ImageLine::ImageLine(const ImageLine& line) = default;
+SuggestionAnswer::ImageLine::ImageLine(ImageLine&&) noexcept = default;
SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=(
const ImageLine& line) = default;
+SuggestionAnswer::ImageLine& SuggestionAnswer::ImageLine::operator=(
+ ImageLine&&) noexcept = default;
SuggestionAnswer::ImageLine::~ImageLine() {}
@@ -251,9 +260,14 @@
SuggestionAnswer::SuggestionAnswer(const SuggestionAnswer& answer) = default;
+SuggestionAnswer::SuggestionAnswer(SuggestionAnswer&&) noexcept = default;
+
SuggestionAnswer& SuggestionAnswer::operator=(const SuggestionAnswer& answer) =
default;
+SuggestionAnswer& SuggestionAnswer::operator=(SuggestionAnswer&&) noexcept =
+ default;
+
SuggestionAnswer::~SuggestionAnswer() = default;
// static
diff --git a/components/omnibox/browser/suggestion_answer.h b/components/omnibox/browser/suggestion_answer.h
index 31be937..2840ace 100644
--- a/components/omnibox/browser/suggestion_answer.h
+++ b/components/omnibox/browser/suggestion_answer.h
@@ -125,6 +125,10 @@
public:
TextField();
~TextField();
+ TextField(const TextField&);
+ TextField(TextField&&) noexcept;
+ TextField& operator=(const TextField&);
+ TextField& operator=(TextField&&) noexcept;
// Parses |field_json| dictionary and populates |text_field| with the
// contents. If any of the required elements is missing, returns false and
@@ -162,7 +166,9 @@
public:
ImageLine();
explicit ImageLine(const ImageLine& line);
+ ImageLine(ImageLine&&) noexcept;
ImageLine& operator=(const ImageLine& line);
+ ImageLine& operator=(ImageLine&&) noexcept;
~ImageLine();
// Parses dictionary |line_json| and populates |image_line| with the
@@ -213,7 +219,9 @@
SuggestionAnswer();
SuggestionAnswer(const SuggestionAnswer& answer);
+ SuggestionAnswer(SuggestionAnswer&&) noexcept;
SuggestionAnswer& operator=(const SuggestionAnswer& answer);
+ SuggestionAnswer& operator=(SuggestionAnswer&&) noexcept;
~SuggestionAnswer();
// Parses dictionary |answer_json| and fills a SuggestionAnswer containing the

View File

@ -0,0 +1,50 @@
From cdf306db81efaaaa954487585d5a5a16205a5ebd Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Wed, 05 Jun 2019 14:45:06 +0000
Subject: [PATCH] Avoid pure virtual crash destroying RenderProcessUserData
When RenderProcessUserData is destroyed from the destructor of
RenderProcessHostImpl, it is done in the destructor of RenderProcessHost.
At this point RemoveObserver override is already freed, so RenderProcessHost
is pure virtual. This crash happens at least building with GCC:
at /usr/include/c++/8/ext/new_allocator.h:140
(this=0x7fffffffcb50, __in_chrg=<optimized out>) at /usr/include/c++/8/bits/stl_tree.h:964
We need to destroy RenderProcessUserData before that happens. To do that
we can just override RenderProcessHostDestroyed.
Bug: 910288
Change-Id: I38107b178829b0cb7494f5333b765e5b087d82cd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1645366
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#666279}
---
diff --git a/chrome/browser/performance_manager/render_process_user_data.cc b/chrome/browser/performance_manager/render_process_user_data.cc
index 2e2c199..ef6e1fb 100644
--- a/chrome/browser/performance_manager/render_process_user_data.cc
+++ b/chrome/browser/performance_manager/render_process_user_data.cc
@@ -116,4 +116,9 @@
base::Unretained(process_node_.get()), info.exit_code));
}
+void RenderProcessUserData::RenderProcessHostDestroyed(
+ content::RenderProcessHost* host) {
+ host->RemoveUserData(kRenderProcessUserDataKey);
+}
+
} // namespace performance_manager
diff --git a/chrome/browser/performance_manager/render_process_user_data.h b/chrome/browser/performance_manager/render_process_user_data.h
index ac74b1d..f3b4d16 100644
--- a/chrome/browser/performance_manager/render_process_user_data.h
+++ b/chrome/browser/performance_manager/render_process_user_data.h
@@ -47,6 +47,7 @@
void RenderProcessExited(
content::RenderProcessHost* host,
const content::ChildProcessTerminationInfo& info) override;
+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
// All instances are linked together in a doubly linked list to allow orderly
// destruction at browser shutdown time.

View File

@ -0,0 +1,31 @@
From aeed4d1f15ce84a17ea0bc219e258dc4982b2368 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri, 26 Apr 2019 20:07:05 +0000
Subject: [PATCH] libstdc++: do not assume unique_ptr has ostream operator
CompositorFrameReportingController is using DCHECK_NE to compare
several unique_ptr. This is valid in libc++, but on libstdc++ unique_ptr
does not have an ostream operator.
Change-Id: I9f23ef17f02b9e107694ba493f6f8f3caf5cac4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1584292
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#654570}
---
diff --git a/cc/scheduler/compositor_frame_reporting_controller.cc b/cc/scheduler/compositor_frame_reporting_controller.cc
index f1587ed..1b17021 100644
--- a/cc/scheduler/compositor_frame_reporting_controller.cc
+++ b/cc/scheduler/compositor_frame_reporting_controller.cc
@@ -31,8 +31,8 @@
void CompositorFrameReportingController::WillBeginMainFrame() {
DCHECK(reporters_[PipelineStage::kBeginImplFrame]);
- DCHECK_NE(reporters_[PipelineStage::kBeginMainFrame],
- reporters_[PipelineStage::kBeginImplFrame]);
+ DCHECK(reporters_[PipelineStage::kBeginMainFrame] !=
+ reporters_[PipelineStage::kBeginImplFrame]);
reporters_[PipelineStage::kBeginImplFrame]->StartStage(
"SendBeginMainFrameToCommit");
AdvanceReporterStage(PipelineStage::kBeginImplFrame,

View File

@ -0,0 +1,196 @@
From a1207cc75454e653030716948d27ec27412f6fe8 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Sat, 1 Jun 2019 14:22:57 +0100
Subject: [PATCH] Disable various compiler configs
---
build/config/compiler/BUILD.gn | 68 +++++++++++++++-------------------
1 file changed, 29 insertions(+), 39 deletions(-)
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 4b24c76..0737326 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -230,8 +230,6 @@ config("compiler") {
configs += [
# See the definitions below.
- ":clang_revision",
- ":compiler_cpu_abi",
":compiler_codegen",
":compiler_deterministic",
]
@@ -471,20 +469,6 @@ config("compiler") {
}
}
- if (is_clang && !is_nacl && !use_xcode_clang) {
- cflags += [ "-fcrash-diagnostics-dir=" +
- rebase_path("//tools/clang/crashreports", root_build_dir) ]
-
- cflags += [
- # TODO(hans): Remove this once Clang generates better optimized debug info
- # by default. https://crbug.com/765793
- "-Xclang",
- "-mllvm",
- "-Xclang",
- "-instcombine-lower-dbg-declare=0",
- ]
- }
-
# C11/C++11 compiler flags setup.
# ---------------------------
if (is_linux || is_android || (is_nacl && is_clang) || current_os == "aix") {
@@ -1433,6 +1417,12 @@ config("default_warnings") {
"-Wno-narrowing",
]
+ # -Wno-class-memaccess warns about hash table and vector in blink.
+ # But the violation is intentional.
+ if (!is_nacl) {
+ cflags_cc += [ "-Wno-class-memaccess" ]
+ }
+
# -Wunused-local-typedefs is broken in gcc,
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63872
cflags += [ "-Wno-unused-local-typedefs" ]
@@ -1447,6 +1437,10 @@ config("default_warnings") {
# comments
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61638
cflags += [ "-Wno-comments" ]
+
+ # -Wpacked-not-aligned complains all generated mojom-shared-internal.h
+ # files.
+ cflags += [ "-Wno-packed-not-aligned" ]
}
}
@@ -1523,7 +1517,7 @@ config("chromium_code") {
defines = [ "_HAS_NODISCARD" ]
}
} else {
- cflags = [ "-Wall" ]
+ cflags = []
if (treat_warnings_as_errors) {
cflags += [ "-Werror" ]
@@ -1532,10 +1526,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.
@@ -1544,15 +1534,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" ]
@@ -1941,7 +1922,8 @@ config("default_stack_frames") {
}
# Default "optimization on" config.
-config("optimize") {
+config("optimize") { }
+config("xoptimize") {
if (is_win) {
# TODO(thakis): Remove is_clang here, https://crbug.com/598772
if (is_official_build && full_wpo_on_official && !is_clang) {
@@ -1975,7 +1957,8 @@ config("optimize") {
}
# Same config as 'optimize' but without the WPO flag.
-config("optimize_no_wpo") {
+config("optimize_no_wpo") { }
+config("xoptimize_no_wpo") {
if (is_win) {
# Favor size over speed, /O1 must be before the common flags. The GYP
# build also specifies /Os and /GF but these are implied by /O1.
@@ -1998,7 +1981,8 @@ config("optimize_no_wpo") {
}
# Turn off optimizations.
-config("no_optimize") {
+config("no_optimize") { }
+config("xno_optimize") {
if (is_win) {
cflags = [
"/Od", # Disable optimization.
@@ -2026,7 +2010,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:
@@ -2073,7 +2058,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:
@@ -2111,7 +2097,8 @@ config("optimize_speed") {
}
}
-config("optimize_fuzzing") {
+config("optimize_fuzzing") { }
+config("xoptimize_fuzzing") {
cflags = [ "-O1" ] + common_optimize_on_cflags
ldflags = common_optimize_on_ldflags
visibility = [ ":default_optimization" ]
@@ -2213,7 +2200,8 @@ config("win_pdbaltpath") {
}
# Full symbols.
-config("symbols") {
+config("symbols") { }
+config("xsymbols") {
if (is_win) {
if (use_goma || is_clang) {
# Note that with VC++ this requires is_win_fastlink, enforced elsewhere.
@@ -2323,7 +2311,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) {
# Linker symbols for backtraces only.
cflags = []
@@ -2380,7 +2369,8 @@ config("minimal_symbols") {
}
# No symbols.
-config("no_symbols") {
+config("no_symbols") { }
+config("xno_symbols") {
if (!is_win) {
cflags = [ "-g0" ]
asmflags = cflags
--
2.21.0

View File

@ -0,0 +1,14 @@
--- a/base/strings/char_traits.h
+++ b/base/strings/char_traits.h
@@ -67,9 +67,9 @@
return __builtin_memcmp(s1, s2, n);
#else
for (; n; --n, ++s1, ++s2) {
- if (*s1 < *s2)
+ if ((unsigned char)*s1 < (unsigned char)*s2)
return -1;
- if (*s1 > *s2)
+ if ((unsigned char)*s1 > (unsigned char)*s2)
return 1;
}
return 0;

View File

@ -0,0 +1,27 @@
diff --git chromium-73.0.3683.103/components/url_formatter/url_formatter.cc chromium-73.0.3683.103/components/url_formatter/url_formatter.cc
index 97bc67e4b..caead697b 100644
--- chromium-73.0.3683.103/components/url_formatter/url_formatter.cc
+++ chromium-73.0.3683.103/components/url_formatter/url_formatter.cc
@@ -410,14 +410,14 @@ IDNConversionStatus IDNToUnicodeOneComponent(const base::char16* comp,
} // namespace
const FormatUrlType kFormatUrlOmitNothing = 0;
-const FormatUrlType kFormatUrlOmitUsernamePassword = 1 << 0;
-const FormatUrlType kFormatUrlOmitHTTP = 1 << 1;
-const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname = 1 << 2;
-const FormatUrlType kFormatUrlOmitHTTPS = 1 << 3;
-const FormatUrlType kFormatUrlOmitTrivialSubdomains = 1 << 5;
-const FormatUrlType kFormatUrlTrimAfterHost = 1 << 6;
-const FormatUrlType kFormatUrlOmitFileScheme = 1 << 7;
-const FormatUrlType kFormatUrlOmitMailToScheme = 1 << 8;
+const FormatUrlType kFormatUrlOmitUsernamePassword = 0;
+const FormatUrlType kFormatUrlOmitHTTP = 0;
+const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname = 0;
+const FormatUrlType kFormatUrlOmitHTTPS = 0;
+const FormatUrlType kFormatUrlOmitTrivialSubdomains = 0;
+const FormatUrlType kFormatUrlTrimAfterHost = 0;
+const FormatUrlType kFormatUrlOmitFileScheme = 0;
+const FormatUrlType kFormatUrlOmitMailToScheme = 0;
const FormatUrlType kFormatUrlOmitDefaults =
kFormatUrlOmitUsernamePassword | kFormatUrlOmitHTTP |

View File

@ -0,0 +1,26 @@
Define WIDEVINE_CDM_VERSION_STRING && re-re-re-patch for latest ninja
Stolen from Arch basically.
gmt
--- a/chrome/common/chrome_content_client.cc
+++ b/chrome/common/chrome_content_client.cc
@@ -99,7 +99,7 @@
// Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
// bundled and not a component. When the Widevine CDM is a component, it is
// registered in widevine_cdm_component_installer.cc.
-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
+#if BUILDFLAG(ENABLE_WIDEVINE) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
#define REGISTER_BUNDLED_WIDEVINE_CDM
#include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
// TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
--- a/third_party/widevine/cdm/widevine_cdm_version.h
+++ b/third_party/widevine/cdm/widevine_cdm_version.h
@@ -11,5 +11,6 @@
// If the Widevine CDM is available define the following:
// - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
// as a string, e.g., "1.0.123.456").
+#define WIDEVINE_CDM_VERSION_STRING "unknown"
#endif // WIDEVINE_CDM_VERSION_H_

View File

@ -0,0 +1,78 @@
diff --git chromium-75.0.3770.100/base/allocator/allocator_shim_internals.h chromium-75.0.3770.100/base/allocator/allocator_shim_internals.h
index 0196f89..bb42b5d 100644
--- chromium-75.0.3770.100/base/allocator/allocator_shim_internals.h
+++ chromium-75.0.3770.100/base/allocator/allocator_shim_internals.h
@@ -7,7 +7,9 @@
#if defined(__GNUC__)
+#if defined(__GLIBC__)
#include <sys/cdefs.h> // for __THROW
+#endif
#ifndef __THROW // Not a glibc system
#ifdef _NOEXCEPT // LLVM libc++ uses noexcept instead
diff --git chromium-75.0.3770.100/sandbox/linux/suid/sandbox.c chromium-75.0.3770.100/sandbox/linux/suid/sandbox.c
index 854819b..39937e4 100644
--- chromium-75.0.3770.100/sandbox/linux/suid/sandbox.c
+++ chromium-75.0.3770.100/sandbox/linux/suid/sandbox.c
@@ -44,7 +44,16 @@
static bool DropRoot();
+#if defined(TEMP_FAILURE_RETRY)
#define HANDLE_EINTR(x) TEMP_FAILURE_RETRY(x)
+#else
+#define HANDLE_EINTR(expression) \
+ (__extension__ \
+ ({ long __result; \
+ do __result = (long) (expression); \
+ while (__result == -1L && errno == EINTR); \
+ __result; }))
+#endif
static void FatalError(const char* msg, ...)
__attribute__((noreturn, format(printf, 1, 2)));
diff --git chromium-75.0.3770.100/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h chromium-75.0.3770.100/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
index f8be372..c07e4c8 100644
--- chromium-75.0.3770.100/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
+++ chromium-75.0.3770.100/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
@@ -17,8 +17,6 @@
#include_next <sys/ptrace.h>
-#include <sys/cdefs.h>
-
// https://sourceware.org/bugzilla/show_bug.cgi?id=22433
#if !defined(PTRACE_GET_THREAD_AREA) && !defined(PT_GET_THREAD_AREA) && \
defined(__GLIBC__)
diff --git chromium-69.0.3497.100/third_party/libsync/src/include/sync/sync.h
index 50ed0ac..7552a49 100644
--- chromium-69.0.3497.100/third_party/libsync/src/include/sync/sync.h
+++ chromium-69.0.3497.100/third_party/libsync/src/include/sync/sync.h
@@ -19,12 +19,13 @@
#ifndef __SYS_CORE_SYNC_H
#define __SYS_CORE_SYNC_H
-#include <sys/cdefs.h>
#include <stdint.h>
#include <linux/types.h>
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
struct sync_legacy_merge_data {
int32_t fd2;
@@ -158,6 +159,8 @@ struct sync_pt_info *sync_pt_info(struct sync_fence_info_data *info,
struct sync_pt_info *itr);
void sync_fence_info_free(struct sync_fence_info_data *info);
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
#endif /* __SYS_CORE_SYNC_H */

View File

@ -0,0 +1,13 @@
diff --git chromium-75.0.3770.100/base/native_library_posix.cc chromium-75.0.3770.100/base/native_library_posix.cc
index 7a5c6f5..6e8a5fa 100644
--- chromium-75.0.3770.100/base/native_library_posix.cc
+++ chromium-75.0.3770.100/base/native_library_posix.cc
@@ -34,7 +34,7 @@ NativeLibrary LoadNativeLibraryWithOptions(const FilePath& library_path,
// further investigation, as it might vary across versions. Crash here to
// warn developers that they're trying to rely on uncertain behavior.
CHECK(!options.prefer_own_symbols);
-#else
+#elif defined(RTLD_DEEPBIND)
if (options.prefer_own_symbols)
flags |= RTLD_DEEPBIND;
#endif

View File

@ -0,0 +1,71 @@
diff --git chromium-75.0.3770.100/net/dns/dns_config_service_posix.cc chromium-75.0.3770.100/net/dns/dns_config_service_posix.cc
index 48ee925..3bf8756 100644
--- chromium-75.0.3770.100/net/dns/dns_config_service_posix.cc
+++ chromium-75.0.3770.100/net/dns/dns_config_service_posix.cc
@@ -150,7 +150,7 @@ ConfigParsePosixResult ReadDnsConfig(DnsConfig* dns_config) {
#if !defined(OS_ANDROID)
ConfigParsePosixResult result;
// TODO(fuchsia): Use res_ninit() when it's implemented on Fuchsia.
-#if defined(OS_OPENBSD) || defined(OS_FUCHSIA)
+#if defined(OS_OPENBSD) || defined(OS_FUCHSIA) || (defined(OS_LINUX) && !defined(__GLIBC__))
// Note: res_ninit in glibc always returns 0 and sets RES_INIT.
// res_init behaves the same way.
memset(&_res, 0, sizeof(_res));
@@ -173,7 +173,7 @@ ConfigParsePosixResult ReadDnsConfig(DnsConfig* dns_config) {
#else
res_nclose(&res);
#endif // defined(OS_MACOSX) || defined(OS_FREEBSD)
-#endif // defined(OS_OPENBSD)
+#endif // defined(OS_OPENBSD) || defined(OS_FUCHSIA) || (defined(OS_LINUX) && !defined(__GLIBC__))
#if defined(OS_MACOSX) && !defined(OS_IOS)
ConfigParsePosixResult error = DnsConfigWatcher::CheckDnsConfig();
diff --git chromium-75.0.3770.100/net/dns/dns_reloader.cc chromium-75.0.3770.100/net/dns/dns_reloader.cc
index 03e248c..6135fcc 100644
--- chromium-75.0.3770.100/net/dns/dns_reloader.cc
+++ chromium-75.0.3770.100/net/dns/dns_reloader.cc
@@ -4,8 +4,7 @@
#include "net/dns/dns_reloader.h"
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
+#if defined(__GLIBC__)
#include <resolv.h>
@@ -108,5 +107,4 @@ void DnsReloaderMaybeReload() {
} // namespace net
-#endif // defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) &&
- // !defined(OS_ANDROID)
+#endif // defined(__GLIBC__)
diff --git chromium-75.0.3770.100/net/dns/host_resolver_manager.cc chromium-75.0.3770.100/net/dns/host_resolver_manager.cc
index 3c75dde..c748d94 100644
--- chromium-75.0.3770.100/net/dns/host_resolver_manager.cc
+++ chromium-75.0.3770.100/net/dns/host_resolver_manager.cc
@@ -2266,8 +2266,7 @@ HostResolverManager::HostResolverManager(const Options& options,
NetworkChangeNotifier::AddIPAddressObserver(this);
NetworkChangeNotifier::AddConnectionTypeObserver(this);
NetworkChangeNotifier::AddDNSObserver(this);
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
- !defined(OS_ANDROID)
+#if defined(__GLIBC__)
EnsureDnsReloaderInit();
#endif
diff --git chromium-75.0.3770.100/net/dns/host_resolver_proc.cc chromium-75.0.3770.100/net/dns/host_resolver_proc.cc
index 90d9958..71d9b4a 100644
--- chromium-75.0.3770.100/net/dns/host_resolver_proc.cc
+++ chromium-75.0.3770.100/net/dns/host_resolver_proc.cc
@@ -197,8 +197,7 @@ int SystemHostResolverCall(const std::string& host,
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
base::BlockingType::WILL_BLOCK);
-#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_OPENBSD) && \
- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
+#if defined(__GLIBC__)
DnsReloaderMaybeReload();
#endif
int err = getaddrinfo(host.c_str(), nullptr, &hints, &ai);

View File

@ -0,0 +1,96 @@
diff --git chromium-75.0.3770.100/base/debug/stack_trace_posix.cc chromium-75.0.3770.100/base/debug/stack_trace_posix.cc
index d4b8b3a..bd26968 100644
--- chromium-75.0.3770.100/base/debug/stack_trace_posix.cc
+++ chromium-75.0.3770.100/base/debug/stack_trace_posix.cc
@@ -27,7 +27,7 @@
#if !defined(USE_SYMBOLIZE)
#include <cxxabi.h>
#endif
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
#include <execinfo.h>
#endif
@@ -86,7 +86,7 @@ void DemangleSymbols(std::string* text) {
// Note: code in this function is NOT async-signal safe (std::string uses
// malloc internally).
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
std::string::size_type search_from = 0;
while (search_from < text->size()) {
// Look for the start of a mangled symbol, from search_from.
@@ -121,7 +121,7 @@ void DemangleSymbols(std::string* text) {
search_from = mangled_start + 2;
}
}
-#endif // !defined(__UCLIBC__) && !defined(_AIX)
+#endif // defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
}
#endif // !defined(USE_SYMBOLIZE)
@@ -133,7 +133,7 @@ class BacktraceOutputHandler {
virtual ~BacktraceOutputHandler() = default;
};
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
void OutputPointer(void* pointer, BacktraceOutputHandler* handler) {
// This should be more than enough to store a 64-bit number in hex:
// 16 hex digits + 1 for null-terminator.
@@ -216,7 +216,7 @@ void ProcessBacktrace(void* const* trace,
}
#endif // defined(USE_SYMBOLIZE)
}
-#endif // !defined(__UCLIBC__) && !defined(_AIX)
+#endif // defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
void PrintToStderr(const char* output) {
// NOTE: This code MUST be async-signal safe (it's used by in-process
@@ -812,7 +812,7 @@ size_t CollectStackTrace(void** trace, size_t count) {
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
// Though the backtrace API man page does not list any possible negative
// return values, we take no chance.
return base::saturated_cast<size_t>(backtrace(trace, count));
@@ -825,13 +825,13 @@ void StackTrace::PrintWithPrefix(const char* prefix_string) const {
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
PrintBacktraceOutputHandler handler;
ProcessBacktrace(trace_, count_, prefix_string, &handler);
#endif
}
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
void StackTrace::OutputToStreamWithPrefix(std::ostream* os,
const char* prefix_string) const {
StreamBacktraceOutputHandler handler(os);
diff --git chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
index e14edbd..dfeca51 100644
--- chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
+++ chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
@@ -14,7 +14,7 @@
#define ENABLE_CRASH_OVERRIDES 1
/* Define to 1 if you have the `backtrace' function. */
-#define HAVE_BACKTRACE 1
+/* #undef HAVE_BACKTRACE */
/* Define to 1 if you have the <CrashReporterClient.h> header file. */
/* #undef HAVE_CRASHREPORTERCLIENT_H */
@@ -55,7 +55,7 @@
#define HAVE_ERRNO_H 1
/* Define to 1 if you have the <execinfo.h> header file. */
-#define HAVE_EXECINFO_H 1
+/* #undef HAVE_EXECINFO_H */
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1

View File

@ -0,0 +1,48 @@
diff --git chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
index 052ce37..95b0fb4 100644
--- chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+++ chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
@@ -49,7 +49,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
}
void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp) {
+ const struct _fpstate* fp) {
const greg_t* regs = uc->uc_mcontext.gregs;
out->context_flags = MD_CONTEXT_X86_FULL |
@@ -97,7 +97,7 @@ uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
}
void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fpregs) {
+ const struct _fpstate* fpregs) {
const greg_t* regs = uc->uc_mcontext.gregs;
out->context_flags = MD_CONTEXT_AMD64_FULL;
diff --git chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
index f830618..f3dde1f 100644
--- chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+++ chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
@@ -50,7 +50,7 @@ struct UContextReader {
// info: the collection of register structures.
#if defined(__i386__) || defined(__x86_64)
static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp);
+ const struct _fpstate* fp);
#elif defined(__aarch64__)
static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
const struct fpsimd_context* fpregs);
diff --git chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
index d1dc331..d1cc562 100644
--- chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
+++ chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
@@ -48,7 +48,7 @@ class ExceptionHandler;
#if defined(__aarch64__)
typedef struct fpsimd_context fpstate_t;
#elif !defined(__ARM_EABI__) && !defined(__mips__)
-typedef struct _libc_fpstate fpstate_t;
+typedef struct _fpstate fpstate_t;
#endif
// These entries store a list of memory regions that the client wants included

View File

@ -0,0 +1,35 @@
diff --git chromium-75.0.3770.100/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc chromium-75.0.3770.100/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
index 3ae4f3c..08ed693 100644
--- chromium-75.0.3770.100/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+++ chromium-75.0.3770.100/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
@@ -43,7 +43,9 @@
#endif // defined(OS_ANDROID) && defined(__arm__)
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#if defined(__GLIBC__)
#include <gnu/libc-version.h>
+#endif // defined(__GLIBC__)
#include "base/linux_util.h"
#include "base/strings/string_split.h"
@@ -326,7 +328,7 @@ void RecordLinuxDistro() {
#endif // defined(OS_LINUX) && !defined(OS_CHROMEOS)
void RecordLinuxGlibcVersion() {
-#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && defined(__GLIBC__)
base::Version version(gnu_get_libc_version());
UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE;
diff --git chromium-75.0.3770.100/services/device/serial/serial_io_handler_posix.cc chromium-75.0.3770.100/services/device/serial/serial_io_handler_posix.cc
index daed079..5470a35 100644
--- chromium-75.0.3770.100/services/device/serial/serial_io_handler_posix.cc
+++ chromium-75.0.3770.100/services/device/serial/serial_io_handler_posix.cc
@@ -4,6 +4,7 @@
#include "services/device/serial/serial_io_handler_posix.h"
+#include <asm/ioctls.h>
#include <sys/ioctl.h>
#include <termios.h>

View File

@ -0,0 +1,13 @@
diff --git chromium-69.0.3497.100/buildtools/third_party/libc++/trunk/include/__config
index 52c7142..ca187dd 100644
--- chromium-69.0.3497.100/buildtools/third_party/libc++/trunk/include/__config
+++ chromium-69.0.3497.100/buildtools/third_party/libc++/trunk/include/__config
@@ -11,6 +11,8 @@
#ifndef _LIBCPP_CONFIG
#define _LIBCPP_CONFIG
+#define _LIBCPP_HAS_MUSL_LIBC
+
#if defined(_MSC_VER) && !defined(__clang__)
# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER

View File

@ -0,0 +1,47 @@
diff --git chromium-75.0.3770.100/base/process/process_metrics_posix.cc chromium-75.0.3770.100/base/process/process_metrics_posix.cc
index a09bbf2..f0a439f 100644
--- chromium-75.0.3770.100/base/process/process_metrics_posix.cc
+++ chromium-75.0.3770.100/base/process/process_metrics_posix.cc
@@ -100,14 +100,14 @@ size_t ProcessMetrics::GetMallocUsage() {
malloc_statistics_t stats = {0};
malloc_zone_statistics(nullptr, &stats);
return stats.size_in_use;
-#elif defined(OS_LINUX) || defined(OS_ANDROID)
+#elif (defined(OS_LINUX) && defined(__GLIBC__)) || defined(OS_ANDROID)
struct mallinfo minfo = mallinfo();
#if defined(USE_TCMALLOC)
return minfo.uordblks;
#else
return minfo.hblkhd + minfo.arena;
#endif
-#elif defined(OS_FUCHSIA)
+#else
// TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
return 0;
#endif
diff --git chromium-75.0.3770.100/base/trace_event/malloc_dump_provider.cc chromium-75.0.3770.100/base/trace_event/malloc_dump_provider.cc
index 0077d8b..13ef0f3 100644
--- chromium-75.0.3770.100/base/trace_event/malloc_dump_provider.cc
+++ chromium-75.0.3770.100/base/trace_event/malloc_dump_provider.cc
@@ -132,7 +132,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
}
#elif defined(OS_FUCHSIA)
// TODO(fuchsia): Port, see https://crbug.com/706592.
-#else
+#elif defined(OS_LINUX) && defined(__GLIBC__)
struct mallinfo info = mallinfo();
DCHECK_GE(info.arena + info.hblkhd, info.uordblks);
diff --git chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
index e14edbd..154fefe 100644
--- chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
+++ chromium-69.0.3497.100/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
@@ -130,7 +130,7 @@
/* #undef HAVE_MALLCTL */
/* Define to 1 if you have the `mallinfo' function. */
-#define HAVE_MALLINFO 1
+/* #undef HAVE_MALLINFO */
/* Define to 1 if you have the <malloc.h> header file. */
#define HAVE_MALLOC_H 1

View File

@ -0,0 +1,40 @@
diff --git chromium-75.0.3770.100/third_party/blink/renderer/platform/wtf/stack_util.cc chromium-75.0.3770.100/third_party/blink/renderer/platform/wtf/stack_util.cc
index b242164..93f8f08 100644
--- chromium-75.0.3770.100/third_party/blink/renderer/platform/wtf/stack_util.cc
+++ chromium-75.0.3770.100/third_party/blink/renderer/platform/wtf/stack_util.cc
@@ -29,7 +29,7 @@ size_t GetUnderestimatedStackSize() {
// FIXME: On Mac OSX and Linux, this method cannot estimate stack size
// correctly for the main thread.
-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
// pthread_getattr_np() can fail if the thread is not invoked by
// pthread_create() (e.g., the main thread of blink_unittests).
@@ -55,6 +55,9 @@ size_t GetUnderestimatedStackSize() {
pthread_attr_destroy(&attr);
#endif
+#if defined(OS_LINUX) && !defined(__GLIBC__)
+ return 0;
+#else
// Return a 512k stack size, (conservatively) assuming the following:
// - that size is much lower than the pthreads default (x86 pthreads has a 2M
// default.)
@@ -62,6 +65,7 @@ size_t GetUnderestimatedStackSize() {
// low as 512k.
//
return 512 * 1024;
+#endif
#elif defined(OS_MACOSX)
// pthread_get_stacksize_np() returns too low a value for the main thread on
// OSX 10.9,
@@ -97,7 +101,7 @@ return Threading::ThreadStackSize();
}
void* GetStackStart() {
-#if defined(__GLIBC__) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
+#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
pthread_attr_t attr;
int error;

View File

@ -0,0 +1,22 @@
diff --git chromium-75.0.3770.100/third_party/crashpad/crashpad/util/linux/ptracer.cc chromium-75.0.3770.100/third_party/crashpad/crashpad/util/linux/ptracer.cc
index c6c9229..6731148 100644
--- chromium-75.0.3770.100/third_party/crashpad/crashpad/util/linux/ptracer.cc
+++ chromium-75.0.3770.100/third_party/crashpad/crashpad/util/linux/ptracer.cc
@@ -66,6 +66,7 @@ bool GetThreadArea32(pid_t tid,
const ThreadContext& context,
LinuxVMAddress* address,
bool can_log) {
+#ifdef PTRACE_GET_THREAD_AREA
size_t index = (context.t32.xgs & 0xffff) >> 3;
user_desc desc;
if (ptrace(
@@ -77,6 +78,9 @@ bool GetThreadArea32(pid_t tid,
*address = desc.base_addr;
return true;
+#else
+ return false;
+#endif
}
bool GetThreadArea64(pid_t tid,

View File

@ -0,0 +1,13 @@
diff --git chromium-75.0.3770.100/third_party/nasm/config/config-linux.h
index 7eb7c20..882b736 100644
--- chromium-75.0.3770.100/third_party/nasm/config/config-linux.h.orig
+++ chromium-75.0.3770.100/third_party/nasm/config/config-linux.h
@@ -117,7 +117,7 @@
#define HAVE_ACCESS 1
/* Define to 1 if you have the `canonicalize_file_name' function. */
-#define HAVE_CANONICALIZE_FILE_NAME 1
+/* #undef HAVE_CANONICALIZE_FILE_NAME */
/* Define to 1 if you have the `cpu_to_le16' intrinsic function. */
/* #undef HAVE_CPU_TO_LE16 */

View File

@ -0,0 +1,120 @@
diff --git chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
index 479d1ed..b06cec7 100644
--- chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+++ chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
@@ -216,6 +216,9 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno,
if (sysno == __NR_prctl)
return RestrictPrctl();
+ if (sysno == __NR_set_tid_address)
+ return RestrictSetTIDAddress();
+
#if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
defined(__aarch64__)
if (sysno == __NR_socketpair) {
diff --git chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
index 348ab6e..2e91cf7 100644
--- chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+++ chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
@@ -140,20 +140,11 @@ namespace sandbox {
ResultExpr RestrictCloneToThreadsAndEPERMFork() {
const Arg<unsigned long> flags(0);
- // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
- const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
- CLONE_SIGHAND | CLONE_THREAD |
- CLONE_SYSVSEM;
- const uint64_t kObsoleteAndroidCloneMask = kAndroidCloneMask | CLONE_DETACHED;
-
- const uint64_t kGlibcPthreadFlags =
- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD |
- CLONE_SYSVSEM | CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID;
- const BoolExpr glibc_test = flags == kGlibcPthreadFlags;
-
- const BoolExpr android_test =
- AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
- flags == kGlibcPthreadFlags);
+ const int required = CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
+ CLONE_THREAD | CLONE_SYSVSEM;
+ const int safe = CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID |
+ CLONE_DETACHED;
+ const BoolExpr thread_clone_ok = (flags&~safe)==required;
// The following two flags are the two important flags in any vfork-emulating
// clone call. EPERM any clone call that contains both of them.
@@ -163,7 +154,7 @@ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
(flags & kImportantCloneVforkFlags) == kImportantCloneVforkFlags);
- return If(IsAndroid() ? android_test : glibc_test, Allow())
+ return If(thread_clone_ok, Allow())
.ElseIf(is_fork_or_clone_vfork, Error(EPERM))
.Else(CrashSIGSYSClone());
}
@@ -427,4 +418,10 @@ ResultExpr RestrictPtrace() {
}
#endif // defined(OS_NACL_NONSFI)
+ResultExpr RestrictSetTIDAddress() {
+ const Arg<uintptr_t> address(0);
+ // Only allow clearing the TID address.
+ return If(address == 0, Allow()).Else(CrashSIGSYS());
+}
+
} // namespace sandbox.
diff --git chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
index cb563df..8aef632 100644
--- chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
+++ chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
@@ -107,6 +107,9 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictPrlimit(pid_t target_pid);
// reporting. See https://crbug.com/933418 for details.
SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictPtrace();
+// Restrict the address to NULL.
+SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictSetTIDAddress();
+
} // namespace sandbox.
#endif // SANDBOX_LINUX_SECCOMP_BPF_HELPERS_SYSCALL_PARAMETERS_RESTRICTIONS_H_
diff --git chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
index 7dbcc87..41f3fd5 100644
--- chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+++ chromium-75.0.3770.100/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
@@ -386,6 +386,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
switch (sysno) {
case __NR_exit:
case __NR_exit_group:
+ case __NR_membarrier:
case __NR_wait4:
case __NR_waitid:
#if defined(__i386__)
@@ -513,6 +514,7 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
case __NR_mlock:
case __NR_munlock:
case __NR_munmap:
+ case __NR_mremap:
return true;
case __NR_madvise:
case __NR_mincore:
@@ -530,7 +532,6 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
case __NR_modify_ldt:
#endif
case __NR_mprotect:
- case __NR_mremap:
case __NR_msync:
case __NR_munlockall:
case __NR_readahead:
diff --git chromium-75.0.3770.100/sandbox/linux/system_headers/x86_64_linux_syscalls.h chromium-75.0.3770.100/sandbox/linux/system_headers/x86_64_linux_syscalls.h
index 349504a..ea3c7c9 100644
--- chromium-75.0.3770.100/sandbox/linux/system_headers/x86_64_linux_syscalls.h
+++ chromium-75.0.3770.100/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_

View File

@ -0,0 +1,15 @@
diff --git chromium-69.0.3497.100/third_party/angle/third_party/vulkan-loader/BUILD.gn
index 0d662fd..de5a0b1 100644
--- chromium-69.0.3497.100/third_party/angle/third_party/vulkan-loader/BUILD.gn
+++ chromium-69.0.3497.100/third_party/angle/third_party/vulkan-loader/BUILD.gn
@@ -192,10 +192,6 @@ config("vulkan_loader_config") {
if (is_win) {
cflags = [ "/wd4201" ]
}
- if (is_linux) {
- # assume secure_getenv() is available
- defines += [ "HAVE_SECURE_GETENV" ]
- }
}
if (!is_android) {

View File

@ -0,0 +1,13 @@
diff --git chromium-75.0.3770.100/sandbox/linux/seccomp-bpf/trap.cc chromium-75.0.3770.100/sandbox/linux/seccomp-bpf/trap.cc
index 003708d..0fef314 100644
--- chromium-75.0.3770.100/sandbox/linux/seccomp-bpf/trap.cc
+++ chromium-75.0.3770.100/sandbox/linux/seccomp-bpf/trap.cc
@@ -168,7 +168,7 @@ void Trap::SigSys(int nr, LinuxSigInfo* info, ucontext_t* ctx) {
// most versions of glibc don't include this information in siginfo_t. So,
// we need to explicitly copy it into a arch_sigsys structure.
struct arch_sigsys sigsys;
- memcpy(&sigsys, &info->_sifields, sizeof(sigsys));
+ memcpy(&sigsys, &info->__si_fields, sizeof(sigsys));
#if defined(__mips__)
// When indirect syscall (syscall(__NR_foo, ...)) is made on Mips, the

View File

@ -0,0 +1,25 @@
diff --git chromium-69.0.3497.100/third_party/swiftshader/src/Common/Socket.hpp
index b6b9abd..aa61d9f 100644
--- chromium-69.0.3497.100/third_party/swiftshader/src/Common/Socket.hpp
+++ chromium-69.0.3497.100/third_party/swiftshader/src/Common/Socket.hpp
@@ -18,6 +18,7 @@
#if defined(_WIN32)
#include <winsock2.h>
#else
+ #include <sys/select.h>
#include <sys/socket.h>
typedef int SOCKET;
#endif
diff --git chromium-75.0.3770.100/net/socket/udp_socket_posix.cc
index 08bf79c..3ee5353 100644
--- chromium-75.0.3770.100/net/socket/udp_socket_posix.cc.orig
+++ chromium-75.0.3770.100/net/socket/udp_socket_posix.cc
@@ -1194,7 +1194,7 @@ SendResult UDPSocketPosixSender::InternalSendmmsgBuffers(
msg_iov->push_back({const_cast<char*>(buffer->data()), buffer->length()});
msgvec->reserve(buffers.size());
for (size_t j = 0; j < buffers.size(); j++)
- msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0});
+ msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, 0, nullptr, 0, 0, 0}, 0});
int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0));
SendResult send_result(0, 0, std::move(buffers));
if (result < 0) {

View File

@ -0,0 +1,46 @@
diff --git chromium-75.0.3770.100/base/threading/platform_thread_linux.cc chromium-75.0.3770.100/base/threading/platform_thread_linux.cc
index 095c49b..b81b050 100644
--- chromium-75.0.3770.100/base/threading/platform_thread_linux.cc
+++ chromium-75.0.3770.100/base/threading/platform_thread_linux.cc
@@ -185,12 +185,14 @@ void InitThreading() {}
void TerminateOnThread() {}
size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) {
-#if !defined(THREAD_SANITIZER)
- return 0;
-#else
+#if defined(THREAD_SANITIZER)
// ThreadSanitizer bloats the stack heavily. Evidence has been that the
// default stack size isn't enough for some browser tests.
return 2 * (1 << 23); // 2 times 8192K (the default stack size on Linux).
+#elif defined(__GLIBC__)
+ return 0;
+#else
+ return 1 * (1 << 23); // 8192K (the default stack size on glibc)
#endif
}
diff --git chromium-75.0.3770.100/chrome/app/shutdown_signal_handlers_posix.cc chromium-75.0.3770.100/chrome/app/shutdown_signal_handlers_posix.cc
index 621d441..132e0f2 100644
--- chromium-75.0.3770.100/chrome/app/shutdown_signal_handlers_posix.cc
+++ chromium-75.0.3770.100/chrome/app/shutdown_signal_handlers_posix.cc
@@ -186,12 +186,19 @@ void InstallShutdownSignalHandlers(
g_pipe_pid = getpid();
g_shutdown_pipe_read_fd = pipefd[0];
g_shutdown_pipe_write_fd = pipefd[1];
+#ifdef __GLIBC__
#if !defined(ADDRESS_SANITIZER)
const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 2;
#else
// ASan instrumentation bloats the stack frames, so we need to increase the
// stack size to avoid hitting the guard page.
const size_t kShutdownDetectorThreadStackSize = PTHREAD_STACK_MIN * 4;
+#endif
+#else
+ // PTHREAD_STACK_MIN is much smaller on musl. ConstructTlsVector uses
+ // 6616 bytes of stack by itself. This matches the value of the GLIBC
+ // minumum * 2.
+ const size_t kShutdownDetectorThreadStackSize = 32768;
#endif
ShutdownDetector* detector = new ShutdownDetector(
g_shutdown_pipe_read_fd, std::move(shutdown_callback), task_runner);

View File

@ -0,0 +1,38 @@
diff --git chromium-75.0.3770.100/base/debug/stack_trace.cc chromium-75.0.3770.100/base/debug/stack_trace.cc
index d8ca822..d78f128 100644
--- chromium-75.0.3770.100/base/debug/stack_trace.cc
+++ chromium-75.0.3770.100/base/debug/stack_trace.cc
@@ -225,7 +225,9 @@ void StackTrace::Print() const {
}
void StackTrace::OutputToStream(std::ostream* os) const {
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
OutputToStreamWithPrefix(os, nullptr);
+#endif
}
std::string StackTrace::ToString() const {
@@ -233,7 +235,7 @@ std::string StackTrace::ToString() const {
}
std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const {
std::stringstream stream;
-#if !defined(__UCLIBC__) && !defined(_AIX)
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(_AIX)
OutputToStreamWithPrefix(&stream, prefix_string);
#endif
return stream.str();
diff --git chromium-75.0.3770.100/base/logging.cc chromium-75.0.3770.100/base/logging.cc
index 52720c4..8b759c7 100644
--- chromium-75.0.3770.100/base/logging.cc
+++ chromium-75.0.3770.100/base/logging.cc
@@ -582,8 +582,8 @@ LogMessage::LogMessage(const char* file, int line, LogSeverity severity,
LogMessage::~LogMessage() {
size_t stack_start = stream_.tellp();
-#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && !defined(__UCLIBC__) && \
- !defined(OS_AIX)
+#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && defined(__GLIBC__) && \
+ !defined(__UCLIBC__) && !defined(OS_AIX)
if (severity_ == LOG_FATAL && !base::debug::BeingDebugged()) {
// Include a stack trace on a fatal, unless a debugger is attached.
base::debug::StackTrace stack_trace;

View File

@ -0,0 +1,18 @@
diff --git chromium-69.0.3497.100/third_party/lss/linux_syscall_support.h
index 5d9c2e8..2682349 100644
--- chromium-69.0.3497.100/third_party/lss/linux_syscall_support.h
+++ chromium-69.0.3497.100/third_party/lss/linux_syscall_support.h
@@ -166,6 +166,13 @@ extern "C" {
# undef __NR_waitpid
#endif
+#ifdef pread64
+#undef pread64
+#endif
+#ifdef pwrite64
+#undef pwrite64
+#endif
+
/* As glibc often provides subtly incompatible data structures (and implicit
* wrapper functions that convert them), we provide our own kernel data
* structures for use by the system calls.

View File

@ -0,0 +1,25 @@
diff --git chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
index b895f6d..4f13352 100644
--- chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+++ chromium-69.0.3497.100/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
@@ -490,7 +490,9 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
siginfo.si_code = SI_USER;
siginfo.si_pid = getpid();
ucontext_t context;
+#if defined(__GLIBC__)
getcontext(&context);
+#endif
return HandleSignal(sig, &siginfo, &context);
}
@@ -675,8 +677,10 @@ bool ExceptionHandler::WriteMinidump() {
sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
CrashContext context;
+#if defined(__GLIBC__)
int getcontext_result = getcontext(&context.context);
if (getcontext_result)
+#endif
return false;
#if defined(__i386__)

View File

@ -0,0 +1,24 @@
Use monotonic clock for pthread_cond_timedwait with musl too.
diff --git a/v8/src/base/platform/condition-variable.cc b/v8/src/base/platform/condition-variable.cc
index 5ea7083..c13027e 100644
--- ./v8/src/base/platform/condition-variable.cc
+++ ./v8/src/base/platform/condition-variable.cc
@@ -16,7 +16,7 @@ namespace base {
ConditionVariable::ConditionVariable() {
#if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \
- (V8_OS_LINUX && V8_LIBC_GLIBC))
+ V8_OS_LINUX)
// On Free/Net/OpenBSD and Linux with glibc we can change the time
// source for pthread_cond_timedwait() to use the monotonic clock.
pthread_condattr_t attr;
@@ -92,7 +92,7 @@ bool ConditionVariable::WaitFor(Mutex* mutex, const TimeDelta& rel_time) {
&native_handle_, &mutex->native_handle(), &ts);
#else
#if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \
- (V8_OS_LINUX && V8_LIBC_GLIBC))
+ V8_OS_LINUX)
// On Free/Net/OpenBSD and Linux with glibc we can change the time
// source for pthread_cond_timedwait() to use the monotonic clock.
result = clock_gettime(CLOCK_MONOTONIC, &ts);

View File

@ -0,0 +1,24 @@
diff --git chromium-69.0.3497.100/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
index d03c7a8..78ca9dd 100644
--- chromium-69.0.3497.100/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
+++ chromium-69.0.3497.100/third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
@@ -36,6 +36,7 @@
#include <elf.h>
#include <link.h>
#include <stddef.h>
+#include <limits.h>
#include "common/memory_range.h"
@@ -51,9 +52,9 @@ class ElfCoreDump {
typedef ElfW(Phdr) Phdr;
typedef ElfW(Word) Word;
typedef ElfW(Addr) Addr;
-#if __WORDSIZE == 32
+#if ULONG_MAX == 0xffffffff
static const int kClass = ELFCLASS32;
-#elif __WORDSIZE == 64
+#elif ULONG_MAX == 0xffffffffffffffff
static const int kClass = ELFCLASS64;
#else
#error "Unsupported __WORDSIZE for ElfCoreDump."

View File

@ -1,3 +1,35 @@
https://commondatastorage.googleapis.com/chromium-browser-official/chromium-75.0.3770.142.tar.xz
patches/chromium-75-fix-gn-gen.patch
patches/chromium-75-gcc-angle-fix.patch
patches/chromium-75-llvm8.patch
patches/chromium-75-lss.patch
patches/chromium-75-noexcept.patch
patches/chromium-75-pure-virtual.patch
patches/chromium-75-unique_ptr.patch
patches/chromium-compiler-r9.patch
patches/chromium-fix-char_traits.patch
patches/chromium-optional-atk-r1.patch
patches/chromium-optional-dbus-r5.patch
patches/chromium-url-formatter.patch
patches/chromium-widevine-r4.patch
patches/musl-cdefs-r2.patch
patches/musl-dlopen.patch
patches/musl-dns-r2.patch
patches/musl-execinfo-r8.patch
patches/musl-fpstate-r1.patch
patches/musl-headers-r1.patch
patches/musl-libcpp.patch
patches/musl-mallinfo-r7.patch
patches/musl-pthread-r5.patch
patches/musl-ptrace.patch
patches/musl-realpath.patch
patches/musl-sandbox-r3.patch
patches/musl-secure_getenv-r1.patch
patches/musl-siginfo.patch
patches/musl-socket.patch
patches/musl-stacksize-r3.patch
patches/musl-stacktrace-r2.patch
patches/musl-syscall.patch
patches/musl-ucontext-r1.patch
patches/musl-v8-monotonic-pthread-cont_timedwait.patch
patches/musl-wordsize-r1.patch