aboutsummaryrefslogtreecommitdiffstats
path: root/main/xulrunner
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2014-10-29 16:02:02 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2014-10-29 16:38:44 +0000
commit95489293ef40dfd46498b08f2dfb3b6fa1c288ec (patch)
tree5a4391756bb5fbe4172b852add03e1086b74f64b /main/xulrunner
parentee754870689436f39cc3500b4d3af63435fb0eb3 (diff)
downloadaports-95489293ef40dfd46498b08f2dfb3b6fa1c288ec.tar.bz2
aports-95489293ef40dfd46498b08f2dfb3b6fa1c288ec.tar.xz
main/firefox: upgrade to 31.2.0 esr
dont build xulrunner separately
Diffstat (limited to 'main/xulrunner')
-rw-r--r--main/xulrunner/0002-Use-C99-math-isfinite.patch29
-rw-r--r--main/xulrunner/0003-xulrunner-jemalloc-aslr.patch67
-rw-r--r--main/xulrunner/APKBUILD175
-rw-r--r--main/xulrunner/fix-arm-atomics-grsec.patch342
-rw-r--r--main/xulrunner/fix-ipc.patch66
-rw-r--r--main/xulrunner/fix-media-webrtc.patch14
-rw-r--r--main/xulrunner/fix-media.patch38
-rw-r--r--main/xulrunner/fix-netwerk.patch37
-rw-r--r--main/xulrunner/fix-toolkit.patch151
-rw-r--r--main/xulrunner/fix-tools.patch49
-rw-r--r--main/xulrunner/getchar.patch14
-rw-r--r--main/xulrunner/mozconfig46
-rw-r--r--main/xulrunner/mozilla-build-arm.patch11
-rw-r--r--main/xulrunner/stab.h71
-rw-r--r--main/xulrunner/stat.patch25
15 files changed, 0 insertions, 1135 deletions
diff --git a/main/xulrunner/0002-Use-C99-math-isfinite.patch b/main/xulrunner/0002-Use-C99-math-isfinite.patch
deleted file mode 100644
index 03f830bcae..0000000000
--- a/main/xulrunner/0002-Use-C99-math-isfinite.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From cdb9db4c1c593dbe22db4f389a62fce034f31f2d Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Fri, 25 Nov 2011 08:30:51 +0000
-Subject: [PATCH 2/4] Use C99 math isfinite
-
----
- xpcom/ds/nsMathUtils.h | 6 +++++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/xpcom/ds/nsMathUtils.h b/xpcom/ds/nsMathUtils.h
-index 21ffbec..2e80476 100644
---- a/xpcom/ds/nsMathUtils.h
-+++ b/xpcom/ds/nsMathUtils.h
-@@ -131,7 +131,11 @@ inline NS_HIDDEN_(bool) NS_finite(double d)
- // NOTE: '!!' casts an int to bool without spamming MSVC warning C4800.
- return !!_finite(d);
- #else
-- return finite(d);
-+#ifdef _GLIBCXX_CMATH
-+ return std::isfinite(d);
-+#else
-+ return isfinite(d);
-+#endif
- #endif
- }
-
---
-1.7.7.4
-
diff --git a/main/xulrunner/0003-xulrunner-jemalloc-aslr.patch b/main/xulrunner/0003-xulrunner-jemalloc-aslr.patch
deleted file mode 100644
index 7aa00009f0..0000000000
--- a/main/xulrunner/0003-xulrunner-jemalloc-aslr.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 88bb9f90ec1e4b43fb78596c8ff7577c92592eb4 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Fri, 25 Nov 2011 08:36:52 +0000
-Subject: [PATCH 3/4] xulrunner: jemalloc aslr
-
----
- memory/jemalloc/jemalloc.c | 33 ++++++++++++++++++++++-----------
- 1 files changed, 22 insertions(+), 11 deletions(-)
-
-diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c
-index ad7c450..91de92c 100644
---- a/memory/mozjemalloc/jemalloc.c
-+++ b/memory/mozjemalloc/jemalloc.c
-@@ -410,7 +410,7 @@ void *_mmap(void *addr, size_t length, int prot, int flags,
- static const bool __isthreaded = true;
- #endif
-
--#if defined(MOZ_MEMORY_SOLARIS) && defined(MAP_ALIGN) && !defined(JEMALLOC_NEVER_USES_MAP_ALIGN)
-+#if defined(MOZ_MEMORY_SOLARIS) || defined(MOZ_MEMORY_LINUX) || defined(MOZ_MEMORY_BSD)
- #define JEMALLOC_USES_MAP_ALIGN /* Required on Solaris 10. Might improve performance elsewhere. */
- #endif
-
-@@ -2181,20 +2181,31 @@ pages_map_align(size_t size, int pfd, size_t alignment)
- * We don't use MAP_FIXED here, because it can cause the *replacement*
- * of existing mappings, and we only want to create new mappings.
- */
--#ifdef MALLOC_PAGEFILE
-- if (pfd != -1) {
-- ret = mmap((void *)alignment, size, PROT_READ | PROT_WRITE, MAP_PRIVATE |
-- MAP_NOSYNC | MAP_ALIGN, pfd, 0);
-- } else
--#endif
-- {
-- ret = mmap((void *)alignment, size, PROT_READ | PROT_WRITE, MAP_PRIVATE |
-- MAP_NOSYNC | MAP_ALIGN | MAP_ANON, -1, 0);
-- }
-+ ret = mmap(NULL, size + alignment, PROT_READ | PROT_WRITE, MAP_PRIVATE |
-+ MAP_NOSYNC| MAP_ANON, -1, 0);
- assert(ret != NULL);
-
- if (ret == MAP_FAILED)
- ret = NULL;
-+ else {
-+ uintptr_t aligned_ret;
-+ size_t extra_size;
-+
-+ aligned_ret = (uintptr_t)ret + alignment - 1;
-+ aligned_ret &= ~(alignment - 1);
-+ extra_size = aligned_ret - (uintptr_t)ret;
-+ munmap(ret, extra_size);
-+ munmap(ret + extra_size + size, alignment - extra_size);
-+ ret = (void *)aligned_ret;
-+#ifdef MALLOC_PAGEFILE
-+ if (pfd != -1) {
-+ ret = mmap(ret, size, PROT_READ | PROT_WRITE, MAP_PRIVATE |
-+ MAP_NOSYNC | MAP_FIXED, pfd, 0);
-+ }
-+ if (ret == MAP_FAILED)
-+ ret = NULL;
-+#endif
-+ }
- return (ret);
- }
- #endif
---
-1.7.7.4
-
diff --git a/main/xulrunner/APKBUILD b/main/xulrunner/APKBUILD
deleted file mode 100644
index 9fc55cac4b..0000000000
--- a/main/xulrunner/APKBUILD
+++ /dev/null
@@ -1,175 +0,0 @@
-# Contributor: William Pitcock <nenolod@dereferenced.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=xulrunner
-pkgver=31.1.1
-_ffoxver=$pkgver
-pkgrel=0
-pkgdesc="runtime environment for xul-based applications"
-url="http://developer.mozilla.org/en/XULRunner"
-arch="all"
-license="GPL LGPL MPL"
-depends=
-depends_dev="nspr-dev
- nss-dev
- gtk+-dev
- dbus-glib-dev
- alsa-lib-dev
- gstreamer1-dev
- gst-plugins-base1-dev
- libvorbis-dev
- libogg-dev
- libtheora-dev
- wireless-tools-dev
- libnotify-dev
- libevent-dev
- libvpx-dev
- libxt-dev
- libjpeg-turbo-dev
- bzip2-dev
- hunspell-dev
- startup-notification-dev
- sqlite-dev
- libidl-dev
- mesa-dev
- icu-dev"
-makedepends="$depends_dev
- autoconf2.13
-
- sed
- python
- zip
- yasm
- paxctl
-
- autoconf
- automake
- libtool"
-install=""
-options=""
-subpackages="$pkgname-dev $pkgname-dbg"
-source="ftp://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.bz2
- 0002-Use-C99-math-isfinite.patch
- 0003-xulrunner-jemalloc-aslr.patch
- getchar.patch
- stat.patch
- fix-arm-atomics-grsec.patch
-
- fix-ipc.patch
- fix-media.patch
- fix-media-webrtc.patch
- fix-netwerk.patch
- fix-toolkit.patch
- fix-tools.patch
- mozilla-build-arm.patch
-
- stab.h
- mozconfig
- "
-
-# help our shared-object scanner to find the libs
-ldpath="/usr/lib/xulrunner-$pkgver"
-
-_builddir="${srcdir}/mozilla-esr31"
-prepare() {
- local i
-
- cd "$_builddir"
-
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-
- cp "${srcdir}/mozconfig" .mozconfig || return 1
- sed -e "s/#${CLIBC}#//g" -i .mozconfig
-
- cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
-}
-
-build() {
- cd "$_builddir"
-
- # mozilla's buildsystem is on drugs, so we just kill our CFLAGS and hope
- # for the best. --nenolod
- unset CFLAGS
- unset CXXFLAGS
-
- make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS" || return 1
-}
-
-package() {
- cd "$_builddir"
-
- # only used for startupcache creation.
- local paxflags="-m"
- [ "$CARCH" = "x86" ] && paxflags="-msp"
- paxctl -c $paxflags */dist/bin/xpcshell || return 1
-
- make -j1 DESTDIR="$pkgdir" -f client.mk install || return 1
-
- # make install does not install xpt.py but its needed by firefox
- mkdir -p "$pkgdir"/usr/lib/xulrunner-devel-$pkgver/sdk/bin
- cp xpcom/typelib/xpt/tools/xpt.py \
- "$pkgdir"/usr/lib/xulrunner-devel-$pkgver/sdk/bin/
-
- msg "Setting up compatibility symlinks..."
- ln -sf /usr/lib/xulrunner-${pkgver}/libxul.so "${pkgdir}"/usr/lib/libxul.so
- ln -sf /usr/lib/xulrunner-${pkgver}/libmozalloc.so "${pkgdir}"/usr/lib/libmozalloc.so
-}
-
-dev() {
- replaces="xulrunner"
- depends="xulrunner"
-
- mkdir -p "${subpkgdir}"/usr/lib
- mv "${pkgdir}"/usr/lib/xulrunner-devel-${pkgver} "${subpkgdir}"/usr/lib
- mv "${pkgdir}"/usr/lib/pkgconfig "${subpkgdir}"/usr/lib
- mv "${pkgdir}"/usr/include "${subpkgdir}"/usr/include
-}
-
-md5sums="7cd2d7cf51fdeb47eb6b6d0d551610d4 firefox-31.1.1esr.source.tar.bz2
-f43c1f0ae57aa8289b130c6de8caf3ce 0002-Use-C99-math-isfinite.patch
-e8b3a22d670241bb5c038729ac49a975 0003-xulrunner-jemalloc-aslr.patch
-507742325de8687529e4e81e31132ddf getchar.patch
-d9a2245b93a7f5855ee029b5fa44e4e9 stat.patch
-b18bd948aae828e5c8f5f63e440c96d6 fix-arm-atomics-grsec.patch
-38a9c0d5be155164d50a956ac131d991 fix-ipc.patch
-960d56439a375998ce4e4597bf245375 fix-media.patch
-ce4839160acf3986a2118326ed2b8444 fix-media-webrtc.patch
-170b8e7f8cab21f0965f226c291a57f9 fix-netwerk.patch
-296954be4c6d6bfcc24d0a46a2bd7d74 fix-toolkit.patch
-2279c55a85013fc1c0d01427768edd4d fix-tools.patch
-308ba5b54116a035fe68d0d5c3974857 mozilla-build-arm.patch
-4383d038b8d8411ea46f4a109197c19e stab.h
-7701fb5564182cced00b2b45bce39685 mozconfig"
-sha256sums="79be660e766b5adfaf3fc8031804bd64d27d330231f0de5995dd89671d1998d2 firefox-31.1.1esr.source.tar.bz2
-2f319883300f2aef180bfb80221151fcbb29344a5a0a086d6ad1d80005daf039 0002-Use-C99-math-isfinite.patch
-324d5cd26858ad21bb4680db8635fb3fd014bf00a637bf9fb2b118c2925fc5e7 0003-xulrunner-jemalloc-aslr.patch
-d14357bf44f702d94b8d3ed79bdf81f6271370745c1ac8fa83522bd98be4adc4 getchar.patch
-a0f8a0fa9977ee43f3853b6c6bf5a506fdfabdfa32b4279e0ac3d7a3078f34cc stat.patch
-ff7cb3c9c4712e0517a6f11e3bf08e9b0d13dbe6384930bdc7f55b1ceed039b5 fix-arm-atomics-grsec.patch
-059a69ff0dbceeaa5bbb1446aa4233bc578a047fcad22c0efa27dc64bbd72980 fix-ipc.patch
-d582712c28a26679d728d21d2ef8964d119182edaf580a948f57a9e808ccc5cf fix-media.patch
-3e53af8beff122bcf5790c148fb51f41f44b6fe5dd5799777b70c3542c32cb93 fix-media-webrtc.patch
-4a2f8ff5e9b1359541eba8854098cee2caeb40ad9dbdc4b8fcf48b47ea8ca2d2 fix-netwerk.patch
-666883189dba3f4c7ba6b5bc85026c85bcb84477c2d5ba00d6414ddd0f744368 fix-toolkit.patch
-60ed0870119480994c6c455034c52dd21b8482b7617c3a0032e3b2abf4467e4d fix-tools.patch
-6f5f5e4d2a17182b72b248e896450235ccdaf63252fdb89a8deb55da8adc9be3 mozilla-build-arm.patch
-960d82bbfdc88c95f5cb4f2e1c1bf23dae7519b3b7203914d7b3ddbff1ba4c28 stab.h
-bfc5a101a6a50490dc865b4b7cae94be5e4fad9ecd6b5bcccdd8380eeb1d1a71 mozconfig"
-sha512sums="9c01a4443f7269e9f9584d199b3028fe9e442f22ed58035c5e48e84be1f633c5ecc1f462f46d4282f25a975981ed72b4c2519a19423cc0ee0d71c1bfac6d649c firefox-31.1.1esr.source.tar.bz2
-9a6666a3b637549411ea562c9d0d6d617ed48327d0f9e4e64d27f43774c218e6c5cf5fa99d4b339a5a0f89b854a18079392eba0dafc3419adbd4cdd5d71d3f26 0002-Use-C99-math-isfinite.patch
-46caf196a9f68614c42b793befc7dc85438d30ce47c06ccc925aae14728d67b0d29192edba430c0a6237192e6d51db26dfc6e6190bc01937a828effd8136f37b 0003-xulrunner-jemalloc-aslr.patch
-18f0696bf4d032c83041110b83ae6531b48474a778fc1deade3b06ba2ae1bfcc9891059287bfb78317c2f5ddc88f5b7ce957312acdb63d4902a57e0b40eb6520 getchar.patch
-1a8754830dbbf5432a611504c957c4ff24fdc31dc1a5ee7cdd4240bc5c084baa26a24f18527ff398ec81e56a36aee31732138243cf22a6bab89703656ff463e7 stat.patch
-4311464ae52b6d2e2b02c789c6d5fca9b3c211888a983aa609a62c2f2554516fea735ea90673387c69b38a30aa8453ed79faa44b5163df4293880d40df676b2d fix-arm-atomics-grsec.patch
-3f360d4231355c268fc52e0fedbce5c4f73ad8d60d9424af8641733c0ae181e6226056e605f0d6653b729a9c8e4abe97a9fb2face25938651a7498d5753cea8b fix-ipc.patch
-58e0e7c1c368530b58aa143be0403d733c4b82cc1a9964c925278e5eff147b2ec2c8c34a6cb217387cb7e9f2ca13c2e299745015edaac510704963282dc68e79 fix-media.patch
-a5d00272fc9e2b3a786f5891bac11b04ffaf6dfcbd2b30cba42286b79d12fefb6cb9c81e6d75987ab3ee19d12af20a074c77edc655bd470be06f5025eb38e609 fix-media-webrtc.patch
-8a896ee4d1465a844351cec84217de1a28b9f27bfc1e34cc71368664b5b8804bd66bdcadc78c78ee365abd1d0cafed1e6c568045c93cb78ac94e2818f503d58c fix-netwerk.patch
-72459754016f254c58d56d9a8719897fa8da9cf969eaa498e1e755457942d3f0ac56e4abd3f6a66ef924c94aa034d0af18a1fb653926b2496f0c2615fdb24c5e fix-toolkit.patch
-426b57ce698de3eecd1b52f2998974c4e0b5922584b09b554d436c61fee039d1f86345e746fee067801ebbf50815c4d19b96266a2ed72a35ae5c3edbdb57bba1 fix-tools.patch
-e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18 mozilla-build-arm.patch
-0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h
-0cb16f394a3946a2bb31ef0084d8bbdc8e0e897d67c9224251d73fded07ab2fb193fcd8e5dd03109a3572a2455c44350b658cc64e2f981d047f45c8ade3afcf8 mozconfig"
diff --git a/main/xulrunner/fix-arm-atomics-grsec.patch b/main/xulrunner/fix-arm-atomics-grsec.patch
deleted file mode 100644
index 5524b2aa73..0000000000
--- a/main/xulrunner/fix-arm-atomics-grsec.patch
+++ /dev/null
@@ -1,342 +0,0 @@
---- mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig
-+++ mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h
-@@ -1,8 +1,31 @@
--// Copyright (c) 2009 The Chromium Authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
-+// Copyright 2010 the V8 project authors. All rights reserved.
-+// Redistribution and use in source and binary forms, with or without
-+// modification, are permitted provided that the following conditions are
-+// met:
-+//
-+// * Redistributions of source code must retain the above copyright
-+// notice, this list of conditions and the following disclaimer.
-+// * Redistributions in binary form must reproduce the above
-+// copyright notice, this list of conditions and the following
-+// disclaimer in the documentation and/or other materials provided
-+// with the distribution.
-+// * Neither the name of Google Inc. nor the names of its
-+// contributors may be used to endorse or promote products derived
-+// from this software without specific prior written permission.
-+//
-+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--// This file is an internal atomic implementation, use base/atomicops.h instead.
-+// This file is an internal atomic implementation, use atomicops.h instead.
- //
- // LinuxKernelCmpxchg and Barrier_AtomicIncrement are from Google Gears.
-
-@@ -12,43 +35,194 @@
- namespace base {
- namespace subtle {
-
--// 0xffff0fc0 is the hard coded address of a function provided by
--// the kernel which implements an atomic compare-exchange. On older
--// ARM architecture revisions (pre-v6) this may be implemented using
--// a syscall. This address is stable, and in active use (hard coded)
--// by at least glibc-2.7 and the Android C library.
--typedef Atomic32 (*LinuxKernelCmpxchgFunc)(Atomic32 old_value,
-- Atomic32 new_value,
-- volatile Atomic32* ptr);
--LinuxKernelCmpxchgFunc pLinuxKernelCmpxchg __attribute__((weak)) =
-- (LinuxKernelCmpxchgFunc) 0xffff0fc0;
-+// Memory barriers on ARM are funky, but the kernel is here to help:
-+//
-+// * ARMv5 didn't support SMP, there is no memory barrier instruction at
-+// all on this architecture, or when targeting its machine code.
-+//
-+// * Some ARMv6 CPUs support SMP. A full memory barrier can be produced by
-+// writing a random value to a very specific coprocessor register.
-+//
-+// * On ARMv7, the "dmb" instruction is used to perform a full memory
-+// barrier (though writing to the co-processor will still work).
-+// However, on single core devices (e.g. Nexus One, or Nexus S),
-+// this instruction will take up to 200 ns, which is huge, even though
-+// it's completely un-needed on these devices.
-+//
-+// * There is no easy way to determine at runtime if the device is
-+// single or multi-core. However, the kernel provides a useful helper
-+// function at a fixed memory address (0xffff0fa0), which will always
-+// perform a memory barrier in the most efficient way. I.e. on single
-+// core devices, this is an empty function that exits immediately.
-+// On multi-core devices, it implements a full memory barrier.
-+//
-+// * This source could be compiled to ARMv5 machine code that runs on a
-+// multi-core ARMv6 or ARMv7 device. In this case, memory barriers
-+// are needed for correct execution. Always call the kernel helper, even
-+// when targeting ARMv5TE.
-+//
-
--typedef void (*LinuxKernelMemoryBarrierFunc)(void);
--LinuxKernelMemoryBarrierFunc pLinuxKernelMemoryBarrier __attribute__((weak)) =
-- (LinuxKernelMemoryBarrierFunc) 0xffff0fa0;
-+inline void MemoryBarrier() {
-+#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
-+ defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__)
-+ __asm__ __volatile__("dmb ish" ::: "memory");
-+#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \
-+ defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \
-+ defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__)
-+ __asm__ __volatile__("mcr p15,0,r0,c7,c10,5" ::: "memory");
-+#elif defined(__linux__) || defined(__ANDROID__)
-+ // Note: This is a function call, which is also an implicit compiler barrier.
-+ typedef void (*KernelMemoryBarrierFunc)();
-+ ((KernelMemoryBarrierFunc)0xffff0fa0)();
-+#error MemoryBarrier() is not implemented on this platform.
-+#endif
-+}
-
-+// An ARM toolchain would only define one of these depending on which
-+// variant of the target architecture is being used. This tests against
-+// any known ARMv6 or ARMv7 variant, where it is possible to directly
-+// use ldrex/strex instructions to implement fast atomic operations.
-+#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \
-+ defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || \
-+ defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \
-+ defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \
-+ defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__)
-
- inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
- Atomic32 old_value,
- Atomic32 new_value) {
-- Atomic32 prev_value = *ptr;
-+ Atomic32 prev_value;
-+ int reloop;
- do {
-- if (!pLinuxKernelCmpxchg(old_value, new_value,
-- const_cast<Atomic32*>(ptr))) {
-- return old_value;
-- }
-- prev_value = *ptr;
-- } while (prev_value == old_value);
-+ // The following is equivalent to:
-+ //
-+ // prev_value = LDREX(ptr)
-+ // reloop = 0
-+ // if (prev_value != old_value)
-+ // reloop = STREX(ptr, new_value)
-+ __asm__ __volatile__(" ldrex %0, [%3]\n"
-+ " mov %1, #0\n"
-+ " cmp %0, %4\n"
-+#ifdef __thumb2__
-+ " it eq\n"
-+#endif
-+ " strexeq %1, %5, [%3]\n"
-+ : "=&r"(prev_value), "=&r"(reloop), "+m"(*ptr)
-+ : "r"(ptr), "r"(old_value), "r"(new_value)
-+ : "cc", "memory");
-+ } while (reloop != 0);
- return prev_value;
- }
-
-+inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
-+ Atomic32 old_value,
-+ Atomic32 new_value) {
-+ Atomic32 result = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-+ MemoryBarrier();
-+ return result;
-+}
-+
-+inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
-+ Atomic32 old_value,
-+ Atomic32 new_value) {
-+ MemoryBarrier();
-+ return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-+}
-+
-+inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
-+ Atomic32 increment) {
-+ Atomic32 value;
-+ int reloop;
-+ do {
-+ // Equivalent to:
-+ //
-+ // value = LDREX(ptr)
-+ // value += increment
-+ // reloop = STREX(ptr, value)
-+ //
-+ __asm__ __volatile__(" ldrex %0, [%3]\n"
-+ " add %0, %0, %4\n"
-+ " strex %1, %0, [%3]\n"
-+ : "=&r"(value), "=&r"(reloop), "+m"(*ptr)
-+ : "r"(ptr), "r"(increment)
-+ : "cc", "memory");
-+ } while (reloop);
-+ return value;
-+}
-+
-+inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
-+ Atomic32 increment) {
-+ // TODO(digit): Investigate if it's possible to implement this with
-+ // a single MemoryBarrier() operation between the LDREX and STREX.
-+ // See http://crbug.com/246514
-+ MemoryBarrier();
-+ Atomic32 result = NoBarrier_AtomicIncrement(ptr, increment);
-+ MemoryBarrier();
-+ return result;
-+}
-+
- inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
- Atomic32 new_value) {
- Atomic32 old_value;
-+ int reloop;
- do {
-+ // old_value = LDREX(ptr)
-+ // reloop = STREX(ptr, new_value)
-+ __asm__ __volatile__(" ldrex %0, [%3]\n"
-+ " strex %1, %4, [%3]\n"
-+ : "=&r"(old_value), "=&r"(reloop), "+m"(*ptr)
-+ : "r"(ptr), "r"(new_value)
-+ : "cc", "memory");
-+ } while (reloop != 0);
-+ return old_value;
-+}
-+
-+// This tests against any known ARMv5 variant.
-+#elif defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || \
-+ defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__)
-+
-+// The kernel also provides a helper function to perform an atomic
-+// compare-and-swap operation at the hard-wired address 0xffff0fc0.
-+// On ARMv5, this is implemented by a special code path that the kernel
-+// detects and treats specially when thread pre-emption happens.
-+// On ARMv6 and higher, it uses LDREX/STREX instructions instead.
-+//
-+// Note that this always perform a full memory barrier, there is no
-+// need to add calls MemoryBarrier() before or after it. It also
-+// returns 0 on success, and 1 on exit.
-+//
-+// Available and reliable since Linux 2.6.24. Both Android and ChromeOS
-+// use newer kernel revisions, so this should not be a concern.
-+namespace {
-+
-+inline int LinuxKernelCmpxchg(Atomic32 old_value,
-+ Atomic32 new_value,
-+ volatile Atomic32* ptr) {
-+ typedef int (*KernelCmpxchgFunc)(Atomic32, Atomic32, volatile Atomic32*);
-+ return ((KernelCmpxchgFunc)0xffff0fc0)(old_value, new_value, ptr);
-+}
-+
-+} // namespace
-+
-+inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
-+ Atomic32 old_value,
-+ Atomic32 new_value) {
-+ Atomic32 prev_value;
-+ for (;;) {
-+ prev_value = *ptr;
-+ if (prev_value != old_value)
-+ return prev_value;
-+ if (!LinuxKernelCmpxchg(old_value, new_value, ptr))
-+ return old_value;
-+ }
-+}
-+
-+inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
-+ Atomic32 new_value) {
-+ Atomic32 old_value;
-+ do {
- old_value = *ptr;
-- } while (pLinuxKernelCmpxchg(old_value, new_value,
-- const_cast<Atomic32*>(ptr)));
-+ } while (LinuxKernelCmpxchg(old_value, new_value, ptr));
- return old_value;
- }
-
-@@ -63,36 +237,57 @@
- // Atomic exchange the old value with an incremented one.
- Atomic32 old_value = *ptr;
- Atomic32 new_value = old_value + increment;
-- if (pLinuxKernelCmpxchg(old_value, new_value,
-- const_cast<Atomic32*>(ptr)) == 0) {
-+ if (!LinuxKernelCmpxchg(old_value, new_value, ptr)) {
- // The exchange took place as expected.
- return new_value;
- }
- // Otherwise, *ptr changed mid-loop and we need to retry.
- }
--
- }
-
- inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
- Atomic32 old_value,
- Atomic32 new_value) {
-- return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-+ Atomic32 prev_value;
-+ for (;;) {
-+ prev_value = *ptr;
-+ if (prev_value != old_value) {
-+ // Always ensure acquire semantics.
-+ MemoryBarrier();
-+ return prev_value;
-+ }
-+ if (!LinuxKernelCmpxchg(old_value, new_value, ptr))
-+ return old_value;
-+ }
- }
-
- inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
- Atomic32 old_value,
- Atomic32 new_value) {
-- return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-+ // This could be implemented as:
-+ // MemoryBarrier();
-+ // return NoBarrier_CompareAndSwap();
-+ //
-+ // But would use 3 barriers per succesful CAS. To save performance,
-+ // use Acquire_CompareAndSwap(). Its implementation guarantees that:
-+ // - A succesful swap uses only 2 barriers (in the kernel helper).
-+ // - An early return due to (prev_value != old_value) performs
-+ // a memory barrier with no store, which is equivalent to the
-+ // generic implementation above.
-+ return Acquire_CompareAndSwap(ptr, old_value, new_value);
- }
-
-+#else
-+# error "Your CPU's ARM architecture is not supported yet"
-+#endif
-+
-+// NOTE: Atomicity of the following load and store operations is only
-+// guaranteed in case of 32-bit alignement of |ptr| values.
-+
- inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
- *ptr = value;
- }
-
--inline void MemoryBarrier() {
-- pLinuxKernelMemoryBarrier();
--}
--
- inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
- *ptr = value;
- MemoryBarrier();
-@@ -103,9 +298,7 @@
- *ptr = value;
- }
-
--inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
-- return *ptr;
--}
-+inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) { return *ptr; }
-
- inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
- Atomic32 value = *ptr;
-@@ -118,7 +311,6 @@
- return *ptr;
- }
-
--} // namespace base::subtle
--} // namespace base
-+} } // namespace base::subtle
-
- #endif // BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_
diff --git a/main/xulrunner/fix-ipc.patch b/main/xulrunner/fix-ipc.patch
deleted file mode 100644
index e21d57f40d..0000000000
--- a/main/xulrunner/fix-ipc.patch
+++ /dev/null
@@ -1,66 +0,0 @@
---- mozilla-release.orig/ipc/chromium/src/base/debug_util_posix.cc
-+++ mozilla-release/ipc/chromium/src/base/debug_util_posix.cc
-@@ -5,7 +5,7 @@
- #include "build/build_config.h"
- #include "base/debug_util.h"
-
--#define MOZ_HAVE_EXECINFO_H (defined(OS_LINUX) && !defined(ANDROID))
-+#define MOZ_HAVE_EXECINFO_H (defined(OS_LINUX) && defined(__GLIBC__))
-
- #include <errno.h>
- #include <fcntl.h>
---- mozilla-release.orig/ipc/chromium/src/base/file_util.h
-+++ mozilla-release/ipc/chromium/src/base/file_util.h
-@@ -14,10 +14,15 @@
- #include <windows.h>
- #elif defined(ANDROID)
- #include <sys/stat.h>
-+#define NO_FTS
- #elif defined(OS_POSIX)
- #include <sys/types.h>
--#include <fts.h>
- #include <sys/stat.h>
-+#ifdef __GLIBC__
-+#include <fts.h>
-+#else
-+#define NO_FTS
-+#endif
- #endif
-
- #include <stdio.h>
---- mozilla-release.orig/ipc/chromium/src/base/file_util_posix.cc
-+++ mozilla-release/ipc/chromium/src/base/file_util_posix.cc
-@@ -8,13 +8,13 @@
- #include <errno.h>
- #include <fcntl.h>
- #include <fnmatch.h>
--#ifndef ANDROID
-+#ifndef NO_FTS
- #include <fts.h>
- #endif
- #include <libgen.h>
- #include <stdio.h>
- #include <string.h>
--#include <sys/errno.h>
-+#include <errno.h>
- #include <sys/mman.h>
- #define _DARWIN_USE_64_BIT_INODE // Use 64-bit inode data structures
- #include <sys/stat.h>
-@@ -67,7 +67,7 @@
- if (!recursive)
- return (rmdir(path_str) == 0);
-
--#ifdef ANDROID
-+#ifdef NO_FTS
- // XXX Need ftsless impl for bionic
- return false;
- #else
-@@ -140,7 +140,7 @@
- return false;
- }
-
--#ifdef ANDROID
-+#ifdef NO_FTS
- // XXX Need ftsless impl for bionic
- return false;
- #else
diff --git a/main/xulrunner/fix-media-webrtc.patch b/main/xulrunner/fix-media-webrtc.patch
deleted file mode 100644
index a173d795dd..0000000000
--- a/main/xulrunner/fix-media-webrtc.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-https://bugzilla.mozilla.org/show_bug.cgi?id=1010194
-
-diff -ru mozilla-release/media.orig/webrtc/signaling/src/sipcc/cpr/include/cpr_threads.h mozilla-release/media/webrtc/signaling/src/sipcc/cpr/include/cpr_threads.h
---- mozilla-release/media.orig/webrtc/signaling/src/sipcc/cpr/include/cpr_threads.h 2014-05-07 01:56:10.000000000 -0300
-+++ mozilla-release/media/webrtc/signaling/src/sipcc/cpr/include/cpr_threads.h 2014-05-14 14:56:45.938648384 -0300
-@@ -30,7 +30,7 @@
- uint32_t threadId;
- union {
- void *handlePtr;
-- uint64_t handleInt;
-+ unsigned long handleInt;
- } u;
- } cpr_thread_t;
-
diff --git a/main/xulrunner/fix-media.patch b/main/xulrunner/fix-media.patch
deleted file mode 100644
index a016a48753..0000000000
--- a/main/xulrunner/fix-media.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- mozilla-release/media.orig/mtransport/third_party/nICEr/src/stun/addrs.c
-+++ mozilla-release/media/mtransport/third_party/nICEr/src/stun/addrs.c
-@@ -45,7 +45,6 @@
- #include <sys/param.h>
- #include <sys/socket.h>
- #ifndef ANDROID
--#include <sys/sysctl.h>
- #include <sys/syslog.h>
- #else
- #include <syslog.h>
-@@ -53,7 +52,6 @@
- #undef __unused
- #include <linux/sysctl.h>
- #endif
--#include <net/if.h>
- #ifndef LINUX
- #if !defined(__OpenBSD__) && !defined(__NetBSD__)
- #include <net/if_var.h>
-@@ -63,8 +61,8 @@
- #include <sys/sockio.h>
- #else
- #include <linux/sockios.h>
--#include <linux/if.h>
- #include <linux/kernel.h>
-+#include <linux/if.h>
- #include <linux/wireless.h>
- #ifndef ANDROID
- #include <linux/ethtool.h>
---- mozilla-release/media.orig/mtransport/third_party/nICEr/src/stun/stun.h
-+++ mozilla-release/media/mtransport/third_party/nICEr/src/stun/stun.h
-@@ -39,7 +39,6 @@
- #else
- #include <sys/param.h>
- #include <sys/socket.h>
--#include <net/if.h>
- #ifndef LINUX
- #if !defined(__OpenBSD__) && !defined(__NetBSD__)
- #include <net/if_var.h>
diff --git a/main/xulrunner/fix-netwerk.patch b/main/xulrunner/fix-netwerk.patch
deleted file mode 100644
index a31b286229..0000000000
--- a/main/xulrunner/fix-netwerk.patch
+++ /dev/null
@@ -1,37 +0,0 @@
---- ./netwerk.orig/sctp/src/netinet/sctp_os_userspace.h
-+++ ./netwerk/sctp/src/netinet/sctp_os_userspace.h
-@@ -400,11 +400,8 @@
- };
-
- #else /* !defined(Userspace_os_Windows) */
--#include <sys/cdefs.h> /* needed? added from old __FreeBSD__ */
- #include <sys/socket.h>
--#if defined(__Userspace_os_DragonFly) || defined(__Userspace_os_FreeBSD) || defined(__Userspace_os_Linux) || defined(__Userspace_os_NetBSD) || defined(__Userspace_os_OpenBSD) || defined(ANDROID)
- #include <pthread.h>
--#endif
- typedef pthread_mutex_t userland_mutex_t;
- typedef pthread_cond_t userland_cond_t;
- typedef pthread_t userland_thread_t;
---- ./netwerk.orig/sctp/src/netinet/sctp_pcb.c
-+++ ./netwerk/sctp/src/netinet/sctp_pcb.c
-@@ -30,6 +30,9 @@
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-+#define _BSD_SOURCE /* for IPPORT_RESERVED */
-+#include <netdb.h>
-+
- #ifdef __FreeBSD__
- #include <sys/cdefs.h>
- __FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.c 258765 2013-11-30 12:51:19Z tuexen $");
---- ./netwerk.orig/sctp/src/user_queue.h
-+++ ./netwerk/sctp/src/user_queue.h
-@@ -31,7 +31,7 @@
- #ifndef _USER_QUEUE_H_
- #define _USER_QUEUE_H_
-
--#if !defined (__Userspace_os_Windows)
-+#if defined(__Userspace_os_FreeBSD)
- #include <sys/cdefs.h>
- #endif
- /*
diff --git a/main/xulrunner/fix-toolkit.patch b/main/xulrunner/fix-toolkit.patch
deleted file mode 100644
index 0303223652..0000000000
--- a/main/xulrunner/fix-toolkit.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc mozilla-release/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc
---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2014-03-15 05:19:36.000000000 +0000
-+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2014-04-17 10:24:33.793431933 +0000
-@@ -45,6 +45,7 @@
- #include <sys/mman.h>
- #include <sys/stat.h>
- #include <unistd.h>
-+#include <libgen.h>
-
- #include <iostream>
- #include <set>
-diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc
---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc 2014-03-15 05:19:36.000000000 +0000
-+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc 2014-04-17 10:24:33.793431933 +0000
-@@ -41,6 +41,10 @@
-
- #include "common/using_std_string.h"
-
-+#ifndef N_UNDF
-+#define N_UNDF 0
-+#endif
-+
- using std::vector;
-
- namespace google_breakpad {
-diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h
---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-03-15 05:19:36.000000000 +0000
-+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-04-17 10:24:33.793431933 +0000
-@@ -53,9 +53,10 @@
- #include <config.h>
- #endif
-
--#ifdef HAVE_A_OUT_H
-+#if 0
- #include <a.out.h>
- #endif
-+
- #ifdef HAVE_MACH_O_NLIST_H
- #include <mach-o/nlist.h>
- #endif
-diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h mozilla-release/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h
---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2014-03-15 05:19:37.000000000 +0000
-+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2014-04-17 10:24:33.793431933 +0000
-@@ -2813,7 +2813,7 @@
- LSS_INLINE _syscall6(void*, mmap, void*, s,
- size_t, l, int, p,
- int, f, int, d,
-- __off64_t, o)
-+ off_t, o)
-
- LSS_INLINE _syscall4(int, newfstatat, int, d,
- const char *, p,
-diff -ru mozilla-release/toolkit.orig/mozapps/update/common/updatedefines.h mozilla-release/toolkit/mozapps/update/common/updatedefines.h
---- mozilla-release/toolkit.orig/mozapps/update/common/updatedefines.h 2014-03-15 05:19:37.000000000 +0000
-+++ mozilla-release/toolkit/mozapps/update/common/updatedefines.h 2014-04-17 10:24:33.793431933 +0000
-@@ -105,7 +105,7 @@
-
- #ifdef SOLARIS
- # include <sys/stat.h>
--#else
-+#elif !defined(__linux__) || defined(__GLIBC__)
- # include <fts.h>
- #endif
- # include <dirent.h>
-diff -ru mozilla-release/toolkit.orig/mozapps/update/updater/updater.cpp mozilla-release/toolkit/mozapps/update/updater/updater.cpp
---- mozilla-release/toolkit.orig/mozapps/update/updater/updater.cpp 2014-03-15 05:19:37.000000000 +0000
-+++ mozilla-release/toolkit/mozapps/update/updater/updater.cpp 2014-04-17 10:24:33.796765327 +0000
-@@ -3432,6 +3432,7 @@
- int add_dir_entries(const NS_tchar *dirpath, ActionList *list)
- {
- int rv = OK;
-+#if !defined(__linux__) || defined(__GLIBC__)
- FTS *ftsdir;
- FTSENT *ftsdirEntry;
- NS_tchar searchpath[MAXPATHLEN];
-@@ -3534,6 +3535,7 @@
- }
-
- fts_close(ftsdir);
-+#endif
-
- return rv;
- }
-diff -ru mozilla-release/toolkit.orig/xre/nsSigHandlers.cpp mozilla-release/toolkit/xre/nsSigHandlers.cpp
---- mozilla-release/toolkit.orig/xre/nsSigHandlers.cpp 2014-03-15 05:19:38.000000000 +0000
-+++ mozilla-release/toolkit/xre/nsSigHandlers.cpp 2014-04-17 10:24:33.796765327 +0000
-@@ -15,6 +15,7 @@
- #include <signal.h>
- #include <stdio.h>
- #include <string.h>
-+#include <sys/types.h>
- #include "prthread.h"
- #include "plstr.h"
- #include "prenv.h"
-@@ -152,7 +153,7 @@
- status->__invalid = status->__denorm = status->__zdiv = status->__ovrfl = status->__undfl =
- status->__precis = status->__stkflt = status->__errsumm = 0;
-
-- __uint32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr;
-+ u_int32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr;
- *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */
- *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */
- #endif
-@@ -172,13 +173,13 @@
- *sw &= ~FPU_STATUS_FLAGS;
- #endif
- #if defined(__amd64__)
-- __uint16_t *cw = &uc->uc_mcontext.fpregs->cwd;
-+ u_int16_t *cw = &uc->uc_mcontext.fpregs->cwd;
- *cw |= FPU_EXCEPTION_MASK;
-
-- __uint16_t *sw = &uc->uc_mcontext.fpregs->swd;
-+ u_int16_t *sw = &uc->uc_mcontext.fpregs->swd;
- *sw &= ~FPU_STATUS_FLAGS;
-
-- __uint32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr;
-+ u_int32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr;
- *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */
- *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */
- #endif
-@@ -187,24 +188,24 @@
- ucontext_t *uc = (ucontext_t *)context;
-
- #if defined(__i386)
-- uint32_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[0];
-+ u_int32_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[0];
- *cw |= FPU_EXCEPTION_MASK;
-
-- uint32_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[1];
-+ u_int32_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[1];
- *sw &= ~FPU_STATUS_FLAGS;
-
- /* address of the instruction that caused the exception */
-- uint32_t *ip = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[3];
-+ u_int32_t *ip = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[3];
- uc->uc_mcontext.gregs[REG_PC] = *ip;
- #endif
- #if defined(__amd64__)
-- uint16_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.cw;
-+ u_int16_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.cw;
- *cw |= FPU_EXCEPTION_MASK;
-
-- uint16_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.sw;
-+ u_int16_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.sw;
- *sw &= ~FPU_STATUS_FLAGS;
-
-- uint32_t *mxcsr = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.mxcsr;
-+ u_int32_t *mxcsr = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.mxcsr;
- *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */
- *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */
- #endif
diff --git a/main/xulrunner/fix-tools.patch b/main/xulrunner/fix-tools.patch
deleted file mode 100644
index b0a6d4fbcc..0000000000
--- a/main/xulrunner/fix-tools.patch
+++ /dev/null
@@ -1,49 +0,0 @@
---- mozilla-release.orig/tools/profiler/local_debug_info_symbolizer.cc
-+++ mozilla-release/tools/profiler/local_debug_info_symbolizer.cc
-@@ -3,6 +3,7 @@
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-+#include <sys/types.h>
- #include "PlatformMacros.h"
- #include "nsAutoPtr.h"
-
---- mozilla-release.orig/tools/profiler/platform-linux.cc
-+++ mozilla-release/tools/profiler/platform-linux.cc
-@@ -84,7 +84,7 @@
-
- #define SIGNAL_SAVE_PROFILE SIGUSR2
-
--#if defined(__GLIBC__)
-+#if 1
- // glibc doesn't implement gettid(2).
- #include <sys/syscall.h>
- pid_t gettid()
---- mozilla-release.orig/tools/profiler/platform.h
-+++ mozilla-release/tools/profiler/platform.h
-@@ -29,6 +29,8 @@
- #ifndef TOOLS_PLATFORM_H_
- #define TOOLS_PLATFORM_H_
-
-+#include <sys/types.h>
-+
- #ifdef ANDROID
- #include <android/log.h>
- #else
---- mozilla-release.orig/tools/profiler/LulElf.cpp
-+++ mozilla-release/tools/profiler/LulElf.cpp
-@@ -579,10 +579,10 @@
- // Return the non-directory portion of FILENAME: the portion after the
- // last slash, or the whole filename if there are no slashes.
- string BaseFileName(const string &filename) {
-- // Lots of copies! basename's behavior is less than ideal.
-- char *c_filename = strdup(filename.c_str());
-- string base = basename(c_filename);
-- free(c_filename);
-+ // basename's behavior is less than ideal so avoid it
-+ const char *c_filename = filename.c_str();
-+ const char *p = strrchr(c_filename, '/');
-+ string base = p ? p+1 : c_filename;
- return base;
- }
-
diff --git a/main/xulrunner/getchar.patch b/main/xulrunner/getchar.patch
deleted file mode 100644
index 981206b971..0000000000
--- a/main/xulrunner/getchar.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- ./media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp.orig
-+++ ./media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp
-@@ -21,6 +21,11 @@
- #include "constants.hpp"
- #include <cstring>
-
-+/* prevent the getchar macro from stdio to take preference over the local var */
-+#if defined(__UCLIBC__)
-+#undef getchar
-+#endif
-+
- namespace boost {
- namespace detail {
- //This only works on unsigned data types
diff --git a/main/xulrunner/mozconfig b/main/xulrunner/mozconfig
deleted file mode 100644
index 24d10221da..0000000000
--- a/main/xulrunner/mozconfig
+++ /dev/null
@@ -1,46 +0,0 @@
-. $topsrcdir/xulrunner/config/mozconfig
-
-ac_add_options --prefix=/usr
-ac_add_options --libdir=/usr/lib
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-zlib
-ac_add_options --with-system-bz2
-ac_add_options --with-system-libevent
-ac_add_options --with-system-libvpx
-ac_add_options --with-system-pixman
-ac_add_options --with-system-png
-ac_add_options --enable-system-pixman
-ac_add_options --enable-system-hunspell
-ac_add_options --enable-system-sqlite
-ac_add_options --enable-system-cairo
-ac_add_options --enable-system-ffi
-ac_add_options --with-pthreads
-ac_add_options --enable-strip
-ac_add_options --disable-tests
-ac_add_options --disable-mochitest
-ac_add_options --disable-installer
-ac_add_options --disable-debug
-ac_add_options --enable-optimize
-ac_add_options --enable-default-toolkit=cairo-gtk2
-ac_add_options --enable-pango
-ac_add_options --enable-svg
-ac_add_options --enable-canvas
-ac_add_options --disable-javaxpcom
-ac_add_options --enable-safe-browsing
-ac_add_options --enable-startup-notification
-ac_add_options --enable-extensions=default
-ac_add_options --disable-elf-hack
-ac_add_options --enable-gio
-ac_add_options --enable-gstreamer=1.0
-ac_add_options --with-system-icu
-ac_add_options --disable-pulseaudio
-ac_add_options --disable-jemalloc
-ac_add_options --disable-crashreporter
-
-export BUILD_OFFICIAL=1
-export MOZILLA_OFFICIAL=1
-
-mk_add_options BUILD_OFFICIAL=1
-mk_add_options MOZILLA_OFFICIAL=1
diff --git a/main/xulrunner/mozilla-build-arm.patch b/main/xulrunner/mozilla-build-arm.patch
deleted file mode 100644
index dcf2f6d8a4..0000000000
--- a/main/xulrunner/mozilla-build-arm.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./gfx/ycbcr/moz.build.orig 2014-04-03 13:50:38.990296661 +0000
-+++ ./gfx/ycbcr/moz.build 2014-04-03 13:52:26.878268547 +0000
-@@ -59,7 +59,7 @@
- 'yuv_row_other.cpp',
- ]
-
--if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']:
-+if CONFIG['HAVE_ARM_NEON']:
- SOURCES += [
- 'yuv_row_arm.s',
- ]
diff --git a/main/xulrunner/stab.h b/main/xulrunner/stab.h
deleted file mode 100644
index 6f70af3989..0000000000
--- a/main/xulrunner/stab.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* $OpenBSD: stab.h,v 1.3 2003/06/02 19:34:12 millert Exp $ */
-/* $NetBSD: stab.h,v 1.4 1994/10/26 00:56:25 cgd Exp $ */
-
-/*-
- * Copyright (c) 1991 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)stab.h 5.2 (Berkeley) 4/4/91
- */
-
-#ifndef _STAB_H_
-#define _STAB_H_
-
-/*
- * The following are symbols used by various debuggers and by the Pascal
- * compiler. Each of them must have one (or more) of the bits defined by
- * the N_STAB mask set.
- */
-
-#define N_GSYM 0x20 /* global symbol */
-#define N_FNAME 0x22 /* F77 function name */
-#define N_FUN 0x24 /* procedure name */
-#define N_STSYM 0x26 /* data segment variable */
-#define N_LCSYM 0x28 /* bss segment variable */
-#define N_MAIN 0x2a /* main function name */
-#define N_PC 0x30 /* global Pascal symbol */
-#define N_RSYM 0x40 /* register variable */
-#define N_SLINE 0x44 /* text segment line number */
-#define N_DSLINE 0x46 /* data segment line number */
-#define N_BSLINE 0x48 /* bss segment line number */
-#define N_SSYM 0x60 /* structure/union element */
-#define N_SO 0x64 /* main source file name */
-#define N_LSYM 0x80 /* stack variable */
-#define N_BINCL 0x82 /* include file beginning */
-#define N_SOL 0x84 /* included source file name */
-#define N_PSYM 0xa0 /* parameter variable */
-#define N_EINCL 0xa2 /* include file end */
-#define N_ENTRY 0xa4 /* alternate entry point */
-#define N_LBRAC 0xc0 /* left bracket */
-#define N_EXCL 0xc2 /* deleted include file */
-#define N_RBRAC 0xe0 /* right bracket */
-#define N_BCOMM 0xe2 /* begin common */
-#define N_ECOMM 0xe4 /* end common */
-#define N_ECOML 0xe8 /* end common (local name) */
-#define N_LENG 0xfe /* length of preceding entry */
-
-#endif /* !_STAB_H_ */
diff --git a/main/xulrunner/stat.patch b/main/xulrunner/stat.patch
deleted file mode 100644
index ed7dc007e2..0000000000
--- a/main/xulrunner/stat.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- ./dom/system/OSFileConstants.cpp.orig 2013-04-17 06:17:29.798371189 +0000
-+++ ./dom/system/OSFileConstants.cpp 2013-04-17 06:30:30.032285977 +0000
-@@ -509,6 +509,11 @@
- INT_CONSTANT(_STAT_VER),
- #endif // defined(_STAT_VER)
-
-+ // glibc's stat/lstat/fstat are macros while uclibc's are not
-+#if defined(__GLIBC__) && !defined(__UCLIBC__)
-+ { "OSFILE_STAT_MACROS", INT_TO_JSVAL(1) },
-+#endif // defined(stat)
-+
- PROP_END
- };
-
---- ./toolkit/components/osfile/modules/osfile_unix_back.jsm.orig 2014-04-03 13:08:26.686409787 +0000
-+++ ./toolkit/components/osfile/modules/osfile_unix_back.jsm 2014-04-03 13:34:14.101716259 +0000
-@@ -512,7 +512,7 @@
- /*path*/ Type.fd,
- /*buf*/ Type.stat.out_ptr
- );
-- } else if (Const._STAT_VER != undefined) {
-+ } else if (Const.OSFILE_STAT_MACROS != undefined) {
- const ver = Const._STAT_VER;
- let xstat_name, lxstat_name, fxstat_name;
- if (OS.Constants.Sys.Name == "SunOS") {