From ad6980f0500d745c8861c29c4015039743620bad Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 26 Sep 2013 11:33:07 +0200 Subject: faq/libpthread_plugin -> faq/libpthread_dlopen. --- faq/libpthread_dlopen.mdwn | 25 +++++++++++++++++++++++++ faq/libpthread_plugin.mdwn | 21 --------------------- open_issues/libpthread_dlopen.mdwn | 4 +++- 3 files changed, 28 insertions(+), 22 deletions(-) create mode 100644 faq/libpthread_dlopen.mdwn delete mode 100644 faq/libpthread_plugin.mdwn diff --git a/faq/libpthread_dlopen.mdwn b/faq/libpthread_dlopen.mdwn new file mode 100644 index 00000000..5fb77767 --- /dev/null +++ b/faq/libpthread_dlopen.mdwn @@ -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] diff --git a/faq/libpthread_plugin.mdwn b/faq/libpthread_plugin.mdwn deleted file mode 100644 index bcbe9571..00000000 --- a/faq/libpthread_plugin.mdwn +++ /dev/null @@ -1,21 +0,0 @@ -[[!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="Getting Assertion `__pthread_threads' failed."]] - -Some applications don't link against libpthread, but load plugins which do link against libpthread. This means unexpectedly switch from mono-thread to multi-thread. This is not supported yet, thus the following error: - - ./pthread/../sysdeps/generic/pt-mutex-timedlock.c:70: __pthread_mutex_timedlock_internal: Assertion `__pthread_threads' failed. - -This can be worked around by using - -export LD_PRELOAD=/lib/i386-gnu/libpthread.so.0.3 diff --git a/open_issues/libpthread_dlopen.mdwn b/open_issues/libpthread_dlopen.mdwn index 05a07ef2..47121972 100644 --- a/open_issues/libpthread_dlopen.mdwn +++ b/open_issues/libpthread_dlopen.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2011, 2012 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2011, 2012, 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 @@ -12,6 +13,7 @@ License|/fdl]]."]]"""]] [[!toc]] +# [[FAQ entry|faq/libpthread_dlopen]] # IRC, freenode, #hurd, 2010-01-24 -- cgit v1.2.3