git: libc/libpthread: Inject threadsafe locking callbacks for rtld.
Max Herrgård
herrgard at gmail.com
Tue Apr 4 11:17:21 PDT 2017
4 apr. 2017 kl. 00:32 skrev Michael Neumann <mneumann at ntecs.de>:
>
>
>> 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
Sweet! Quite annoying that darktable didnt work properly :)
Cheers,
Max
More information about the Commits
mailing list