Support building JavaScriptCore with the Bionic C library
authorzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Sep 2017 07:07:45 +0000 (07:07 +0000)
committerzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Sep 2017 07:07:45 +0000 (07:07 +0000)
https://bugs.webkit.org/show_bug.cgi?id=177427

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

When compiling with the Bionic C library, the MachineContext.h header
should enable the same code paths that are enabled for the GNU C library.

The Bionic C library defines the __BIONIC__ macro, but unlike other C
libraries that mimic the GNU one, it doesn't define __GLIBC__. So the
__BIONIC__ macro checks have to match the __GLIBC__ ones.

* runtime/MachineContext.h:
(JSC::MachineContext::stackPointer):
(JSC::MachineContext::framePointer):
(JSC::MachineContext::instructionPointer):
(JSC::MachineContext::argumentPointer<1>):
(JSC::MachineContext::llintInstructionPointer):

Source/WTF:

* wtf/Platform.h: Define HAVE_MACHINE_CONTEXT when __BIONIC__
is defined, i.e. when building with the Bionic C library.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@222495 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/MachineContext.h
Source/WTF/ChangeLog
Source/WTF/wtf/Platform.h

index 9d778f1..2b5cb73 100644 (file)
@@ -1,3 +1,24 @@
+2017-09-26  Zan Dobersek  <zdobersek@igalia.com>
+
+        Support building JavaScriptCore with the Bionic C library
+        https://bugs.webkit.org/show_bug.cgi?id=177427
+
+        Reviewed by Michael Catanzaro.
+
+        When compiling with the Bionic C library, the MachineContext.h header
+        should enable the same code paths that are enabled for the GNU C library.
+
+        The Bionic C library defines the __BIONIC__ macro, but unlike other C
+        libraries that mimic the GNU one, it doesn't define __GLIBC__. So the
+        __BIONIC__ macro checks have to match the __GLIBC__ ones.
+
+        * runtime/MachineContext.h:
+        (JSC::MachineContext::stackPointer):
+        (JSC::MachineContext::framePointer):
+        (JSC::MachineContext::instructionPointer):
+        (JSC::MachineContext::argumentPointer<1>):
+        (JSC::MachineContext::llintInstructionPointer):
+
 2017-09-25  Devin Rousso  <webkit@devinrousso.com>
 
         Web Inspector: move Console.addInspectedNode to DOM.setInspectedNode
index 95080b9..bf0bdc7 100644 (file)
@@ -146,7 +146,7 @@ inline void*& stackPointer(mcontext_t& machineContext)
 #error Unknown Architecture
 #endif
 
-#elif defined(__GLIBC__)
+#elif defined(__GLIBC__) || defined(__BIONIC__)
 
 #if CPU(X86)
     return reinterpret_cast<void*&>((uintptr_t&) machineContext.gregs[REG_ESP]);
@@ -251,7 +251,7 @@ inline void*& framePointer(mcontext_t& machineContext)
 #error Unknown Architecture
 #endif
 
-#elif defined(__GLIBC__)
+#elif defined(__GLIBC__) || defined(__BIONIC__)
 
 // The following sequence depends on glibc's sys/ucontext.h.
 #if CPU(X86)
@@ -354,7 +354,7 @@ inline void*& instructionPointer(mcontext_t& machineContext)
 #error Unknown Architecture
 #endif
 
-#elif defined(__GLIBC__)
+#elif defined(__GLIBC__) || defined(__BIONIC__)
 
 // The following sequence depends on glibc's sys/ucontext.h.
 #if CPU(X86)
@@ -466,7 +466,7 @@ inline void*& argumentPointer<1>(mcontext_t& machineContext)
 #error Unknown Architecture
 #endif
 
-#elif defined(__GLIBC__)
+#elif defined(__GLIBC__) || defined(__BIONIC__)
 
 // The following sequence depends on glibc's sys/ucontext.h.
 #if CPU(X86)
@@ -583,7 +583,7 @@ inline void*& llintInstructionPointer(mcontext_t& machineContext)
 #error Unknown Architecture
 #endif
 
-#elif defined(__GLIBC__)
+#elif defined(__GLIBC__) || defined(__BIONIC__)
 
 // The following sequence depends on glibc's sys/ucontext.h.
 #if CPU(X86)
index 4b0df7c..07d4905 100644 (file)
@@ -1,3 +1,13 @@
+2017-09-26  Zan Dobersek  <zdobersek@igalia.com>
+
+        Support building JavaScriptCore with the Bionic C library
+        https://bugs.webkit.org/show_bug.cgi?id=177427
+
+        Reviewed by Michael Catanzaro.
+
+        * wtf/Platform.h: Define HAVE_MACHINE_CONTEXT when __BIONIC__
+        is defined, i.e. when building with the Bionic C library.
+
 2017-09-23  Said Abou-Hallawa  <sabouhallawa@apple.com>
 
         Images may render partial frames even after loading all the encoded data
index d9c3326..a91524b 100644 (file)
 #define HAVE_CFNETWORK_STORAGE_PARTITIONING 1
 #endif
 
-#if OS(DARWIN) || ((OS(FREEBSD) || defined(__GLIBC__)) && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)))
+#if OS(DARWIN) || ((OS(FREEBSD) || defined(__GLIBC__) || defined(__BIONIC__)) && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)))
 #define HAVE_MACHINE_CONTEXT 1
 #endif