summaryrefslogtreecommitdiff
path: root/devel/pth/patches
diff options
context:
space:
mode:
authorskrll <skrll@pkgsrc.org>2002-08-01 13:36:08 +0000
committerskrll <skrll@pkgsrc.org>2002-08-01 13:36:08 +0000
commit459f021fc921a8073ff729e7f0d249bd81bf2906 (patch)
treeec7973d73439932733ebbb61113c41842877c918 /devel/pth/patches
parente763010bd897159e8999fcf27b17a3f65add9296 (diff)
downloadpkgsrc-459f021fc921a8073ff729e7f0d249bd81bf2906.tar.gz
Apply a fix to the initialization routine so that make test works with
--enable-syscall-hard. Allow -O2 optimisation of i386 - the reason this was removed is somewhat bogus. Bump PKGREVISION.
Diffstat (limited to 'devel/pth/patches')
-rw-r--r--devel/pth/patches/patch-ag82
1 files changed, 82 insertions, 0 deletions
diff --git a/devel/pth/patches/patch-ag b/devel/pth/patches/patch-ag
new file mode 100644
index 00000000000..acce8bca0c7
--- /dev/null
+++ b/devel/pth/patches/patch-ag
@@ -0,0 +1,82 @@
+$NetBSD: patch-ag,v 1.1 2002/08/01 13:36:09 skrll Exp $
+
+--- pth_lib.c.orig Sun Jan 27 11:03:40 2002
++++ pth_lib.c
+@@ -37,25 +37,21 @@ long pth_version(void)
+
+ /* implicit initialization support */
+ intern int pth_initialized = FALSE;
++intern int pth_explicit_initialize = FALSE;
++
+ #if cpp
+ #define pth_implicit_init() \
+ if (!pth_initialized) \
+- pth_init();
++ pth__init();
+ #endif
+
+-/* initialize the package */
+-int pth_init(void)
++intern int pth__init(void)
+ {
+ pth_attr_t t_attr;
+
+- /* support for implicit initialization calls
+- and to prevent multiple explict initialization, too */
+- if (pth_initialized)
+- return_errno(FALSE, EPERM);
+- else
+- pth_initialized = TRUE;
++ pth_initialized = TRUE;
+
+- pth_debug1("pth_init: enter");
++ pth_debug1("pth__init: enter");
+
+ /* initialize the scheduler */
+ pth_scheduler_init();
+@@ -105,10 +101,28 @@ int pth_init(void)
+ pth_mctx_switch(&pth_main->mctx, &pth_sched->mctx);
+
+ /* came back, so let's go home... */
+- pth_debug1("pth_init: leave");
++ pth_debug1("pth__init: leave");
+ return TRUE;
+ }
+
++/* initialize the package */
++int pth_init(void)
++{
++ int rv;
++
++ /* support for implicit initialization calls
++ and to prevent multiple explict initialization, too */
++ if (pth_initialized) {
++ /* if we've already explicitly initialized then error */
++ if (pth_explicit_initialize)
++ return_errno(FALSE, EPERM);
++ } else {
++ rv = pth__init();
++ pth_explicit_initialize = TRUE;
++ return rv;
++ }
++}
++
+ /* kill the package internals */
+ int pth_kill(void)
+ {
+@@ -118,6 +132,7 @@ int pth_kill(void)
+ pth_thread_cleanup(pth_main);
+ pth_scheduler_kill();
+ pth_initialized = FALSE;
++ pth_explicit_initialize = FALSE;
+ pth_tcb_free(pth_sched);
+ pth_tcb_free(pth_main);
+ pth_debug1("pth_kill: leave");
+@@ -182,6 +197,7 @@ static void pth_spawn_trampoline(void)
+ /* no return! */
+ abort();
+ }
++
+ pth_t pth_spawn(pth_attr_t attr, void *(*func)(void *), void *arg)
+ {
+ pth_t t;