summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authortonio <tonio>2005-11-04 21:21:02 +0000
committertonio <tonio>2005-11-04 21:21:02 +0000
commitfd6b5caeec531738bc00e15824ee3bcb828f098f (patch)
treeebcd09323cf7d0eaa913d0de1fcf08888ed24bd6 /lang
parent216ef2cb187ee14502d3e8221e4d1ffd9b450d1c (diff)
downloadpkgsrc-fd6b5caeec531738bc00e15824ee3bcb828f098f.tar.gz
Integrate patches from kaffe'cvs to fix thread signal handling on netbsd
Thanks guilhem_at_kaffe.org for those patches (Now kaffe passes 100% of the regression tests under netbsd -current (at least i386)) bump PKGREVISION
Diffstat (limited to 'lang')
-rw-r--r--lang/kaffe/Makefile4
-rw-r--r--lang/kaffe/distinfo6
-rw-r--r--lang/kaffe/patches/patch-aa22
-rw-r--r--lang/kaffe/patches/patch-ae14
-rw-r--r--lang/kaffe/patches/patch-ag51
5 files changed, 91 insertions, 6 deletions
diff --git a/lang/kaffe/Makefile b/lang/kaffe/Makefile
index a1726ef4dde..0b10175d7d6 100644
--- a/lang/kaffe/Makefile
+++ b/lang/kaffe/Makefile
@@ -1,8 +1,10 @@
-# $NetBSD: Makefile,v 1.65 2005/10/29 17:37:20 tonio Exp $
+# $NetBSD: Makefile,v 1.66 2005/11/04 21:21:02 tonio Exp $
#
.include "Makefile.common"
+PKGREVISION= 1
+
CONFLICTS+= kaffe-nox11-[0-9]*
JAVA_WRAPPERS= appletviewer jar java javac javadoc javah javakey \
diff --git a/lang/kaffe/distinfo b/lang/kaffe/distinfo
index 0a16aa17b55..9cbfbd07509 100644
--- a/lang/kaffe/distinfo
+++ b/lang/kaffe/distinfo
@@ -1,10 +1,12 @@
-$NetBSD: distinfo,v 1.16 2005/10/15 21:49:53 tonio Exp $
+$NetBSD: distinfo,v 1.17 2005/11/04 21:21:02 tonio Exp $
SHA1 (kaffe-1.1.6.tar.gz) = 8987c3a596db89ddc793013eaf0fab5cf8730128
RMD160 (kaffe-1.1.6.tar.gz) = 9fd1177a43923346f9a21e4c0e89015ae42c4dfa
Size (kaffe-1.1.6.tar.gz) = 10779887 bytes
-SHA1 (patch-aa) = 24f3720fded5a786bd2c4af354433ab19298ff7f
+SHA1 (patch-aa) = 9a042663db270d706bb983ce3da7297fe016a458
SHA1 (patch-ab) = e2ba7816d3b2c9bf850a4ad9aadec5d306a8115e
SHA1 (patch-ac) = 287fa93128361897ea0fc1bc305004b336609c88
SHA1 (patch-ad) = d952245f70a61459e527cd846b76dede1df226e4
+SHA1 (patch-ae) = fac9c2e3e6c711d05f9ddb9f3109c46895f2e835
SHA1 (patch-af) = c170e9bb8c559db660ba2d6e7af716c29b981235
+SHA1 (patch-ag) = ee05e2356c118f048a6a712147b6ccff82a9478a
diff --git a/lang/kaffe/patches/patch-aa b/lang/kaffe/patches/patch-aa
index d901bf376bd..c8ab3c15647 100644
--- a/lang/kaffe/patches/patch-aa
+++ b/lang/kaffe/patches/patch-aa
@@ -1,6 +1,6 @@
-$NetBSD: patch-aa,v 1.14 2005/10/11 10:00:15 tonio Exp $
+$NetBSD: patch-aa,v 1.15 2005/11/04 21:21:02 tonio Exp $
---- configure.orig 2005-09-19 05:08:29.000000000 +0200
+--- configure.orig 2005-09-20 02:33:57.000000000 +0200
+++ configure
@@ -490,7 +490,6 @@ ac_includes_default="\
#endif"
@@ -24,7 +24,23 @@ $NetBSD: patch-aa,v 1.14 2005/10/11 10:00:15 tonio Exp $
-@@ -51688,7 +51687,6 @@ CLASSPATH_INCLUDES="-I\$(top_srcdir)/lib
+@@ -25084,6 +25083,15 @@ echo "$as_me: error: Missing library lib
+
+ VMLIBS="$VM_LIBS $PTHREAD_LIBS"
+ CPPFLAGS="$CPPFLAGS -D_REENTRANT"
++
++ if test "x$Khost_os" = "xnetbsd1"; then
++
++cat >>confdefs.h <<\_ACEOF
++#define KAFFE_BUGGY_NETBSD_SIGWAIT 1
++_ACEOF
++
++ fi
++
+ else
+ CPPFLAGS="$CPPFLAGS -DBR_PTHREADS=0"
+ fi
+@@ -51688,7 +51696,6 @@ CLASSPATH_INCLUDES="-I\$(top_srcdir)/lib
diff --git a/lang/kaffe/patches/patch-ae b/lang/kaffe/patches/patch-ae
new file mode 100644
index 00000000000..5c44e018e3c
--- /dev/null
+++ b/lang/kaffe/patches/patch-ae
@@ -0,0 +1,14 @@
+$NetBSD: patch-ae,v 1.5 2005/11/04 21:21:02 tonio Exp $
+
+--- config/config.h.in.orig 2005-09-20 02:31:32.000000000 +0200
++++ config/config.h.in
+@@ -747,6 +747,9 @@
+ /* additional directories to search for native jni libraries */
+ #undef JNI_LIBRARY_PATH
+
++/* Defined on NetBSD because sigwait needs the handle not to be registered */
++#undef KAFFE_BUGGY_NETBSD_SIGWAIT
++
+ /* Full path to the directory containing kaffe's locales */
+ #undef KAFFE_LOCALEDIR
+
diff --git a/lang/kaffe/patches/patch-ag b/lang/kaffe/patches/patch-ag
new file mode 100644
index 00000000000..c7e16237f9d
--- /dev/null
+++ b/lang/kaffe/patches/patch-ag
@@ -0,0 +1,51 @@
+$NetBSD: patch-ag,v 1.5 2005/11/04 21:21:02 tonio Exp $
+
+--- kaffe/kaffevm/systems/unix-pthreads/thread-impl.c.orig 2005-08-20 14:31:02.000000000 +0200
++++ kaffe/kaffevm/systems/unix-pthreads/thread-impl.c
+@@ -415,7 +415,7 @@ tInitSignalHandlers (void)
+ saResume.sa_flags = 0; /* Note that we do not want restart here. */
+ saResume.sa_handler = resume_signal_handler;
+ saResume.sa_mask = saSuspend.sa_mask;
+-#ifndef KAFFE_BOEHM_GC
++#if !defined(KAFFE_BOEHM_GC) && !defined(KAFFE_BUGGY_NETBSD_SIGWAIT)
+ sigaction( sigResume, &saResume, NULL);
+ #endif
+
+@@ -1275,7 +1275,12 @@ void KaffePThread_WaitForResume(int rele
+
+ /* freeze until we get a subsequent sigResume */
+ while( cur->suspendState == SS_SUSPENDED )
+- sigwait( &suspendSet, &s);
++ {
++ sigwait( &suspendSet, &s);
++ /* Post something even if it is not the right thread. */
++ if (cur->suspendState == SS_SUSPENDED)
++ repsem_post(&critSem);
++ }
+
+ DBG( JTHREADDETAIL, dprintf("sigwait return: %p\n", cur));
+
+@@ -1497,13 +1502,17 @@ jthread_unsuspendall (void)
+ if ((t->blockState & (BS_SYSCALL|BS_CV|BS_CV_TO|BS_MUTEX)) == 0)
+ {
+ DBG (JTHREADDETAIL, dprintf(" sending sigResume\n"));
+- status = pthread_kill( t->tid, sigResume);
+- if ( status )
++ do
+ {
+- DBG( JTHREAD, dprintf("error sending RESUME signal to %p: %d\n", t, status));
+- }
+- /* ack wait workaround, see jthread_suspendall remarks */
+- repsem_wait( &critSem);
++ status = pthread_kill( t->tid, sigResume);
++ if ( status )
++ {
++ DBG( JTHREAD, dprintf("error sending RESUME signal to %p: %d\n", t, status));
++ }
++ /* ack wait workaround, see jthread_suspendall remarks */
++ repsem_wait( &critSem);
++ }
++ while (t->suspendState == SS_PENDING_RESUME);
+ }
+ else
+ {