Make this build again on SunOS.
The change to src/3rdparty/webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp is untested.
This commit is contained in:
parent
7d9e29bcd9
commit
8f16206eb4
5 changed files with 125 additions and 4 deletions
|
@ -1,4 +1,4 @@
|
|||
$NetBSD: distinfo,v 1.69 2012/01/23 08:16:36 joerg Exp $
|
||||
$NetBSD: distinfo,v 1.70 2012/02/16 20:42:46 hans Exp $
|
||||
|
||||
SHA1 (qt-everywhere-opensource-src-4.8.0.tar.gz) = 2ba35adca8fb9c66a58eca61a15b21df6213f22e
|
||||
RMD160 (qt-everywhere-opensource-src-4.8.0.tar.gz) = 7506dce7743215481fd9fe56920b8a47f07a112e
|
||||
|
@ -39,7 +39,10 @@ SHA1 (patch-cg) = 2519fe525237167f10dffb9294c861f4d7063f31
|
|||
SHA1 (patch-ci) = bc85adf9ea17be24f92897b960517941f5b28ab7
|
||||
SHA1 (patch-cj) = 4f6d3546e3bc04ca2034af21645fc6f27bc82eef
|
||||
SHA1 (patch-qmake_generators_makefile.cpp) = 54184d85fd06c86a62640add6c8334ca323ea863
|
||||
SHA1 (patch-src_3rdparty_webkit_Source_JavaScriptCore_jit_JITStubs.cpp) = 11059a233c4b272084a85c077a8118e863aad25b
|
||||
SHA1 (patch-src_3rdparty_webkit_Source_JavaScriptCore_heap_MachineStackMarker.cpp) = 5b5ed1512adcde18ef86044986f36d0bb87e1666
|
||||
SHA1 (patch-src_3rdparty_webkit_Source_JavaScriptCore_jit_JITStubs.cpp) = bfe38ea1e26fef02dd78e40c95c000cb0cc32a04
|
||||
SHA1 (patch-src_3rdparty_webkit_Source_JavaScriptCore_wtf_MathExtras.h) = 384bfccabae5e3a4ea6dea39b912a941133c5632
|
||||
SHA1 (patch-src_3rdparty_webkit_Source_JavaScriptCore_wtf_Threading.h) = 10bfe59d623db5047e2a4c678ee79a217ea8b7ec
|
||||
SHA1 (patch-src_3rdparty_webkit_Source_WebCore_features.pri) = d0053dd2732604908fcec294b2a833aeb6d93f40
|
||||
SHA1 (patch-src_3rdparty_webkit_Source_WebCore_platform_DefaultLocalizationStrategy.cpp) = 9e4a68fe02204e5fda7272f988d991992dfd281e
|
||||
SHA1 (patch-src_3rdparty_webkit_Source_WebCore_platform_graphics_MediaPlayer.cpp) = f9a1f71b4607c5f542c059873cf5735fad9ff3a1
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
$NetBSD: patch-src_3rdparty_webkit_Source_JavaScriptCore_heap_MachineStackMarker.cpp,v 1.1 2012/02/16 20:42:46 hans Exp $
|
||||
|
||||
--- src/3rdparty/webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp.orig 2011-12-08 06:06:02.000000000 +0100
|
||||
+++ src/3rdparty/webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2012-01-15 02:26:20.184685861 +0100
|
||||
@@ -20,6 +20,9 @@
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
+#if OS(SOLARIS)
|
||||
+#undef _FILE_OFFSET_BITS
|
||||
+#endif
|
||||
#include "MachineStackMarker.h"
|
||||
|
||||
#include "ConservativeRoots.h"
|
||||
@@ -60,6 +63,10 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#if OS(SOLARIS)
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/stat.h>
|
||||
+#include <fcntl.h>
|
||||
+#include <procfs.h>
|
||||
#include <thread.h>
|
||||
#else
|
||||
#include <pthread.h>
|
||||
@@ -331,6 +338,7 @@ typedef pthread_attr_t PlatformThreadReg
|
||||
#error Need a thread register struct for this platform
|
||||
#endif
|
||||
|
||||
+#if !OS(SOLARIS)
|
||||
static size_t getPlatformThreadRegisters(const PlatformThread& platformThread, PlatformThreadRegisters& regs)
|
||||
{
|
||||
#if OS(DARWIN)
|
||||
@@ -381,6 +389,7 @@ static size_t getPlatformThreadRegisters
|
||||
#error Need a way to get thread registers on this platform
|
||||
#endif
|
||||
}
|
||||
+#endif
|
||||
|
||||
static inline void* otherThreadStackPointer(const PlatformThreadRegisters& regs)
|
||||
{
|
||||
@@ -431,6 +440,7 @@ static inline void* otherThreadStackPoin
|
||||
#endif
|
||||
}
|
||||
|
||||
+#if !OS(SOLARIS)
|
||||
static void freePlatformThreadRegisters(PlatformThreadRegisters& regs)
|
||||
{
|
||||
#if USE(PTHREADS) && !OS(WINDOWS) && !OS(DARWIN)
|
||||
@@ -439,24 +449,40 @@ static void freePlatformThreadRegisters(
|
||||
UNUSED_PARAM(regs);
|
||||
#endif
|
||||
}
|
||||
+#endif
|
||||
|
||||
void MachineThreads::gatherFromOtherThread(ConservativeRoots& conservativeRoots, Thread* thread)
|
||||
{
|
||||
suspendThread(thread->platformThread);
|
||||
|
||||
+#if OS(SOLARIS)
|
||||
+ struct lwpstatus lwp;
|
||||
+ char procfile[64];
|
||||
+ int fd;
|
||||
+ snprintf(procfile, 64, "/proc/self/lwp/%u/lwpstatus", thread->platformThread);
|
||||
+ fd = open(procfile, O_RDONLY, 0);
|
||||
+ if (fd == -1) {
|
||||
+ fprintf(stderr, "%s: %s\n", procfile, strerror(errno));
|
||||
+ abort();
|
||||
+ }
|
||||
+ pread(fd, &lwp, sizeof(lwp), 0);
|
||||
+ close(fd);
|
||||
+ void* stackPointer = (void*)lwp.pr_reg[REG_SP];
|
||||
+#else
|
||||
PlatformThreadRegisters regs;
|
||||
size_t regSize = getPlatformThreadRegisters(thread->platformThread, regs);
|
||||
|
||||
conservativeRoots.add(static_cast<void*>(®s), static_cast<void*>(reinterpret_cast<char*>(®s) + regSize));
|
||||
|
||||
void* stackPointer = otherThreadStackPointer(regs);
|
||||
+
|
||||
+ freePlatformThreadRegisters(regs);
|
||||
+#endif
|
||||
void* stackBase = thread->stackBase;
|
||||
swapIfBackwards(stackPointer, stackBase);
|
||||
conservativeRoots.add(stackPointer, stackBase);
|
||||
|
||||
resumeThread(thread->platformThread);
|
||||
-
|
||||
- freePlatformThreadRegisters(regs);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -1,4 +1,4 @@
|
|||
$NetBSD: patch-src_3rdparty_webkit_Source_JavaScriptCore_jit_JITStubs.cpp,v 1.1 2012/01/16 09:00:27 adam Exp $
|
||||
$NetBSD: patch-src_3rdparty_webkit_Source_JavaScriptCore_jit_JITStubs.cpp,v 1.2 2012/02/16 20:42:46 hans Exp $
|
||||
|
||||
Fix building on NetBSD/amd64 with GCC.
|
||||
|
||||
|
@ -9,7 +9,7 @@ Fix building on NetBSD/amd64 with GCC.
|
|||
#endif
|
||||
|
||||
-#if (OS(LINUX) || OS(FREEBSD)) && CPU(X86_64)
|
||||
+#if (OS(LINUX) || OS(FREEBSD) || OS(NETBSD)) && CPU(X86_64)
|
||||
+#if (OS(LINUX) || OS(FREEBSD) || OS(NETBSD) || OS(SOLARIS)) && CPU(X86_64) || (OS(SOLARIS) && CPU(X86))
|
||||
#define SYMBOL_STRING_RELOCATION(name) #name "@plt"
|
||||
#elif OS(DARWIN) || (CPU(X86_64) && COMPILER(MINGW) && !GCC_VERSION_AT_LEAST(4, 5, 0))
|
||||
#define SYMBOL_STRING_RELOCATION(name) "_" #name
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
$NetBSD: patch-src_3rdparty_webkit_Source_JavaScriptCore_wtf_MathExtras.h,v 1.1 2012/02/16 20:42:46 hans Exp $
|
||||
|
||||
--- src/3rdparty/webkit/Source/JavaScriptCore/wtf/MathExtras.h.orig 2011-12-08 06:06:02.000000000 +0100
|
||||
+++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/MathExtras.h 2012-01-15 01:09:37.169459335 +0100
|
||||
@@ -248,7 +248,7 @@ inline int clampToInteger(unsigned value
|
||||
return static_cast<int>(std::min(value, static_cast<unsigned>(std::numeric_limits<int>::max())));
|
||||
}
|
||||
|
||||
-#if !COMPILER(MSVC) && !(COMPILER(RVCT) && PLATFORM(BREWMP)) && !OS(SOLARIS) && !OS(SYMBIAN)
|
||||
+#if !COMPILER(MSVC) && !(COMPILER(RVCT) && PLATFORM(BREWMP)) && !(OS(SOLARIS) && COMPILER(GCC) && (GCC_VERSION < 40600)) && !OS(SYMBIAN)
|
||||
using std::isfinite;
|
||||
using std::isinf;
|
||||
using std::isnan;
|
|
@ -0,0 +1,13 @@
|
|||
$NetBSD: patch-src_3rdparty_webkit_Source_JavaScriptCore_wtf_Threading.h,v 1.1 2012/02/16 20:42:46 hans Exp $
|
||||
|
||||
--- src/3rdparty/webkit/Source/JavaScriptCore/wtf/Threading.h.orig 2011-12-08 06:06:02.000000000 +0100
|
||||
+++ src/3rdparty/webkit/Source/JavaScriptCore/wtf/Threading.h 2012-01-15 02:04:00.160127709 +0100
|
||||
@@ -113,6 +113,8 @@ using WTF::createThread;
|
||||
using WTF::currentThread;
|
||||
using WTF::detachThread;
|
||||
using WTF::waitForThreadCompletion;
|
||||
+#if !OS(SOLARIS)
|
||||
using WTF::yield;
|
||||
+#endif
|
||||
|
||||
#endif // Threading_h
|
Loading…
Reference in a new issue