From eb846c24e504a3caad1c06b4a8cf466fd9c17334 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Mon, 19 Dec 2016 15:14:25 +0100
Subject: [PATCH] community/chromium: upgrade to 55.0.2883.87

---
 community/chromium/APKBUILD                   | 351 ++++++++++++------
 .../chromium/chromium-system-jinja-r7.patch   |  35 --
 community/chromium/chromium-widevine.patch    |  15 +-
 community/chromium/cups22.patch               |  15 -
 .../chromium/default-pthread-stacksize.patch  |   4 +-
 community/chromium/gcc6.patch                 |  10 +
 community/chromium/gn_bootstrap.patch         |  97 +++++
 community/chromium/last-commit-position.patch |  26 ++
 community/chromium/musl-fixes.patch           |  42 +--
 community/chromium/musl-hacks.patch           |  22 --
 community/chromium/no-execinfo.patch          |  47 ++-
 community/chromium/no-getcontext.patch        |  22 +-
 community/chromium/no-mallinfo.patch          |  16 +-
 community/chromium/unset-madv_free.patch      |   6 +-
 14 files changed, 443 insertions(+), 265 deletions(-)
 delete mode 100644 community/chromium/chromium-system-jinja-r7.patch
 delete mode 100644 community/chromium/cups22.patch
 create mode 100644 community/chromium/gcc6.patch
 create mode 100644 community/chromium/gn_bootstrap.patch
 create mode 100644 community/chromium/last-commit-position.patch
 delete mode 100644 community/chromium/musl-hacks.patch

diff --git a/community/chromium/APKBUILD b/community/chromium/APKBUILD
index a69fc2fd1153..f9076c6f408c 100644
--- a/community/chromium/APKBUILD
+++ b/community/chromium/APKBUILD
@@ -1,24 +1,75 @@
 # Contributor: Carlo Landmeter <clandmeter@gmail.com>
 # Maintainer: Carlo Landmeter <clandmeter@gmail.com>
 pkgname=chromium
-pkgver=53.0.2785.143
-pkgrel=1
+pkgver=55.0.2883.87
+pkgrel=0
 pkgdesc="chromium web browser"
 url="http://www.chromium.org/"
 arch="x86_64"
 license="BSD"
 depends="xdg-utils"
 depends_dev=""
-makedepends="$depends_dev alsa-lib-dev libevent-dev libpng-dev jpeg-dev
-	cairo-dev cups-dev mesa-dev libcap-dev dbus-glib-dev gtk+-dev
-	libxml2-dev freetype-dev jpeg-dev libxslt-dev libxtst-dev
-	flac-dev speex-dev hunspell-dev libxinerama-dev ffmpeg-dev nss-dev
-	libwebp-dev bzip2-dev libvpx-dev sqlite-dev libelf-dev libgcrypt-dev
-	zlib-dev gnutls-dev mesa-dev libxcursor-dev libxcomposite-dev krb5-dev
-	libxrandr-dev libxscrnsaver-dev pciutils-dev eudev-dev libexif-dev
-	hwdata-usb ninja libbsd-dev harfbuzz-dev snappy-dev bsd-compat-headers
-	libre2-dev jsoncpp-dev minizip-dev linux-headers gzip
-	xdg-utils yasm gperf bison flex perl python2 bash paxmark findutils"
+makedepends="$depends_dev
+	alsa-lib-dev
+	bash
+	bison flex
+	bsd-compat-headers
+	bzip2-dev
+	cairo-dev
+	cups-dev
+	dbus-glib-dev
+	eudev-dev
+	ffmpeg-dev
+	findutils
+	flac-dev
+	freetype-dev
+	gnutls-dev
+	gperf
+	gtk+-dev
+	gzip
+	harfbuzz-dev
+	hunspell-dev
+	hwdata-usb
+	jpeg-dev
+	jsoncpp-dev
+	krb5-dev
+	libbsd-dev
+	libcap-dev
+	libelf-dev
+	libevent-dev
+	libexif-dev
+	libgcrypt-dev
+	libgnome-keyring-dev
+	libjpeg-turbo-dev
+	libpng-dev
+	libre2-dev
+	libvpx-dev
+	libwebp-dev
+	libxcomposite-dev
+	libxcursor-dev
+	libxinerama-dev
+	libxml2-dev
+	libxrandr-dev
+	libxscrnsaver-dev
+	libxslt-dev
+	libxtst-dev
+	linux-headers
+	mesa-dev
+	mesa-dev
+	minizip-dev
+	ninja
+	nss-dev
+	paxmark
+	pciutils-dev
+	perl
+	python2
+	snappy-dev
+	speex-dev
+	sqlite-dev
+	xdg-utils
+	yasm
+	zlib-dev
+	"
 install=""
 options=suid
 subpackages="$pkgname-doc $pkgname-chromedriver"
@@ -28,20 +79,18 @@ source="https://commondatastorage.googleapis.com/chromium-browser-official/$pkgn
 	chromium.desktop
 	google-api.keys
 
+	chromium-widevine.patch
+	default-pthread-stacksize.patch
+	gcc6.patch
+	gn_bootstrap.patch
+	last-commit-position.patch
 	musl-fixes.patch
+	musl-sandbox.patch
 	no-execinfo.patch
-	resolver.patch
-	no-mallinfo.patch
 	no-getcontext.patch
-	musl-sandbox.patch
+	no-mallinfo.patch
+	resolver.patch
 	unset-madv_free.patch
-	default-pthread-stacksize.patch
-	cups22.patch
-
-	chromium-system-jinja-r7.patch
-	chromium-widevine.patch
-
-	musl-hacks.patch
 	"
 
 builddir="$srcdir"/$pkgname-$pkgver
@@ -59,18 +108,19 @@ prepare() {
 	cd "$builddir"
 	for i in $source; do
 		case $i in
-		*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+		*.patch) msg $i; patch -p0 -i "$srcdir"/$i || return 1;;
 		esac
 	done
 
-	# Remove bundled ICU; its header files appear to get picked up instead of
-	# the system ones, leading to errors during the final link stage.
-	# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/BNGvJc08B6Q
-	#find third_party/icu -type f \! -regex '.*\.\(gyp\|gypi\|isolate\)' -delete
-
 	# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion
 	touch chrome/test/data/webui/i18n_process_css_test.html || return 1
+	# Use the file at run time instead of effectively compiling it in
+	sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
+		-i device/usb/BUILD.gn
+}
 
+_gn_flags() {
+	echo $*
 }
 
 build() {
@@ -81,34 +131,34 @@ build() {
 	local vpx=0
 	# reusable system library settings
 	local use_system="
-		-Duse_system_bzip2=1
-		-Duse_system_flac=1
-		-Duse_system_harfbuzz=1
-		-Duse_system_icu=0
-		-Duse_system_jsoncpp=1
-		-Duse_system_libevent=1
-		-Duse_system_libjpeg=1
-		-Duse_system_libpng=1
-		-Duse_system_libvpx=$vpx
-		-Duse_system_libwebp=1
-		-Duse_system_libxml=1
-		-Duse_system_libxslt=1
-		-Duse_system_minizip=1
-		-Duse_system_nspr=1
-		-Duse_system_re2=1
-		-Duse_system_snappy=1
-		-Duse_system_speex=1
-		-Duse_system_xdg_utils=1
-		-Duse_system_yasm=1
-		-Duse_system_zlib=1
+		flac
+		harfbuzz-ng
+		libevent
+		libjpeg
+		libpng
+		libwebp
+		libxslt
+		snappy
+		yasm
 		"
+	for _lib in ${use_system} libjpeg_turbo; do
+		msg "Removing buildscripts for system provided $_lib"
+		find -type f -path "*third_party/$_lib/*" \
+			\! -path "*third_party/$LIB/chromium/*" \
+			\! -path "*third_party/$LIB/google/*" \
+			\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+			-delete
+	done
+
 	# Work around bug in v8 in which GCC 6 optimizes away null pointer checks
 	# https://bugs.chromium.org/p/v8/issues/detail?id=3782
 	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69234
 	CFLAGS="$CFLAGS -fno-delete-null-pointer-checks"
 
 	msg "Replacing gyp files"
-	build/linux/unbundle/replace_gyp_files.py ${use_system} || return 1
+	python build/linux/unbundle/replace_gn_files.py --system-libraries \
+		${use_system} || return 1
+	third_party/libaddressinput/chromium/tools/update-strings.py
 
 	##############################################################
 	# Please dont use these keys outside of Alpine Linux project #
@@ -117,46 +167,101 @@ build() {
 	##############################################################
 	eval "$(base64 -d < $srcdir/google-api.keys)"
 
-	msg "Running gyp_chromium"
-	build/gyp_chromium --depth=. \
-		${use_system} \
-		-Dgoogle_api_key="$_google_api_key" \
-		-Dgoogle_default_client_id="$_google_default_client_id" \
-		-Dgoogle_default_client_secret="$_google_default_client_secret" \
-		-Dwerror= \
-		-Dclang=0 \
-		-Dpython_ver=2.7 \
-		-Dlinux_link_cups=1 \
-		-Dlinux_link_gsettings=1 \
-		-Dlinux_link_libpci=1 \
-		-Dlinux_link_libspeechd=0 \
-		-Dlinux_strip_binary=1 \
-		-Dlinux_use_bundled_binutils=0 \
-		-Dlinux_use_bundled_gold=0 \
-		-Dlinux_use_gold_flags=0 \
-		-Dicu_use_data_file_flag=1 \
-		-Dlogging_like_official_build=1 \
-		-Dlibspeechd_h_prefix=speech-dispatcher/ \
-		-Dffmpeg_branding=Chrome \
-		-Dproprietary_codecs=1 \
-		-Duse_allocator=none \
-		-Duse_experimental_allocator_shim=false \
-		-Duse_gnome_keyring=0 \
-		-Dusb_ids_path=/usr/share/hwdata/usb.ids \
-		-Duse_mojo=0 \
-		-Duse_gconf=0 \
-		-Duse_sysroot=0 \
-		-Duse_pulseaudio=0 \
-		-Denable_hotwording=0 \
-		-Ddisable_fatal_linker_warnings=1 \
-		-Ddisable_glibc=1 \
-		-Ddisable_nacl=1 \
-		-Ddisable_pnacl=1 \
-		-Dtarget_arch="$target_arch" \
-		-Drelease_extra_cflags="$CFLAGS" \
-		-Ddisable_sse2=1 \
+	msg "Bootstrapping GN"
+	local _c=$(_gn_flags is_clang=false \
+		use_sysroot=false \
+		treat_warnings_as_errors=false \
+		fatal_linker_warnings=false \
+		binutils_path=\"/usr/bin\" \
+		use_gconf=false \
+		use_gold=true \
+		use_allocator=\"none\" \
+		use_experimental_allocator_shim=false \
+	)
+
+	python tools/gn/bootstrap/bootstrap.py --gn-gen-args "$_c"\
 		|| return 1
 
+	_c=$(_gn_flags \
+		google_api_key=\"$_google_api_key\" \
+		google_default_client_id=\"$_google_default_client_id\" \
+		google_default_client_secret=\"$_google_default_client_secret\" \
+		treat_warnings_as_errors=false \
+		is_clang=false \
+		is_debug=false \
+		symbol_level=0 \
+		linux_link_cups=true \
+		linux_link_gsettings=true \
+		linux_link_libpci=true \
+		linux_link_libspeechd=false \
+		linux_use_bundled_binutils=false \
+		linux_use_bundled_gold=false \
+		linux_use_gold_flags=false \
+		icu_use_data_file_flag=true \
+		logging_like_official_build=true \
+		libspeechd_h_prefix=\"speech-dispatcher/\" \
+		ffmpeg_branding=\"Chrome\" \
+		proprietary_codecs=true \
+		use_allocator=\"none\" \
+		use_experimental_allocator_shim=false \
+		use_gnome_keyring=false \
+		usb_ids_path=\"/usr/share/hwdata/usb.ids\" \
+		use_mojo=false \
+		use_gconf=false \
+		use_sysroot=false \
+		use_pulseaudio=false \
+		enable_hotwording=false \
+		disable_fatal_linker_warnings=true \
+		disable_glibc=true \
+		enable_nacl=false \
+		enable_nacl_nonsfi=false \
+		target_arch=\"$target_arch\" \
+		release_extra_cflags=\"$CFLAGS\" \
+		disable_sse2=true \
+		fieldtrial_testing_like_official_build=true \
+	)
+
+	out/Release/gn gen out/Release --args="$_c" || return 1
+
+#	build/gyp_chromium --depth=. \
+#		${use_system} \
+#		-Dgoogle_api_key="$_google_api_key" \
+#		-Dgoogle_default_client_id="$_google_default_client_id" \
+#		-Dgoogle_default_client_secret="$_google_default_client_secret" \
+#		-Dwerror= \
+#		-Dclang=0 \
+#		-Dpython_ver=2.7 \
+#		-Dlinux_link_cups=1 \
+#		-Dlinux_link_gsettings=1 \
+#		-Dlinux_link_libpci=1 \
+#		-Dlinux_link_libspeechd=0 \
+#		-Dlinux_strip_binary=1 \
+#		-Dlinux_use_bundled_binutils=0 \
+#		-Dlinux_use_bundled_gold=0 \
+#		-Dlinux_use_gold_flags=0 \
+#		-Dicu_use_data_file_flag=1 \
+#		-Dlogging_like_official_build=1 \
+#		-Dlibspeechd_h_prefix=speech-dispatcher/ \
+#		-Dffmpeg_branding=Chrome \
+#		-Dproprietary_codecs=1 \
+#		-Duse_allocator=none \
+#		-Duse_experimental_allocator_shim=false \
+#		-Duse_gnome_keyring=0 \
+#		-Dusb_ids_path=/usr/share/hwdata/usb.ids \
+#		-Duse_mojo=0 \
+#		-Duse_gconf=0 \
+#		-Duse_sysroot=0 \
+#		-Duse_pulseaudio=0 \
+#		-Denable_hotwording=0 \
+#		-Ddisable_fatal_linker_warnings=1 \
+#		-Ddisable_glibc=1 \
+#		-Ddisable_nacl=1 \
+#		-Ddisable_pnacl=1 \
+#		-Dtarget_arch="$target_arch" \
+#		-Drelease_extra_cflags="$CFLAGS" \
+#		-Ddisable_sse2=1 \
+#		|| return 1
+#
 	msg "Ninja turtles GO!"
 	# build mksnapshot and paxmark it
 	ninja -C out/Release mksnapshot || return 1
@@ -235,54 +340,54 @@ chromedriver() {
 	mv "$pkgdir"/usr/bin/chromedriver "$subpkgdir"/usr/bin || return 1
 }
 
-md5sums="fdc737af242421b2a9a0bb84f6b17040  chromium-53.0.2785.143.tar.xz
+md5sums="c389ad65365d76b36cb56952e76835e4  chromium-55.0.2883.87.tar.xz
 b6d015c1da85aa65ee21bc974c7fc7d2  chromium-launcher.sh
 c5aa73a87d4b88cce9f1a680ca691bb6  chromium.conf
 2962ac6259e39a797d441daf43aa49c9  chromium.desktop
 2d2ee5f22d65c756871301b4a407f4ca  google-api.keys
-eb7ce3cac0fde703474cb127b63ba705  musl-fixes.patch
-6723002017d7103639d919e2cd053fbe  no-execinfo.patch
-f99a4572c0be2c2123acc2478905e01f  resolver.patch
-4b69f969c7b959348cf5b10ca05eca97  no-mallinfo.patch
-2c8de771a7c0e5e0e9fc68fa978785f7  no-getcontext.patch
+7c3504d7362e8b0a1b186cbebec6af8d  chromium-widevine.patch
+815a36d63207a84657fe67e71ba5bc7c  default-pthread-stacksize.patch
+8b37a7bc4e46b0268d278b44b588ecb0  gcc6.patch
+9698bd0a1002fbfb99975a7ad45cacb7  gn_bootstrap.patch
+463e62c1aa93ff4457abee86c336962f  last-commit-position.patch
+3b22c6fbed9c7129d535febe0beda858  musl-fixes.patch
 c805e026abc748d9925fab8250760bcc  musl-sandbox.patch
-183bf3b136f99a0f60f8e171ddd147e8  unset-madv_free.patch
-b034187a2c9046e8bb3e56b9055c56cf  default-pthread-stacksize.patch
-db26100a8caef8b7e486c3b3ba5768a0  cups22.patch
-97b1578585ab600ed9adef4f341ccd80  chromium-system-jinja-r7.patch
-de717d6430532f34fe161035dfdafcdf  chromium-widevine.patch
-5f1bca53835b6380b5949c96860f6894  musl-hacks.patch"
-sha256sums="c52a58b79bfb27bb87e4a0a6ff213001485fbc747657b290f75d39ddce07dcc3  chromium-53.0.2785.143.tar.xz
+d232b8dcb4d4db9a868c89e3a48ee716  no-execinfo.patch
+886bc4ce1423a185b4d969ec2daa5933  no-getcontext.patch
+3dd580483ebf0a94db90d35288c0f340  no-mallinfo.patch
+f99a4572c0be2c2123acc2478905e01f  resolver.patch
+bff9e1de1e5fa119b41bf6705926cd9e  unset-madv_free.patch"
+sha256sums="e81bd3140d9c84dfee04d9a94686dfe6a20ae79475d84f17154c5536dcb81a58  chromium-55.0.2883.87.tar.xz
 89f1eb19d1ed998a190045ea173959f01faee3490d58a6a34ca3fe21228e569f  chromium-launcher.sh
 b466559340a36998354a0577325fe533d9e6b74c24a15b7599671171506bf128  chromium.conf
 3ae90cea7503d0039de53448ed112b9bc0cb5a09f6b0045506eb777fc23517e5  chromium.desktop
 267ba8ff50574e51d2582c4fca9b9e14f7225c1fa064d135cbceff9cef2324ac  google-api.keys
-a620b4492cb28e4b0d571ba3b79ec7635506f297824d390167ec7391f23eb27e  musl-fixes.patch
-1bc3edae8d591b7fc89d9b45d159b35f45d628bcdf8ede0684877cb2ee1c7405  no-execinfo.patch
-914c513bb54d4d97cd2a7622647f6af5cd0c8d29a0aa2962a60fdbed88f54429  resolver.patch
-633885c9af2b2f635e93ab0dbaa76eb72cb87d030b237459e82d35400999af83  no-mallinfo.patch
-ea79f9a46116c8b56bbc69d226abd9252e4ae4d946ca695203f2298279cc2211  no-getcontext.patch
+95fd28debaafbf5eb78f589054f984382c2b23ed4ce0572f25c4af93cf33e5ca  chromium-widevine.patch
+230f4b9d368c38f39ec6a3d49c3aa776609ea1a2b5478f0d6e44c17b76647d71  default-pthread-stacksize.patch
+20526e0cf4d8ef6947675346243b5a12670f6929f198a19b9e4f14fe23c949e9  gcc6.patch
+ef7ff14f3e91a72d1d7437b5edf5d3cf1ac04e1c80cfb8c2f2fe5c93bc80bb27  gn_bootstrap.patch
+2ade69c40f553889e11d11eccef68e4729ed74c8dfe53e6e32e743a645dd3d46  last-commit-position.patch
+9081abe6666bc9f1096d993b6814f49f9a1735dbcda5f429d2624a1ceddf8ac7  musl-fixes.patch
 3d0303f9ea04b2c24e16068ea2d423fce0e37ebb2b89dde342f9e8f9d0b149b4  musl-sandbox.patch
-178fbdd552b21b7675425067b1c6ee84f6a24ec275bb40a0769d71072adfe482  unset-madv_free.patch
-67b235079c768a5fb0f93203e5f13e1e4cd78ce217c48e858bca97d123a59fb8  default-pthread-stacksize.patch
-b0ff4ac02b9498e0bad07002c7fd522eb7b820b30c8b2f007db791eb46f53759  cups22.patch
-872f5a38d8263b14308bb117828496a4093d0e6ad755d39d2c5e6857314fe071  chromium-system-jinja-r7.patch
-1d1ead77250475228524770e57c17282aff9098c5efc3d7719b0df76229b8874  chromium-widevine.patch
-10a4d81e1d8f70e4993ba0b7e1b9069f18c28190e6660e0f67bf24d598aa7c66  musl-hacks.patch"
-sha512sums="d51ee1bd60d9ac0ae2dfa66b7ba10cae479002f32995d169c181e7ef1170953069531ec786e8031d3fc4777f002b213471213b4ed3e6f1e89f851547305456b9  chromium-53.0.2785.143.tar.xz
+18ee716e709da867d6e8b8dcf4c5e33dc9def31781ff40f2ec3fc2860705dd24  no-execinfo.patch
+855edf1062e199ceaa7619d5bb81ff6939cc5ee1c947dfd15b50e0cba18548e2  no-getcontext.patch
+3a5d4c8e38c6345eec21ed9d6f0b82aaddfca310fd7d5f57e7ec1c359f59ef2e  no-mallinfo.patch
+914c513bb54d4d97cd2a7622647f6af5cd0c8d29a0aa2962a60fdbed88f54429  resolver.patch
+e9c1f901c7bc8102a31ef2cc2235892671357362c04a4a1f009f54830449ef5f  unset-madv_free.patch"
+sha512sums="b39b5a9e50d9406cc21db1f5972a02dfba74eb2d5f8b0accde4d2aeca07bcddc6bbdf44ea6f5414a755f8ed0b0852381cb1c7b4f0cb02742146db314e4a0c55e  chromium-55.0.2883.87.tar.xz
 b9a810416dd7a8ffc3a5ced85ad9acebda1665bd08a57eec7b189698cc5f74d2c3fd69044e20fcb83297a43214b2772a1312b2c6122ea0eb716abacf39524d60  chromium-launcher.sh
 f6d962b9e4c22dd42183df3db5d3202dab33eccecafb1bf63ca678147289581262db1e5e64cbe8f9c212beefb0a6717bb8d311e497f56b55fe95b8bab2db493f  chromium.conf
 e182c998a43d22d1c76a86c561619afd1fca8c2be668265ad5e2f81a3806f7a154272cc027a2f8b370fb69446892c69e5967a4be76082325c14245ee7915234c  chromium.desktop
 2d8237a940ea691bd10b08315429677a587f7ef9692a0cca53bfd066eae82998a6c71f402a8669e9de39f94d7f3280745d1628ea6eac5d76ca7116844d4e0dac  google-api.keys
-a81c323024537e02f03e3d7cfd62f7a3e0ceb6d2534d1a6169841fc58a1ccdf106ab942151b0124333b23a8955fbf6d0bc18b6dc64e9ff4cfd070abc3dd20253  musl-fixes.patch
-0d0b69dcc4779f5a6e9820513e35d94c8959f8f57a8a3f9d2a63b0d48222526fc6657d6f3d23eafbf1cb2f9ad3a5d3d6f1e6b0ca7d20f17b7459979a1c5390cf  no-execinfo.patch
-d60407a8faadfd2a8294570163b4d1b1112c8a70a6f8e778fc3aff25d20613a2e26c66cd87e69c54953cc1b984e4038015ad04797b0495df13932541b05398fe  resolver.patch
-286f8bf4941c62b691059ad7cc1ec446a5b6ca3e4c740ecb7bd2ab1fab2e77b538bc975c6d7941b006380574758b584aa02aae3878092ac477aa0427d7d35e18  no-mallinfo.patch
-42d9a6ebea2d95cdc169b921cc1a1b846cf500997059fd3084de09e21f00b63b76e60c6124f4af247d402ff5ca3f4bf8867a6f2c78198c05b4273ca01fb29241  no-getcontext.patch
+55921cc33d623e0751e94d4fef2ddd69afb57381da6115995b1f318e2398978b9173e80f6ffbc6e6c0c0c55a04e934e0e34a46c32e03947cc31f0f5a226e7725  chromium-widevine.patch
+0f296d24ca6de1bf340a67f294b53304c44e7b46b6bb0936e10ae33786d5b3b6b523914e1f9eb7bc0995623c2404c8e1d5d27596cbfbc3cc36ca00fb92bc17e7  default-pthread-stacksize.patch
+08300afd0bbcdc62bc96c52b11a40fb51b31ef2fb874873438a40ce70d80eb91779e1e0d9b64e020b28c3744f14630d576020cf73d626b720e51e474912a0127  gcc6.patch
+0a15b178fadffdc31f1f7bc814b95817cbcea9dd90b1ed84f7bab2d840f36453573742bd8501d79edecfa38c0ec2147843aef03c7b2c9bcfd0e3d22b72c25c4b  gn_bootstrap.patch
+8fbfd67a0b6bbdf08364e810bd85b4a80dda9af73fefe3aba8010d9b33022d458a785c628515bbda9c743b8a0293d57cfe18fcc5aa2313c845c6fb948c2335f9  last-commit-position.patch
+88f70ac8453c744c8735c1ccd3cf638e2c03f73295454e6b224b1dfe9f4576f3674f1803f87aa729e1fb836fafa62ec41c6d46ed706566b2aa38eca277ad5570  musl-fixes.patch
 ce8276bb35a8d72cf58868a6331e85286b350a1aad694525ebf637499819219dd4d87ab67dd3b938830a6bd3e7172fc9bcd9c8971820d0ed95c0d141867a24fe  musl-sandbox.patch
-a86f262d6fde8497ba448052fa8777867633eff7eb71d91e56e005e2c00951a9f447d636e1bc86b682979b6746d1355963df0a6aaf4bb7ae9577226457493e09  unset-madv_free.patch
-2767cbfda98a6ec40ccccab759c5de53155396c15fdb9789bf246947816e9f06833ce4730dc4845a936c1570951b88e78c098de244ee0706952375e679275ef2  default-pthread-stacksize.patch
-3c5a243d26220631e579e4763d3cae10e2193ca8b089f3882de97418f753a06332e3030a255c120e8ee4c58392a328751b323bfbd197e692886a37aefa34e4d2  cups22.patch
-10bcc6a467b6766d13b5e41e7b7dcdbd62de7c04daad16c83037e88043032a0c118627029f91ef8a2a57faaaebc8b6f4ee16e8d1fecb5921d0d49efd60a27863  chromium-system-jinja-r7.patch
-4a11b46afa8ce84bd23a8c506301b5848ee4291a764f3aed282b8a98706ece16cf9346dec6cc71b1e17812b15f43a5cbc7bc6d38ed4dcc88c12d6fcb03bd9295  chromium-widevine.patch
-4043dd7a64dcb9b73e15786b407934dd1b171df8b628ab1b18718fd93f9758c76eb25d1bdf1e1a22901544185088b8f817d3e2a58154c54949704dc8cc87b84d  musl-hacks.patch"
+fef119b4e23269cc6252e940e23029a312c9852b8d2115ee155ef9a4f5788b6b7dc8c1cab2e32fb4f25c2956a4dd2305375cbd1847c58d7159d15907d6b17a5d  no-execinfo.patch
+a57858e45cfbb7e97f77b3b308502e377543d61d3d0085798ed73bc53da456828f5e010308d0de05fee4fe52071362d074f5af205f98f41d67222d997857d626  no-getcontext.patch
+0d2e4b64f5bcb0ece5cf0cace493b07e900b14d9da5e4173a3034322ff264ab1978364000442c83240983ac0aa5f2b18f941bb5121b043a1e8e28e7de94fa44b  no-mallinfo.patch
+d60407a8faadfd2a8294570163b4d1b1112c8a70a6f8e778fc3aff25d20613a2e26c66cd87e69c54953cc1b984e4038015ad04797b0495df13932541b05398fe  resolver.patch
+5eafc0b92d6aa3a4a94bce544461d57121a9405784e2687b9ed382371a7c10e4db5fd6325057344a66b7df32dca963bc12b7f67b256f1f1295bf6519400b0b8e  unset-madv_free.patch"
diff --git a/community/chromium/chromium-system-jinja-r7.patch b/community/chromium/chromium-system-jinja-r7.patch
deleted file mode 100644
index d8e7464c6ef0..000000000000
--- a/community/chromium/chromium-system-jinja-r7.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- ./third_party/WebKit/Source/bindings/scripts/scripts.gyp.orig	2014-08-19 09:55:10.330972228 +0000
-+++ ./third_party/WebKit/Source/bindings/scripts/scripts.gyp	2014-08-19 09:55:26.387286232 +0000
-@@ -54,7 +54,6 @@
-     'actions': [{
-       'action_name': 'cache_jinja_templates',
-       'inputs': [
--        '<@(jinja_module_files)',
-         'code_generator_v8.py',
-         '<@(code_generator_template_files)',
-       ],
---- ./third_party/WebKit/Source/build/scripts/scripts.gypi.orig	2014-08-19 10:00:00.216521733 +0000
-+++ ./third_party/WebKit/Source/build/scripts/scripts.gypi	2014-08-19 10:00:11.464735099 +0000
-@@ -2,10 +2,6 @@
- {
-     'variables': {
-         'scripts_for_in_files': [
--            # jinja2/__init__.py contains version string, so sufficient as
--            # dependency for whole jinja2 package
--            '<(DEPTH)/third_party/jinja2/__init__.py',
--            '<(DEPTH)/third_party/markupsafe/__init__.py',  # jinja2 dep
-             'hasher.py',
-             'in_file.py',
-             'in_generator.py',
---- ./third_party/WebKit/Source/bindings/scripts/scripts.gypi.orig	2014-08-19 10:53:02.824618979 +0000
-+++ ./third_party/WebKit/Source/bindings/scripts/scripts.gypi	2014-08-19 10:53:20.784957370 +0000
-@@ -12,9 +12,6 @@
-       '<(DEPTH)/third_party/markupsafe/__init__.py',  # jinja2 dep
-     ],
-     'idl_lexer_parser_files': [
--      # PLY (Python Lex-Yacc)
--      '<(DEPTH)/third_party/ply/lex.py',
--      '<(DEPTH)/third_party/ply/yacc.py',
-       # Web IDL lexer/parser (base parser)
-       '<(DEPTH)/tools/idl_parser/idl_lexer.py',
-       '<(DEPTH)/tools/idl_parser/idl_node.py',
diff --git a/community/chromium/chromium-widevine.patch b/community/chromium/chromium-widevine.patch
index 5e78817f070e..6a81c4b1f7af 100644
--- a/community/chromium/chromium-widevine.patch
+++ b/community/chromium/chromium-widevine.patch
@@ -1,12 +1,9 @@
-diff -upr chromium-42.0.2311.90.orig/third_party/widevine/cdm/widevine_cdm_version.h chromium-42.0.2311.90/third_party/widevine/cdm/widevine_cdm_version.h
---- chromium-42.0.2311.90.orig/third_party/widevine/cdm/widevine_cdm_version.h	2015-04-15 01:18:59.000000000 +0300
-+++ chromium-42.0.2311.90/third_party/widevine/cdm/widevine_cdm_version.h	2015-04-15 09:09:49.157260050 +0300
-@@ -14,4 +14,8 @@
- //  - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
- //    as a string, e.g., "1.0.123.456").
+--- third_party/widevine/cdm/stub/widevine_cdm_version.h	2016-01-14 01:05:17.000000000 +0200
++++ third_party/widevine/cdm/stub/widevine_cdm_version.h	2016-01-21 19:18:51.287978456 +0200
+@@ -12,4 +12,6 @@
  
-+#include "third_party/widevine/cdm/widevine_cdm_common.h"
-+#define WIDEVINE_CDM_AVAILABLE
-+#define WIDEVINE_CDM_VERSION_STRING "1.0.000.000"
+ #define WIDEVINE_CDM_AVAILABLE
+ 
++#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@"
 +
  #endif  // WIDEVINE_CDM_VERSION_H_
diff --git a/community/chromium/cups22.patch b/community/chromium/cups22.patch
deleted file mode 100644
index 36d8069dbdcb..000000000000
--- a/community/chromium/cups22.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-https://codereview.chromium.org/download/issue2258333004_1_10001.diff
-
-Index: printing/backend/cups_helper.h
-diff --git a/printing/backend/cups_helper.h b/printing/backend/cups_helper.h
-index fd7601dc975978edc57c384d6fe92425d77e83cc..b72903ff89dee0a3261aaaf840675f41eb518411 100644
---- a/printing/backend/cups_helper.h
-+++ b/printing/backend/cups_helper.h
-@@ -6,6 +6,7 @@
- #define PRINTING_BACKEND_CUPS_HELPER_H_
- 
- #include <cups/cups.h>
-+#include <cups/ppd.h>
- 
- #include "base/strings/string_piece.h"
- #include "printing/printing_export.h"
diff --git a/community/chromium/default-pthread-stacksize.patch b/community/chromium/default-pthread-stacksize.patch
index 8fa2567b32f4..fca919b1f374 100644
--- a/community/chromium/default-pthread-stacksize.patch
+++ b/community/chromium/default-pthread-stacksize.patch
@@ -1,5 +1,5 @@
---- a/base/threading/platform_thread_linux.cc.orig	2016-08-30 21:36:06.809571185 +0200
-+++ b/base/threading/platform_thread_linux.cc	2016-08-30 21:36:14.582805286 +0200
+--- base/threading/platform_thread_linux.cc.orig	2016-08-30 21:36:06.809571185 +0200
++++ base/threading/platform_thread_linux.cc	2016-08-30 21:36:14.582805286 +0200
 @@ -99 +99,2 @@ size_t GetDefaultThreadStackSize(const p
 -  return 0;
 +  // use 2mb to avoid running out of space
diff --git a/community/chromium/gcc6.patch b/community/chromium/gcc6.patch
new file mode 100644
index 000000000000..21a63ceebd5f
--- /dev/null
+++ b/community/chromium/gcc6.patch
@@ -0,0 +1,10 @@
+--- build/config/linux/BUILD.gn.orig
++++ build/config/linux/BUILD.gn
+@@ -13,6 +13,7 @@
+ # is applied to all targets. It is here to separate out the logic that is
+ # Linux-only. This is not applied to Android, but is applied to ChromeOS.
+ config("compiler") {
++  cflags_cc = [ "-fno-delete-null-pointer-checks" ]
+   cflags = [ "-pthread" ]
+   ldflags = [ "-pthread" ]
+ }
diff --git a/community/chromium/gn_bootstrap.patch b/community/chromium/gn_bootstrap.patch
new file mode 100644
index 000000000000..662a67f35ff0
--- /dev/null
+++ b/community/chromium/gn_bootstrap.patch
@@ -0,0 +1,97 @@
+--- tools/gn/bootstrap/bootstrap.py.orig	2016-11-17 00:15:29.112867732 +0100
++++ tools/gn/bootstrap/bootstrap.py	2016-11-17 00:43:54.712718406 +0100
+@@ -159,7 +159,7 @@
+   mkdir_p(root_gen_dir)
+
+   write_buildflag_header_manually(root_gen_dir, 'base/allocator/features.h',
+-      {'USE_EXPERIMENTAL_ALLOCATOR_SHIM': 'true' if is_linux else 'false'})
++      {'USE_EXPERIMENTAL_ALLOCATOR_SHIM': 'false'})
+
+   write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h',
+       {'ENABLE_PROFILING': 'false'})
+@@ -366,8 +366,6 @@
+       'base/third_party/superfasthash/superfasthash.c',
+   ])
+   static_libraries['base']['sources'].extend([
+-      'base/allocator/allocator_check.cc',
+-      'base/allocator/allocator_extension.cc',
+       'base/at_exit.cc',
+       'base/base_paths.cc',
+       'base/base_switches.cc',
+@@ -541,29 +539,9 @@
+         'base/time/time_posix.cc',
+         'base/trace_event/heap_profiler_allocation_register_posix.cc',
+     ])
+-    static_libraries['libevent'] = {
+-        'sources': [
+-            'base/third_party/libevent/buffer.c',
+-            'base/third_party/libevent/evbuffer.c',
+-            'base/third_party/libevent/evdns.c',
+-            'base/third_party/libevent/event.c',
+-            'base/third_party/libevent/event_tagging.c',
+-            'base/third_party/libevent/evrpc.c',
+-            'base/third_party/libevent/evutil.c',
+-            'base/third_party/libevent/http.c',
+-            'base/third_party/libevent/log.c',
+-            'base/third_party/libevent/poll.c',
+-            'base/third_party/libevent/select.c',
+-            'base/third_party/libevent/signal.c',
+-            'base/third_party/libevent/strlcpy.c',
+-        ],
+-        'tool': 'cc',
+-        'include_dirs': [],
+-        'cflags': cflags + ['-DHAVE_CONFIG_H'],
+-    }
+
+   if is_linux:
+-    libs.extend(['-lrt', '-latomic'])
++    libs.extend(['-lrt', '-levent'])
+     ldflags.extend(['-pthread'])
+
+     static_libraries['xdg_user_dirs'] = {
+@@ -573,8 +551,6 @@
+         'tool': 'cxx',
+     }
+     static_libraries['base']['sources'].extend([
+-        'base/allocator/allocator_shim.cc',
+-        'base/allocator/allocator_shim_default_dispatch_to_glibc.cc',
+         'base/memory/shared_memory_posix.cc',
+         'base/nix/xdg_util.cc',
+         'base/process/internal_linux.cc',
+@@ -587,12 +563,6 @@
+         'base/threading/platform_thread_linux.cc',
+         'base/trace_event/malloc_dump_provider.cc',
+     ])
+-    static_libraries['libevent']['include_dirs'].extend([
+-        os.path.join(SRC_ROOT, 'base', 'third_party', 'libevent', 'linux')
+-    ])
+-    static_libraries['libevent']['sources'].extend([
+-        'base/third_party/libevent/epoll.c',
+-    ])
+
+
+   if is_mac:
+--- base/message_loop/message_pump_libevent.cc.orig	2016-11-17 01:07:57.633819544 +0100
++++ base/message_loop/message_pump_libevent.cc	2016-11-17 01:08:38.985851678 +0100
+@@ -14,7 +14,7 @@
+ #include "base/files/file_util.h"
+ #include "base/logging.h"
+ #include "base/posix/eintr_wrapper.h"
+-#include "base/third_party/libevent/event.h"
++#include "event.h"
+ #include "base/time/time.h"
+ #include "base/trace_event/trace_event.h"
+ #include "build/build_config.h"
+--- base/native_library_posix.cc.orig	2016-11-17 01:45:50.032002326 +0100
++++ base/native_library_posix.cc	2016-11-17 01:46:23.729001549 +0100
+@@ -12,6 +12,10 @@
+ #include "base/strings/utf_string_conversions.h"
+ #include "base/threading/thread_restrictions.h"
+
++#ifndef RTLD_DEEPBIND
++#define RTLD_DEEPBIND 0
++#endif
++
+ namespace base {
+
+ std::string NativeLibraryLoadError::ToString() const {
diff --git a/community/chromium/last-commit-position.patch b/community/chromium/last-commit-position.patch
new file mode 100644
index 000000000000..fdef5adf3bb9
--- /dev/null
+++ b/community/chromium/last-commit-position.patch
@@ -0,0 +1,26 @@
+--- tools/gn/gn_main.cc.orig	2015-11-12 11:49:56.260549036 +0000
++++ tools/gn/gn_main.cc	2015-11-12 11:50:14.780931485 +0000
+@@ -11,13 +11,7 @@
+ #include "tools/gn/standard_out.h"
+ #include "tools/gn/switches.h"
+
+-// Only the GN-generated build makes this header for now.
+-// TODO(brettw) consider adding this if we need it in GYP.
+-#if defined(GN_BUILD)
+-#include "tools/gn/last_commit_position.h"
+-#else
+ #define LAST_COMMIT_POSITION "UNKNOWN"
+-#endif
+
+ namespace {
+
+--- tools/gn/BUILD.gn.orig	2015-11-12 11:50:43.513524769 +0000
++++ tools/gn/BUILD.gn	2015-11-12 11:50:57.697817632 +0000
+@@ -227,7 +227,6 @@
+
+   deps = [
+     ":gn_lib",
+-    ":last_commit_position",
+     "//base",
+     "//build/config/sanitizers:deps",
+   ]
diff --git a/community/chromium/musl-fixes.patch b/community/chromium/musl-fixes.patch
index 62692503fb83..4282a17f3387 100644
--- a/community/chromium/musl-fixes.patch
+++ b/community/chromium/musl-fixes.patch
@@ -128,47 +128,45 @@
  #include <unistd.h>
 --- ./third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp.orig
 +++ ./third_party/WebKit/Source/platform/heap/StackFrameDepth.cpp
-@@ -58,7 +58,7 @@
-     // FIXME: On Mac OSX and Linux, this method cannot estimate stack size
-     // correctly for the main thread.
+@@ -68,7 +68,7 @@
+ // FIXME: On Mac OSX and Linux, this method cannot estimate stack size
+ // correctly for the main thread.
  
 -#if defined(__GLIBC__) || OS(ANDROID) || OS(FREEBSD)
 +#if OS(LINUX) || OS(ANDROID) || OS(FREEBSD)
-     // pthread_getattr_np() can fail if the thread is not invoked by
-     // pthread_create() (e.g., the main thread of webkit_unit_tests).
-     // In this case, this method returns 0 and the caller must handle it.
-@@ -105,7 +105,7 @@
+   // pthread_getattr_np() can fail if the thread is not invoked by
+   // pthread_create() (e.g., the main thread of webkit_unit_tests).
+   // If so, a conservative size estimate is returned.
+@@ -135,7 +135,7 @@
+ }
  
- void* StackFrameDepth::getStackStart()
- {
+ void* StackFrameDepth::getStackStart() {
 -#if defined(__GLIBC__) || OS(ANDROID) || OS(FREEBSD)
 +#if OS(LINUX) || OS(ANDROID) || OS(FREEBSD)
-     pthread_attr_t attr;
-     int error;
+   pthread_attr_t attr;
+   int error;
  #if OS(FREEBSD)
 --- ./chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig
 +++ ./chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
-@@ -26,7 +26,7 @@
- #include "ui/events/event_switches.h"
- #include "ui/gfx/screen.h"
+@@ -40,7 +40,7 @@
+ #include "chrome/browser/metrics/tab_usage_recorder.h"
+ #endif  // !defined(OS_ANDROID)
  
 -#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
 +#if defined(__GLIBC__) && !defined(OS_CHROMEOS)
  #include <gnu/libc-version.h>
  
  #include "base/version.h"
---- ./chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig
-+++ ./chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
-@@ -116,7 +116,7 @@
+@@ -173,7 +173,7 @@
  }
  
  void RecordLinuxGlibcVersion() {
 -#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
 +#if defined(__GLIBC__) && !defined(OS_CHROMEOS)
-   Version version(gnu_get_libc_version());
+   base::Version version(gnu_get_libc_version());
  
    UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE;
-@@ -140,7 +140,7 @@
+@@ -197,7 +197,7 @@
  #endif
  }
  
@@ -177,7 +175,7 @@
  UMALinuxWindowManager GetLinuxWindowManager() {
    switch (ui::GuessWindowManager()) {
      case ui::WM_UNKNOWN:
-@@ -239,7 +239,7 @@
+@@ -330,7 +330,7 @@
  
  void ChromeBrowserMainExtraPartsMetrics::PostBrowserStart() {
    RecordLinuxGlibcVersion();
@@ -209,8 +207,8 @@
      base::debug::StackTrace trace;
 diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/include/opentype-sanitiser.h
 index a80ea16..55a2abf 100644
---- 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
 @@ -20,6 +20,7 @@ typedef unsigned __int64 uint64_t;
  #define htonl(x) _byteswap_ulong (x)
  #define htons(x) _byteswap_ushort (x)
diff --git a/community/chromium/musl-hacks.patch b/community/chromium/musl-hacks.patch
deleted file mode 100644
index d1f580a81d08..000000000000
--- a/community/chromium/musl-hacks.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- ./third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_userspace.c.orig
-+++ ./third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_userspace.c
-@@ -72,7 +72,7 @@
- 	pthread_setname_np(name);
- #endif
- #if defined(__Userspace_os_Linux)
--	pthread_setname_np(pthread_self(), name);
-+	//pthread_setname_np(pthread_self(), name);
- #endif
- #if defined(__Userspace_os_FreeBSD)
- 	pthread_set_name_np(pthread_self(), name);
---- ./base/debug/stack_trace.cc.orig
-+++ ./base/debug/stack_trace.cc
-@@ -33,7 +33,7 @@
- 
- std::string StackTrace::ToString() const {
-   std::stringstream stream;
--#if !defined(__UCLIBC__)
-+#if defined(__GLIBC__)
-   OutputToStream(&stream);
- #endif
-   return stream.str();
diff --git a/community/chromium/no-execinfo.patch b/community/chromium/no-execinfo.patch
index fd4ced7debe7..0c345e2effea 100644
--- a/community/chromium/no-execinfo.patch
+++ b/community/chromium/no-execinfo.patch
@@ -1,5 +1,5 @@
---- a/base/debug/stack_trace_posix.cc.orig	2016-05-08 07:59:51.749087517 +0200
-+++ b/base/debug/stack_trace_posix.cc	2016-05-08 08:01:24.988950619 +0200
+--- base/debug/stack_trace_posix.cc.orig	2016-05-08 07:59:51.749087517 +0200
++++ base/debug/stack_trace_posix.cc	2016-05-08 08:01:24.988950619 +0200
 @@ -24,7 +24,7 @@
  #if defined(__GLIBCXX__)
  #include <cxxabi.h>
@@ -70,8 +70,8 @@
  void StackTrace::OutputToStream(std::ostream* os) const {
    StreamBacktraceOutputHandler handler(os);
    ProcessBacktrace(trace_, count_, &handler);
---- a/third_party/WebKit/Source/wtf/Assertions.cpp.orig	2016-05-08 08:02:03.230553120 +0200
-+++ b/third_party/WebKit/Source/wtf/Assertions.cpp	2016-05-08 08:02:35.822504255 +0200
+--- third_party/WebKit/Source/wtf/Assertions.cpp.orig	2016-12-02 00:02:32.000000000 +0100
++++ third_party/WebKit/Source/wtf/Assertions.cpp	2016-12-06 10:58:11.183147846 +0100
 @@ -60,7 +60,7 @@
  #include <windows.h>
  #endif
@@ -81,26 +81,26 @@
  #include <cxxabi.h>
  #include <dlfcn.h>
  #include <execinfo.h>
-@@ -220,7 +220,7 @@ void WTFReportArgumentAssertionFailure(c
+@@ -164,7 +164,7 @@
+ }
  
- void WTFGetBacktrace(void** stack, int* size)
- {
+ void WTFGetBacktrace(void** stack, int* size) {
 -#if OS(MACOSX) || (OS(LINUX) && !defined(__UCLIBC__))
 +#if OS(MACOSX) || (OS(LINUX) && defined(__GLIBC__))
-     *size = backtrace(stack, *size);
+   *size = backtrace(stack, *size);
  #elif OS(WIN)
-     // The CaptureStackBackTrace function is available in XP, but it is not defined
-@@ -258,7 +258,7 @@ FrameToNameScope::FrameToNameScope(void*
-     : m_name(0)
-     , m_cxaDemangled(0)
- {
+   // The CaptureStackBackTrace function is available in XP, but it is not
+@@ -215,7 +215,7 @@
+ };
+ 
+ FrameToNameScope::FrameToNameScope(void* addr) : m_name(0), m_cxaDemangled(0) {
 -#if OS(MACOSX) || (OS(LINUX) && !defined(__UCLIBC__))
 +#if OS(MACOSX) || (OS(LINUX) && defined(__GLIBC__))
-     Dl_info info;
-     if (!dladdr(addr, &info) || !info.dli_sname)
-         return;
---- a/third_party/webrtc/base/checks.cc.orig	2016-05-08 08:03:04.398461275 +0200
-+++ b/third_party/webrtc/base/checks.cc	2016-05-08 08:03:24.254431362 +0200
+   Dl_info info;
+   if (!dladdr(addr, &info) || !info.dli_sname)
+     return;
+--- third_party/webrtc/base/checks.cc.orig	2016-05-08 08:03:04.398461275 +0200
++++ third_party/webrtc/base/checks.cc	2016-05-08 08:03:24.254431362 +0200
 @@ -16,7 +16,7 @@
  #include <cstdio>
  #include <cstdlib>
@@ -119,3 +119,14 @@
    void* trace[100];
    int size = backtrace(trace, sizeof(trace) / sizeof(*trace));
    char** symbols = backtrace_symbols(trace, size);
+--- ./base/debug/stack_trace.cc.orig
++++ ./base/debug/stack_trace.cc
+@@ -33,7 +33,7 @@
+ 
+ std::string StackTrace::ToString() const {
+   std::stringstream stream;
+-#if !defined(__UCLIBC__)
++#if defined(__GLIBC__)
+   OutputToStream(&stream);
+ #endif
+   return stream.str();
diff --git a/community/chromium/no-getcontext.patch b/community/chromium/no-getcontext.patch
index 4b87c6d17056..846ef16c5891 100644
--- a/community/chromium/no-getcontext.patch
+++ b/community/chromium/no-getcontext.patch
@@ -1,19 +1,27 @@
---- ./breakpad/src/client/linux/handler/exception_handler.cc.orig
-+++ ./breakpad/src/client/linux/handler/exception_handler.cc
-@@ -460,7 +460,6 @@
+--- breakpad/src/client/linux/handler/exception_handler.cc.orig	2015-12-06 09:59:55.554536646 +0100
++++ breakpad/src/client/linux/handler/exception_handler.cc	2015-12-06 10:01:16.818238035 +0100
+@@ -477,7 +477,9 @@ bool ExceptionHandler::SimulateSignalDel
    siginfo.si_code = SI_USER;
    siginfo.si_pid = getpid();
    struct ucontext context;
--  getcontext(&context);
++#if defined(__GLIBC__)
+   getcontext(&context);
++#endif
    return HandleSignal(sig, &siginfo, &context);
  }
  
-@@ -628,8 +627,6 @@
+@@ -647,9 +649,14 @@ bool ExceptionHandler::WriteMinidump() {
    sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
  
    CrashContext context;
--  int getcontext_result = getcontext(&context.context);
--  if (getcontext_result)
++
++#if defined(__GLIBC__)
+   int getcontext_result = getcontext(&context.context);
+   if (getcontext_result)
      return false;
++#else
++  return false;
++#endif
  
  #if defined(__i386__)
+   // In CPUFillFromUContext in minidumpwriter.cc the stack pointer is retrieved
diff --git a/community/chromium/no-mallinfo.patch b/community/chromium/no-mallinfo.patch
index 965cddb2eb23..3ea66e475d8a 100644
--- a/community/chromium/no-mallinfo.patch
+++ b/community/chromium/no-mallinfo.patch
@@ -1,16 +1,16 @@
---- a/base/trace_event/malloc_dump_provider.cc.orig	2016-05-08 08:04:01.166374018 +0200
-+++ b/base/trace_event/malloc_dump_provider.cc	2016-05-08 08:05:07.846264723 +0200
-@@ -61,7 +61,7 @@ bool MallocDumpProvider::OnMemoryDump(co
-   // fixed quantum, so the excess region will not be resident.
-   // See crrev.com/1531463004 for detailed explanation.
-   resident_size = stats.max_size_in_use;
+--- base/trace_event/malloc_dump_provider.cc.orig	2016-11-16 02:19:56.753320143 +0100
++++ base/trace_event/malloc_dump_provider.cc	2016-11-16 02:13:58.286196506 +0100
+@@ -224,7 +224,7 @@
+   resident_size = all_heap_info.committed_size;
+   allocated_objects_size = all_heap_info.allocated_size;
+   allocated_objects_count = all_heap_info.block_count;
 -#else
 +#elif defined(OS_LINUX) && defined(__GLIBC__)
    struct mallinfo info = mallinfo();
    DCHECK_GE(info.arena + info.hblkhd, info.uordblks);
  
---- a/content/child/content_child_helpers.cc.orig	2016-05-08 08:05:37.415219394 +0200
-+++ b/content/child/content_child_helpers.cc	2016-05-08 08:06:27.110142484 +0200
+--- content/child/content_child_helpers.cc.orig	2016-05-08 08:05:37.415219394 +0200
++++ content/child/content_child_helpers.cc	2016-05-08 08:06:27.110142484 +0200
 @@ -24,7 +24,7 @@ namespace content {
  // though, this provides only a partial and misleading value.
  // Unfortunately some telemetry benchmark rely on it and these need to
diff --git a/community/chromium/unset-madv_free.patch b/community/chromium/unset-madv_free.patch
index 80e62e854c82..f748179fc903 100644
--- a/community/chromium/unset-madv_free.patch
+++ b/community/chromium/unset-madv_free.patch
@@ -1,7 +1,5 @@
-https://bugzilla.redhat.com/show_bug.cgi?id=1361157
-
---- a/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
-+++ b/third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
+--- third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
++++ third_party/WebKit/Source/wtf/allocator/PageAllocator.cpp
 @@ -41,6 +41,11 @@
  #include <errno.h>
  #include <sys/mman.h>
-- 
GitLab