On Fri, Mar 22, 2013 at 12:08:31PM +0900, Joerg Sonnenberger wrote: > On Thu, Mar 21, 2013 at 12:49:12PM -0400, Christos Zoulas wrote: > > Module Name: src > > Committed By: christos > > Date: Thu Mar 21 16:49:12 UTC 2013 > > > > Modified Files: > > src/lib/libc/include: reentrant.h > > src/lib/libc/thread-stub: thread-stub.c > > src/lib/libpthread: Makefile pthread.c pthread_cancelstub.c > > pthread_cond.c pthread_int.h pthread_misc.c pthread_mutex.c > > pthread_once.c pthread_rwlock.c pthread_specific.c pthread_tsd.c > > > > Log Message: > > - Allow libpthread to be dlopened again, by providing libc stubs to > > libpthread. > > - Fail if the dlopened libpthread does pthread_create(). From manu@ > > - Discussed at length in the mailing lists; approved by core@ > > - This was chosen as the least intrusive patch that will provide > > the necessary functionality. > > XXX: pullup to 6 > > This is wrong and unnecessary as pointed out on the mailing lists. Why > are technical objections silently ignored now? Especially if they add > overhead without any gain and make the error case more mysterious.
Does it even work? On the face of it pthread__init() will be called by dlopen(). So __uselibcstub will get set to zero. I also suspect thatthe pthread__errorfunc() calls rely on pthread__diagnostic betin set - by pthread__init(). I think pthread_init() needs to be looking at some value that libc set before calling main. David -- David Laight: da...@l8s.co.uk