faq/libpthread_plugin -> faq/libpthread_dlopen.
[hurd-web.git] / faq / libpthread_dlopen.mdwn
diff --git a/faq/libpthread_dlopen.mdwn b/faq/libpthread_dlopen.mdwn
new file mode 100644 (file)
index 0000000..5fb7776
--- /dev/null
@@ -0,0 +1,25 @@
+[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag faq/open_issues]]
+
+[[!meta title="Assertion `__pthread_threads' failed"]]
+
+Some applications don't themselves link against libpthread, but then load
+plugins which do link against libpthread.  This means internally switching from
+single-threading to multi-threading, which is [[not yet
+supported|open_issues/libpthread_dlopen]] by our [[/libpthread]], and results
+in errors such as:
+
+    ./pthread/../sysdeps/generic/pt-mutex-timedlock.c:70: __pthread_mutex_timedlock_internal: Assertion `__pthread_threads' failed.
+
+This can be worked around by explicitly pre-loading libpthread, for example:
+
+    $ LD_PRELOAD=/lib/i386-gnu/libpthread.so.0.3 [application]