I'm looking for some WebKit users to test the following diff with WebKit + their respective browser and let me know if there are any issues with the JavaScript support. The update of WebKit does not mention the reason for this workaround in the commit message or the patch itself so it would be nice to see if this works without the workaround since we had pthread_attr_getstack() even with uthreads.
Index: Makefile =================================================================== RCS file: /home/cvs/ports/www/webkit/Makefile,v retrieving revision 1.62 diff -u -p -r1.62 Makefile --- Makefile 13 Mar 2012 07:50:05 -0000 1.62 +++ Makefile 16 Mar 2012 15:58:30 -0000 @@ -7,7 +7,7 @@ COMMENT = open source web browser engine V = 1.6.3 DISTNAME = webkit-${V} EPOCH = 0 -REVISION = 0 +REVISION = 1 CATEGORIES = www EXTRACT_SUFX= .tar.xz Index: patches/patch-Source_JavaScriptCore_heap_MachineStackMarker_cpp =================================================================== RCS file: /home/cvs/ports/www/webkit/patches/patch-Source_JavaScriptCore_heap_MachineStackMarker_cpp,v retrieving revision 1.1 diff -u -p -r1.1 patch-Source_JavaScriptCore_heap_MachineStackMarker_cpp --- patches/patch-Source_JavaScriptCore_heap_MachineStackMarker_cpp 13 Oct 2011 06:52:49 -0000 1.1 +++ patches/patch-Source_JavaScriptCore_heap_MachineStackMarker_cpp 15 Mar 2012 07:55:59 -0000 @@ -12,18 +12,3 @@ $OpenBSD: patch-Source_JavaScriptCore_he #else // FIXME: this function is non-portable; other POSIX systems may have different np alternatives pthread_getattr_np(platformThread, ®s); -@@ -431,7 +433,14 @@ static inline void* otherThreadStackPointer(const Plat - #elif USE(PTHREADS) - void* stackBase = 0; - size_t stackSize = 0; -+# if defined(__OpenBSD__) -+ stack_t ss; -+ int rc = pthread_stackseg_np(pthread_self(), &ss); -+ stackBase = (void*)((size_t) ss.ss_sp - ss.ss_size); -+ stackSize = ss.ss_size; -+#else - int rc = pthread_attr_getstack(®s, &stackBase, &stackSize); -+#endif - (void)rc; // FIXME: Deal with error code somehow? Seems fatal. - ASSERT(stackBase); - return static_cast<char*>(stackBase) + stackSize; -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.