[M3commit] CVS Update: cm3
Anthony Hosking
hosking at birch.elego.de
Tue Jan 23 16:35:33 CET 2007
CVSROOT: /usr/cvs
Changes by: hosking at birch. 07/01/23 16:35:33
Modified files:
cm3/m3-libs/m3core/src/thread/: m3makefile
Log message:
Make pthread-based threading the default on targets where it is supported
(currently LINUXLIBC6, PPC_DARWIN, I386_DARWIN, SOLgnu, SOLsun). Other
targets still need work to support pthread-based threads.
User-level (POSIX) threading is currently broken on I386_DARWIN and some
LINUXLIBC6 platforms. Failure is on first thread-switch. Newer LINUXLIBC6
targets use encrypting versions of setjmp/longjmp to prevent stack-smashing
security exploits, which means that the technique used to clone a thread from
a model frame in InitContext will not work (we should rework InitContext to
use the SysV primitive makecontext to construct a new thread, and perform
switching via getcontext/setcontext, but this will only work on SysV targets
that have makecontext/getcontext/setcontext). On I386_DARWIN there may be
mismatches in the layout of setjmp buffers, or perhaps newer Darwin libraries
are also using encryption to avoid stack-smashing. I haven't looked into this
closely yet.
More information about the M3commit
mailing list