From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
To: Carlos O'Donell <carlos@redhat.com>, libc-alpha@sourceware.org
Subject: Re: [PATCH v5 12/13] string: Add sigabbrev_np and sigdescr_np
Date: Fri, 3 Jul 2020 17:23:52 -0300 [thread overview]
Message-ID: <abf2519c-3cfe-c62b-3840-9c121f7ae846@linaro.org> (raw)
In-Reply-To: <05744028-6434-5c9f-7498-12965f0b793c@redhat.com>
On 02/07/2020 18:13, Carlos O'Donell wrote:
> On 6/19/20 9:43 AM, Adhemerval Zanella wrote:
>> The sigabbrev_np returns the abbreviated signal name (i.g. "HUP" for
>> SIGHUP) while sigdescr_np returns string describing error number
>
> s/returns string/returns the string/g
> s/ error/ the error/g
Ack.
>
>> (i.g "Hangup" for SIGHUP). Different than strsignal, sigdescr_np
>> does not attempt to translate the return description and both
>> functions return NULL for an invalid signal number.
>>
>> They should be used instead of sys_siglist or sys_sigabbrev and they
>> are both thread and async-signal safe. They are added as GNU
>> extensions on string.h header (same as strsignal).
>
> These are perfect functions to use in place of sys_siglist and
> sys_sigabbrev. Thus we now have functions to access the old data in
> a way that avoids exposing the data to COPY relocations (and the
> size encoded in that ABI). Thanks for fixing this up.
>
>> Checked on x86-64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu,
>> and s390x-linux-gnu.
>
> OK for master if you accept the manual suggestions and commit message
> changes.
Done, I also extended a bit the release wiki with a simple example on
how to use these interfaces.
>
> No regressions on x86_64 and i686.
>
> Tested-by: Carlos O'Donell <carlos@redhat.com>
> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
>
>>
>> diff --git a/NEWS b/NEWS
>> index ec39b6e056..f504772eb6 100644
>> --- a/NEWS
>> +++ b/NEWS
>> @@ -31,6 +31,16 @@ Major new features:
>> pthread_attr_getsigmask_np have been added. They allow applications
>> to specify the signal mask of a thread created with pthread_create.
>>
>> +* The functions sigabbrev_np and sigdescr_np have been added. The
>> + sigabbrev_np returns the abbreviated signal name (i.g. "HUP" for SIGHUP)
>> + while sigdescr_np returns string describing signal number (i.g "Hangup"
>
> s/returns string/returns a string/g
> s/ signal/ the signal/g
Ack.
>
>> + for SIGHUP). Different than strsignal, sigdescr_np does not attempt
>> + to translate the return description and both functions return NULL for
>> + an invalid signal number.
>> +
>> + They should be used instead of sys_siglist or sys_sigabbrev and they
>> + are both thread and async-signal safe. These functions are GNU extensions.
>
> OK.
>
>> +
>> Deprecated and removed features, and other changes affecting compatibility:
>>
>> * The deprecated <sys/sysctl.h> header and the sysctl function have been
>> diff --git a/include/signal.h b/include/signal.h
>> index 3d6315b741..b4ee02d153 100644
>> --- a/include/signal.h
>> +++ b/include/signal.h
>> @@ -16,7 +16,8 @@ libc_hidden_proto (__libc_current_sigrtmin)
>> libc_hidden_proto (__libc_current_sigrtmax)
>> extern const char * const __sys_siglist[_NSIG];
>> libc_hidden_proto (__sys_siglist)
>> -
>> +extern const char * const __sys_sigabbrev[_NSIG];
>> +libc_hidden_proto (__sys_sigabbrev)
>
> OK.
>
>>
>> /* Now define the internal interfaces. */
>> extern __sighandler_t __bsd_signal (int __sig, __sighandler_t __handler);
>> diff --git a/include/string.h b/include/string.h
>> index ce01ad8254..f4ce138622 100644
>> --- a/include/string.h
>> +++ b/include/string.h
>> @@ -53,6 +53,9 @@ extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen);
>>
>> extern char *__strerror_l (int __errnum, locale_t __loc);
>>
>> +extern const char *__sigdescr_np (int __errnum);
>> +libc_hidden_proto (__sigdescr_np)
>
> OK.
>
>> +
>> /* Get _STRING_ARCH_unaligned. */
>> #include <string_private.h>
>> #endif
>> diff --git a/manual/signal.texi b/manual/signal.texi
>> index 34def1c06c..a19dff85f8 100644
>> --- a/manual/signal.texi
>> +++ b/manual/signal.texi
>> @@ -880,6 +880,30 @@ to @var{signum}.
>> This function is a BSD feature, declared in the header file @file{signal.h}.
>> @end deftypefun
>>
>> +@deftypefun void sigdescr_np (int @var{signum})
>> +@standards{GNU, string.h}
>> +@safety{@prelim{}@mtsafe{@mtssigintr{}}@assafe{}@acsafe{}}
>
> Use @mtsafe{}, because the function does not touch _sigintr at all.
Ack.
>
>> +This function returns the message describing the signal @var{signum} or
>> +@code{NULL} for invalid signal number (i.g "Hangup" for @code{SIGHUP}).
>
> s/i.g/e.g./g
Ack.
>
>> +Different than @code{strsignal} the returned description is not translated.
>> +The message porints to a static storage whose lifetime is the whole lifetime
>
> s/porints/points/g
ACk.
>
>> +of the program.
>> +
>> +@pindex string.h
>> +This function is a GNU extension, declared in the header file @file{string.h}.
>> +@end deftypefun
>> +
>> +@deftypefun void sigabbrev_np (int @var{signum})
>> +@standards{GNU, string.h}
>> +@safety{@prelim{}@mtsafe{@mtssigintr{}}@assafe{}@acsafe{}}
>
> Use @mtsafe{}, because the function does not touch _sigintr at all.
Ack.
>
>> +This function returns the abbreviation describing the signal @var{signum} or
>> +@code{NULL} for invalid signal number. The message porints to a static
>
> s/porints/points/g
Ack.
next prev parent reply other threads:[~2020-07-03 20:23 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-19 13:43 [PATCH v5 01/13] signal: Add signum-{generic,arch}.h Adhemerval Zanella
2020-06-19 13:43 ` [PATCH v5 02/13] signal: Move sys_siglist to a compat symbol Adhemerval Zanella
2020-07-02 18:32 ` Carlos O'Donell
2020-07-03 17:58 ` Adhemerval Zanella
2020-06-19 13:43 ` [PATCH v5 03/13] signal: Move sys_errlist " Adhemerval Zanella
2020-07-02 18:48 ` Carlos O'Donell
2020-07-03 19:17 ` Adhemerval Zanella
2020-06-19 13:43 ` [PATCH v5 04/13] linux: Fix __NSIG_WORDS and add __NSIG_BYTES Adhemerval Zanella
2020-07-02 19:08 ` Carlos O'Donell
2020-07-03 19:23 ` Adhemerval Zanella
2020-06-19 13:43 ` [PATCH v5 05/13] string: Remove old TLS usage on strsignal Adhemerval Zanella
2020-07-02 19:32 ` Carlos O'Donell
2020-07-03 19:26 ` Adhemerval Zanella
2020-06-19 13:43 ` [PATCH v5 06/13] string: Implement strerror in terms of strerror_l Adhemerval Zanella
2020-07-02 19:44 ` Carlos O'Donell
2020-07-03 19:53 ` Adhemerval Zanella
2020-06-19 13:43 ` [PATCH v5 07/13] string: Use tls-internal on strerror_l Adhemerval Zanella
2020-07-02 19:48 ` Carlos O'Donell
2020-06-19 13:43 ` [PATCH v5 08/13] string: Simplify strerror_r Adhemerval Zanella
2020-07-02 19:51 ` Carlos O'Donell
2020-06-19 13:43 ` [PATCH v5 09/13] string: Add strsignal test Adhemerval Zanella
2020-07-02 19:55 ` Carlos O'Donell
2020-07-02 20:01 ` Carlos O'Donell
2020-07-03 20:06 ` Adhemerval Zanella
2020-06-19 13:43 ` [PATCH v5 10/13] string: Add strerror, strerror_r, and strerror_l test Adhemerval Zanella
2020-07-02 20:02 ` Carlos O'Donell
2020-06-19 13:43 ` [PATCH v5 11/13] string: Add strerror_l on test-strerror-errno Adhemerval Zanella
2020-07-02 20:05 ` Carlos O'Donell
2020-06-19 13:43 ` [PATCH v5 12/13] string: Add sigabbrev_np and sigdescr_np Adhemerval Zanella
2020-07-02 21:13 ` Carlos O'Donell
2020-07-03 20:23 ` Adhemerval Zanella [this message]
[not found] ` <VI1PR08MB532546AD22FA628741788C5BFF670@VI1PR08MB5325.eurprd08.prod.outlook.com>
2020-07-08 11:18 ` Tamar Christina
2020-07-08 11:36 ` Florian Weimer
2020-07-08 11:48 ` Tamar Christina
2020-07-08 11:52 ` Florian Weimer
2020-07-08 12:16 ` Tamar Christina
2020-07-08 12:23 ` Adhemerval Zanella
2020-06-19 13:43 ` [PATCH v5 13/13] string: Add strerrorname and strerrordesc Adhemerval Zanella
2020-07-02 21:43 ` Carlos O'Donell
2020-07-03 21:01 ` Adhemerval Zanella
2020-07-03 21:19 ` Carlos O'Donell
2020-07-03 22:34 ` Adhemerval Zanella
2020-07-06 12:43 ` Carlos O'Donell
2020-07-06 13:57 ` [PATCH v6] string: Add strerrorname_np and strerrordesc_np Adhemerval Zanella
2020-07-06 14:04 ` Andreas Schwab
2020-07-06 14:06 ` Adhemerval Zanella
2020-07-06 15:07 ` Carlos O'Donell
2020-07-02 18:26 ` [PATCH v5 01/13] signal: Add signum-{generic,arch}.h Carlos O'Donell
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=abf2519c-3cfe-c62b-3840-9c121f7ae846@linaro.org \
--to=adhemerval.zanella@linaro.org \
--cc=carlos@redhat.com \
--cc=libc-alpha@sourceware.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).