[M3devel] New setjmp/longjmp problem.

Antony Hosking hosking at cs.purdue.edu
Fri Jan 12 13:59:18 CET 2007


Right, this is the problem I was talking about.  We need to fix the  
old POSIX implementation of Modula-3 threading to use use the  
makecontext call, and we should be using getcontext/setcontext for  
thread switching instead of setjmp/longjmp.  The new PTHREAD  
implementation of Modula-3 threading (which marries a Modula-3 thread  
to a system pthread) should work just fine.  I would suggest  
rebuilding m3core with the -DPTHREAD option to make it use pthread- 
based threading.

On 12/01/2007, at 12:04 AM, Mike Frysinger wrote:

> On Thursday 11 January 2007 17:40, Rodney M. Bates wrote:
>> The setjmp in glibc contains the line:
>>
>> 	xor    %gs:0x18,%ecx
>
> glibc has started mangling the thread stack poiner in newer  
> versions ... it's
> a "feature"
>
> see the PTR_MANGLE defines in the i386 dirs
> -mike
> _______________________________________________
> M3devel mailing list
> M3devel at elegosoft.com
> https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel

Antony Hosking                | Associate Professor
Dept of Computer Sciences     | Office: (765) 494-6001
Purdue University             | Mobile: (765) 427-5484
250 N. University Street      | hosking at cs.purdue.edu
West Lafayette, IN 47907-2066 | http://www.cs.purdue.edu/~hosking
   _--_|\
  /      \
  \_.--._/    )
        v    /





More information about the M3devel mailing list