diff options
Diffstat (limited to 'src')
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 |