Fails to build in Linux / PowerPC due to different ucontext_t definition
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 31 Mar 2016 21:52:04 +0000 (21:52 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 31 Mar 2016 21:52:04 +0000 (21:52 +0000)
https://bugs.webkit.org/show_bug.cgi?id=156015

Reviewed by Michael Catanzaro.

PPC does not have mcontext_t in ucontext_t::uc_mcontext.
So we take the special way to retrieve mcontext_t in PPC.

* heap/MachineStackMarker.cpp:
(pthreadSignalHandlerSuspendResume):

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

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/heap/MachineStackMarker.cpp

index c097179..1a2514c 100644 (file)
@@ -1,3 +1,16 @@
+2016-03-31  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Fails to build in Linux / PowerPC due to different ucontext_t definition
+        https://bugs.webkit.org/show_bug.cgi?id=156015
+
+        Reviewed by Michael Catanzaro.
+
+        PPC does not have mcontext_t in ucontext_t::uc_mcontext.
+        So we take the special way to retrieve mcontext_t in PPC.
+
+        * heap/MachineStackMarker.cpp:
+        (pthreadSignalHandlerSuspendResume):
+
 2016-03-31  Benjamin Poulain  <benjamin@webkit.org>
 
         [JSC][x86] Add the indexed forms of floating point addition and multiplication
index 1df2874..e386f08 100644 (file)
@@ -86,7 +86,11 @@ static void pthreadSignalHandlerSuspendResume(int, siginfo_t*, void* ucontext)
     }
 
     ucontext_t* userContext = static_cast<ucontext_t*>(ucontext);
+#if CPU(PPC)
+    thread->suspendedMachineContext = *userContext->uc_mcontext.uc_regs;
+#else
     thread->suspendedMachineContext = userContext->uc_mcontext;
+#endif
 
     // Allow suspend caller to see that this thread is suspended.
     // sem_post is async-signal-safe function. It means that we can call this from a signal handler.