From 5d5f61912d4352e58d58fe8cf5fe1dd58b04b9e5 Mon Sep 17 00:00:00 2001
From: BogDan Vatra <bogdan@kde.org>
Date: Tue, 26 Mar 2013 19:33:38 +0200
Subject: [PATCH] Fix compile on Android

Change-Id: Ide8d4a50169de13e9743f3b2304af2b23c3ce694
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
---
 .../JavaScriptCore/assembler/MacroAssemblerARM.cpp | 14 ++++++++++++--
 .../javascriptcore/JavaScriptCore/wtf/Platform.h   |  9 ++++++---
 .../javascriptcore/JavaScriptCore/wtf/Threading.h  |  4 ++--
 3 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/assembler/MacroAssemblerARM.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/assembler/MacroAssemblerARM.cpp
index b5b20fa0..efdd7773 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/assembler/MacroAssemblerARM.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/assembler/MacroAssemblerARM.cpp
@@ -36,7 +36,18 @@
 #include <fcntl.h>
 #include <unistd.h>
 #include <elf.h>
-#include <asm/hwcap.h>
+#if !OS(ANDROID) && !PLATFORM(QT)
+# include <asm/hwcap.h>
+# else
+typedef struct
+{
+    uint32_t a_type;
+    union
+    {
+        uint32_t a_val;
+    } a_un;
+} Elf32_auxv_t;
+# endif
 #endif
 
 namespace JSC {
@@ -56,7 +67,6 @@ static bool isVFPPresent()
         close(fd);
     }
 #endif
-
     return false;
 }
 
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
index 17c06bf4..d4838063 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
@@ -452,6 +452,7 @@
     || defined(__unix)      \
     || defined(__unix__)
 #define WTF_OS_UNIX 1
+
 #endif
 
 /* Operating environments */
@@ -643,16 +644,18 @@
 #endif
 
 #if PLATFORM(ANDROID)
+#if !PLATFORM(QT)
 #define WTF_USE_PTHREADS 1
+#define ENABLE_MAC_JAVA_BRIDGE 1
+#define ENABLE_JAVASCRIPT_DEBUGGER 0
+#endif /* !PLATFORM(QT) */
 #define WTF_PLATFORM_SGL 1
 #define USE_SYSTEM_MALLOC 1
-#define ENABLE_MAC_JAVA_BRIDGE 1
 #define LOG_DISABLED 1
 /* Prevents Webkit from drawing the caret in textfields and textareas
    This prevents unnecessary invals. */
 #define ENABLE_TEXT_CARET 1
-#define ENABLE_JAVASCRIPT_DEBUGGER 0
-#endif
+#endif /* PLATFORM(ANDROID) */
 
 #if PLATFORM(WIN)
 #define WTF_USE_WININET 1
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
index 8b76c0f5..d1944a57 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
@@ -73,7 +73,7 @@
 #include <windows.h>
 #elif OS(DARWIN)
 #include <libkern/OSAtomic.h>
-#elif OS(ANDROID)
+#elif OS(ANDROID) && !PLATFORM(QT)
 #include <cutils/atomic.h>
 #elif OS(QNX)
 #include <atomic.h>
@@ -236,7 +236,7 @@ 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)
+#elif OS(ANDROID) && !PLATFORM(QT)
 
 inline int atomicIncrement(int volatile* addend) { return android_atomic_inc(addend); }
 inline int atomicDecrement(int volatile* addend) { return android_atomic_dec(addend); }
-- 
GitLab