From 7acf73dc3700f39ec009cf3efe30806e861ee5a1 Mon Sep 17 00:00:00 2001 From: Michael Kerrisk Date: Fri, 7 Nov 2008 20:31:15 -0500 Subject: [PATCH] makecontext.3: Add text on use of pointer arguments to makecontext() Passing pointer arguments to makecontext() is possible, but only on some architectures, and with no guarantees of portability. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504699 Signed-off-by: Michael Kerrisk Reported-by: Paul Evans --- man3/makecontext.3 | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/man3/makecontext.3 b/man3/makecontext.3 index 1815b227d..0a6a96ddd 100644 --- a/man3/makecontext.3 +++ b/man3/makecontext.3 @@ -22,7 +22,7 @@ .\" the source, must acknowledge the copyright and authors of this work. .\" 2006-08-02, mtk, Added example program .\" -.TH MAKECONTEXT 3 2008-08-06 "GNU" "Linux Programmer's Manual" +.TH MAKECONTEXT 3 2008-11-07 "GNU" "Linux Programmer's Manual" .SH NAME makecontext, swapcontext \- manipulate user context .SH SYNOPSIS @@ -113,6 +113,22 @@ to be used as the stack, regardless of the direction of growth of the stack. Thus, it is not necessary for the user program to worry about this direction. + +On architectures where +.I int +and pointer types are the same size +(e.g., x86-32, where both types are 32 bits), +you may be able to get away with passing pointers as arguments to +.BR makecontext () +following +.IR argc . +However, doing this is not guaranteed to be portable, +is undefined according to the standards, +and won't work on architectures where pointers are larger than +.IR int s. +Nevertheless, starting with version 2.8 glibc makes some changes to +.BR makecontext (3), +to permit this on some 64-bit architectures (e.g., x86-64). .SH EXAMPLE .PP The example program below demonstrates the use of