manual: Document getcontext uc_stack value on Linux [BZ #759]
commit9995c839a01cd8db17120cb2c0a80f81d858b179
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 16 May 2017 19:05:35 +0000 (16 16:05 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 8 Aug 2017 19:16:43 +0000 (8 16:16 -0300)
tree8c6bc8eb00563c9c5876b60cf73816e00a41ca29
parentf17a42333f2eb0bd7ef5194167dd52f9770a6680
manual: Document getcontext uc_stack value on Linux [BZ #759]

As decribed in BZ#759, Linux getcontext implementation on Linux does
differs from other SysV system about the returned uc_stack.  This is
true not only for i386, but for all the architecture I could actually
check (aarch64, arm, alpha, hppa, m68k, mips, mips64, mips64n32,
powerpc, powerpc64, powerpc64le, s390x, sh, sparc, sparc64, and x86).

And I think we should not change current behavior for some reasons:

1. POSIX 2008 removed this SySV interface for a good reason and changing
   this behavior adds nothing for current portable code.  POSIX 2001
   specification does states that stack should be saved [1] and current
   GLIBC code does in a arch-specific manner (inside the mcontext_t)
   which allows the setcontext to work correctly.

2. Changing this behavior would potentially require compat symbols and
   I see no gain in adding compat symbols for deprecated interfaces.

3. Also, for comment #2 in BZ#759, it is up to kernel do setup the contents
   for ucontext_t and currently it does not provide the stack information
   as well.  Trying to change it is also another fix that does not worth
   the possible gains.

Instead my proposal is to make it clear the current interface may differ
depending of the underlying operational system.

glibc documentation and close this bug as invalid.

[BZ #759]
* manual/setjmp.texi (getcontex): Document uc_stack value on Linux.

[1] http://pubs.opengroup.org/onlinepubs/009695399/functions/getcontext.html
ChangeLog
manual/setjmp.texi