chromium: update to 65.0.3325.181.

The build with gcc is currently broken, therefor I added a clang build
option that is enabled by default for now.

The following system libraries are now used:
* fontconfig
* freetype
* harfbuzz-ng
* opus
* re2

Removed the `use_gconf` gn option because it doesn't exist anymore.

Closes #12807
This commit is contained in:
Duncaen 2018-03-22 22:32:48 +01:00
parent 168ff59b01
commit 306d54f768
7 changed files with 188 additions and 46 deletions

View File

@ -53,16 +53,3 @@ index 4163c2c..3d1902a 100644
#endif #endif
} }
#endif #endif
diff --git a/buildtools/third_party/libc++/trunk/src/system_error.cpp b/buildtools/third_party/libc++/trunk/src/system_error.cpp
index cbbbb5d..8761e65 100644
--- buildtools/third_party/libc++/trunk/src/system_error.cpp
+++ buildtools/third_party/libc++/trunk/src/system_error.cpp
@@ -73,7 +73,7 @@ string do_strerror_r(int ev) {
std::snprintf(buffer, strerror_buff_size, "unknown error %d", ev);
return string(buffer);
}
-#elif defined(__linux__) && !defined(_LIBCPP_HAS_MUSL_LIBC) && \
+#elif defined(__GLIBC__) && !defined(_LIBCPP_HAS_MUSL_LIBC) && \
(!defined(__ANDROID__) || __ANDROID_API__ >= 23)
// GNU Extended version
string do_strerror_r(int ev) {

View File

@ -0,0 +1,21 @@
--- build/config/compiler/BUILD.gn
+++ build/config/compiler/BUILD.gn
@@ -422,18 +422,6 @@
cflags += [ "-fcolor-diagnostics" ]
}
- # TODO(hans): Remove this once Clang generates better optimized debug info by
- # default. https://crbug.com/765793
- if (is_clang && !is_nacl && current_toolchain == host_toolchain &&
- target_os != "chromeos") {
- cflags += [
- "-Xclang",
- "-mllvm",
- "-Xclang",
- "-instcombine-lower-dbg-declare=0",
- ]
- }
-
# Print absolute paths in diagnostics. There is no precedent for doing this
# on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and
# Windows developers rely on it (crbug.com/636109) so only do this on Windows.

View File

@ -0,0 +1,29 @@
From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001
From: Tom Anderson <thomasanderson@chromium.org>
Date: Sat, 27 Jan 2018 20:03:37 +0000
Subject: [PATCH] Fix build with glibc 2.27
BUG=806340
TBR=hamelphi@chromium.org
Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e
Reviewed-on: https://chromium-review.googlesource.com/890059
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Philippe Hamel <hamelphi@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532249}
---
diff --git a/components/assist_ranker/ranker_example_util.cc b/components/assist_ranker/ranker_example_util.cc
index 54d4dbd..ceedd8f 100644
--- components/assist_ranker/ranker_example_util.cc
+++ components/assist_ranker/ranker_example_util.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 <math.h>
+
#include "components/assist_ranker/ranker_example_util.h"
#include "base/bit_cast.h"
#include "base/format_macros.h"

View File

@ -0,0 +1,77 @@
--- third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2017-10-10 17:42:06.956950985 +0200
+++ third_party/skia/src/ports/SkFontHost_FreeType.cpp 2017-10-10 17:46:05.824187787 +0200
@@ -99,8 +99,6 @@
FreeTypeLibrary()
: fGetVarDesignCoordinates(nullptr)
, fLibrary(nullptr)
- , fIsLCDSupported(false)
- , fLCDExtra(0)
{
if (FT_New_Library(&gFTMemory, &fLibrary)) {
return;
@@ -147,12 +145,7 @@
}
#endif
- // Setup LCD filtering. This reduces color fringes for LCD smoothed glyphs.
- // The default has changed over time, so this doesn't mean the same thing to all users.
- if (FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT) == 0) {
- fIsLCDSupported = true;
- fLCDExtra = 2; //Using a filter adds one full pixel to each side.
- }
+ FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT);
}
~FreeTypeLibrary() {
if (fLibrary) {
@@ -161,8 +153,6 @@
}
FT_Library library() { return fLibrary; }
- bool isLCDSupported() { return fIsLCDSupported; }
- int lcdExtra() { return fLCDExtra; }
// FT_Get_{MM,Var}_{Blend,Design}_Coordinates were added in FreeType 2.7.1.
// Prior to this there was no way to get the coordinates out of the FT_Face.
@@ -173,8 +163,6 @@
private:
FT_Library fLibrary;
- bool fIsLCDSupported;
- int fLCDExtra;
// FT_Library_SetLcdFilterWeights was introduced in FreeType 2.4.0.
// The following platforms provide FreeType of at least 2.4.0.
@@ -704,17 +692,6 @@
rec->fTextSize = SkIntToScalar(1 << 14);
}
- if (isLCD(*rec)) {
- // TODO: re-work so that FreeType is set-up and selected by the SkFontMgr.
- SkAutoMutexAcquire ama(gFTMutex);
- ref_ft_library();
- if (!gFTLibrary->isLCDSupported()) {
- // If the runtime Freetype library doesn't support LCD, disable it here.
- rec->fMaskFormat = SkMask::kA8_Format;
- }
- unref_ft_library();
- }
-
SkPaint::Hinting h = rec->getHinting();
if (SkPaint::kFull_Hinting == h && !isLCD(*rec)) {
// collapse full->normal hinting if we're not doing LCD
@@ -1115,11 +1092,11 @@
void SkScalerContext_FreeType::updateGlyphIfLCD(SkGlyph* glyph) {
if (isLCD(fRec)) {
if (fLCDIsVert) {
- glyph->fHeight += gFTLibrary->lcdExtra();
- glyph->fTop -= gFTLibrary->lcdExtra() >> 1;
+ glyph->fHeight += 2;
+ glyph->fTop -= 1;
} else {
- glyph->fWidth += gFTLibrary->lcdExtra();
- glyph->fLeft -= gFTLibrary->lcdExtra() >> 1;
+ glyph->fWidth += 2;
+ glyph->fLeft -= 1;
}
}
}

View File

@ -0,0 +1,21 @@
From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001
From: Tomas Popela <tomas.popela@gmail.com>
Date: Wed, 31 Jan 2018 18:57:07 +0000
Subject: [PATCH] Add missing stdint include
diff --git a/chrome/browser/vr/sample_queue.cc b/chrome/browser/vr/sample_queue.cc
index c2ca777ce90c..53cb3aab1576 100644
--- chrome/browser/vr/sample_queue.cc
+++ chrome/browser/vr/sample_queue.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 <stdint.h>
+
#include "chrome/browser/vr/sample_queue.h"
namespace vr {
--
2.16.2

View File

@ -1,11 +0,0 @@
--- buildtools/third_party/libc++/trunk/include/__locale.orig 2017-09-14 19:06:26.000000000 +0000
+++ buildtools/third_party/libc++/trunk/include/__locale 2017-09-15 08:58:37.520038686 +0000
@@ -34,7 +34,7 @@
# include <support/solaris/xlocale.h>
#elif defined(_NEWLIB_VERSION)
# include <support/newlib/xlocale.h>
-#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) \
+#elif (defined(__APPLE__) || defined(__FreeBSD__) \
|| defined(__EMSCRIPTEN__) || defined(__IBMCPP__))
# include <xlocale.h>
#elif defined(__Fuchsia__)

View File

@ -1,24 +1,26 @@
# Template file for 'chromium' # Template file for 'chromium'
pkgname=chromium pkgname=chromium
# See http://www.chromium.org/developers/calendar for the latest version # See http://www.chromium.org/developers/calendar for the latest version
version=63.0.3239.84 version=65.0.3325.181
revision=1 revision=1
short_desc="Google's attempt at creating a safer, faster, and more stable browser" short_desc="Google's attempt at creating a safer, faster, and more stable browser"
maintainer="Juan RP <xtraeme@voidlinux.eu>" maintainer="Juan RP <xtraeme@voidlinux.eu>"
homepage="http://www.chromium.org/" homepage="http://www.chromium.org/"
license="BSD" license="BSD"
distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz" distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
checksum=6de2754dfc333675ae6a67ae13c95666009b35c84f847b058edbf312e42fa3af checksum=93666448c6b96ec83e6a35a64cff40db4eb92a154fe1db4e7dab4761d0e38687
only_for_archs="i686 x86_64 x86_64-musl" only_for_archs="i686 x86_64 x86_64-musl"
lib32disabled=yes lib32disabled=yes
nodebug=yes nodebug=yes
nopie=yes # contains tools that are not PIE, enables PIE itself nopie=yes # contains tools that are not PIE, enables PIE itself
build_options="nacl" build_options="nacl clang"
build_options_default="clang"
desc_option_nacl="Enable NaCL support" desc_option_nacl="Enable NaCL support"
desc_option_clang="Use clang to build"
hostmakedepends="yasm python pkg-config perl gperf bison ninja nodejs hwids hostmakedepends="$(vopt_if clang clang) yasm python pkg-config perl gperf bison ninja nodejs hwids
libatomic-devel libevent-devel libglib-devel" libatomic-devel libevent-devel libglib-devel"
makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
@ -27,7 +29,8 @@ makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
libxml2-devel libxslt-devel pulseaudio-devel nss-devel libexif-devel libxml2-devel libxslt-devel pulseaudio-devel nss-devel libexif-devel
libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel" minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
re2-devel fontconfig-devel freetype-devel harfbuzz-devel opus-devel"
depends="libexif hwids desktop-file-utils hicolor-icon-theme" depends="libexif hwids desktop-file-utils hicolor-icon-theme"
nostrip_files="$(vopt_if nacl 'nacl_irt_x86_64.nexe nacl_irt_x86_32.nexe')" nostrip_files="$(vopt_if nacl 'nacl_irt_x86_64.nexe nacl_irt_x86_32.nexe')"
@ -50,20 +53,27 @@ post_extract() {
sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \ sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
-i device/usb/BUILD.gn -i device/usb/BUILD.gn
# Work around bug in blink in which GCC 6 optimizes away null pointer checks
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833524
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68853#c2
sed -i '/config("compiler")/ a cflags_cc = [ "-fno-delete-null-pointer-checks" ]' \
build/config/linux/BUILD.gn
# use system nodejs # use system nodejs
mkdir -p third_party/node/linux/node-linux-x64/bin mkdir -p third_party/node/linux/node-linux-x64/bin
ln -sf /usr/bin/node third_party/node/linux/node-linux-x64/bin/node ln -sf /usr/bin/node third_party/node/linux/node-linux-x64/bin/node
if [ -z "$build_option_clang" ]; then
# Work around bug in blink in which GCC 6 optimizes away null pointer checks
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833524
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68853#c2
sed -i '/config("compiler")/ a cflags_cc = [ "-fno-delete-null-pointer-checks" ]' \
build/config/linux/BUILD.gn
fi
} }
do_configure() { do_configure() {
local system="" bootstrap_conf="" conf="" local system="" bootstrap_conf="" conf=""
export -n CFLAGS CXXFLAGS LDFLAGS export -n CFLAGS CXXFLAGS LDFLAGS
if [ -n "$build_option_clang" ]; then
export CC=clang
export CXX=clang++
fi
# Use system-provided libraries. # Use system-provided libraries.
# TODO: use_system_hunspell (upstream changes needed). # TODO: use_system_hunspell (upstream changes needed).
# TODO: use_system_libsrtp. # TODO: use_system_libsrtp.
@ -71,16 +81,18 @@ do_configure() {
# TODO: use_system_ssl (http://crbug.com/58087). # TODO: use_system_ssl (http://crbug.com/58087).
# TODO: use_system_sqlite (http://crbug.com/22208). # TODO: use_system_sqlite (http://crbug.com/22208).
# XXX xtraeme: broken currently # XXX xtraeme: broken currently
# use_system_opus=1 (needs opus_custom.h)
# use_system_protobuf # use_system_protobuf
# use_system_v8=1 # use_system_v8=1
# use_system_zlib=1 # use_system_zlib=1
# use_system_libvpx=1 # use_system_libvpx=1
# use_system_re2=1 // breaks with re2-devel-2016.06.01
# bzip2 jsoncpp minizip xdg_utils speex # bzip2 jsoncpp minizip xdg_utils speex
# harfbuzz-ng (https://crbug.com/768938)
system=" system="
flac flac
fontconfig
freetype
harfbuzz-ng
opus
re2
libevent libevent
libjpeg libjpeg
libpng libpng
@ -97,6 +109,9 @@ do_configure() {
find -type f -path "*third_party/$LIB/*" \ find -type f -path "*third_party/$LIB/*" \
\! -path "*third_party/$LIB/chromium/*" \ \! -path "*third_party/$LIB/chromium/*" \
\! -path "*third_party/$LIB/google/*" \ \! -path "*third_party/$LIB/google/*" \
\! -path './base/third_party/icu/*' \
\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
\! -path './third_party/yasm/run_yasm.py' \
\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
-delete -delete
done done
@ -119,12 +134,11 @@ do_configure() {
fi fi
# bootstrap GN # bootstrap GN
bootstrap_conf=' bootstrap_conf="is_clang=$(vopt_if clang true false)"
is_clang=false bootstrap_conf+='
treat_warnings_as_errors=false treat_warnings_as_errors=false
binutils_path="/usr/bin" binutils_path="/usr/bin"
gold_path="/usr/bin/ld.gold" gold_path="/usr/bin/ld.gold"
use_gconf=false
use_sysroot=false use_sysroot=false
use_allocator="none" use_allocator="none"
use_allocator_shim=false' use_allocator_shim=false'
@ -155,16 +169,17 @@ do_configure() {
conf+=' enable_nacl=false enable_nacl_nonsfi=false' conf+=' enable_nacl=false enable_nacl_nonsfi=false'
fi fi
conf+=' conf+=" is_clang=$(vopt_if clang true false)"
is_clang=false conf+=' is_debug=false
is_debug=false clang_use_chrome_plugins=false
custom_toolchain="//build/toolchain/linux/unbundle:default"
host_toolchain="//build/toolchain/linux/unbundle:default"
remove_webcore_debug_symbols=true remove_webcore_debug_symbols=true
symbol_level=0 symbol_level=0
icu_use_data_file=true icu_use_data_file=true
use_allocator="none" use_allocator="none"
use_allocator_shim=false use_allocator_shim=false
use_cups=true use_cups=true
use_gconf=false
use_pulseaudio=true use_pulseaudio=true
use_sysroot=false use_sysroot=false
use_system_harfbuzz=true use_system_harfbuzz=true
@ -187,7 +202,10 @@ do_configure() {
# Never use bundled binutils/gold binary. # Never use bundled binutils/gold binary.
conf+=" conf+="
binutils_path=\"${XBPS_CROSS_BASE}/usr/bin\" binutils_path=\"${XBPS_CROSS_BASE}/usr/bin\"
gold_path=\"${XBPS_CROSS_BASE}/usr/bin/ld.gold\"" gold_path=\"${XBPS_CROSS_BASE}/usr/bin/ld.gold\"
linux_use_bundled_binutils=false
use_custom_libcxx=false
use_lld=false"
# XXX: gold broken with musl # XXX: gold broken with musl
case "${XBPS_TARGET_MACHINE}" in case "${XBPS_TARGET_MACHINE}" in