On 04/02/17 21:06, Imre Vadasz wrote: > commit 16fb9086b36e7c7d81241bbd6502634e40346c7b > Author: Imre Vadász <[email protected]> > Date: Sun Apr 2 13:50:15 2017 +0200 > > libc/libpthread: Inject threadsafe locking callbacks for rtld. > > * Make rtld thread-safe. Add lib/libthread_xu/thread/thr_rtld.c > to the build and use it to inject pthread based locking callbacks > for rtld. > > * In rtld_lock.c, do the thread_mask_clear(lock->mask); after releasing > the actual lock, to avoid deadlocks when rtld is called recursively > from the pthread locking callbacks. > XXX An alternative solution for this issue would be, to flag the > libpthread dynamic library as bind_now to avoid the recursive rtld > calls. > > Summary of changes: > lib/libthread_xu/Makefile | 1 + > lib/libthread_xu/thread/Makefile.inc | 1 + > lib/libthread_xu/thread/thr_kern.c | 3 +-- > lib/libthread_xu/thread/thr_rtld.c | 8 +++++--- > libexec/rtld-elf/rtld_lock.c | 2 +- > 5 files changed, 9 insertions(+), 6 deletions(-) > > http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/16fb9086b36e7c7d81241bbd6502634e40346c7b >
Awesome! This commit fixes bug #2975 [1] !!! Regards, Michael [1]: http://bugs.dragonflybsd.org/issues/2975
