[stunnel-users] RE: --with-threads=ucontext portability

Michal Trojnara Michal.Trojnara at mobi-com.net
Tue Jan 31 16:43:09 CET 2006


Miloslav Trmac wrote:

> > What about the number of arguments?  Why isn't "1" correct?
> Assume the traditional way of passing arguments on stack, with "int"
> naturally aligned.  Then makecontext does something like this:
> - set stack pointer to "top" - argc * sizeof(int)
> - copy argc * sizeof (int) bytes from makecontext() arguments to stack
> - set up the rest of the frame
> 
> If sizeof (void *) > sizeof (int), which happens on 64-bit 
> platforms, the above doesn't copy the whole value of the 
> pointer when argc == 1.

As you saw IRIX used just opposite default (pointer/long).

It seemed reasonable to me to align parameters to 8 byte baundary on 64-bit
machines...

I decided to change the default threading model.  Ucontext creates quite a
lot of portability issues.

Best regards,
    Mike




More information about the stunnel-users mailing list