[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