summaryrefslogtreecommitdiffstats
path: root/mozglue/build
diff options
context:
space:
mode:
Diffstat (limited to 'mozglue/build')
-rw-r--r--mozglue/build/BionicGlue.cpp140
-rw-r--r--mozglue/build/arm.cpp4
-rw-r--r--mozglue/build/arm.h2
-rw-r--r--mozglue/build/moz.build53
4 files changed, 16 insertions, 183 deletions
diff --git a/mozglue/build/BionicGlue.cpp b/mozglue/build/BionicGlue.cpp
deleted file mode 100644
index 9277f1e76..000000000
--- a/mozglue/build/BionicGlue.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * 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 <pthread.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-#include <android/log.h>
-#include <sys/syscall.h>
-
-#include "mozilla/Alignment.h"
-
-#include <vector>
-
-#define NS_EXPORT __attribute__ ((visibility("default")))
-
-#if ANDROID_VERSION < 17 || defined(MOZ_WIDGET_ANDROID)
-/* Android doesn't have pthread_atfork(), so we need to use our own. */
-struct AtForkFuncs {
- void (*prepare)(void);
- void (*parent)(void);
- void (*child)(void);
-};
-
-/* jemalloc's initialization calls pthread_atfork. When pthread_atfork (see
- * further below) stores the corresponding data, it's going to allocate memory,
- * which will loop back to jemalloc's initialization, leading to a dead-lock.
- * So, for that specific vector, we use a special allocator that returns a
- * static buffer for small sizes, and force the initial vector capacity to
- * a size enough to store one atfork function table. */
-template <typename T>
-struct SpecialAllocator: public std::allocator<T>
-{
- SpecialAllocator(): bufUsed(false) {}
-
- inline typename std::allocator<T>::pointer allocate(typename std::allocator<T>::size_type n, const void * = 0) {
- if (!bufUsed && n == 1) {
- bufUsed = true;
- return buf.addr();
- }
- return reinterpret_cast<T *>(::operator new(sizeof(T) * n));
- }
-
- inline void deallocate(typename std::allocator<T>::pointer p, typename std::allocator<T>::size_type n) {
- if (p == buf.addr())
- bufUsed = false;
- else
- ::operator delete(p);
- }
-
- template<typename U>
- struct rebind {
- typedef SpecialAllocator<U> other;
- };
-
-private:
- mozilla::AlignedStorage2<T> buf;
- bool bufUsed;
-};
-
-static std::vector<AtForkFuncs, SpecialAllocator<AtForkFuncs> > atfork;
-#endif
-
-#define cpuacct_add(x)
-
-#if ANDROID_VERSION < 17 || defined(MOZ_WIDGET_ANDROID)
-extern "C" NS_EXPORT int
-pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void))
-{
- AtForkFuncs funcs;
- funcs.prepare = prepare;
- funcs.parent = parent;
- funcs.child = child;
- if (!atfork.capacity())
- atfork.reserve(1);
- atfork.push_back(funcs);
- return 0;
-}
-
-extern "C" NS_EXPORT pid_t __fork(void);
-
-extern "C" NS_EXPORT pid_t
-fork(void)
-{
- pid_t pid;
- for (auto it = atfork.rbegin();
- it < atfork.rend(); ++it)
- if (it->prepare)
- it->prepare();
-
- switch ((pid = syscall(__NR_clone, SIGCHLD, NULL, NULL, NULL, NULL))) {
- case 0:
- cpuacct_add(getuid());
- for (auto it = atfork.begin();
- it < atfork.end(); ++it)
- if (it->child)
- it->child();
- break;
- default:
- for (auto it = atfork.begin();
- it < atfork.end(); ++it)
- if (it->parent)
- it->parent();
- }
- return pid;
-}
-#endif
-
-extern "C" NS_EXPORT int
-raise(int sig)
-{
- // Bug 741272: Bionic incorrectly uses kill(), which signals the
- // process, and thus could signal another thread (and let this one
- // return "successfully" from raising a fatal signal).
- //
- // Bug 943170: POSIX specifies pthread_kill(pthread_self(), sig) as
- // equivalent to raise(sig), but Bionic also has a bug with these
- // functions, where a forked child will kill its parent instead.
-
- extern pid_t gettid(void);
- return syscall(__NR_tgkill, getpid(), gettid(), sig);
-}
-
-/* Flash plugin uses symbols that are not present in Android >= 4.4 */
-namespace android {
- namespace VectorImpl {
- NS_EXPORT void reservedVectorImpl1(void) { }
- NS_EXPORT void reservedVectorImpl2(void) { }
- NS_EXPORT void reservedVectorImpl3(void) { }
- NS_EXPORT void reservedVectorImpl4(void) { }
- NS_EXPORT void reservedVectorImpl5(void) { }
- NS_EXPORT void reservedVectorImpl6(void) { }
- NS_EXPORT void reservedVectorImpl7(void) { }
- NS_EXPORT void reservedVectorImpl8(void) { }
- }
-}
-
diff --git a/mozglue/build/arm.cpp b/mozglue/build/arm.cpp
index 74b856a8f..e11985e4d 100644
--- a/mozglue/build/arm.cpp
+++ b/mozglue/build/arm.cpp
@@ -13,7 +13,7 @@
// we don't compile one of these detection methods. The detection code here is
// based on the CPU detection in libtheora.
-# if defined(__linux__) || defined(ANDROID)
+# if defined(__linux__)
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
@@ -125,7 +125,7 @@ check_neon(void)
}
# endif
-# endif // defined(__linux__) || defined(ANDROID)
+# endif // defined(__linux__)
namespace mozilla {
namespace arm_private {
diff --git a/mozglue/build/arm.h b/mozglue/build/arm.h
index e3379f67b..4ab03d6ec 100644
--- a/mozglue/build/arm.h
+++ b/mozglue/build/arm.h
@@ -76,7 +76,7 @@
# endif
// Currently we only have CPU detection for Linux via /proc/cpuinfo
-# if defined(__linux__) || defined(ANDROID)
+# if defined(__linux__)
# define MOZILLA_ARM_HAVE_CPUID_DETECTION 1
# endif
diff --git a/mozglue/build/moz.build b/mozglue/build/moz.build
index b97bddcdc..5632bc06e 100644
--- a/mozglue/build/moz.build
+++ b/mozglue/build/moz.build
@@ -4,31 +4,22 @@
# 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/.
-# Build mozglue as a shared lib on Windows, OSX and Android.
+# Build mozglue as a shared lib on Windows, OSX.
# If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in
-if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android'):
+if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin'):
SharedLibrary('mozglue')
else:
Library('mozglue')
SDK_LIBRARY = True
-if CONFIG['OS_TARGET'] == 'Android':
- SOURCES += [
- 'BionicGlue.cpp',
- ]
-
if CONFIG['MOZ_ASAN']:
- SOURCES += [
- 'AsanOptions.cpp',
- ]
+ SOURCES += ['AsanOptions.cpp']
if CONFIG['OS_TARGET'] == 'WINNT':
DEFFILE = 'mozglue.def'
# We'll break the DLL blocklist if we immediately load user32.dll
- DELAYLOAD_DLLS += [
- 'user32.dll',
- ]
+ DELAYLOAD_DLLS += ['user32.dll']
if not CONFIG['JS_STANDALONE']:
@@ -38,21 +29,13 @@ if not CONFIG['JS_STANDALONE']:
else:
# Temporary, until bug 662814 lands
NO_VISIBILITY_FLAGS = True
- SOURCES += [
- 'dummy.cpp',
- ]
+ SOURCES += ['dummy.cpp']
if CONFIG['OS_TARGET'] == 'WINNT':
- LOCAL_INCLUDES += [
- '/memory/build',
- ]
- SOURCES += [
- 'WindowsDllBlocklist.cpp',
- ]
+ LOCAL_INCLUDES += ['/memory/build']
+ SOURCES += ['WindowsDllBlocklist.cpp']
DISABLE_STL_WRAPPING = True
- OS_LIBS += [
- 'version',
- ]
+ OS_LIBS += ['version']
EXPORTS.mozilla += [
'arm.h',
@@ -62,28 +45,18 @@ if not CONFIG['JS_STANDALONE']:
]
if CONFIG['CPU_ARCH'].startswith('x86'):
- SOURCES += [
- 'SSE.cpp',
- ]
+ SOURCES += ['SSE.cpp']
if CONFIG['CPU_ARCH'] == 'arm':
- SOURCES += [
- 'arm.cpp',
- ]
+ SOURCES += ['arm.cpp']
if CONFIG['CPU_ARCH'].startswith('mips'):
- SOURCES += [
- 'mips.cpp',
- ]
+ SOURCES += ['mips.cpp']
if CONFIG['MOZ_LINKER']:
- USE_LIBS += [
- 'zlib',
- ]
+ USE_LIBS += ['zlib']
-USE_LIBS += [
- 'mfbt',
-]
+USE_LIBS += ['mfbt']
DEFINES['IMPL_MFBT'] = True
LIBRARY_DEFINES['MOZ_HAS_MOZGLUE'] = True