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