summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/assembler/MacroAssemblerARM.cpp13
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h10
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h17
-rw-r--r--src/script/script.pro11
4 files changed, 38 insertions, 13 deletions
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/assembler/MacroAssemblerARM.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/assembler/MacroAssemblerARM.cpp
index b5b20fa..70c8c51 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/assembler/MacroAssemblerARM.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/assembler/MacroAssemblerARM.cpp
@@ -36,14 +36,16 @@
#include <fcntl.h>
#include <unistd.h>
#include <elf.h>
+#if !OS(ANDROID)
#include <asm/hwcap.h>
#endif
+#endif
namespace JSC {
static bool isVFPPresent()
{
-#if OS(LINUX)
+#if OS(LINUX) && !OS(ANDROID)
int fd = open("/proc/self/auxv", O_RDONLY);
if (fd > 0) {
Elf32_auxv_t aux;
@@ -56,8 +58,15 @@ static bool isVFPPresent()
close(fd);
}
#endif
-
+#if OS(ANDROID)
+# if HAVE_VFP
+ return true;
+# else
return false;
+# endif
+#else
+ return false;
+#endif
}
const bool MacroAssemblerARM::s_isVFPPresent = isVFPPresent();
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
index 17c06bf..6918c5c 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
@@ -450,8 +450,10 @@
|| OS(SYMBIAN) \
|| defined(unix) \
|| defined(__unix) \
- || defined(__unix__)
+ || defined(__unix__) \
+ || defined(ANDROID)
#define WTF_OS_UNIX 1
+
#endif
/* Operating environments */
@@ -642,7 +644,7 @@
#define HAVE_PTHREAD_RWLOCK 1
#endif
-#if PLATFORM(ANDROID)
+#if PLATFORM(ANDROID) && !PLATFORM(QT)
#define WTF_USE_PTHREADS 1
#define WTF_PLATFORM_SGL 1
#define USE_SYSTEM_MALLOC 1
@@ -696,8 +698,10 @@
&& !OS(ANDROID) && !OS(AIX) && !OS(HPUX)
#define HAVE_TM_GMTOFF 1
#define HAVE_TM_ZONE 1
+#ifndef ANDROID
#define HAVE_TIMEGM 1
#endif
+#endif
#if OS(DARWIN)
@@ -774,7 +778,7 @@
#define HAVE_ERRNO_H 1
/* As long as Haiku doesn't have a complete support of locale this will be disabled. */
-#if !OS(HAIKU)
+#if !OS(HAIKU) && !defined(ANDROID)
#define HAVE_LANGINFO_H 1
#endif
#define HAVE_MMAP 1
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
index 8b76c0f..1e18220 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
@@ -73,13 +73,15 @@
#include <windows.h>
#elif OS(DARWIN)
#include <libkern/OSAtomic.h>
-#elif OS(ANDROID)
-#include <cutils/atomic.h>
#elif OS(QNX)
#include <atomic.h>
#elif COMPILER(GCC) && !OS(SYMBIAN)
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2))
+#ifdef ANDROID
+#include <sys/atomics.h>
+#else
#include <ext/atomicity.h>
+#endif
#else
#include <bits/atomicity.h>
#endif
@@ -236,23 +238,22 @@ inline int atomicDecrement(int volatile* addend) { return InterlockedDecrement(r
inline int atomicIncrement(int volatile* addend) { return OSAtomicIncrement32Barrier(const_cast<int*>(addend)); }
inline int atomicDecrement(int volatile* addend) { return OSAtomicDecrement32Barrier(const_cast<int*>(addend)); }
-#elif OS(ANDROID)
-
-inline int atomicIncrement(int volatile* addend) { return android_atomic_inc(addend); }
-inline int atomicDecrement(int volatile* addend) { return android_atomic_dec(addend); }
#elif OS(QNX)
// component functions take and return unsigned
inline int atomicIncrement(int volatile* addend) { return (int) atomic_add_value((unsigned volatile*)addend, 1); }
inline int atomicDecrement(int volatile* addend) { return (int) atomic_sub_value((unsigned volatile*)addend, 1); }
-
#elif COMPILER(GCC) && !CPU(SPARC64) && !OS(SYMBIAN) // sizeof(_Atomic_word) != sizeof(int) on sparc64 gcc
#define WTF_USE_LOCKFREE_THREADSAFESHARED 1
+#ifdef ANDROID
+inline int atomicIncrement(int volatile* addend) { return __atomic_inc(addend); }
+inline int atomicDecrement(int volatile* addend) { return __atomic_dec(addend); }
+#else
inline int atomicIncrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, 1) + 1; }
inline int atomicDecrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, -1) - 1; }
-
+#endif
#endif
class ThreadSafeSharedBase : public Noncopyable {
diff --git a/src/script/script.pro b/src/script/script.pro
index 7891513..9704e68 100644
--- a/src/script/script.pro
+++ b/src/script/script.pro
@@ -92,3 +92,14 @@ integrity {
# WebKit doesn't compile in C++0x mode
*-g++*:QMAKE_CXXFLAGS -= -std=c++0x -std=gnu++0x
CONFIG -= c++11
+
+CONFIG(android) {
+ !CONFIG(x86): DEFINES += arm
+ contains(QMAKE_CFLAGS, -mfpu=vfp): DEFINES += HAVE_VFP
+ !CONFIG(armeabi-v7a):!CONFIG(x86) {
+ QMAKE_CFLAGS_RELEASE -= -mthumb
+ QMAKE_CFLAGS_RELEASE += -marm
+ QMAKE_CXXFLAGS_RELEASE -= -mthumb
+ QMAKE_CXXFLAGS_RELEASE += -marm
+ }
+} \ No newline at end of file