[stunnel-users] Solaris: new_context, makecontext

Hans Werner Strube strube at physik3.gwdg.de
Tue Nov 8 09:48:12 CET 2005


Alexander Lazic wrote:
> The semantics of the uc_stack member of the ucontext_t structure have
> changed as they apply to inputs to makecontext(). Prior to Solaris 10,
> the ss_sp member of the uc_stack structure represented the high memory
> address of the area reserved for the stack. The ss_sp member now
> represents the base (low memory address), in keeping with other uses of
> ss_sp.
> 
> This change in the meaning of ss_sp is now the default behavior. The
> -D__MAKECONTEXT_V2_SOURCE compilation flag used in Solaris 9 update
> releases to access this behavior is obsolete.

Solaris 9_x86 does not use __MAKECONTEXT_V2_SOURCE, see /usr/include/ucontext.h:
*** Solaris 9:
#if defined(__MAKECONTEXT_V2_SOURCE) && defined(__sparc)
#ifdef __PRAGMA_REDEFINE_EXTNAME
#pragma redefine_extname        makecontext     __makecontext_v2
#else
#define makecontext     __makecontext_v2
#endif
#endif
*** Solaris 10:
#ifdef __sparc
#ifdef __PRAGMA_REDEFINE_EXTNAME
#pragma redefine_extname        makecontext     __makecontext_v2
#else
#define makecontext     __makecontext_v2
#endif
In libc.so.1, __makecontext_v2 is the "new" function and makecontext the
"old" one (binary compatible to Solaris 8 and earlier).
For Solaris x86, there is only one function makecontext in all versions.
Thus the behavior might not have been changed. A small test program in
Solaris 9_x86 (have no earlier versions) indicated the "new" behavior.



More information about the stunnel-users mailing list