loading multi threaded library into executable enabled for single thread

Barry Andrews titanandrews at gmail.com
Thu Sep 11 19:35:50 UTC 2008

Hi All,

I have a multi-threaded library that is linked against libpthread. When I
load this lib into a tclsh process on FreeBSD, I get this error, "Recurse on
private mutex". and crash. I understand that I can have this issue when the
executable is not linked against libpthread but one of the loaded libs is.
Basically, it thinks it's in single threaded mode.

I can get around this issue, by doing export LD_PRELOAD=libpthread.so.1,
however this is a hack at best. Is there any other way to get around this
issue other than linking tclsh with libpthread ( because that's not an

I thought of re-building libpthread with the offending code commented out,
and that did work, however I ran into other issues, so I think it's not a
very "safe" option.

My feeling is that this is a FreeBSD issue because it's not happening on
other platforms, Linux, Solaris.

Any suggestions are welcome. Many thanks!


More information about the freebsd-hackers mailing list