summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxim Baz2018-03-30 13:12:50 +0200
committerMaxim Baz2018-03-30 13:12:50 +0200
commit617599a9a1f4dd3e84090dbe14d3e99813226b73 (patch)
treea48e97c9bf61d7128461269106ecdcb95e78bb67
parent93477f871a975fd61859f1a0d623379e9aa51b73 (diff)
downloadaur-617599a9a1f4dd3e84090dbe14d3e99813226b73.tar.gz
Update to 65.0.3325.181-3
-rw-r--r--PKGBUILD16
-rw-r--r--fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch53
2 files changed, 60 insertions, 9 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 6103db1b7951..ea2c9ca0ae21 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -11,7 +11,7 @@
pkgname=chromium-vaapi
pkgver=65.0.3325.181
-pkgrel=1
+pkgrel=3
_launcher_ver=5
pkgdesc="Chromium compiled with VA-API support for Intel Graphics"
arch=('x86_64')
@@ -33,6 +33,7 @@ install=chromium.install
source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz
chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
chromium-$pkgver.txt::https://chromium.googlesource.com/chromium/src.git/+/$pkgver?format=TEXT
+ fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch
chromium-skia-harmony.patch
chromium-clang-r2.patch
chromium-math.h-r0.patch
@@ -44,6 +45,7 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom
sha256sums=('93666448c6b96ec83e6a35a64cff40db4eb92a154fe1db4e7dab4761d0e38687'
'4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587'
'2771c049b66c9aba3b945fe065f2610f164d55506eb5d71751a26aaf8b40d4ee'
+ 'e3fb73b43bb8c69ff517e66b2cac73d6e759fd240003eb35598df9af442422fe'
'feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3'
'4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3'
'fe0ab86aa5b0072db730eccda3e1582ebed4af25815bfd49fe0da24cf63ca902'
@@ -105,6 +107,9 @@ prepare() {
sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch |
patch -Np1
+ # https://crbug.com/822820
+ patch -Np1 -i ../fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch
+
# https://crbug.com/skia/6663#c10
patch -Np4 -i ../chromium-skia-harmony.patch
@@ -113,14 +118,6 @@ prepare() {
patch -Np1 -i ../chromium-math.h-r0.patch
patch -Np1 -i ../chromium-stdint.patch
- # Remove compiler flags not supported by our system clang
- sed -i \
- -e '/"-Wno-enum-compare-switch"/d' \
- -e '/"-Wno-null-pointer-arithmetic"/d' \
- -e '/"-Wno-tautological-unsigned-zero-compare"/d' \
- -e '/"-Wno-tautological-constant-compare"/d' \
- build/config/compiler/BUILD.gn
-
# Use Python 2
find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} +
@@ -179,6 +176,7 @@ build() {
'host_toolchain="//build/toolchain/linux/unbundle:default"'
'is_clang=true'
'clang_use_chrome_plugins=false'
+ 'is_cfi=true'
'is_debug=false'
'fatal_linker_warnings=false'
'treat_warnings_as_errors=false'
diff --git a/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch b/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch
new file mode 100644
index 000000000000..ee7339d39817
--- /dev/null
+++ b/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch
@@ -0,0 +1,53 @@
+From f15e8b573ada0fcd643ae393484214b1c7c940f8 Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos@foutrelis.com>
+Date: Sat, 24 Mar 2018 00:04:33 +0000
+Subject: [PATCH] Fix crash in is_cfi=true builds with unbundled ICU
+
+Ensure ICU symbols have public visibility and are thus excluded from CFI
+checks and whole-program optimization. The former caused a startup crash
+and the latter has the potential to break virtual calls in weird ways.
+
+BUG=822820
+
+Change-Id: Ia809eefcb9e93b3c612f2381d394db83bbc67120
+Reviewed-on: https://chromium-review.googlesource.com/978008
+Reviewed-by: Peter Collingbourne <pcc@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#545638}
+---
+ build/linux/unbundle/icu.gn | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
+index 5bdd91555df7..4450e409dba5 100644
+--- a/build/linux/unbundle/icu.gn
++++ b/build/linux/unbundle/icu.gn
+@@ -17,6 +17,24 @@ config("icu_config") {
+ "USING_SYSTEM_ICU=1",
+ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
+ "UCHAR_TYPE=uint16_t",
++
++ # U_EXPORT (defined in unicode/platform.h) is used to set public visibility
++ # on classes through the U_COMMON_API and U_I18N_API macros (among others).
++ # When linking against the system ICU library, we want its symbols to have
++ # public LTO visibility. This disables CFI checks for the ICU classes and
++ # allows whole-program optimization to be applied to the rest of Chromium.
++ #
++ # Both U_COMMON_API and U_I18N_API macros would be defined to U_EXPORT only
++ # when U_COMBINED_IMPLEMENTATION is defined (see unicode/utypes.h). Because
++ # we override the default system UCHAR_TYPE (char16_t), it is not possible
++ # to use U_COMBINED_IMPLEMENTATION at this moment, meaning the U_COMMON_API
++ # and U_I18N_API macros are set to U_IMPORT which is an empty definition.
++ #
++ # Until building with UCHAR_TYPE=char16_t is supported, one way to apply
++ # public visibility (and thus public LTO visibility) to all ICU classes is
++ # to define U_IMPORT to have the same value as U_EXPORT. For more details,
++ # please see: https://crbug.com/822820
++ "U_IMPORT=U_EXPORT",
+ ]
+ }
+
+--
+2.16.3
+