summaryrefslogtreecommitdiff
path: root/devel/linuxthreads/files/README.FreeBSD
diff options
context:
space:
mode:
Diffstat (limited to 'devel/linuxthreads/files/README.FreeBSD')
-rw-r--r--devel/linuxthreads/files/README.FreeBSD13
1 files changed, 13 insertions, 0 deletions
diff --git a/devel/linuxthreads/files/README.FreeBSD b/devel/linuxthreads/files/README.FreeBSD
index 134d2e59fbc7..13aa5b376e46 100644
--- a/devel/linuxthreads/files/README.FreeBSD
+++ b/devel/linuxthreads/files/README.FreeBSD
@@ -65,3 +65,16 @@ set at 20 + 16 * MAXUSERS.
implemented as such. While linux threads has the cancel functions
implemented, deferred cancellation will not work as required by POSIX
1003.1c-1995, since the co-operation needed from libc is not complete.
+
+ c) The mutex wrapper functions only provide standard linuxthreads mutexes
+ (i.e. non-recursive mutexes). This might lead to deadlocks if libc
+ depends on recursive mutexes.
+
+4) Be aware of the following libgcc issue:
+
+ __register_frame_info() and __get_eh_info() from libgcc.a are linked
+ into shared libraries that use exceptions, e.g. libstdc++. Those
+ functions are not compatible with linuxthreads due to pthread_mutex_t
+ and pthread_once_t having different sizes and static initializers.
+ Linking the shared linuxthreads library before any such library causes
+ the liblgcc_r.a version of those functions to be used.