From 20632ca1d6f848330251e4ebe02d6d56fc33207e Mon Sep 17 00:00:00 2001 From: seb Date: Wed, 31 Aug 2005 14:46:59 +0000 Subject: Add patch from Tcl cvs repository. See: http://sourceforge.net/tracker/index.php?func=detail&aid=1222872&group_id=10894&atid=110894 http://cvs.sourceforge.net/viewcvs.py/tcl/tcl/unix/tclUnixNotfy.c?r1=1.11.2.12&r2=1.11.2.13&only_with_tag=core-8-4-branch This has the added benefit of improving the tcl interpreter stability on NetBSD/sparc64 2.0_STABLE: no more SIGBUS, due to a LP64 type problem with a pthread_join() argument, even if the self-test is still shaggy. Approved by jwise@. --- lang/tcl/distinfo | 3 ++- lang/tcl/patches/patch-ak | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 lang/tcl/patches/patch-ak diff --git a/lang/tcl/distinfo b/lang/tcl/distinfo index f9ae66ad90f..068d97ea430 100644 --- a/lang/tcl/distinfo +++ b/lang/tcl/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.33 2005/08/02 22:37:18 seb Exp $ +$NetBSD: distinfo,v 1.34 2005/08/31 14:46:59 seb Exp $ SHA1 (tcl8.4.11-src.tar.gz) = 4580adcbdcb7d09fd9a8ae8fbe61c592a56bfa9e RMD160 (tcl8.4.11-src.tar.gz) = 933dda739859af170c31cef855409f861ed597cb @@ -13,3 +13,4 @@ SHA1 (patch-ag) = 0a11bfc878d43b15f6444923fac18b4876b62398 SHA1 (patch-ah) = 0aaa349fcf9ce736e1f7d3dad377ee355f549ecb SHA1 (patch-ai) = ef8939597e759a95ca869f93e251df76d9c660f9 SHA1 (patch-aj) = 3e6844bce3e9c15100dd53ef4c8fb715ffebf1c9 +SHA1 (patch-ak) = 6d4ef7d1aa6709257add6f4cbc6b837f08004c55 diff --git a/lang/tcl/patches/patch-ak b/lang/tcl/patches/patch-ak new file mode 100644 index 00000000000..92d16060142 --- /dev/null +++ b/lang/tcl/patches/patch-ak @@ -0,0 +1,31 @@ +$NetBSD: patch-ak,v 1.1 2005/08/31 14:46:59 seb Exp $ + +--- tclUnixNotfy.c.orig 2005-06-07 10:26:58.000000000 +0000 ++++ tclUnixNotfy.c +@@ -275,7 +275,7 @@ Tcl_FinalizeNotifier(clientData) + */ + + if (notifierCount == 0) { +- int result, dummy; ++ int result; + if (triggerPipe < 0) { + panic("Tcl_FinalizeNotifier: notifier pipe not initialized"); + } +@@ -288,13 +288,14 @@ Tcl_FinalizeNotifier(clientData) + * not just close the pipe and check for EOF in the notifier + * thread because if a background child process was created with + * exec, select() would not register the EOF on the pipe until the +- * child processes had terminated. [Bug: 4139] ++ * child processes had terminated. [Bug: 4139][Bug: 1222872] + */ + write(triggerPipe, "q", 1); + close(triggerPipe); +- ++ while(triggerPipe >= 0) { + Tcl_ConditionWait(¬ifierCV, ¬ifierMutex, NULL); +- result = Tcl_JoinThread(notifierThread, &dummy); ++ } ++ result = Tcl_JoinThread(notifierThread, NULL); + if (result) { + Tcl_Panic("Tcl_FinalizeNotifier: unable to join notifier thread"); + } -- cgit v1.2.3