summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--devel/libpthread-stubs/Makefile7
-rw-r--r--devel/libpthread-stubs/files/patch-stubs.c28
2 files changed, 29 insertions, 6 deletions
diff --git a/devel/libpthread-stubs/Makefile b/devel/libpthread-stubs/Makefile
index 4eee8bcc6..95a0b70ae 100644
--- a/devel/libpthread-stubs/Makefile
+++ b/devel/libpthread-stubs/Makefile
@@ -7,7 +7,7 @@
PORTNAME= libpthread-stubs
PORTVERSION= 0.3
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= devel
MASTER_SITES= http://xcb.freedesktop.org/dist/
@@ -25,11 +25,6 @@ GNU_CONFIGURE= yes
.if ${OSVERSION} < 700000
CONFIGURE_ENV+= LDFLAGS=-lpthread
-.else
-# XXX This is a hack to fix a problem where pthread_condattr_{init,destroy}
-# are not found leading to crashes.
-# When the stubs are added to libc, this hack can be removed.
-CONFIGURE_ENV+= LDFLAGS=${PTHREAD_LIBS}
.endif
.include <bsd.port.post.mk>
diff --git a/devel/libpthread-stubs/files/patch-stubs.c b/devel/libpthread-stubs/files/patch-stubs.c
new file mode 100644
index 000000000..4290eb2e6
--- /dev/null
+++ b/devel/libpthread-stubs/files/patch-stubs.c
@@ -0,0 +1,28 @@
+XXX This is a big hack as we cannot define pthread_condattr_{init,destroy}
+here, or we will conflict with the weak symbols in libthr. The way our linker
+works, the weak symbols will be resolved here, and pthread_condattr functions
+will not work even in threaded applications.
+
+I am working to get these symbols added to libc, but in the meantime, this
+is needed to avoid crashes in threaded applications which make use of
+pthread_condattr*.
+--- stubs.c.orig 2009-11-27 17:15:30.000000000 -0500
++++ stubs.c 2009-11-27 17:16:29.000000000 -0500
+@@ -91,7 +91,7 @@ int pthread_cond_destroy() __attribute__
+ # endif
+ #endif
+
+-#ifndef HAVE_PTHREAD_CONDATTR_INIT
++#if 0
+ #define NEED_ZERO_STUB
+ # ifdef SUPPORT_ATTRIBUTE_ALIAS
+ int pthread_condattr_init() __attribute__ ((weak, alias ("__pthread_zero_stub")));
+@@ -100,7 +100,7 @@ int pthread_condattr_init() __attribute_
+ # endif
+ #endif
+
+-#ifndef HAVE_PTHREAD_CONDATTR_DESTROY
++#if 0
+ #define NEED_ZERO_STUB
+ # ifdef SUPPORT_ATTRIBUTE_ALIAS
+ int pthread_condattr_destroy() __attribute__ ((weak, alias ("__pthread_zero_stub")));