mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
extra/chromium to 61.0.3163.79-1
This commit is contained in:
parent
cdc47efd9f
commit
4d89c05dc8
6 changed files with 330 additions and 115 deletions
|
@ -1,4 +1,4 @@
|
||||||
# $Id: PKGBUILD 160354 2012-06-01 12:58:14Z dreisner $
|
# $Id: PKGBUILD 277477 2016-10-01 03:36:40Z foutrelis $
|
||||||
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
|
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
|
||||||
# Contributor: Pierre Schmitz <pierre@archlinux.de>
|
# Contributor: Pierre Schmitz <pierre@archlinux.de>
|
||||||
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
|
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
|
||||||
|
@ -10,6 +10,44 @@
|
||||||
|
|
||||||
buildarch=12
|
buildarch=12
|
||||||
highmem=1
|
highmem=1
|
||||||
|
noautobuild=1
|
||||||
|
|
||||||
|
pkgname=chromium
|
||||||
|
pkgver=61.0.3163.79
|
||||||
|
pkgrel=1
|
||||||
|
_launcher_ver=5
|
||||||
|
pkgdesc="A web browser built for speed, simplicity, and security"
|
||||||
|
arch=('i686' 'x86_64' 'armv7h' 'aarch64')
|
||||||
|
url="https://www.chromium.org/Home"
|
||||||
|
license=('BSD')
|
||||||
|
depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
|
||||||
|
'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib'
|
||||||
|
'desktop-file-utils' 'hicolor-icon-theme')
|
||||||
|
makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git')
|
||||||
|
optdepends=('kdialog: needed for file dialogs in KDE'
|
||||||
|
'gnome-keyring: for storing passwords in GNOME keyring'
|
||||||
|
'kwallet: for storing passwords in KWallet')
|
||||||
|
install=chromium.install
|
||||||
|
source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
|
||||||
|
chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
|
||||||
|
chromium.desktop
|
||||||
|
breakpad-use-ucontext_t.patch
|
||||||
|
chromium-gcc-r1.patch
|
||||||
|
chromium-gn-bootstrap-r14.patch
|
||||||
|
chromium-atk-r1.patch
|
||||||
|
chromium-blink-gcc7.patch
|
||||||
|
chromium-widevine.patch
|
||||||
|
0001-ARM-toolchain-fixes.patch)
|
||||||
|
sha256sums=('bdbc139ed86f3b5d1ec3c3b00caeaef4f9ac2c363438f03dded56e217ad10727'
|
||||||
|
'4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587'
|
||||||
|
'028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9'
|
||||||
|
'6e9a345f810d36068ee74ebba4708c70ab30421dad3571b6be5e9db635078ea8'
|
||||||
|
'11cffe305dd49027c91638261463871e9ecb0ecc6ecc02bfa37b203c5960ab58'
|
||||||
|
'98784c4a0a793ecf34987bc8f91ae360d78596a4a59dd47651411381f752a080'
|
||||||
|
'fc0e9abb77b6f8e21a7601ff53f267a854736d711b530be5bbd80d976678e98d'
|
||||||
|
'f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323'
|
||||||
|
'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808'
|
||||||
|
'8489d2a85b32e9b08f5c30d47b40ae41911d1915f48b6de3c41fe350dfecfef6')
|
||||||
|
|
||||||
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
|
# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py
|
||||||
# Keys are the names in the above script; values are the dependencies in Arch
|
# Keys are the names in the above script; values are the dependencies in Arch
|
||||||
|
@ -24,7 +62,7 @@ declare -rgA _system_libs=(
|
||||||
#[libpng]=libpng # https://crbug.com/752403#c10
|
#[libpng]=libpng # https://crbug.com/752403#c10
|
||||||
#[libvpx]=libvpx # https://bugs.gentoo.org/611394
|
#[libvpx]=libvpx # https://bugs.gentoo.org/611394
|
||||||
[libwebp]=libwebp
|
[libwebp]=libwebp
|
||||||
#[libxml]=libxml2 # https://bugs.gentoo.org/616818
|
[libxml]=libxml2
|
||||||
[libxslt]=libxslt
|
[libxslt]=libxslt
|
||||||
[opus]=opus
|
[opus]=opus
|
||||||
[re2]=re2
|
[re2]=re2
|
||||||
|
@ -32,40 +70,7 @@ declare -rgA _system_libs=(
|
||||||
[yasm]=
|
[yasm]=
|
||||||
[zlib]=minizip
|
[zlib]=minizip
|
||||||
)
|
)
|
||||||
|
|
||||||
pkgname=chromium
|
|
||||||
pkgver=60.0.3112.113
|
|
||||||
pkgrel=1
|
|
||||||
_launcher_ver=5
|
|
||||||
pkgdesc="A web browser built for speed, simplicity, and security"
|
|
||||||
arch=('i686' 'x86_64' 'armv7h' 'aarch64')
|
|
||||||
url="https://www.chromium.org/Home"
|
|
||||||
license=('BSD')
|
|
||||||
depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
|
|
||||||
'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib'
|
|
||||||
'desktop-file-utils' 'hicolor-icon-theme')
|
|
||||||
depends+=(${_system_libs[@]})
|
depends+=(${_system_libs[@]})
|
||||||
makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git')
|
|
||||||
optdepends=('kdialog: needed for file dialogs in KDE'
|
|
||||||
'gnome-keyring: for storing passwords in GNOME keyring'
|
|
||||||
'kwallet: for storing passwords in KWallet')
|
|
||||||
install=chromium.install
|
|
||||||
source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
|
|
||||||
chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
|
|
||||||
chromium.desktop
|
|
||||||
chromium-gn-bootstrap-r8.patch
|
|
||||||
chromium-blink-gcc7.patch
|
|
||||||
chromium-v8-gcc7.patch
|
|
||||||
chromium-widevine.patch
|
|
||||||
0001-ARM-toolchain-fixes.patch)
|
|
||||||
sha256sums=('ebfce706a1ea02a92e35f360c7364d1184dacf040b59eade4cb51aa61a4fec59'
|
|
||||||
'4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587'
|
|
||||||
'028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9'
|
|
||||||
'06345804c00d9618dad98a2dc04f31ef19912cdf6e9d6e577ef7ffb1fa57003f'
|
|
||||||
'f94310a7ba9b8b777adfb4442bcc0a8f0a3d549b2cf4a156066f8e2e28e2f323'
|
|
||||||
'46dacc4fa52652b7d99b8996d6a97e5e3bac586f879aefb9fb95020d2c4e5aec'
|
|
||||||
'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808'
|
|
||||||
'8489d2a85b32e9b08f5c30d47b40ae41911d1915f48b6de3c41fe350dfecfef6')
|
|
||||||
|
|
||||||
# Google API keys (see https://www.chromium.org/developers/how-tos/api-keys)
|
# Google API keys (see https://www.chromium.org/developers/how-tos/api-keys)
|
||||||
# Note: These are for Arch Linux use ONLY. For your own distribution, please
|
# Note: These are for Arch Linux use ONLY. For your own distribution, please
|
||||||
|
@ -92,18 +97,20 @@ prepare() {
|
||||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347
|
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347
|
||||||
patch -Np1 -i ../chromium-blink-gcc7.patch
|
patch -Np1 -i ../chromium-blink-gcc7.patch
|
||||||
|
|
||||||
# https://bugs.chromium.org/p/chromium/issues/detail?id=614289
|
# Fix build with glibc 2.26
|
||||||
patch -Np1 -i ../chromium-v8-gcc7.patch
|
patch -Np1 -i ../breakpad-use-ucontext_t.patch
|
||||||
|
|
||||||
# Fixes from Gentoo
|
# Fixes from Gentoo
|
||||||
patch -Np1 -i ../chromium-gn-bootstrap-r8.patch
|
patch -Np1 -i ../chromium-gcc-r1.patch
|
||||||
|
patch -Np1 -i ../chromium-gn-bootstrap-r14.patch
|
||||||
|
patch -Np1 -i ../chromium-atk-r1.patch
|
||||||
|
|
||||||
# Use Python 2
|
# Use Python 2
|
||||||
find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} +
|
find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} +
|
||||||
|
|
||||||
# There are still a lot of relative calls which need a workaround
|
# There are still a lot of relative calls which need a workaround
|
||||||
mkdir -p "$srcdir/python2-path"
|
mkdir "$srcdir/python2-path"
|
||||||
ln -sf /usr/bin/python2 "$srcdir/python2-path/python"
|
ln -s /usr/bin/python2 "$srcdir/python2-path/python"
|
||||||
|
|
||||||
mkdir -p third_party/node/linux/node-linux-x64/bin
|
mkdir -p third_party/node/linux/node-linux-x64/bin
|
||||||
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
|
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
|
||||||
|
@ -145,12 +152,13 @@ build() {
|
||||||
'ffmpeg_branding="Chrome"'
|
'ffmpeg_branding="Chrome"'
|
||||||
'proprietary_codecs=true'
|
'proprietary_codecs=true'
|
||||||
'link_pulseaudio=true'
|
'link_pulseaudio=true'
|
||||||
'linux_use_bundled_binutils=false'
|
|
||||||
'use_gtk3=true'
|
'use_gtk3=true'
|
||||||
'use_gconf=false'
|
'use_gconf=false'
|
||||||
'use_gnome_keyring=false'
|
'use_gnome_keyring=false'
|
||||||
'use_gold=false'
|
'use_gold=false'
|
||||||
'use_sysroot=false'
|
'use_sysroot=false'
|
||||||
|
'linux_use_bundled_binutils=false'
|
||||||
|
'use_custom_libcxx=false'
|
||||||
'enable_hangout_services_extension=true'
|
'enable_hangout_services_extension=true'
|
||||||
'enable_widevine=true'
|
'enable_widevine=true'
|
||||||
'enable_nacl=false'
|
'enable_nacl=false'
|
||||||
|
@ -187,9 +195,12 @@ package() {
|
||||||
out/Release/{chrome_{100,200}_percent,resources}.pak \
|
out/Release/{chrome_{100,200}_percent,resources}.pak \
|
||||||
out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \
|
out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \
|
||||||
out/Release/locales \
|
out/Release/locales \
|
||||||
out/Release/icudtl.dat \
|
|
||||||
"$pkgdir/usr/lib/chromium/"
|
"$pkgdir/usr/lib/chromium/"
|
||||||
|
|
||||||
|
if [[ -z ${_system_libs[icu]+set} ]]; then
|
||||||
|
cp out/Release/icudtl.dat "$pkgdir/usr/lib/chromium/"
|
||||||
|
fi
|
||||||
|
|
||||||
ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver"
|
ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver"
|
||||||
|
|
||||||
for size in 22 24 48 64 128 256; do
|
for size in 22 24 48 64 128 256; do
|
||||||
|
|
225
extra/chromium/breakpad-use-ucontext_t.patch
Normal file
225
extra/chromium/breakpad-use-ucontext_t.patch
Normal file
|
@ -0,0 +1,225 @@
|
||||||
|
From b6a312ed8e144a37da840ae50dbd39df5ffb7e9f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Sun, 2 Jul 2017 16:34:54 -0700
|
||||||
|
Subject: [PATCH 2/2] replace struct ucontext with ucontext_t
|
||||||
|
|
||||||
|
glibc 2.26 does not expose struct ucontext any longer
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
.../linux/dump_writer_common/ucontext_reader.cc | 30 +++++++++++-----------
|
||||||
|
.../linux/dump_writer_common/ucontext_reader.h | 10 ++++----
|
||||||
|
.../src/client/linux/handler/exception_handler.cc | 8 +++---
|
||||||
|
.../src/client/linux/handler/exception_handler.h | 2 +-
|
||||||
|
.../linux/microdump_writer/microdump_writer.cc | 2 +-
|
||||||
|
.../linux/minidump_writer/minidump_writer.cc | 2 +-
|
||||||
|
6 files changed, 27 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
|
||||||
|
index c80724dd8..93b4d9f85 100644
|
||||||
|
--- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
|
||||||
|
+++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
|
||||||
|
@@ -40,15 +40,15 @@ namespace google_breakpad {
|
||||||
|
|
||||||
|
#if defined(__i386__)
|
||||||
|
|
||||||
|
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||||
|
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||||
|
return uc->uc_mcontext.gregs[REG_ESP];
|
||||||
|
}
|
||||||
|
|
||||||
|
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||||
|
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||||
|
return uc->uc_mcontext.gregs[REG_EIP];
|
||||||
|
}
|
||||||
|
|
||||||
|
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||||
|
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||||
|
const struct _libc_fpstate* fp) {
|
||||||
|
const greg_t* regs = uc->uc_mcontext.gregs;
|
||||||
|
|
||||||
|
@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||||
|
|
||||||
|
#elif defined(__x86_64)
|
||||||
|
|
||||||
|
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||||
|
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||||
|
return uc->uc_mcontext.gregs[REG_RSP];
|
||||||
|
}
|
||||||
|
|
||||||
|
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||||
|
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||||
|
return uc->uc_mcontext.gregs[REG_RIP];
|
||||||
|
}
|
||||||
|
|
||||||
|
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||||
|
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||||
|
const struct _libc_fpstate* fpregs) {
|
||||||
|
const greg_t* regs = uc->uc_mcontext.gregs;
|
||||||
|
|
||||||
|
@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||||
|
|
||||||
|
#elif defined(__ARM_EABI__)
|
||||||
|
|
||||||
|
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||||
|
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||||
|
return uc->uc_mcontext.arm_sp;
|
||||||
|
}
|
||||||
|
|
||||||
|
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||||
|
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||||
|
return uc->uc_mcontext.arm_pc;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
|
||||||
|
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
|
||||||
|
out->context_flags = MD_CONTEXT_ARM_FULL;
|
||||||
|
|
||||||
|
out->iregs[0] = uc->uc_mcontext.arm_r0;
|
||||||
|
@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
|
||||||
|
|
||||||
|
#elif defined(__aarch64__)
|
||||||
|
|
||||||
|
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||||
|
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||||
|
return uc->uc_mcontext.sp;
|
||||||
|
}
|
||||||
|
|
||||||
|
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||||
|
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||||
|
return uc->uc_mcontext.pc;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||||
|
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||||
|
const struct fpsimd_context* fpregs) {
|
||||||
|
out->context_flags = MD_CONTEXT_ARM64_FULL;
|
||||||
|
|
||||||
|
@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||||
|
|
||||||
|
#elif defined(__mips__)
|
||||||
|
|
||||||
|
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||||
|
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||||
|
return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
|
||||||
|
}
|
||||||
|
|
||||||
|
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||||
|
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||||
|
return uc->uc_mcontext.pc;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
|
||||||
|
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
|
||||||
|
#if _MIPS_SIM == _ABI64
|
||||||
|
out->context_flags = MD_CONTEXT_MIPS64_FULL;
|
||||||
|
#elif _MIPS_SIM == _ABIO32
|
||||||
|
diff --git a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
|
||||||
|
index b6e77b4b5..2369a9ad3 100644
|
||||||
|
--- a/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
|
||||||
|
+++ b/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
|
||||||
|
@@ -41,21 +41,21 @@ namespace google_breakpad {
|
||||||
|
|
||||||
|
// Wraps platform-dependent implementations of accessors to ucontext structs.
|
||||||
|
struct UContextReader {
|
||||||
|
- static uintptr_t GetStackPointer(const struct ucontext* uc);
|
||||||
|
+ static uintptr_t GetStackPointer(const ucontext_t* uc);
|
||||||
|
|
||||||
|
- static uintptr_t GetInstructionPointer(const struct ucontext* uc);
|
||||||
|
+ static uintptr_t GetInstructionPointer(const ucontext_t* uc);
|
||||||
|
|
||||||
|
// Juggle a arch-specific ucontext into a minidump format
|
||||||
|
// out: the minidump structure
|
||||||
|
// info: the collection of register structures.
|
||||||
|
#if defined(__i386__) || defined(__x86_64)
|
||||||
|
- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||||
|
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||||
|
const struct _libc_fpstate* fp);
|
||||||
|
#elif defined(__aarch64__)
|
||||||
|
- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||||
|
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||||
|
const struct fpsimd_context* fpregs);
|
||||||
|
#else
|
||||||
|
- static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
|
||||||
|
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
diff --git a/breakpad/src/client/linux/handler/exception_handler.cc b/breakpad/src/client/linux/handler/exception_handler.cc
|
||||||
|
index b63f973b8..f2688acaf 100644
|
||||||
|
--- a/breakpad/src/client/linux/handler/exception_handler.cc
|
||||||
|
+++ b/breakpad/src/client/linux/handler/exception_handler.cc
|
||||||
|
@@ -439,9 +439,9 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) {
|
||||||
|
// Fill in all the holes in the struct to make Valgrind happy.
|
||||||
|
memset(&g_crash_context_, 0, sizeof(g_crash_context_));
|
||||||
|
memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
|
||||||
|
- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
|
||||||
|
+ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
|
||||||
|
#if defined(__aarch64__)
|
||||||
|
- struct ucontext* uc_ptr = (struct ucontext*)uc;
|
||||||
|
+ ucontext_t* uc_ptr = (ucontext_t*)uc;
|
||||||
|
struct fpsimd_context* fp_ptr =
|
||||||
|
(struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
|
||||||
|
if (fp_ptr->head.magic == FPSIMD_MAGIC) {
|
||||||
|
@@ -452,7 +452,7 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) {
|
||||||
|
// FP state is not part of user ABI on ARM Linux.
|
||||||
|
// In case of MIPS Linux FP state is already part of struct ucontext
|
||||||
|
// and 'float_state' is not a member of CrashContext.
|
||||||
|
- struct ucontext* uc_ptr = (struct ucontext*)uc;
|
||||||
|
+ ucontext_t* uc_ptr = (ucontext_t*)uc;
|
||||||
|
if (uc_ptr->uc_mcontext.fpregs) {
|
||||||
|
memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
|
||||||
|
sizeof(g_crash_context_.float_state));
|
||||||
|
@@ -476,7 +476,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
|
||||||
|
// ExceptionHandler::HandleSignal().
|
||||||
|
siginfo.si_code = SI_USER;
|
||||||
|
siginfo.si_pid = getpid();
|
||||||
|
- struct ucontext context;
|
||||||
|
+ ucontext_t context;
|
||||||
|
getcontext(&context);
|
||||||
|
return HandleSignal(sig, &siginfo, &context);
|
||||||
|
}
|
||||||
|
diff --git a/breakpad/src/client/linux/handler/exception_handler.h b/breakpad/src/client/linux/handler/exception_handler.h
|
||||||
|
index 591c31085..846df772f 100644
|
||||||
|
--- a/breakpad/src/client/linux/handler/exception_handler.h
|
||||||
|
+++ b/breakpad/src/client/linux/handler/exception_handler.h
|
||||||
|
@@ -191,7 +191,7 @@ class ExceptionHandler {
|
||||||
|
struct CrashContext {
|
||||||
|
siginfo_t siginfo;
|
||||||
|
pid_t tid; // the crashing thread.
|
||||||
|
- struct ucontext context;
|
||||||
|
+ ucontext_t context;
|
||||||
|
#if !defined(__ARM_EABI__) && !defined(__mips__)
|
||||||
|
// #ifdef this out because FP state is not part of user ABI for Linux ARM.
|
||||||
|
// In case of MIPS Linux FP state is already part of struct
|
||||||
|
diff --git a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
|
||||||
|
index 6f5b43559..a508667a0 100644
|
||||||
|
--- a/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
|
||||||
|
+++ b/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
|
||||||
|
@@ -571,7 +571,7 @@ class MicrodumpWriter {
|
||||||
|
|
||||||
|
void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
|
||||||
|
|
||||||
|
- const struct ucontext* const ucontext_;
|
||||||
|
+ const ucontext_t* const ucontext_;
|
||||||
|
#if !defined(__ARM_EABI__) && !defined(__mips__)
|
||||||
|
const google_breakpad::fpstate_t* const float_state_;
|
||||||
|
#endif
|
||||||
|
diff --git a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
|
||||||
|
index 86009b9f6..f2aec73d7 100644
|
||||||
|
--- a/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
|
||||||
|
+++ b/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
|
||||||
|
@@ -1248,7 +1248,7 @@ class MinidumpWriter {
|
||||||
|
const int fd_; // File descriptor where the minidum should be written.
|
||||||
|
const char* path_; // Path to the file where the minidum should be written.
|
||||||
|
|
||||||
|
- const struct ucontext* const ucontext_; // also from the signal handler
|
||||||
|
+ const ucontext_t* const ucontext_; // also from the signal handler
|
||||||
|
#if !defined(__ARM_EABI__) && !defined(__mips__)
|
||||||
|
const google_breakpad::fpstate_t* const float_state_; // ditto
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.13.2
|
||||||
|
|
11
extra/chromium/chromium-atk-r1.patch
Normal file
11
extra/chromium/chromium-atk-r1.patch
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/content/browser/accessibility/browser_accessibility_auralinux.cc.orig 2017-07-27 06:28:01.090257874 +0000
|
||||||
|
+++ b/content/browser/accessibility/browser_accessibility_auralinux.cc 2017-07-27 06:28:21.174653680 +0000
|
||||||
|
@@ -571,7 +571,7 @@
|
||||||
|
// it's best to leave this out rather than break people's builds:
|
||||||
|
#if defined(ATK_CHECK_VERSION)
|
||||||
|
#if ATK_CHECK_VERSION(2, 16, 0)
|
||||||
|
- atk_state_set_add_state(atk_state_set, ATK_STATE_READ_ONLY);
|
||||||
|
+ atk_state_set_add_state(state_set, ATK_STATE_READ_ONLY);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
break;
|
14
extra/chromium/chromium-gcc-r1.patch
Normal file
14
extra/chromium/chromium-gcc-r1.patch
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
diff --git a/base/numerics/safe_math_shared_impl.h b/base/numerics/safe_math_shared_impl.h
|
||||||
|
index 99f230ce7e9a..de2415d402f5 100644
|
||||||
|
--- a/base/numerics/safe_math_shared_impl.h
|
||||||
|
+++ b/base/numerics/safe_math_shared_impl.h
|
||||||
|
@@ -21,8 +21,7 @@
|
||||||
|
#if !defined(__native_client__) && \
|
||||||
|
((defined(__clang__) && \
|
||||||
|
((__clang_major__ > 3) || \
|
||||||
|
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
|
||||||
|
- (defined(__GNUC__) && __GNUC__ >= 5))
|
||||||
|
+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
|
||||||
|
#include "base/numerics/safe_math_clang_gcc_impl.h"
|
||||||
|
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
|
||||||
|
#else
|
27
extra/chromium/chromium-gn-bootstrap-r14.patch
Normal file
27
extra/chromium/chromium-gn-bootstrap-r14.patch
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
commit 96c271f8ab2be7ea4199078ea65ac50c6ada4685
|
||||||
|
Author: Pawel Hajdan, Jr <phajdan.jr@chromium.org>
|
||||||
|
Date: Wed Jul 26 21:51:54 2017 +0000
|
||||||
|
|
||||||
|
wip
|
||||||
|
|
||||||
|
diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
|
||||||
|
index 1390560f8e37..ff2ae57c46b0 100755
|
||||||
|
--- a/tools/gn/bootstrap/bootstrap.py
|
||||||
|
+++ b/tools/gn/bootstrap/bootstrap.py
|
||||||
|
@@ -449,6 +449,7 @@ def write_gn_ninja(path, root_gen_dir, options):
|
||||||
|
'base/metrics/histogram_base.cc',
|
||||||
|
'base/metrics/histogram_functions.cc',
|
||||||
|
'base/metrics/histogram_samples.cc',
|
||||||
|
+ 'base/metrics/histogram_snapshot_manager.cc',
|
||||||
|
'base/metrics/metrics_hashes.cc',
|
||||||
|
'base/metrics/persistent_histogram_allocator.cc',
|
||||||
|
'base/metrics/persistent_memory_allocator.cc',
|
||||||
|
@@ -534,7 +535,7 @@ def write_gn_ninja(path, root_gen_dir, options):
|
||||||
|
'base/trace_event/heap_profiler_allocation_context_tracker.cc',
|
||||||
|
'base/trace_event/heap_profiler_allocation_register.cc',
|
||||||
|
'base/trace_event/heap_profiler_event_filter.cc',
|
||||||
|
- 'base/trace_event/heap_profiler_event_writer.cc',
|
||||||
|
+ 'base/trace_event/heap_profiler_heap_dump_writer.cc',
|
||||||
|
'base/trace_event/heap_profiler_serialization_state.cc',
|
||||||
|
'base/trace_event/heap_profiler_stack_frame_deduplicator.cc',
|
||||||
|
'base/trace_event/heap_profiler_type_name_deduplicator.cc',
|
|
@ -1,73 +0,0 @@
|
||||||
diff -upr chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h chromium-59.0.3071.86/v8/src/objects/hash-table.h
|
|
||||||
--- chromium-59.0.3071.86.orig/v8/src/objects/hash-table.h 2017-06-05 22:04:29.000000000 +0300
|
|
||||||
+++ chromium-59.0.3071.86/v8/src/objects/hash-table.h 2017-06-06 14:35:41.558245559 +0300
|
|
||||||
@@ -135,22 +135,10 @@ class HashTable : public HashTableBase {
|
|
||||||
public:
|
|
||||||
typedef Shape ShapeT;
|
|
||||||
|
|
||||||
- // Wrapper methods
|
|
||||||
- inline uint32_t Hash(Key key) {
|
|
||||||
- if (Shape::UsesSeed) {
|
|
||||||
- return Shape::SeededHash(key, GetHeap()->HashSeed());
|
|
||||||
- } else {
|
|
||||||
- return Shape::Hash(key);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- inline uint32_t HashForObject(Key key, Object* object) {
|
|
||||||
- if (Shape::UsesSeed) {
|
|
||||||
- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
|
|
||||||
- } else {
|
|
||||||
- return Shape::HashForObject(key, object);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
+ // Wrapper methods. Defined in src/objects-inl.h
|
|
||||||
+ // to break a cycle with src/heap/heap.h.
|
|
||||||
+ inline uint32_t Hash(Key key);
|
|
||||||
+ inline uint32_t HashForObject(Key key, Object* object);
|
|
||||||
|
|
||||||
// Returns a new HashTable object.
|
|
||||||
MUST_USE_RESULT static Handle<Derived> New(
|
|
||||||
diff -upr chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h chromium-59.0.3071.86/v8/src/objects-body-descriptors.h
|
|
||||||
--- chromium-59.0.3071.86.orig/v8/src/objects-body-descriptors.h 2017-06-05 22:04:29.000000000 +0300
|
|
||||||
+++ chromium-59.0.3071.86/v8/src/objects-body-descriptors.h 2017-06-06 14:35:41.554912132 +0300
|
|
||||||
@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
|
|
||||||
|
|
||||||
template <typename StaticVisitor>
|
|
||||||
static inline void IterateBody(HeapObject* obj, int object_size) {
|
|
||||||
- IterateBody(obj);
|
|
||||||
+ IterateBody<StaticVisitor>(obj);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
diff -upr chromium-59.0.3071.86.orig/v8/src/objects-inl.h chromium-59.0.3071.86/v8/src/objects-inl.h
|
|
||||||
--- chromium-59.0.3071.86.orig/v8/src/objects-inl.h 2017-06-05 22:04:29.000000000 +0300
|
|
||||||
+++ chromium-59.0.3071.86/v8/src/objects-inl.h 2017-06-06 14:35:41.558245559 +0300
|
|
||||||
@@ -46,6 +46,27 @@
|
|
||||||
namespace v8 {
|
|
||||||
namespace internal {
|
|
||||||
|
|
||||||
+template <typename Derived, typename Shape, typename Key>
|
|
||||||
+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
|
|
||||||
+ if (Shape::UsesSeed) {
|
|
||||||
+ return Shape::SeededHash(key, GetHeap()->HashSeed());
|
|
||||||
+ } else {
|
|
||||||
+ return Shape::Hash(key);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+template <typename Derived, typename Shape, typename Key>
|
|
||||||
+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
|
|
||||||
+ Object* object) {
|
|
||||||
+ if (Shape::UsesSeed) {
|
|
||||||
+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
|
|
||||||
+ } else {
|
|
||||||
+ return Shape::HashForObject(key, object);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
PropertyDetails::PropertyDetails(Smi* smi) {
|
|
||||||
value_ = smi->value();
|
|
||||||
}
|
|
Loading…
Reference in a new issue