git: libc/libpthread: Inject threadsafe locking callbacks for rtld.
Michael Neumann
mneumann at ntecs.de
Tue Apr 4 00:32:59 PDT 2017
On 04/02/17 21:06, Imre Vadasz wrote:
> commit 16fb9086b36e7c7d81241bbd6502634e40346c7b
> Author: Imre Vadász <imre at vdsz.com>
> 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
More information about the Commits
mailing list