mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-24 19:55:26 +03:00
community/chromium: upgrade to 84.0.4147.105
This commit is contained in:
parent
6158b4c59f
commit
afa00c4262
20 changed files with 442 additions and 595 deletions
|
@ -1,11 +1,12 @@
|
|||
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
|
||||
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
||||
pkgname=chromium
|
||||
pkgver=83.0.4103.116
|
||||
pkgver=84.0.4147.105
|
||||
pkgrel=0
|
||||
pkgdesc="Chromium web browser"
|
||||
url="https://www.chromium.org/Home"
|
||||
arch="x86 x86_64 aarch64"
|
||||
arch="x86_64 aarch64" # x86: ./v8_context_snapshot_generator segfaults
|
||||
# armv7: /usr/bin/ld: final link failed: memory exhausted when linking chrome
|
||||
license="BSD-3-Clause"
|
||||
depends="xdg-utils"
|
||||
makedepends="
|
||||
|
@ -45,6 +46,7 @@ makedepends="
|
|||
libpng-dev
|
||||
libusb-dev
|
||||
libva-dev
|
||||
libvpx-dev
|
||||
libwebp-dev
|
||||
libxcomposite-dev
|
||||
libxcursor-dev
|
||||
|
@ -68,8 +70,8 @@ makedepends="
|
|||
snappy-dev
|
||||
speex-dev
|
||||
sqlite-dev
|
||||
xcb-proto
|
||||
xdg-utils
|
||||
yasm
|
||||
zlib-dev
|
||||
py2-setuptools
|
||||
"
|
||||
|
@ -107,15 +109,16 @@ source="https://commondatastorage.googleapis.com/chromium-browser-official/chrom
|
|||
aarch64-fixes.patch
|
||||
elf-arm.patch
|
||||
|
||||
add-missing-algorithm-header.patch
|
||||
add-missing-limits-headers.patch
|
||||
add-missing-memory-headers.patch
|
||||
avoid-double-destruction-of-ServiceWorkerObjectHost.patch
|
||||
libstdc-fix-incomplete-type-in-AXTree-for-NodeSetSiz.patch
|
||||
make-some-of-blink-custom-iterators-STL-comaptible.patch
|
||||
remove-unsupported-compiler-warnining.patch
|
||||
|
||||
x86-fixes.patch
|
||||
chromium-84-crashpad-include-cstring.patch
|
||||
chromium-84-mediaalloc.patch
|
||||
chromium-84-gcc-DCHECK_EQ-unique_ptr.patch
|
||||
chromium-84-std-vector-const.patch
|
||||
upstream-avoid-calling-DeleteForCurrentDocument-from-destructor.patch
|
||||
upstream-force-mp3-files-to-have-a-start-time-of-zero.patch
|
||||
upstream-AXObject-stl-iterator.patch
|
||||
upstream-ListContainerHelper-include-cstring.patch
|
||||
"
|
||||
|
||||
# secfixes:
|
||||
|
@ -159,13 +162,13 @@ prepare() {
|
|||
libevent
|
||||
libjpeg
|
||||
libpng
|
||||
libvpx
|
||||
libwebp
|
||||
libxml
|
||||
libxslt
|
||||
opus
|
||||
re2
|
||||
snappy
|
||||
yasm
|
||||
"
|
||||
for _lib in $use_system libjpeg_turbo; do
|
||||
msg "Removing buildscripts for system provided $_lib"
|
||||
|
@ -176,7 +179,6 @@ prepare() {
|
|||
\! -path './third_party/libxml/*' \
|
||||
\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
|
||||
\! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
|
||||
\! -path './third_party/yasm/run_yasm.py' \
|
||||
\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
|
||||
-delete
|
||||
done
|
||||
|
@ -185,6 +187,7 @@ prepare() {
|
|||
python2 build/linux/unbundle/replace_gn_files.py --system-libraries \
|
||||
$use_system
|
||||
third_party/libaddressinput/chromium/tools/update-strings.py
|
||||
|
||||
}
|
||||
|
||||
_gn_flags() {
|
||||
|
@ -204,7 +207,6 @@ build() {
|
|||
use_sysroot=false \
|
||||
treat_warnings_as_errors=false \
|
||||
fatal_linker_warnings=false \
|
||||
binutils_path=\"/usr/bin\" \
|
||||
use_custom_libcxx=false \
|
||||
use_gold=false \
|
||||
use_allocator=\"none\" \
|
||||
|
@ -258,6 +260,10 @@ build() {
|
|||
AR="ar" CC="clang" CXX="clang++" LD="clang++" NM=/usr/bin/nm \
|
||||
out/Release/gn gen out/$_buildtype --args="$_c $_ca"
|
||||
|
||||
# Make xcbgen available to ui/gfx/x/gen_xproto.py running under Python 2
|
||||
ln -s /usr/lib/python3.*/site-packages/xcbgen .
|
||||
export PYTHONPATH="$PWD"
|
||||
|
||||
msg "Ninja turtles GO!"
|
||||
|
||||
# build mksnapshot
|
||||
|
@ -335,23 +341,23 @@ chromedriver() {
|
|||
mv "$pkgdir"/usr/bin/chromedriver "$subpkgdir"/usr/bin
|
||||
}
|
||||
|
||||
sha512sums="dbd92fb04183ec1402401388f70b18b95040083c9ea8bf2ea6b1692fddc375b090968b13afb010ebf412b480b34747eb2c82709adbeb386cccf60b972f23254f chromium-83.0.4103.116.tar.xz
|
||||
sha512sums="23cdd8b49c3276b16f1b4753fadf9f428720f0a95a3f567d189ba0e8a231d7bc1f62e96da6188645243eedac15ecc554b97e83c1a63aa647e7946cc1ba015a8c chromium-84.0.4147.105.tar.xz
|
||||
a3bb959c65944ae2fb765725cedcffd743a58bc0c2cd1f1999d15fe79801d00f3474b08b4ed7b48859ed921eb57093d0ad09d90f201d729ed9b8a419a591ed29 pstables-2.8.h
|
||||
b9a810416dd7a8ffc3a5ced85ad9acebda1665bd08a57eec7b189698cc5f74d2c3fd69044e20fcb83297a43214b2772a1312b2c6122ea0eb716abacf39524d60 chromium-launcher.sh
|
||||
f6d962b9e4c22dd42183df3db5d3202dab33eccecafb1bf63ca678147289581262db1e5e64cbe8f9c212beefb0a6717bb8d311e497f56b55fe95b8bab2db493f chromium.conf
|
||||
e182c998a43d22d1c76a86c561619afd1fca8c2be668265ad5e2f81a3806f7a154272cc027a2f8b370fb69446892c69e5967a4be76082325c14245ee7915234c chromium.desktop
|
||||
2d8237a940ea691bd10b08315429677a587f7ef9692a0cca53bfd066eae82998a6c71f402a8669e9de39f94d7f3280745d1628ea6eac5d76ca7116844d4e0dac google-api.keys
|
||||
b726ef2ecfe7d471e60d67de1e05847d214df6093b41bb2055652a9028327af19a8b10e7175467240f4dfec9e3ae97a6c4666bfd2cd6cb436c54656a085653ae default-pthread-stacksize.patch
|
||||
1d815644101b9d8892964ed5c683773b35a195d0635ad628936ad0e9f879abfc39a1f4d8ef11b9783ed0eec404c5103f9935250d3108433682a9f51c74cd40ba musl-fixes.patch
|
||||
893211a39e5b5b2e1dabcac9b232d34c6048304b706029ebb25023718a1c73d9afd889e811002351befa9db5f3b4814b25c5911a3230a9729696e2b15f2bf35b musl-fixes-breakpad.patch
|
||||
5dc855cf321adbf8e7768e7a4b0684760952c607bffb0e3b6d7b8e632155ed85cb67a6734b736759f0f06c2c017de0a1be18a6e52f0796570ca39520dddffece musl-fixes.patch
|
||||
e8675aff9fccd8b58cc839ef1d9e0e022d66aa94f72baa72e7acf92ceb2691f6a7907cc60ec3a87f894efdd639a3dec7fe702c97d446fcdea99452caec57e002 musl-fixes-breakpad.patch
|
||||
d78479bdea1c847d6e1506421a3eb716031cd24aa979f0e653c0406b507a5a89924d15e6c603e291f1b17751fb0788571f42699214fd1462334c0daabd584ffe musl-hacks.patch
|
||||
919f13a2cd65673f267321cf95c5410e65bc5264d6704d0791b25d39111282bedb425bd9824dde3b67422cfb874c86a9383ded686e39cfd4aac239edaf41cfc8 musl-libc++.patch
|
||||
8d57d524978852ded41394793d611083d82241ecbc64808bbf5759d7bf0db0fe92af84935cf9e556d555f8d9963c847611413fa68634202f817b671be414c224 musl-sandbox.patch
|
||||
eda730d7ee307f2406e96c3313e9f3a17c2577af9bcc8cbfd4099d2b590d81a1c8adf7bf9ba58dd0ec4ebd77001701a73e0aa718cac583a01a8876ddece82d58 musl-sandbox.patch
|
||||
129ec746fd951ee6d0bf0b4389b7c988523870507de1f92f5706f4eb49039d4a49ed30e92b0634e3ae521fc3e129adc1c6edc7435922fc91658d8c087520c707 no-execinfo.patch
|
||||
06d6b4c466fa48f2d22c338e20458d8fa50bbbf744468f41bc3c1892e739002b1fbc5c133a37252cec4ff4f804847add6b9c0cc1f84fb276939471c09e467fb6 no-mallinfo.patch
|
||||
b1edab2a782a0fd554d0fcee893374282ceca797e9595f1b4dd1c4dbeb65a5d6c368f2000f8d44baea3a53880621fa33c456b663d72960e94f2e05f9ec4f7965 resolver.patch
|
||||
f4265df7532625070c51ac43466e3e0f21e696f90c3b6040ef62a21defa7666203ff8219d9c9a5bebc011024aff300fbcbd941cebd0df59c4bc068d8f290221e swiftshader.patch
|
||||
e2b5b6f848c0fcb9ea7c932be0afef65a89328c4425843b670d9d80440946ba1cf4eeb08eebbbe700d8514e5075664660da9f8368e5f0deec582a95d4cd2b07a create-extra-view-redefinition.patch
|
||||
5b88c065819a44684ceea87239320f8120cfde0dc2f6dd739a007488dea6608c11584c56f3876a062641c9ca6fa82f43877c547ad470766aec31f5151bb2bdc1 create-extra-view-redefinition.patch
|
||||
cf9970ef403ff7a68bf08c0ba5e681eec459fcb1afb6859e5a80f4874f1b9a656377b4540eeb5208ddec570efa206f147e32718c687fa29ca3acc4fde6e8cbe8 chromium-use-alpine-target.patch
|
||||
599f5ef338b5797e04436bdc88921c31365d2dea2613d40053be6e774f654e2889efb0c0bd55c2c5044a6805510fbc337da555971169a75d584fac93e18256ac media-base.patch
|
||||
2e5a83826239849d096aead033eb519338b84e6fbbf58abfcd7cfe40d0b3070b66bcc825ec84406484d73d1a333f1b9d23a8ab44987ab5c8b187076c84cd668b musl-crashpad.patch
|
||||
|
@ -361,11 +367,12 @@ cf9970ef403ff7a68bf08c0ba5e681eec459fcb1afb6859e5a80f4874f1b9a656377b4540eeb5208
|
|||
ad4ddc25df7aa1de2038b7adb86d27679ecdb7e3e16c0eec994e947a08c41504b6fb41166f7868ff5f58ce8191c78800cbb91d259c864840fa5af1d7ba5d43a1 gcc-arm.patch
|
||||
7f81d97cce25d5530a2cb84105247e3707e344a285b0ac73c2f9275eae4bcc5aea6ff27307ec6607f95c13e9e724fab0e15e6fb8a33b3a9bfe0b3dbfdfb33ae6 aarch64-fixes.patch
|
||||
9b1441fe42421ef9ead86a5143bf997d989bd53a8969cdfdf4e0c45f847efc8c1d127e15fb05e2ef5dbefbb228cbdc2849404d74997ca56265599e12e5efd6e4 elf-arm.patch
|
||||
362e08911220e62945748cbd9f078df087f26737258f7fea023c0d256a0a353a44de2fc9942684d7632b903f4c1a2f89dc90fb43e12717a5495e67d8972fa03b add-missing-algorithm-header.patch
|
||||
b64e03d9bf1f6488f183b103abfd175bc7c3805be81c037281b4cad8ae698d462b15bef7ffb938098ad183e01553ce34de4050d20fc49cacb68eb40581f4ebb4 add-missing-limits-headers.patch
|
||||
15c52f53ae96e43235cac4e530f76f8ec4a30e984f5b8b22d48f779952040f738c3b115aec6f4a30a7d8dd8a9a74400797d3145812a335db146756c5edf05872 add-missing-memory-headers.patch
|
||||
2a480de85c257a9ef151301dbb0aa76b0a4ef9ca9b5c597e97064567e4f40a54eb3404376b84ad995dbdaf48bf4687c7b8375425552ec5ab78551673f9aec33f avoid-double-destruction-of-ServiceWorkerObjectHost.patch
|
||||
469e8ccbe840ed0602236ddb49ee4c92dd40179ce42bb58f820392bc5b77a93e29a2169dccd6e81d4f703dfeb557e10314ad081aab83ec0c1f009dabb13e997e libstdc-fix-incomplete-type-in-AXTree-for-NodeSetSiz.patch
|
||||
4133aad3a714a249dcdf9958d27823f1ddcebd4883443e0f81a50320525e9b4e8f7db0d75f7d55f05d120b5dda3314769e6a9b48f974bfa7ea4eaa13331d0048 make-some-of-blink-custom-iterators-STL-comaptible.patch
|
||||
7bb86c213149ce15ccf46bff93f6efe23415febe312d98a662180c71161a0fb9737ba47707d4433a70e5329919416759c35c050a3d00240fd004111d981383d0 remove-unsupported-compiler-warnining.patch
|
||||
d58b8414ab1c68483fd5b59f3a599219467c7dfd5b2500a8e3b8b38abb73c2154f92d6a843be82041a7284cce0fc80ea13c795d149b88e29e0e7847feb63d1f2 x86-fixes.patch"
|
||||
e02d4cd916ee5ff0b03fcbd22cbcad35d67338599ed099026fc13053a7e15fbd24335b9cb3961541f8da09bddb114b527230e1cbd274f6cdde012a25421076c7 remove-unsupported-compiler-warnining.patch
|
||||
9e87e14a342a7dfac8642e9dac37b747336b415876062752ae75f126f3455ec093e6e434749c6816a6a885832240551aba0c141065909d3d3d3c65695ec04f57 chromium-84-crashpad-include-cstring.patch
|
||||
363929fa33452f824f8351ab43b70bfcfd77d9cfd8d3fe6e56dc8813b0ae0e3fadbe43c956a2652e3f49a3434c3b58b24758a1922c7db86054b1ca7fce296ab0 chromium-84-mediaalloc.patch
|
||||
e974ffcfefa69d290ccd05729c992623075b15d6718218a3634ce30ecada478f961b97123949d384ceb45075178ade1a8165374c1a5cf9b1f0d46845b4ebc5c6 chromium-84-gcc-DCHECK_EQ-unique_ptr.patch
|
||||
d7c45cb25b429351dd6c3c7b2f64f1a3b3d0e2901d9eb24a5d8e6517bd16559117c4eab5565c8f2221aca7836d81ac9106af8de8ddcc11b200ddfc0bcba31c77 chromium-84-std-vector-const.patch
|
||||
c81a870a10445a0b50cab0bb2b5b416e5d77f4ba2a38c7076ff8697fa496565be7186e2781f03d2a9f5837cbe7e8a84132d961cea0c1f9010218547a9c93e338 upstream-avoid-calling-DeleteForCurrentDocument-from-destructor.patch
|
||||
51e3fc8cc18035bb5ec3e4da69febfad1877a594be925f1b05eb9838dad7155418b9a943e882c77e36c26caec3b08321edc130fa3c09b6e527b578e57a131b19 upstream-force-mp3-files-to-have-a-start-time-of-zero.patch
|
||||
f5b39f5238e7987610088b69e834f8f0445397b54b9d6355f883311a72b97e3c7cffe663f96614025521f50ddb688951a21d6994c6533c290ac0771c0bad645f upstream-AXObject-stl-iterator.patch
|
||||
25b472576edad6fc2fc358865d673db9431eb4b3a6a60b7ff827fd41ded477d2baf7e27e8c1a5c17451c2d8577dcea7b236c36f76a673e9d72171d8a9b17a624 upstream-ListContainerHelper-include-cstring.patch"
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
Upstream: Yes
|
||||
From 2b9d6daa0ab5ce45ec5555466d5a5a583a020ea8 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Playfair Cal <daniel.playfair.cal@gmail.com>
|
||||
Date: Sat, 18 Apr 2020 00:27:38 +0000
|
||||
Subject: [PATCH] Add missing algorithm header in crx_install_error.cc
|
||||
|
||||
This is needed for the use of std::find.
|
||||
|
||||
Change-Id: I2dc43b3887c467986c5346be5a9e27a987e1e5b3
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2152333
|
||||
Reviewed-by: Ken Rockot <rockot@google.com>
|
||||
Commit-Queue: Ken Rockot <rockot@google.com>
|
||||
Cr-Commit-Position: refs/heads/master@{#760272}
|
||||
---
|
||||
extensions/browser/install/crx_install_error.cc | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/extensions/browser/install/crx_install_error.cc b/extensions/browser/install/crx_install_error.cc
|
||||
index a9765bb0a5a..bd0d3e35a16 100644
|
||||
--- extensions/browser/install/crx_install_error.cc
|
||||
+++ extensions/browser/install/crx_install_error.cc
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
#include "extensions/browser/install/crx_install_error.h"
|
||||
|
||||
+#include <algorithm>
|
||||
+
|
||||
#include "base/logging.h"
|
||||
#include "extensions/browser/install/sandboxed_unpacker_failure_reason.h"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
Upstream: Yes
|
||||
From 74f76a6be385ef056b0be2362c32c728141cca16 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Hartmann <stha09@googlemail.com>
|
||||
Date: Fri, 17 Apr 2020 16:04:12 +0000
|
||||
Subject: [PATCH] IWYU: std::numeric_limits is defined in limits
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Change-Id: Ifbc379adc5bb7242c21e7da0bcfc28f49e4dd06f
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2153111
|
||||
Reviewed-by: François Doray <fdoray@chromium.org>
|
||||
Commit-Queue: François Doray <fdoray@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#760075}
|
||||
---
|
||||
.../graph/policies/background_tab_loading_policy_helpers.cc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc b/chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc
|
||||
index 4881c010bb9..593501d16a7 100644
|
||||
--- chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc.orig 2020-05-20 09:08:05.395896528 -0400
|
||||
+++ chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.cc 2020-05-20 09:12:27.367172702 -0400
|
||||
@@ -3,6 +3,10 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "chrome/browser/performance_manager/graph/policies/background_tab_loading_policy_helpers.h"
|
||||
+
|
||||
+#include <cmath>
|
||||
+#include <limits>
|
||||
+
|
||||
#include "base/logging.h"
|
||||
|
||||
namespace performance_manager {
|
|
@ -1,33 +0,0 @@
|
|||
Upstream: Yes
|
||||
From 40d994e4aa2e4d5077c1810e4623549618a19c05 Mon Sep 17 00:00:00 2001
|
||||
From: Piotr Tworek <ptworek@vewd.com>
|
||||
Date: Mon, 27 Apr 2020 16:31:46 +0000
|
||||
Subject: [PATCH] Include "memory" header to get the definition of
|
||||
std::unique_ptr.
|
||||
|
||||
Right now the code im the affected fails to build when using libstdc++
|
||||
instead of bundled libcxx. Apparently libcxx pulls the necessary header
|
||||
indirectly.
|
||||
|
||||
Change-Id: Ie5e86f228434ab16d622ae7a912d9ce607258931
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2164645
|
||||
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
|
||||
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#762881}
|
||||
---
|
||||
.../blink/renderer/core/html/trust_token_attribute_parsing.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h b/third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
|
||||
index f5a7ab03892..ef19cfaf680 100644
|
||||
--- third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
|
||||
+++ third_party/blink/renderer/core/html/trust_token_attribute_parsing.h
|
||||
@@ -5,6 +5,8 @@
|
||||
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_
|
||||
#define THIRD_PARTY_BLINK_RENDERER_CORE_HTML_TRUST_TOKEN_ATTRIBUTE_PARSING_H_
|
||||
|
||||
+#include <memory>
|
||||
+
|
||||
#include "base/optional.h"
|
||||
#include "services/network/public/mojom/trust_tokens.mojom-blink-forward.h"
|
||||
#include "third_party/blink/renderer/core/core_export.h"
|
|
@ -1,139 +0,0 @@
|
|||
Upstream: Yes
|
||||
From bd59ce32629ef684624821419c43967b73d2989e Mon Sep 17 00:00:00 2001
|
||||
From: Hiroki Nakagawa <nhiroki@chromium.org>
|
||||
Date: Fri, 8 May 2020 08:25:31 +0000
|
||||
Subject: [PATCH] ServiceWorker: Avoid double destruction of
|
||||
ServiceWorkerObjectHost on connection error
|
||||
|
||||
This CL avoids the case where ServiceWorkerObjectHost is destroyed twice
|
||||
on ServiceWorkerObjectHost::OnConnectionError() when Chromium is built
|
||||
with the GCC build toolchain.
|
||||
|
||||
> How does the issue happen?
|
||||
|
||||
ServiceWorkerObjectHost has a cyclic reference like this:
|
||||
|
||||
ServiceWorkerObjectHost
|
||||
--([1] scoped_refptr)--> ServiceWorkerVersion
|
||||
--([2] std::unique_ptr)--> ServiceWorkerProviderHost
|
||||
--([3] std::unique_ptr)--> ServiceWorkerContainerHost
|
||||
--([4] std::unique_ptr)--> ServiceWorkerObjectHost
|
||||
|
||||
Note that ServiceWorkerContainerHost manages ServiceWorkerObjectHost in
|
||||
map<int64_t version_id, std::unique_ptr<ServiceWorkerObjectHost>>.
|
||||
|
||||
When ServiceWorkerObjectHost::OnConnectionError() is called, the
|
||||
function removes the reference [4] from the map, and destroys
|
||||
ServiceWorkerObjectHost. If the object host has the last reference [1]
|
||||
to ServiceWorkerVersion, the destruction also cuts off the references
|
||||
[2] and [3], and destroys ServiceWorkerProviderHost and
|
||||
ServiceWorkerContainerHost.
|
||||
|
||||
This seems to work well on the Chromium's default toolchain, but not
|
||||
work on the GCC toolchain. According to the report, destruction of
|
||||
ServiceWorkerContainerHost happens while the map owned by the container
|
||||
host is erasing the ServiceWorkerObjectHost, and this results in crash
|
||||
due to double destruction of the object host.
|
||||
|
||||
I don't know the reason why this happens only on the GCC toolchain, but
|
||||
I suspect the order of object destruction on std::map::erase() could be
|
||||
different depending on the toolchains.
|
||||
|
||||
> How does this CL fix this?
|
||||
|
||||
The ideal fix is to redesign the ownership model of
|
||||
ServiceWorkerVersion, but it's not feasible in the short term.
|
||||
|
||||
Instead, this CL avoids destruction of ServiceWorkerObjectHost on
|
||||
std::map::erase(). The new code takes the ownership of the object host
|
||||
from the map first, and then erases the entry from the map. This
|
||||
separates timings to erase the map entry and to destroy the object host,
|
||||
so the crash should no longer happen.
|
||||
|
||||
Bug: 1056598
|
||||
Change-Id: Id30654cb575bc557c42044d6f0c6f1f9bfaed613
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2094496
|
||||
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
|
||||
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#766770}
|
||||
---
|
||||
.../service_worker_container_host.cc | 10 +++++
|
||||
.../service_worker_object_host_unittest.cc | 38 +++++++++++++++++++
|
||||
2 files changed, 48 insertions(+)
|
||||
|
||||
diff --git a/content/browser/service_worker/service_worker_container_host.cc b/content/browser/service_worker/service_worker_container_host.cc
|
||||
index ec7fb1449af..98c62093b0e 100644
|
||||
--- content/browser/service_worker/service_worker_container_host.cc
|
||||
+++ content/browser/service_worker/service_worker_container_host.cc
|
||||
@@ -669,6 +669,16 @@ void ServiceWorkerContainerHost::RemoveServiceWorkerObjectHost(
|
||||
int64_t version_id) {
|
||||
DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
|
||||
DCHECK(base::Contains(service_worker_object_hosts_, version_id));
|
||||
+
|
||||
+ // ServiceWorkerObjectHost to be deleted may have the last reference to
|
||||
+ // ServiceWorkerVersion that indirectly owns this ServiceWorkerContainerHost.
|
||||
+ // If we erase the object host directly from the map, |this| could be deleted
|
||||
+ // during the map operation and may crash. To avoid the case, we take the
|
||||
+ // ownership of the object host from the map first, and then erase the entry
|
||||
+ // from the map. See https://crbug.com/1056598 for details.
|
||||
+ std::unique_ptr<ServiceWorkerObjectHost> to_be_deleted =
|
||||
+ std::move(service_worker_object_hosts_[version_id]);
|
||||
+ DCHECK(to_be_deleted);
|
||||
service_worker_object_hosts_.erase(version_id);
|
||||
}
|
||||
|
||||
diff --git a/content/browser/service_worker/service_worker_object_host_unittest.cc b/content/browser/service_worker/service_worker_object_host_unittest.cc
|
||||
index 408d7c1f9d1..6eab59040ab 100644
|
||||
--- content/browser/service_worker/service_worker_object_host_unittest.cc
|
||||
+++ content/browser/service_worker/service_worker_object_host_unittest.cc
|
||||
@@ -200,6 +200,19 @@ class ServiceWorkerObjectHostTest : public testing::Test {
|
||||
return registration_info;
|
||||
}
|
||||
|
||||
+ void CallOnConnectionError(ServiceWorkerContainerHost* container_host,
|
||||
+ int64_t version_id) {
|
||||
+ // ServiceWorkerObjectHost has the last reference to the version.
|
||||
+ ServiceWorkerObjectHost* object_host =
|
||||
+ GetServiceWorkerObjectHost(container_host, version_id);
|
||||
+ EXPECT_TRUE(object_host->version_->HasOneRef());
|
||||
+
|
||||
+ // Make sure that OnConnectionError induces destruction of the version and
|
||||
+ // the object host.
|
||||
+ object_host->receivers_.Clear();
|
||||
+ object_host->OnConnectionError();
|
||||
+ }
|
||||
+
|
||||
BrowserTaskEnvironment task_environment_;
|
||||
std::unique_ptr<EmbeddedWorkerTestHelper> helper_;
|
||||
scoped_refptr<ServiceWorkerRegistration> registration_;
|
||||
@@ -409,5 +422,30 @@ TEST_F(ServiceWorkerObjectHostTest, DispatchExtendableMessageEvent_FromClient) {
|
||||
events[0]->source_info_for_client->client_type);
|
||||
}
|
||||
|
||||
+// This is a regression test for https://crbug.com/1056598.
|
||||
+TEST_F(ServiceWorkerObjectHostTest, OnConnectionError) {
|
||||
+ const GURL scope("https://www.example.com/");
|
||||
+ const GURL script_url("https://www.example.com/service_worker.js");
|
||||
+ Initialize(std::make_unique<EmbeddedWorkerTestHelper>(base::FilePath()));
|
||||
+ SetUpRegistration(scope, script_url);
|
||||
+
|
||||
+ // Create the provider host.
|
||||
+ ASSERT_EQ(blink::ServiceWorkerStatusCode::kOk,
|
||||
+ StartServiceWorker(version_.get()));
|
||||
+
|
||||
+ // Set up the case where the last reference to the version is owned by the
|
||||
+ // service worker object host.
|
||||
+ ServiceWorkerContainerHost* container_host =
|
||||
+ version_->provider_host()->container_host();
|
||||
+ ServiceWorkerVersion* version_rawptr = version_.get();
|
||||
+ version_ = nullptr;
|
||||
+ ASSERT_TRUE(version_rawptr->HasOneRef());
|
||||
+
|
||||
+ // Simulate the connection error that induces the object host destruction.
|
||||
+ // This shouldn't crash.
|
||||
+ CallOnConnectionError(container_host, version_rawptr->version_id());
|
||||
+ base::RunLoop().RunUntilIdle();
|
||||
+}
|
||||
+
|
||||
} // namespace service_worker_object_host_unittest
|
||||
} // namespace content
|
|
@ -0,0 +1,90 @@
|
|||
From effd506ce070d58e731bd6086681b9cded8573ed Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Hartmann <stha09@googlemail.com>
|
||||
Date: Sun, 10 May 2020 07:24:38 +0000
|
||||
Subject: [PATCH] IWYU: add a bunch of missing cstring includes
|
||||
|
||||
---
|
||||
.../crashpad/snapshot/minidump/minidump_context_converter.cc | 2 ++
|
||||
third_party/crashpad/crashpad/util/linux/ptrace_client.cc | 1 +
|
||||
.../crashpad/crashpad/util/net/http_multipart_builder.cc | 1 +
|
||||
third_party/crashpad/crashpad/util/net/http_transport_socket.cc | 2 ++
|
||||
third_party/crashpad/crashpad/util/process/process_memory.cc | 1 +
|
||||
third_party/crashpad/crashpad/util/stream/log_output_stream.cc | 1 +
|
||||
6 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc b/third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
|
||||
index 0c840deac..1d163b42f 100644
|
||||
--- third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
|
||||
+++ third_party/crashpad/crashpad/snapshot/minidump/minidump_context_converter.cc
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
#include "snapshot/minidump/minidump_context_converter.h"
|
||||
|
||||
+#include <cstring>
|
||||
+
|
||||
#include "base/stl_util.h"
|
||||
#include "minidump/minidump_context.h"
|
||||
|
||||
diff --git a/third_party/crashpad/crashpad/util/linux/ptrace_client.cc b/third_party/crashpad/crashpad/util/linux/ptrace_client.cc
|
||||
index f097ad985..e91ce2eca 100644
|
||||
--- third_party/crashpad/crashpad/util/linux/ptrace_client.cc
|
||||
+++ third_party/crashpad/crashpad/util/linux/ptrace_client.cc
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
|
||||
+#include <cstring>
|
||||
#include <string>
|
||||
|
||||
#include "base/logging.h"
|
||||
diff --git a/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc b/third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
|
||||
index 267960b27..8ed7edc2f 100644
|
||||
--- third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
|
||||
+++ third_party/crashpad/crashpad/util/net/http_multipart_builder.cc
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
+#include <cstring>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
diff --git a/third_party/crashpad/crashpad/util/net/http_transport_socket.cc b/third_party/crashpad/crashpad/util/net/http_transport_socket.cc
|
||||
index 4dd01b6e7..60cd60c17 100644
|
||||
--- third_party/crashpad/crashpad/util/net/http_transport_socket.cc
|
||||
+++ third_party/crashpad/crashpad/util/net/http_transport_socket.cc
|
||||
@@ -19,6 +19,8 @@
|
||||
#include <poll.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
+#include <cstring>
|
||||
+
|
||||
#include "base/logging.h"
|
||||
#include "base/macros.h"
|
||||
#include "base/numerics/safe_conversions.h"
|
||||
diff --git a/third_party/crashpad/crashpad/util/process/process_memory.cc b/third_party/crashpad/crashpad/util/process/process_memory.cc
|
||||
index ab87b940f..e02bcea81 100644
|
||||
--- third_party/crashpad/crashpad/util/process/process_memory.cc
|
||||
+++ third_party/crashpad/crashpad/util/process/process_memory.cc
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "util/process/process_memory.h"
|
||||
|
||||
#include <algorithm>
|
||||
+#include <cstring>
|
||||
|
||||
#include "base/logging.h"
|
||||
#include "util/numeric/safe_assignment.h"
|
||||
diff --git a/third_party/crashpad/crashpad/util/stream/log_output_stream.cc b/third_party/crashpad/crashpad/util/stream/log_output_stream.cc
|
||||
index 03c0a5a02..45d823aa4 100644
|
||||
--- third_party/crashpad/crashpad/util/stream/log_output_stream.cc
|
||||
+++ third_party/crashpad/crashpad/util/stream/log_output_stream.cc
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "util/stream/log_output_stream.h"
|
||||
|
||||
#include <algorithm>
|
||||
+#include <cstring>
|
||||
|
||||
#include "base/logging.h"
|
||||
|
||||
--
|
||||
2.26.2
|
|
@ -0,0 +1,29 @@
|
|||
From 9b749dc5c7fdb0f4b1bd0df5901beb6af1b81ff1 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Hartmann <stha09@googlemail.com>
|
||||
Date: Sat, 9 May 2020 16:46:07 +0000
|
||||
Subject: [PATCH] GCC: fix DCHECK_EQ in NGInlineNode::SegmentScriptRuns
|
||||
|
||||
data->segments is a std::unique_ptr, but underlying CheckOpValueStr
|
||||
has no overloaded function for std::unique_ptr.
|
||||
However, overloaded function with const void* exists and can be
|
||||
used with std::unique_ptr::get().
|
||||
---
|
||||
.../blink/renderer/core/layout/ng/inline/ng_inline_node.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
|
||||
index 55ca9e3..ee691df 100644
|
||||
--- third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
|
||||
+++ third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
|
||||
@@ -891,7 +891,7 @@ void NGInlineNode::SegmentText(NGInlineNodeData* data) {
|
||||
|
||||
// Segment NGInlineItem by script, Emoji, and orientation using RunSegmenter.
|
||||
void NGInlineNode::SegmentScriptRuns(NGInlineNodeData* data) {
|
||||
- DCHECK_EQ(data->segments, nullptr);
|
||||
+ DCHECK_EQ(data->segments.get(), nullptr);
|
||||
|
||||
String& text_content = data->text_content;
|
||||
if (text_content.IsEmpty()) {
|
||||
--
|
||||
2.26.2
|
||||
|
41
community/chromium/chromium-84-mediaalloc.patch
Normal file
41
community/chromium/chromium-84-mediaalloc.patch
Normal file
|
@ -0,0 +1,41 @@
|
|||
https://bugs.chromium.org/p/chromium/issues/detail?id=1095962
|
||||
|
||||
--- media/base/media.cc
|
||||
+++ media/base/media.cc
|
||||
@@ -2,6 +2,8 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
+#include <limits>
|
||||
+
|
||||
#include "media/base/media.h"
|
||||
|
||||
#include "base/allocator/buildflags.h"
|
||||
@@ -41,7 +43,7 @@
|
||||
|
||||
#if BUILDFLAG(USE_ALLOCATOR_SHIM)
|
||||
// Remove allocation limit from ffmpeg, so calls go down to shim layer.
|
||||
- av_max_alloc(0);
|
||||
+ av_max_alloc(std::numeric_limits<size_t>::max());
|
||||
#endif // BUILDFLAG(USE_ALLOCATOR_SHIM)
|
||||
|
||||
#endif // BUILDFLAG(ENABLE_FFMPEG)
|
||||
--- third_party/ffmpeg/chromium/dllmain.cc
|
||||
+++ third_party/ffmpeg/chromium/dllmain.cc
|
||||
@@ -3,6 +3,7 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include <intrin.h>
|
||||
+#include <limits>
|
||||
#include <new.h>
|
||||
#include <stdlib.h>
|
||||
#include <windows.h>
|
||||
@@ -28,7 +29,7 @@
|
||||
if (reason == DLL_PROCESS_ATTACH) {
|
||||
DisableThreadLibraryCalls(instance);
|
||||
// Remove allocation limit from ffmpeg, so calls go down to shim layer.
|
||||
- av_max_alloc(0);
|
||||
+ av_max_alloc(std::numeric_limits<size_t>::max());
|
||||
// Enable OOM crashes in the shim for all malloc calls that fail.
|
||||
_set_new_mode(1);
|
||||
_set_new_handler(&OnNoMemory);
|
49
community/chromium/chromium-84-std-vector-const.patch
Normal file
49
community/chromium/chromium-84-std-vector-const.patch
Normal file
|
@ -0,0 +1,49 @@
|
|||
From df982a547c5e88777a6134e5d18a1482d933f1cf Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Hartmann <stha09@googlemail.com>
|
||||
Date: Wed, 27 May 2020 10:38:26 +0000
|
||||
Subject: [PATCH] libstdc++: std::vector must have non-const value_type
|
||||
|
||||
Bug: 957519
|
||||
Change-Id: I535b3bcf318f98cecbf4be1520ffe4126abcacd8
|
||||
---
|
||||
|
||||
diff --git a/extensions/common/features/feature_flags.cc b/extensions/common/features/feature_flags.cc
|
||||
index 5b63764..7efa308 100644
|
||||
--- extensions/common/features/feature_flags.cc
|
||||
+++ extensions/common/features/feature_flags.cc
|
||||
@@ -19,7 +19,7 @@
|
||||
constexpr base::Feature kFeatureFlags[] = {
|
||||
{"DeclarativeNetRequest", base::FEATURE_ENABLED_BY_DEFAULT}};
|
||||
|
||||
-const std::vector<const base::Feature>* g_feature_flags_test_override = nullptr;
|
||||
+const std::vector<base::Feature>* g_feature_flags_test_override = nullptr;
|
||||
|
||||
template <typename T>
|
||||
const base::Feature* GetFeature(T begin,
|
||||
@@ -52,8 +52,8 @@
|
||||
}
|
||||
|
||||
ScopedFeatureFlagsOverride CreateScopedFeatureFlagsOverrideForTesting(
|
||||
- const std::vector<const base::Feature>* features) {
|
||||
- return base::AutoReset<const std::vector<const base::Feature>*>(
|
||||
+ const std::vector<base::Feature>* features) {
|
||||
+ return base::AutoReset<const std::vector<base::Feature>*>(
|
||||
&g_feature_flags_test_override, features);
|
||||
}
|
||||
|
||||
diff --git a/extensions/common/features/feature_flags.h b/extensions/common/features/feature_flags.h
|
||||
index d1a5dd3..b57740b 100644
|
||||
--- extensions/common/features/feature_flags.h
|
||||
+++ extensions/common/features/feature_flags.h
|
||||
@@ -25,9 +25,9 @@
|
||||
// in scope. Clients must ensure that |features| remains alive (non-dangling)
|
||||
// while the returned value is in scope.
|
||||
using ScopedFeatureFlagsOverride =
|
||||
- base::AutoReset<const std::vector<const base::Feature>*>;
|
||||
+ base::AutoReset<const std::vector<base::Feature>*>;
|
||||
ScopedFeatureFlagsOverride CreateScopedFeatureFlagsOverrideForTesting(
|
||||
- const std::vector<const base::Feature>* features);
|
||||
+ const std::vector<base::Feature>* features);
|
||||
|
||||
} // namespace extensions
|
||||
|
|
@ -9,12 +9,12 @@
|
|||
auto learn_more = views::CreateVectorImageButtonWithNativeTheme(
|
||||
listener, vector_icons::kHelpOutlineIcon);
|
||||
learn_more->SetTooltipText(l10n_util::GetStringUTF16(IDS_LEARN_MORE));
|
||||
@@ -86,7 +86,7 @@
|
||||
DialogDelegate::SetButtons(ui::DIALOG_BUTTON_OK);
|
||||
DialogDelegate::SetButtonLabel(ui::DIALOG_BUTTON_OK,
|
||||
l10n_util::GetStringUTF16(IDS_DONE));
|
||||
- DialogDelegate::SetExtraView(::CreateExtraView(this));
|
||||
+ DialogDelegate::SetExtraView(::CreateExtraViewInternal(this));
|
||||
@@ -85,7 +85,7 @@
|
||||
browser_(browser) {
|
||||
SetButtons(ui::DIALOG_BUTTON_OK);
|
||||
SetButtonLabel(ui::DIALOG_BUTTON_OK, l10n_util::GetStringUTF16(IDS_DONE));
|
||||
- SetExtraView(::CreateExtraView(this));
|
||||
+ SetExtraView(::CreateExtraViewInternal(this));
|
||||
set_margins(gfx::Insets());
|
||||
chrome::RecordDialogCreation(chrome::DialogIdentifier::INVERT);
|
||||
}
|
||||
|
|
|
@ -1,63 +0,0 @@
|
|||
Upstream: Yes
|
||||
From aeef68888d4c00b69facead2b934095a8cd17329 Mon Sep 17 00:00:00 2001
|
||||
From: Stephan Hartmann <stha09@googlemail.com>
|
||||
Date: Mon, 20 Apr 2020 18:21:43 +0000
|
||||
Subject: [PATCH] libstdc++: fix incomplete-type in AXTree for
|
||||
NodeSetSizePosInSetInfo
|
||||
|
||||
has only forward declaration of NodeSetSizePosInSetInfo. Therefore,
|
||||
move declaration from ax_tree.cc.
|
||||
|
||||
std: :unordered_map<T, U> requires U to be fully declared. ax_tree.h
|
||||
Bug: 957519
|
||||
Change-Id: Ic1f4bf3ebfea229ece84251e46d4461b31873868
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2132403
|
||||
Reviewed-by: David Tseng <dtseng@chromium.org>
|
||||
Commit-Queue: David Tseng <dtseng@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#760588}
|
||||
---
|
||||
ui/accessibility/ax_tree.cc | 10 ++--------
|
||||
ui/accessibility/ax_tree.h | 9 ++++++++-
|
||||
2 files changed, 10 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/ui/accessibility/ax_tree.cc b/ui/accessibility/ax_tree.cc
|
||||
index 7b8d9b1b161..e9154028d66 100644
|
||||
--- ui/accessibility/ax_tree.cc
|
||||
+++ ui/accessibility/ax_tree.cc
|
||||
@@ -567,14 +567,8 @@ struct AXTreeUpdateState {
|
||||
const AXTree& tree;
|
||||
};
|
||||
|
||||
-struct AXTree::NodeSetSizePosInSetInfo {
|
||||
- NodeSetSizePosInSetInfo() = default;
|
||||
- ~NodeSetSizePosInSetInfo() = default;
|
||||
-
|
||||
- int32_t pos_in_set = 0;
|
||||
- int32_t set_size = 0;
|
||||
- base::Optional<int> lowest_hierarchical_level;
|
||||
-};
|
||||
+AXTree::NodeSetSizePosInSetInfo::NodeSetSizePosInSetInfo() = default;
|
||||
+AXTree::NodeSetSizePosInSetInfo::~NodeSetSizePosInSetInfo() = default;
|
||||
|
||||
struct AXTree::OrderedSetContent {
|
||||
explicit OrderedSetContent(const AXNode* ordered_set = nullptr)
|
||||
diff --git a/ui/accessibility/ax_tree.h b/ui/accessibility/ax_tree.h
|
||||
index a51ca8de4c8..8c1c57517ac 100644
|
||||
--- ui/accessibility/ax_tree.h
|
||||
+++ ui/accessibility/ax_tree.h
|
||||
@@ -328,7 +328,14 @@ class AX_EXPORT AXTree : public AXNode::OwnerTree {
|
||||
bool enable_extra_mac_nodes_ = false;
|
||||
|
||||
// Contains pos_in_set and set_size data for an AXNode.
|
||||
- struct NodeSetSizePosInSetInfo;
|
||||
+ struct NodeSetSizePosInSetInfo {
|
||||
+ NodeSetSizePosInSetInfo();
|
||||
+ ~NodeSetSizePosInSetInfo();
|
||||
+
|
||||
+ int32_t pos_in_set = 0;
|
||||
+ int32_t set_size = 0;
|
||||
+ base::Optional<int> lowest_hierarchical_level;
|
||||
+ };
|
||||
|
||||
// Represents the content of an ordered set which includes the ordered set
|
||||
// items and the ordered set container if it exists.
|
|
@ -1,96 +0,0 @@
|
|||
Upstream: Yes
|
||||
From d3cabbc7321d349a9bffda482df5afc0d4df1ac2 Mon Sep 17 00:00:00 2001
|
||||
From: Piotr Tworek <ptworek@vewd.com>
|
||||
Date: Thu, 30 Apr 2020 21:33:47 +0000
|
||||
Subject: [PATCH] Make some of blink custom iterators STL compatible.
|
||||
|
||||
Blink has recently started using functions like std::any_of with some of
|
||||
the custom iterators it provides. On Linux this works in the default
|
||||
setup using libcxx, but fails with even the most recent versions of
|
||||
libstdc++. In all cases the error message (text in bug report) complains
|
||||
about lack of matching std::__iterator_category definition.
|
||||
|
||||
From what I understand the error message is basically saying those
|
||||
iterators are not STL compatible due to missing traits as described
|
||||
in https://en.cppreference.com/w/cpp/iterator/iterator_traits. Such
|
||||
traits are provided by custom iterators defined in //base, or //cc.
|
||||
|
||||
This patch adds the necessary traits to iterators that are currently
|
||||
affected by this problem.
|
||||
|
||||
Bug: 1076869
|
||||
Change-Id: I9950a7100c32499ba96647317fa70b87dc22eaf9
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2174199
|
||||
Reviewed-by: Kentaro Hara <haraken@chromium.org>
|
||||
Commit-Queue: Piotr Tworek <ptworek@vewd.com>
|
||||
Cr-Commit-Position: refs/heads/master@{#764426}
|
||||
---
|
||||
.../core/layout/ng/ng_physical_container_fragment.h | 6 ++++++
|
||||
.../blink/renderer/platform/wtf/hash_iterators.h | 12 ++++++++++++
|
||||
third_party/blink/renderer/platform/wtf/hash_table.h | 6 ++++++
|
||||
3 files changed, 24 insertions(+)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h b/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
|
||||
index 1256e77c146..8b93107f2fc 100644
|
||||
--- third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
|
||||
+++ third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.h
|
||||
@@ -38,6 +38,12 @@ class CORE_EXPORT NGPhysicalContainerFragment : public NGPhysicalFragment {
|
||||
STACK_ALLOCATED();
|
||||
|
||||
public:
|
||||
+ using iterator_category = std::bidirectional_iterator_tag;
|
||||
+ using value_type = NGLink;
|
||||
+ using difference_type = ptrdiff_t;
|
||||
+ using pointer = value_type*;
|
||||
+ using reference = value_type&;
|
||||
+
|
||||
ConstIterator(const NGLink* current) : current_(current) {}
|
||||
|
||||
const NGLink& operator*() const { return *PostLayoutOrCurrent(); }
|
||||
diff --git a/third_party/blink/renderer/platform/wtf/hash_iterators.h b/third_party/blink/renderer/platform/wtf/hash_iterators.h
|
||||
index f8e66e6be85..6003d02c509 100644
|
||||
--- third_party/blink/renderer/platform/wtf/hash_iterators.h
|
||||
+++ third_party/blink/renderer/platform/wtf/hash_iterators.h
|
||||
@@ -53,6 +53,12 @@ struct HashTableConstIteratorAdapter<HashTableType,
|
||||
typedef HashTableConstValuesIterator<HashTableType, KeyType, MappedType>
|
||||
ValuesIterator;
|
||||
|
||||
+ using iterator_category = std::bidirectional_iterator_tag;
|
||||
+ using value_type = HashTableType;
|
||||
+ using difference_type = ptrdiff_t;
|
||||
+ using pointer = value_type*;
|
||||
+ using reference = value_type&;
|
||||
+
|
||||
HashTableConstIteratorAdapter() = default;
|
||||
HashTableConstIteratorAdapter(
|
||||
const typename HashTableType::const_iterator& impl)
|
||||
@@ -94,6 +100,12 @@ struct HashTableIteratorAdapter<HashTableType,
|
||||
typedef HashTableValuesIterator<HashTableType, KeyType, MappedType>
|
||||
ValuesIterator;
|
||||
|
||||
+ using iterator_category = std::bidirectional_iterator_tag;
|
||||
+ using value_type = HashTableType;
|
||||
+ using difference_type = ptrdiff_t;
|
||||
+ using pointer = value_type*;
|
||||
+ using reference = value_type&;
|
||||
+
|
||||
HashTableIteratorAdapter() = default;
|
||||
HashTableIteratorAdapter(const typename HashTableType::iterator& impl)
|
||||
: impl_(impl) {}
|
||||
diff --git a/third_party/blink/renderer/platform/wtf/hash_table.h b/third_party/blink/renderer/platform/wtf/hash_table.h
|
||||
index f596fb5d41e..5a4468d6bd1 100644
|
||||
--- third_party/blink/renderer/platform/wtf/hash_table.h
|
||||
+++ third_party/blink/renderer/platform/wtf/hash_table.h
|
||||
@@ -2204,6 +2204,12 @@ struct HashTableConstIteratorAdapter {
|
||||
STACK_ALLOCATED();
|
||||
|
||||
public:
|
||||
+ using iterator_category = std::bidirectional_iterator_tag;
|
||||
+ using value_type = HashTableType;
|
||||
+ using difference_type = ptrdiff_t;
|
||||
+ using pointer = value_type*;
|
||||
+ using reference = value_type&;
|
||||
+
|
||||
HashTableConstIteratorAdapter() = default;
|
||||
HashTableConstIteratorAdapter(
|
||||
const typename HashTableType::const_iterator& impl)
|
|
@ -1,34 +1,3 @@
|
|||
--- ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
|
||||
+++ ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
|
||||
@@ -49,7 +49,7 @@
|
||||
}
|
||||
|
||||
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 @@
|
||||
}
|
||||
|
||||
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;
|
||||
--- ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
|
||||
+++ ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
|
||||
@@ -50,7 +50,7 @@
|
||||
// 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);
|
||||
--- ./third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
|
||||
+++ ./third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
|
||||
@@ -490,7 +490,9 @@
|
||||
|
|
|
@ -35,52 +35,6 @@
|
|||
#pragma pop_macro("lstat64")
|
||||
#pragma pop_macro("pread64")
|
||||
#pragma pop_macro("pwrite64")
|
||||
--- ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h.orig
|
||||
+++ ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
|
||||
@@ -37,6 +37,10 @@
|
||||
#include "common/memory.h"
|
||||
#include "google_breakpad/common/minidump_format.h"
|
||||
|
||||
+#if !defined(__GLIBC__)
|
||||
+ #define _libc_fpstate _fpstate
|
||||
+#endif
|
||||
+
|
||||
namespace google_breakpad {
|
||||
|
||||
// Wraps platform-dependent implementations of accessors to ucontext_t structs.
|
||||
--- ./third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h.orig
|
||||
+++ ./third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
|
||||
@@ -48,7 +48,7 @@
|
||||
#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
|
||||
--- ./third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h.orig
|
||||
+++ ./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 @@
|
||||
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."
|
||||
--- ./sandbox/linux/suid/process_util.h.orig
|
||||
+++ ./sandbox/linux/suid/process_util.h
|
||||
@@ -11,6 +11,14 @@
|
||||
|
@ -141,16 +95,6 @@ diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc b
|
|||
base::Version version(gnu_get_libc_version());
|
||||
|
||||
UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE;
|
||||
--- services/device/serial/serial_io_handler_posix.cc.orig 2019-07-03 10:57:32.568171835 -0400
|
||||
+++ services/device/serial/serial_io_handler_posix.cc 2019-07-03 10:57:16.867983031 -0400
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include <termios.h>
|
||||
+#include <asm-generic/ioctls.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/include/opentype-sanitiser.h
|
||||
--- third_party/ots/include/opentype-sanitiser.h
|
||||
+++ third_party/ots/include/opentype-sanitiser.h
|
||||
|
@ -235,3 +179,15 @@ diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/incl
|
|||
|
||||
/*
|
||||
* GNU-specific, but avoids the realpath(..., NULL)
|
||||
diff --git a/mojo/public/cpp/platform/named_platform_channel_posix.cc ./mojo/public/cpp/platform/named_platform_channel_posix.cc
|
||||
index 9082ac4..cbedae6 100644
|
||||
--- a/mojo/public/cpp/platform/named_platform_channel_posix.cc
|
||||
+++ ./mojo/public/cpp/platform/named_platform_channel_posix.cc
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "mojo/public/cpp/platform/named_platform_channel.h"
|
||||
|
||||
#include <errno.h>
|
||||
+#include <string.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
#include <unistd.h>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
GCC doesn't know this option
|
||||
--- build/config/compiler/BUILD.gn.orig 2020-05-20 09:34:53.358598296 -0400
|
||||
+++ build/config/compiler/BUILD.gn 2020-05-20 09:35:40.589648947 -0400
|
||||
@@ -1508,9 +1508,6 @@
|
||||
--- build/config/compiler/BUILD.gn.orig
|
||||
+++ build/config/compiler/BUILD.gn
|
||||
@@ -1495,9 +1495,6 @@
|
||||
|
||||
# TODO(https://crbug.com/1028110): Evaluate and possible enable.
|
||||
"-Wno-deprecated-copy",
|
||||
|
||||
-
|
||||
- # TODO(https://crbug.com/1050281): Clean up, enable.
|
||||
- "-Wno-non-c-typedef-for-linkage",
|
||||
-
|
||||
# TODO(https://crbug.com/1059231): Clean up, enable.
|
||||
"-Wno-pointer-to-int-cast",
|
||||
]
|
||||
|
||||
cflags_c += [
|
||||
|
|
36
community/chromium/upstream-AXObject-stl-iterator.patch
Normal file
36
community/chromium/upstream-AXObject-stl-iterator.patch
Normal file
|
@ -0,0 +1,36 @@
|
|||
From f3dfe39f9fd3091cf1a7146b936d9de77a459435 Mon Sep 17 00:00:00 2001
|
||||
From: Piotr Tworek <ptworek@vewd.com>
|
||||
Date: Mon, 18 May 2020 15:24:35 +0000
|
||||
Subject: [PATCH] Make blink::AXObject::AncestorsIterator STL compatible.
|
||||
|
||||
Commit 31e5188ffc9a04295997d22bfdb68fc367bef047, "Used some methods from
|
||||
AXRoleProperties in AXObject" started using std::any_of with this custom
|
||||
iterator type. Unfortunately this iterator does not provide traits
|
||||
mandated by the standard. This works fine for libcxx, but fails when
|
||||
compiling the code against libstdc++.
|
||||
|
||||
Bug: 819294
|
||||
Change-Id: I78fe25475593d73ce255f1de955aa41e936dff86
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2207112
|
||||
Reviewed-by: Kentaro Hara <haraken@chromium.org>
|
||||
Commit-Queue: Piotr Tworek <ptworek@vewd.com>
|
||||
Cr-Commit-Position: refs/heads/master@{#769713}
|
||||
---
|
||||
|
||||
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.h b/third_party/blink/renderer/modules/accessibility/ax_object.h
|
||||
index 841715b..fbb87bf 100644
|
||||
--- third_party/blink/renderer/modules/accessibility/ax_object.h
|
||||
+++ third_party/blink/renderer/modules/accessibility/ax_object.h
|
||||
@@ -274,6 +274,12 @@
|
||||
class MODULES_EXPORT AncestorsIterator final
|
||||
: public GarbageCollected<AncestorsIterator> {
|
||||
public:
|
||||
+ using iterator_category = std::forward_iterator_tag;
|
||||
+ using value_type = AXObject;
|
||||
+ using difference_type = ptrdiff_t;
|
||||
+ using pointer = value_type*;
|
||||
+ using reference = value_type&;
|
||||
+
|
||||
~AncestorsIterator() = default;
|
||||
|
||||
AncestorsIterator(const AncestorsIterator& other)
|
|
@ -0,0 +1,30 @@
|
|||
From 408bded3befc625e16ef18f2ff5467e040b203e7 Mon Sep 17 00:00:00 2001
|
||||
From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
||||
Date: Wed, 27 May 2020 16:34:56 +0000
|
||||
Subject: [PATCH] ListContainerHelper: Include <cstring> for memcpy()
|
||||
|
||||
IWYU. This fixes the libstdc++ build after commit 41989bd89 ("Remove/replace
|
||||
unnecessary logging.h includes in .cc files (cc)").
|
||||
|
||||
Bug: 957519
|
||||
Change-Id: I1e782e8310ca548947b2d541af6a2159d928d1f3
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2218090
|
||||
Reviewed-by: vmpstr <vmpstr@chromium.org>
|
||||
Commit-Queue: vmpstr <vmpstr@chromium.org>
|
||||
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
||||
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
||||
Cr-Commit-Position: refs/heads/master@{#772267}
|
||||
---
|
||||
|
||||
diff --git a/cc/base/list_container_helper.cc b/cc/base/list_container_helper.cc
|
||||
index afd386e..7b594b4 100644
|
||||
--- cc/base/list_container_helper.cc
|
||||
+++ cc/base/list_container_helper.cc
|
||||
@@ -7,6 +7,7 @@
|
||||
#include <stddef.h>
|
||||
|
||||
#include <algorithm>
|
||||
+#include <cstring>
|
||||
#include <vector>
|
||||
|
||||
#include "base/check_op.h"
|
|
@ -0,0 +1,71 @@
|
|||
From 128869693a2519578896b41765df029d7adc4ae0 Mon Sep 17 00:00:00 2001
|
||||
From: Yuzu Saijo <yuzus@chromium.org>
|
||||
Date: Tue, 2 Jun 2020 04:51:11 +0000
|
||||
Subject: [PATCH] [content] Avoid calling DeleteForCurrentDocument from
|
||||
destructor
|
||||
|
||||
This CL removes the call to DeleteForCurrentDocument from the destructor
|
||||
of ManifestManagerHost.
|
||||
|
||||
This intends to fix a crash which happens from time to time using
|
||||
RenderDocumentHostUserData.
|
||||
|
||||
Change-Id: I1336fb62328dcb0cf9991499f399bf3665d29b75
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2224737
|
||||
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
|
||||
Reviewed-by: Alexander Timin <altimin@chromium.org>
|
||||
Reviewed-by: Sreeja Kamishetty <sreejakshetty@chromium.org>
|
||||
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
|
||||
Commit-Queue: Yuzu Saijo <yuzus@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#774006}
|
||||
---
|
||||
content/browser/manifest/manifest_manager_host.cc | 7 +++++--
|
||||
content/browser/manifest/manifest_manager_host.h | 2 ++
|
||||
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/content/browser/manifest/manifest_manager_host.cc b/content/browser/manifest/manifest_manager_host.cc
|
||||
index 3a2efba889a..1bd88d91edc 100644
|
||||
--- content/browser/manifest/manifest_manager_host.cc
|
||||
+++ content/browser/manifest/manifest_manager_host.cc
|
||||
@@ -22,7 +22,7 @@ ManifestManagerHost::ManifestManagerHost(RenderFrameHost* render_frame_host)
|
||||
}
|
||||
|
||||
ManifestManagerHost::~ManifestManagerHost() {
|
||||
- OnConnectionError();
|
||||
+ DispatchPendingCallbacks();
|
||||
}
|
||||
|
||||
void ManifestManagerHost::BindObserver(
|
||||
@@ -55,7 +55,7 @@ blink::mojom::ManifestManager& ManifestManagerHost::GetManifestManager() {
|
||||
return *manifest_manager_;
|
||||
}
|
||||
|
||||
-void ManifestManagerHost::OnConnectionError() {
|
||||
+void ManifestManagerHost::DispatchPendingCallbacks() {
|
||||
std::vector<GetManifestCallback> callbacks;
|
||||
for (CallbackMap::iterator it(&callbacks_); !it.IsAtEnd(); it.Advance()) {
|
||||
callbacks.push_back(std::move(*it.GetCurrentValue()));
|
||||
@@ -63,7 +63,10 @@ void ManifestManagerHost::OnConnectionError() {
|
||||
callbacks_.Clear();
|
||||
for (auto& callback : callbacks)
|
||||
std::move(callback).Run(GURL(), blink::Manifest());
|
||||
+}
|
||||
|
||||
+void ManifestManagerHost::OnConnectionError() {
|
||||
+ DispatchPendingCallbacks();
|
||||
if (GetForCurrentDocument(manifest_manager_frame_)) {
|
||||
DeleteForCurrentDocument(manifest_manager_frame_);
|
||||
}
|
||||
diff --git a/content/browser/manifest/manifest_manager_host.h b/content/browser/manifest/manifest_manager_host.h
|
||||
index 96951ae30bc..f706c20bdb8 100644
|
||||
--- content/browser/manifest/manifest_manager_host.h
|
||||
+++ content/browser/manifest/manifest_manager_host.h
|
||||
@@ -55,6 +55,8 @@ class ManifestManagerHost
|
||||
using CallbackMap = base::IDMap<std::unique_ptr<GetManifestCallback>>;
|
||||
|
||||
blink::mojom::ManifestManager& GetManifestManager();
|
||||
+
|
||||
+ void DispatchPendingCallbacks();
|
||||
void OnConnectionError();
|
||||
|
||||
void OnRequestManifestResponse(int request_id,
|
|
@ -0,0 +1,38 @@
|
|||
From 192fc3899f76e9487d77895f31df8d2d13bf9619 Mon Sep 17 00:00:00 2001
|
||||
From: Dale Curtis <dalecurtis@chromium.org>
|
||||
Date: Fri, 26 Jun 2020 01:10:55 +0000
|
||||
Subject: [PATCH] Force mp3 files to have a start time of zero.
|
||||
|
||||
This will allow us to remove our custom patch which breaks upstream
|
||||
ffmpeg functionality for unknown reasons.
|
||||
|
||||
R=sandersd
|
||||
|
||||
Fixed: 1062037
|
||||
Change-Id: I253011843dee4dd6a8c958b14990ad836a9f1dca
|
||||
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2268221
|
||||
Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
|
||||
Reviewed-by: Dan Sanders <sandersd@chromium.org>
|
||||
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
|
||||
Cr-Commit-Position: refs/heads/master@{#782792}
|
||||
---
|
||||
media/filters/ffmpeg_demuxer.cc | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
|
||||
index 01266e1a072..a7ed542b5fc 100644
|
||||
--- media/filters/ffmpeg_demuxer.cc
|
||||
+++ media/filters/ffmpeg_demuxer.cc
|
||||
@@ -1522,6 +1522,12 @@ void FFmpegDemuxer::OnFindStreamInfoDone(int result) {
|
||||
if (glue_->container() == container_names::CONTAINER_AVI)
|
||||
format_context->flags |= AVFMT_FLAG_GENPTS;
|
||||
|
||||
+ // FFmpeg will incorrectly adjust the start time of MP3 files into the future
|
||||
+ // based on discard samples. We were unable to fix this upstream without
|
||||
+ // breaking ffmpeg functionality. https://crbug.com/1062037
|
||||
+ if (glue_->container() == container_names::CONTAINER_MP3)
|
||||
+ start_time_ = base::TimeDelta();
|
||||
+
|
||||
// For testing purposes, don't overwrite the timeline offset if set already.
|
||||
if (timeline_offset_.is_null()) {
|
||||
timeline_offset_ =
|
|
@ -1,75 +0,0 @@
|
|||
|
||||
Use Position Independent Code for i586 also
|
||||
Otherwise, you will run into the following problem when linking
|
||||
(only lld warned about the issue, ld and ld.gold produced binaries
|
||||
that crashed in the dynamic linker during startup):
|
||||
ld: error: can't create dynamic relocation R_386_32 against local
|
||||
symbol in read only segment; recompile object files with -fPIC
|
||||
or pass '-Wl,-z,notext' to allow text relocations in the output
|
||||
|
||||
--- ./build/linux/unbundle/yasm.gn
|
||||
+++ ./build/linux/unbundle/yasm.gn
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
if (current_cpu == "x86") {
|
||||
_yasm_flags = [
|
||||
+ "-DPIC",
|
||||
"-felf32",
|
||||
"-m",
|
||||
"x86",
|
||||
--- ./third_party/openh264/BUILD.gn
|
||||
+++ ./third_party/openh264/BUILD.gn
|
||||
@@ -66,6 +66,7 @@
|
||||
defines = yasm_defines
|
||||
if (current_cpu == "x86") {
|
||||
defines += [ "X86_32" ]
|
||||
+ defines += [ "X86_32_PICASM" ]
|
||||
} else { # x64
|
||||
if (is_mac) {
|
||||
defines += [
|
||||
@@ -87,6 +88,7 @@
|
||||
defines = yasm_defines
|
||||
if (current_cpu == "x86") {
|
||||
defines += [ "X86_32" ]
|
||||
+ defines += [ "X86_32_PICASM" ]
|
||||
} else { # x64
|
||||
if (is_mac) {
|
||||
defines += [
|
||||
@@ -108,6 +110,7 @@
|
||||
defines = yasm_defines
|
||||
if (current_cpu == "x86") {
|
||||
defines += [ "X86_32" ]
|
||||
+ defines += [ "X86_32_PICASM" ]
|
||||
} else { # x64
|
||||
if (is_mac) {
|
||||
defines += [
|
||||
@@ -136,6 +139,9 @@
|
||||
deps = []
|
||||
if (use_assembler) {
|
||||
defines = [ "X86_ASM" ]
|
||||
+ if (current_cpu == "x86") {
|
||||
+ defines += [ "X86_32_ASM" ]
|
||||
+ }
|
||||
deps += [ ":openh264_common_yasm" ]
|
||||
}
|
||||
if (is_android) {
|
||||
@@ -162,6 +168,9 @@
|
||||
deps = [ ":common" ]
|
||||
if (use_assembler) {
|
||||
defines = [ "X86_ASM" ]
|
||||
+ if (current_cpu == "x86") {
|
||||
+ defines += [ "X86_32_ASM" ]
|
||||
+ }
|
||||
deps += [ ":openh264_processing_yasm" ]
|
||||
}
|
||||
}
|
||||
@@ -188,6 +197,9 @@
|
||||
]
|
||||
if (use_assembler) {
|
||||
defines = [ "X86_ASM" ]
|
||||
+ if (current_cpu == "x86") {
|
||||
+ defines += [ "X86_32_ASM" ]
|
||||
+ }
|
||||
deps += [ ":openh264_encoder_yasm" ]
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue