Date: Sun, 9 Jan 2011 12:38:40 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/lib/libthr pthread.map src/lib/libthr/thread thr_create.c thr_private.h thr_rtld.c thr_stack.c Message-ID: <201101091238.p09Ccs5L012983@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
kib 2011-01-09 12:38:40 UTC
FreeBSD src repository
Modified files:
lib/libthr pthread.map
lib/libthr/thread thr_create.c thr_private.h thr_rtld.c
thr_stack.c
Log:
SVN rev 217191 on 2011-01-09 12:38:40Z by kib
Implement the __pthread_map_stacks_exec() for libthr.
Stack creation code is changed to call _rtld_get_stack_prot() to get
the stack protection right. There is a race where thread is created
during dlopen() of dso that requires executable stacks. Then,
_rtld_get_stack_prot() may return PROT_READ | PROT_WRITE, but thread
is still not linked into the thread list. In this case, the callback
misses the thread stack, and rechecks the required protection
afterward.
Reviewed by: davidxu
Revision Changes Path
1.41 +2 -0 src/lib/libthr/pthread.map
1.50 +11 -0 src/lib/libthr/thread/thr_create.c
1.120 +1 -0 src/lib/libthr/thread/thr_private.h
1.16 +5 -0 src/lib/libthr/thread/thr_rtld.c
1.9 +34 -1 src/lib/libthr/thread/thr_stack.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101091238.p09Ccs5L012983>
