diff --git a/chromium/PKGBUILD b/chromium/PKGBUILD index 6477ec8..7369fa8 100644 --- a/chromium/PKGBUILD +++ b/chromium/PKGBUILD @@ -10,8 +10,8 @@ declare -rgA _system_libs=( #[ffmpeg]=ffmpeg # https://crbug.com/731766 [flac]=flac #[freetype]=freetype2 # https://crbug.com/pdfium/733 - [harfbuzz-ng]=harfbuzz-icu - [icu]=icu + #[harfbuzz-ng]=harfbuzz-icu # https://crbug.com/768938 + #[icu]=icu # https://crbug.com/772655 [libdrm]= [libjpeg]=libjpeg #[libpng]=libpng # https://crbug.com/752403#c10 @@ -27,7 +27,7 @@ declare -rgA _system_libs=( ) pkgname=chromium -pkgver=62.0.3202.94 +pkgver=63.0.3239.108 pkgrel=1 _launcher_ver=5 pkgdesc="A web browser built for speed, simplicity, and security" @@ -38,23 +38,25 @@ 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[@]}) -makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git') +makedepends=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git' 'clang' 'lld') optdepends=('kwallet: for storing passwords in KWallet' 'kdialog: needed for file dialogs in KDE') 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-$pkgver.txt::https://chromium.googlesource.com/chromium/src.git/+/$pkgver?format=TEXT chromium.desktop - breakpad-use-ucontext_t.patch - crc32c-string-view-check.patch - chromium-gn-bootstrap-r17.patch + chromium-exclude_unwind_tables.patch + chromium-clang-r1.patch + chromium-webrtc-r0.patch chromium-widevine.patch) -sha256sums=('cabc4d267bf08aabe11c5739048c43dde18c61acf595223a1c3aa1d3499558d4' +sha256sums=('6de2754dfc333675ae6a67ae13c95666009b35c84f847b058edbf312e42fa3af' '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587' + '782a512b8bcf4aa6e58036cc3454d037d0eea69f27d5b673902d494c3fb5b20d' '028a748a5c275de9b8f776f97909f999a8583a4b77fd1cd600b4fc5c0c3e91e9' - '6e9a345f810d36068ee74ebba4708c70ab30421dad3571b6be5e9db635078ea8' - '35435e8dae76737baafecdc76d74a1c97281c4179e416556e033a06a31468e6d' - 'd81319f168dad0e411c8e810f73daa2f56ff579578771bd9c9bb1aa2d7c09a8b' + 'e53dc6f259acd39df13874f8a0f440528fae764b859dd71447991a5b1fac7c9c' + 'ab5368a3e3a67fa63b33fefc6788ad5b4a79089ef4db1011a14c3bee9fdf70c6' + 'bcb2f4588cf5dcf75cde855c7431e94fdcc34bdd68b876a90f65ab9938594562' 'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808') # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) @@ -68,8 +70,8 @@ prepare() { cd "$srcdir/$pkgname-$pkgver" # https://crbug.com/710701 - local _chrome_build_hash=$(curl -s https://chromium.googlesource.com/chromium/src.git/+/$pkgver?format=TEXT | - base64 -d | grep -Po '^parent \K[0-9a-f]{40}$') + local _chrome_build_hash=$(base64 -d ../chromium-$pkgver.txt | + grep -Po '^parent \K[0-9a-f]{40}$') if [[ -z $_chrome_build_hash ]]; then error "Unable to fetch Chrome build hash." return 1 @@ -82,14 +84,20 @@ prepare() { sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch | patch -Np1 - # Fix build with glibc 2.26 - patch -Np1 -i ../breakpad-use-ucontext_t.patch - - # Fix incorrect inclusion of in modes other than >= C++17 - patch -Np1 -d third_party/crc32c/src <../crc32c-string-view-check.patch + # https://chromium-review.googlesource.com/c/chromium/src/+/712575 + patch -Np1 -i ../chromium-exclude_unwind_tables.patch # Fixes from Gentoo - patch -Np1 -i ../chromium-gn-bootstrap-r17.patch + patch -Np1 -i ../chromium-clang-r1.patch + patch -Np1 -i ../chromium-webrtc-r0.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-unsigned-enum-zero-compare"/d' \ + build/config/compiler/BUILD.gn # Use Python 2 find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} + @@ -123,12 +131,24 @@ build() { cd "$srcdir/$pkgname-$pkgver" + if check_buildoption ccache y; then + # Avoid falling back to preprocessor mode when sources contain time macros + export CCACHE_SLOPPINESS=time_macros + fi + export PATH="$srcdir/python2-path:$PATH" export TMPDIR="$srcdir/temp" mkdir -p "$TMPDIR" + export CC=clang + export CXX=clang++ + export AR=ar + export NM=nm + local _flags=( - 'is_clang=false' + 'custom_toolchain="//build/toolchain/linux/unbundle:default"' + 'host_toolchain="//build/toolchain/linux/unbundle:default"' + 'is_clang=true' 'clang_use_chrome_plugins=false' 'is_debug=false' 'fatal_linker_warnings=false' @@ -170,25 +190,30 @@ package() { cd "$srcdir/$pkgname-$pkgver" install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" - install -Dm644 out/Release/chrome.1 "$pkgdir/usr/share/man/man1/chromium.1" - install -Dm644 "$srcdir/chromium.desktop" \ + install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" + ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver" + + install -Dm644 chrome/installer/linux/common/desktop.template \ "$pkgdir/usr/share/applications/chromium.desktop" + install -Dm644 chrome/app/resources/manpage.1.in \ + "$pkgdir/usr/share/man/man1/chromium.1" + sed -i \ + -e "s/@@MENUNAME@@/Chromium/g" \ + -e "s/@@PACKAGE@@/chromium/g" \ + -e "s/@@USR_BIN_SYMLINK_NAME@@/chromium/g" \ + "$pkgdir/usr/share/applications/chromium.desktop" \ + "$pkgdir/usr/share/man/man1/chromium.1" - install -Dm4755 out/Release/chrome_sandbox \ - "$pkgdir/usr/lib/chromium/chrome-sandbox" - - cp -a \ + cp \ out/Release/{chrome_{100,200}_percent,resources}.pak \ out/Release/{*.bin,chromedriver,libwidevinecdmadapter.so} \ - out/Release/locales \ "$pkgdir/usr/lib/chromium/" + install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak 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" - for size in 22 24 48 64 128 256; do install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \ "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" diff --git a/chromium/breakpad-use-ucontext_t.patch b/chromium/breakpad-use-ucontext_t.patch deleted file mode 100644 index f323972..0000000 --- a/chromium/breakpad-use-ucontext_t.patch +++ /dev/null @@ -1,225 +0,0 @@ -From b6a312ed8e144a37da840ae50dbd39df5ffb7e9f Mon Sep 17 00:00:00 2001 -From: Khem Raj -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 ---- - .../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 - diff --git a/chromium/chromium-clang-r1.patch b/chromium/chromium-clang-r1.patch new file mode 100644 index 0000000..0fef167 --- /dev/null +++ b/chromium/chromium-clang-r1.patch @@ -0,0 +1,21 @@ +--- a/build/config/compiler/BUILD.gn.orig 2017-10-04 08:50:15.014675936 +0000 ++++ b/build/config/compiler/BUILD.gn 2017-10-04 08:50:32.831024327 +0000 +@@ -429,18 +429,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=1", +- ] +- } +- + # 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. diff --git a/chromium/chromium-exclude_unwind_tables.patch b/chromium/chromium-exclude_unwind_tables.patch new file mode 100644 index 0000000..6723259 --- /dev/null +++ b/chromium/chromium-exclude_unwind_tables.patch @@ -0,0 +1,44 @@ +From 1fc37227522ccd314f82ec893ed15c6129296604 Mon Sep 17 00:00:00 2001 +From: Paul Jensen +Date: Wed, 11 Oct 2017 08:37:34 -0400 +Subject: [PATCH] Move exclude_unwind_tables back into declare_args + +There is desire to adjust this flag manually. + +BUG=762629 +R=thakis@chromium.org + +Change-Id: I3bd134c19270cd1f729b3ea078674e734493d4ab +--- + +diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni +index ad40fd9..50e19a4 100644 +--- a/build/config/compiler/compiler.gni ++++ b/build/config/compiler/compiler.gni +@@ -68,18 +68,18 @@ + + # Whether or not we should use position independent code. + use_pic = true ++ ++ # Exclude unwind tables for official builds as unwinding can be done from ++ # stack dumps produced by Crashpad at a later time "offline" in the crash ++ # server. For unofficial (e.g. development) builds and non-Chrome branded ++ # (e.g. Cronet which doesn't use Crashpad, crbug.com/479283) builds it's ++ # useful to be able to unwind at runtime. ++ exclude_unwind_tables = (is_chrome_branded && is_official_build) || ++ (is_chromecast && !is_cast_desktop_build && !is_debug) + } + + assert(!is_cfi || use_thin_lto, "CFI requires ThinLTO") + +-# Exclude unwind tables for official builds as unwinding can be done from stack +-# dumps produced by Crashpad at a later time "offline" in the crash server. +-# For unofficial (e.g. development) builds and non-Chrome branded (e.g. Cronet +-# which doesn't use Crashpad, crbug.com/479283) builds it's useful to be able +-# to unwind at runtime. +-exclude_unwind_tables = (is_chrome_branded && is_official_build) || +- (is_chromecast && !is_cast_desktop_build && !is_debug) +- + # If true, optimize for size. Does not affect windows builds. + # Linux & Mac favor speed over size. + # TODO(brettw) it's weird that Mac and desktop Linux are different. We should diff --git a/chromium/chromium-gn-bootstrap-r17.patch b/chromium/chromium-gn-bootstrap-r17.patch deleted file mode 100644 index 6cfd08d..0000000 --- a/chromium/chromium-gn-bootstrap-r17.patch +++ /dev/null @@ -1,68 +0,0 @@ ---- a/tools/gn/bootstrap/bootstrap.py -+++ b/tools/gn/bootstrap/bootstrap.py -@@ -179,6 +179,7 @@ def build_gn_with_ninja_manually(tempdir, options): - - write_buildflag_header_manually(root_gen_dir, 'base/debug/debugging_flags.h', - { -+ 'ENABLE_LOCATION_SOURCE': 'false', - 'ENABLE_PROFILING': 'false', - 'CAN_UNWIND_WITH_FRAME_POINTERS': 'false' - }) -@@ -204,7 +205,7 @@ def build_gn_with_ninja_manually(tempdir, options): - - write_gn_ninja(os.path.join(tempdir, 'build.ninja'), - root_gen_dir, options) -- cmd = ['ninja', '-C', tempdir] -+ cmd = ['ninja', '-C', tempdir, '-w', 'dupbuild=err'] - if options.verbose: - cmd.append('-v') - -@@ -458,6 +459,7 @@ def write_gn_ninja(path, root_gen_dir, options): - 'base/metrics/bucket_ranges.cc', - 'base/metrics/field_trial.cc', - 'base/metrics/field_trial_param_associator.cc', -+ 'base/metrics/field_trial_params.cc', - 'base/metrics/histogram.cc', - 'base/metrics/histogram_base.cc', - 'base/metrics/histogram_functions.cc', -@@ -507,6 +509,7 @@ def write_gn_ninja(path, root_gen_dir, options): - 'base/task_scheduler/scheduler_lock_impl.cc', - 'base/task_scheduler/scheduler_single_thread_task_runner_manager.cc', - 'base/task_scheduler/scheduler_worker.cc', -+ 'base/task_scheduler/scheduler_worker_pool.cc', - 'base/task_scheduler/scheduler_worker_pool_impl.cc', - 'base/task_scheduler/scheduler_worker_pool_params.cc', - 'base/task_scheduler/scheduler_worker_stack.cc', -@@ -523,6 +526,7 @@ def write_gn_ninja(path, root_gen_dir, options): - 'base/third_party/icu/icu_utf.cc', - 'base/third_party/nspr/prtime.cc', - 'base/threading/post_task_and_reply_impl.cc', -+ 'base/threading/scoped_blocking_call.cc', - 'base/threading/sequence_local_storage_map.cc', - 'base/threading/sequenced_task_runner_handle.cc', - 'base/threading/sequenced_worker_pool.cc', -@@ -579,7 +583,6 @@ def write_gn_ninja(path, root_gen_dir, options): - 'base/unguessable_token.cc', - 'base/value_iterators.cc', - 'base/values.cc', -- 'base/value_iterators.cc', - 'base/vlog.cc', - ]) - -@@ -652,7 +655,6 @@ def write_gn_ninja(path, root_gen_dir, options): - static_libraries['base']['sources'].extend([ - 'base/memory/shared_memory_handle_posix.cc', - 'base/memory/shared_memory_posix.cc', -- 'base/memory/shared_memory_tracker.cc', - 'base/nix/xdg_util.cc', - 'base/process/internal_linux.cc', - 'base/process/memory_linux.cc', -@@ -827,7 +829,7 @@ def build_gn_with_gn(temp_gn, build_dir, options): - cmd = [temp_gn, 'gen', build_dir, '--args=%s' % gn_gen_args] - check_call(cmd) - -- cmd = ['ninja', '-C', build_dir] -+ cmd = ['ninja', '-C', build_dir, '-w', 'dupbuild=err'] - if options.verbose: - cmd.append('-v') - cmd.append('gn') diff --git a/chromium/chromium-webrtc-r0.patch b/chromium/chromium-webrtc-r0.patch new file mode 100644 index 0000000..e14b185 --- /dev/null +++ b/chromium/chromium-webrtc-r0.patch @@ -0,0 +1,34 @@ +From 7f90e2cceda0458cf56026eb6ccffb961a47804b Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa +Date: Fri, 13 Oct 2017 15:49:32 +0200 +Subject: [PATCH] IWYU: Include math.h for round(3). + +math.h was being implicitly included, which can break the build with +alternative libc implementations. + +Bug: None +Change-Id: I969b320b65d0f44abb33d3e1036cfbcb859a4952 +Reviewed-on: https://webrtc-review.googlesource.com/9384 +Reviewed-by: Tommi +Commit-Queue: Raphael Kubo da Costa (rakuco) +Cr-Commit-Position: refs/heads/master@{#20292} +--- + p2p/base/port.cc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/p2p/base/port.cc b/p2p/base/port.cc +index a1b478d11..81aa0aadb 100644 +--- a/third_party/webrtc/p2p/base/port.cc ++++ b/third_party/webrtc/p2p/base/port.cc +@@ -10,6 +10,8 @@ + + #include "p2p/base/port.h" + ++#include ++ + #include + #include + +-- +2.15.0.rc2 + diff --git a/chromium/crc32c-string-view-check.patch b/chromium/crc32c-string-view-check.patch deleted file mode 100644 index 9f53ec0..0000000 --- a/chromium/crc32c-string-view-check.patch +++ /dev/null @@ -1,74 +0,0 @@ -From d0f929a5db87cb34d03afb0d8e8bfc95b8f786e3 Mon Sep 17 00:00:00 2001 -From: Victor Costan -Date: Mon, 11 Sep 2017 13:18:27 -0700 -Subject: [PATCH] More conservative check for availability. (#4) - -has_include() does not imply that the header can be -included and will work. The assumption fails on MSVC and libc++ [1, 2]. -Conversely, checking that __cplusplus > 201402L is not sufficient on its -own either, as the toolchain on Mac OS 10.12 passes that check but does -not contain a header. - -[1] https://crbug.com/759349 -[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79433 ---- - include/crc32c/crc32c.h | 10 +++------- - src/crc32c_unittest.cc | 6 ++---- - 2 files changed, 5 insertions(+), 11 deletions(-) - -diff --git a/include/crc32c/crc32c.h b/include/crc32c/crc32c.h -index 9f1973a..8ecab0d 100644 ---- a/include/crc32c/crc32c.h -+++ b/include/crc32c/crc32c.h -@@ -33,22 +33,18 @@ inline uint32_t Crc32c(const std::string& string) { - string.size()); - } - --#if defined(__has_include) -+#if __cplusplus > 201402L - #if __has_include() --// Visual Studio provides a header even in C++11 mode. When --// included, the header issues an #error. (C1189) --#if !defined(_MSC_VER) || __cplusplus >= 201703L - #include - --// Comptues the CRC32C of the bytes in the string_view. -+// Computes the CRC32C of the bytes in the string_view. - inline uint32_t Crc32c(const std::string_view& string_view) { - return Crc32c(reinterpret_cast(string_view.data()), - string_view.size()); - } - --#endif // !defined(_MSC_VER) || __cplusplus >= 201703L - #endif // __has_include() --#endif // defined(__has_include) -+#endif // __cplusplus > 201402L - - } // namespace crc32c - -diff --git a/src/crc32c_unittest.cc b/src/crc32c_unittest.cc -index 7a9c765..69babb3 100644 ---- a/src/crc32c_unittest.cc -+++ b/src/crc32c_unittest.cc -@@ -95,9 +95,8 @@ TEST(CRC32CTest, Crc32cStdString) { - EXPECT_EQ(static_cast(0x113fdb5c), crc32c::Crc32c(buf)); - } - --#if defined(__has_include) -+#if __cplusplus > 201402L - #if __has_include() --#if !defined(_MSC_VER) || __cplusplus >= 201703L - - TEST(CRC32CTest, Crc32cStdStringView) { - uint8_t buf[32]; -@@ -118,9 +117,8 @@ TEST(CRC32CTest, Crc32cStdStringView) { - EXPECT_EQ(static_cast(0x113fdb5c), crc32c::Crc32c(view)); - } - --#endif // !defined(_MSC_VER) || __cplusplus >= 201703L - #endif // __has_include() --#endif // defined(__has_include) -+#endif // __cplusplus > 201402L - - #define TESTED_EXTEND Extend - #include "./crc32c_extend_unittests.h"