Anreas Hauser, with Simon ‘corecode’ Schubert, has managed to create a Xorg 6.8.1 port and package that does not the weak thread library problem. ‘pkg_add -r’ the package file he mentions in his post, and you’ll be set.
I don’t quite understand enough about the threading system to understand what is going on here. I thought FreeBSD had threads. Is this not true, or is DFly different enough in implementation that we have to do something different?
FreeBSD 4 and DragonFly have two versions of the runtime library, libc and libc_r. The former is single threaded, the latter allows multiple pure userland threads.
Now consider a library like Qt or GTK which wants to support both single- and multi-threaded programs. For this, it has to contain locking instructions and therefore link against something providing this functions. In the Good Old Days, this was libXThrStub. This library was linking with each X11 program requiring such a multi-threaded library, which did not itself link against libc_r.
To avoid this hassle, the stubs has been moved into libc directly, meaning that you can link certain multi-threaded libraries and programs directly against libc, but the function always return a failure code.
DragonFly BSD Digest