All of lore.kernel.org
 help / color / mirror / Atom feed
From: walter harms <wharms@bfs.de>
To: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
Cc: Stas Sergeev <stsp@list.ru>,
	linux-man <linux-man@vger.kernel.org>,
	Andy Lutomirski <luto@amacapital.net>,
	Oleg Nesterov <oleg@redhat.com>,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: Documenting sigaltstack SS_AUTODISRM
Date: Mon, 30 Oct 2017 13:54:53 +0100	[thread overview]
Message-ID: <59F7211D.8080500@bfs.de> (raw)
In-Reply-To: <a8ae5fc2-055c-2939-a692-2339398bf653@gmail.com>



Am 30.10.2017 11:50, schrieb Michael Kerrisk (man-pages):
> Hi Walter,
> 
> On 10/30/2017 11:21 AM, walter harms wrote:
>>
>>
>> Am 30.10.2017 11:04, schrieb Michael Kerrisk (man-pages):
>>> [So, things fell on the floor, a while back.]
>>>
>>> On 05/25/2017 11:17 AM, Stas Sergeev wrote:
>>>> 24.05.2017 14:09, Michael Kerrisk (man-pages) пишет:
>>>>> One could do this I suppose, but I read POSIX differently from
>>>>> you and, more importantly, SS_ONSTACK breaks portability on
>>>>> numerous other systems and is a no-op on Linux. So, the Linux man
>>>>> page really should warn against its use in the strongest terms.
>>>> So how about instead of the strongest terms towards
>>>> the code's author, just explain that SS_ONSTACK is a
>>>> bit-value on some/many OSes, and as such, 0 is a
>>>> valid value to enable sas on them, plus all the other
>>>> values would give EINVAL?
>>>> No strongest terms will help w/o an explanation,
>>>> because people will keep looking for something that
>>>> suits as a missing SS_ENABLE.
>>>
>>> Fair enough. I've removed the statement in the manual page
>>> about "confusion". By now the page says:
>>>
>>>     BUGS
>>>        In the lead up to the release of the Linux 2.4  kernel,  a  change
>>>        was   made   to   allow  sigaltstack()  to  accept  SS_ONSTACK  in
>>>        ss.ss_flags, which results in behavior that is the  same  as  when
>>>        ss_flags is 0 (i.e., the inclusion of SS_ONSTACK in ss.ss_flags is
>>>        a no-op).  On other implementations,  and  according  to  POSIX.1,
>>
>> i am confused, i understand that:
>>            ss.ss_sp = malloc(SIGSTKSZ);
>>
>>            ss.ss_size = SIGSTKSZ;
>>            ss.ss_flags = 0;
>>            if (sigaltstack(&ss, NULL) == -1)
>>
>> is equivalent to:
>>            ss.ss_sp = malloc(SIGSTKSZ);
>>
>>            ss.ss_size = SIGSTKSZ;
>>            ss.ss_flags = SS_ONSTACK ;
>>            if (sigaltstack(&ss, NULL) == -1)
>>
>> but also to
>>            ss.ss_sp = malloc(SIGSTKSZ);
>>
>>            ss.ss_size = SIGSTKSZ;
>>            ss.ss_flags = SS_ONSTACK | SOMETHING_FLAG ;
>>            if (sigaltstack(&ss, NULL) == -1)
>>
>> so the use of SS_ONSTACK would result in ss.ss_flags = 0 no matter what.
>> OR
>> SS_ONSTACK is a no-op in Linux
> 
> I see what you mean. The point is back then that SS_ONSTACK was
> the only flag that could (on Linux) be specified in ss.ss_flags,
> so that "SS_ONSTACK | SOMETHING_FLAG" was a nonexistent case.
> These days, it's possible to specify the new SS_AUTODISARM
> flag in ss.ss_flags, which I think is why you are doubtful
> about the new page text. How about this, as a tightened-up 
> version:
> 
>     BUGS
>        In Linux 2.2 and earlier, the only flag that could be specified in
>        ss.sa_flags  was SS_DISABLE.  In the lead up to the release of the
>        Linux 2.4 kernel, a change was  made  to  allow  sigaltstack()  to
>        allow   ss.ss_flags==SS_ONSTACK   with   the   same   meaning   as
>        ss.ss_flags==0 (i.e., the inclusion of SS_ONSTACK  in  ss.ss_flags
>        is  a no-op).  On other implementations, and according to POSIX.1,
>        SS_ONSTACK appears only as a reported flag in old_ss.ss_flags.  On
>        Linux, there is no need ever to specify SS_ONSTACK in ss.ss_flags,
>        and indeed doing so should be avoided on portability grounds: var‐
>        ious  other  systems  give  an error if SS_ONSTACK is specified in
>        ss.ss_flags.
> 
> ?

what about the other way around (general to special) ....

 the inclusion of SS_ONSTACK in ss.ss_flags is a no-op (setting ss.ss_flags=SS_ONSTACK
 will result in ss.ss_flags=0).

The details about older release will be helpful for upgrading pruposes.
So we can say:

Since Linux 2.4 the inclusion ....

does this help ?

re,
 wh


> 
> Thanks,
> 
> Michael
> 

      parent reply	other threads:[~2017-10-30 12:54 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-22 20:38 Documenting sigaltstack SS_AUTODISRM Michael Kerrisk (man-pages)
2017-05-22 20:38 ` Michael Kerrisk (man-pages)
2017-05-22 23:36 ` Stas Sergeev
     [not found]   ` <08467ae1-7187-3b2a-9a78-8af0c10bf816-cmBhpYW9OiY@public.gmane.org>
2017-05-23 10:35     ` Michael Kerrisk (man-pages)
2017-05-23 10:35       ` Michael Kerrisk (man-pages)
     [not found]       ` <3907bc2a-0645-8d93-6ee5-3f99874e7022-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-05-23 11:03         ` Stas Sergeev
2017-05-23 11:03           ` Stas Sergeev
     [not found]           ` <32d95303-5839-9279-a1d3-a06f34e3484e-cmBhpYW9OiY@public.gmane.org>
2017-05-23 12:26             ` Michael Kerrisk (man-pages)
2017-05-23 12:26               ` Michael Kerrisk (man-pages)
     [not found]               ` <CAKgNAkgw6P5RAsA2RSFJX57b=DHM=eNZ+ZOoagcO3ydSHzBcQA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-05-23 23:01                 ` Stas Sergeev
2017-05-23 23:01                   ` Stas Sergeev
2017-05-24 11:09                   ` Michael Kerrisk (man-pages)
     [not found]                     ` <026308b5-4e92-4439-1eb2-82b67584d548-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-05-24 20:12                       ` Stas Sergeev
2017-05-24 20:12                         ` Stas Sergeev
     [not found]                         ` <6f622987-9517-ee7c-2016-ea8c43645e39-cmBhpYW9OiY@public.gmane.org>
2017-10-30 12:38                           ` Michael Kerrisk (man-pages)
2017-10-30 12:38                             ` Michael Kerrisk (man-pages)
     [not found]                             ` <b87af49f-230b-30d6-fa9b-adaa75ebab52-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-11-06 22:26                               ` Michael Kerrisk (man-pages)
2017-11-06 22:26                                 ` Michael Kerrisk (man-pages)
     [not found]                                 ` <be8a3232-f90e-1bf6-794c-d4a29541c437-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-11-06 22:28                                   ` Stas Sergeev
2017-11-06 22:28                                     ` Stas Sergeev
     [not found]                                     ` <22a30d19-3ecb-3d7d-8a86-59b35e057554-cmBhpYW9OiY@public.gmane.org>
2017-11-08  7:41                                       ` Michael Kerrisk (man-pages)
2017-11-08  7:41                                         ` Michael Kerrisk (man-pages)
2017-05-25  9:17                       ` Stas Sergeev
2017-05-25  9:17                         ` Stas Sergeev
     [not found]                         ` <3a4f9f3e-fc33-cf98-2322-27087664813f-cmBhpYW9OiY@public.gmane.org>
2017-10-30 10:04                           ` Michael Kerrisk (man-pages)
2017-10-30 10:04                             ` Michael Kerrisk (man-pages)
2017-10-30 10:21                             ` walter harms
     [not found]                               ` <59F6FD39.40502-fPG8STNUNVg@public.gmane.org>
2017-10-30 10:50                                 ` Michael Kerrisk (man-pages)
2017-10-30 10:50                                   ` Michael Kerrisk (man-pages)
2017-10-30 10:58                                   ` Stas Sergeev
2017-10-30 12:54                                   ` walter harms [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=59F7211D.8080500@bfs.de \
    --to=wharms@bfs.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-man@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mtk.manpages@gmail.com \
    --cc=oleg@redhat.com \
    --cc=stsp@list.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.