[kaffe] CVS kaffe (robilad): fixes for pthreads under Cygwin
Kaffe CVS
cvs-commits at kaffe.org
Wed Aug 8 18:25:59 PDT 2007
PatchSet 7528
Date: 2007/08/09 01:24:56
Author: robilad
Branch: HEAD
Tag: (none)
Log:
fixes for pthreads under Cygwin
Members:
ChangeLog:1.5026->1.5027
kaffe/kaffevm/systems/unix-pthreads/signal.c:1.28->1.29
kaffe/kaffevm/systems/unix-pthreads/thread-impl.c:1.96->1.97
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.5026 kaffe/ChangeLog:1.5027
--- kaffe/ChangeLog:1.5026 Wed Aug 8 23:38:48 2007
+++ kaffe/ChangeLog Thu Aug 9 01:24:56 2007
@@ -1,3 +1,17 @@
+2007-08-09 Kazuyuki Shudo <2006 at shudo.net>
+
+ This brings pthreads failures on Cygwin down to 11 for intrp,
+ and 24 for jit.
+
+ * kaffe/kaffevm/unix-pthreads/signal.c
+ (KaffePThread_detectStackBoundaries) Work around Cygwin
+ getpagesize issue. [STACK_GROWS_UP] Add pagesize to
+ guessPointer.
+
+ * kaffe/kaffevm/unix-pthreads/thread-impl.c
+ (tInitSignals) Treat Cygwin like OLD_LINUXTHREADS.
+ [__CYGWIN__] Set sigInterrupt to SIGCONT.
+
2007-08-09 Kiyo Inaba <inaba at src.ricoh.co.jp>
* config/arm/netbsd1/md.h: Added signal handler macro.
Index: kaffe/kaffe/kaffevm/systems/unix-pthreads/signal.c
diff -u kaffe/kaffe/kaffevm/systems/unix-pthreads/signal.c:1.28 kaffe/kaffe/kaffevm/systems/unix-pthreads/signal.c:1.29
--- kaffe/kaffe/kaffevm/systems/unix-pthreads/signal.c:1.28 Tue Aug 7 01:44:53 2007
+++ kaffe/kaffe/kaffevm/systems/unix-pthreads/signal.c Thu Aug 9 01:24:56 2007
@@ -461,7 +461,12 @@
if (JTHREAD_SETJMP(outOfLoop) == 0)
{
+#ifdef __CYGWIN__
+ /* getpagesize() of Cygwin 1.5.19-4 returns 0x10000, not 0x1000 */
+ uintp pageSize = 0x1000;
+#else
uintp pageSize = getpagesize();
+#endif
guessPointer = (char *)((uintp)(&jtid) & ~(pageSize-1));
@@ -474,6 +479,11 @@
#endif
kaffeNoopFunc(*guessPointer);
}
+ }
+ else {
+#if defined(STACK_GROWS_UP)
+ guessPointer += pageSize;
+#endif
}
/* Here we have detected one the boundary of the stack.
Index: kaffe/kaffe/kaffevm/systems/unix-pthreads/thread-impl.c
diff -u kaffe/kaffe/kaffevm/systems/unix-pthreads/thread-impl.c:1.96 kaffe/kaffe/kaffevm/systems/unix-pthreads/thread-impl.c:1.97
--- kaffe/kaffe/kaffevm/systems/unix-pthreads/thread-impl.c:1.96 Tue Aug 7 01:44:53 2007
+++ kaffe/kaffe/kaffevm/systems/unix-pthreads/thread-impl.c Thu Aug 9 01:24:56 2007
@@ -451,7 +451,7 @@
if (SIGRTMAX - SIGRTMIN < 7)
{
-#if defined(OLD_LINUXTHREADS)
+#if defined(OLD_LINUXTHREADS) && !defined(__CYGWIN__)
sigSuspend = SIGURG;
sigResume = SIGTSTP;
sigDump = SIGXCPU;
@@ -474,8 +474,7 @@
#endif
- if (SIGRTMIN < 0)
- sigInterrupt = SIGCONT;
+ sigInterrupt = SIGCONT;
}
else
{
More information about the kaffe
mailing list