public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Tamar Christina <Tamar.Christina@arm.com>
To: Adhemerval Zanella <adhemerval.zanella@linaro.org>,
	Carlos O'Donell <carlos@redhat.com>
Cc: "libc-alpha@sourceware.org" <libc-alpha@sourceware.org>
Subject: RE: [PATCH v5 12/13] string: Add sigabbrev_np and sigdescr_np
Date: Wed, 8 Jul 2020 11:18:07 +0000	[thread overview]
Message-ID: <VI1PR08MB532572614BC13BA12D8F7802FF670@VI1PR08MB5325.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <VI1PR08MB532546AD22FA628741788C5BFF670@VI1PR08MB5325.eurprd08.prod.outlook.com>

Sorry, also forwarding to mailing list.

For some reason client drops it from CC when I do reply-all..

> -----Original Message-----
> From: Tamar Christina
> Sent: Wednesday, July 8, 2020 12:16 PM
> To: Adhemerval Zanella <adhemerval.zanella@linaro.org>; Carlos O'Donell
> <carlos@redhat.com>
> Subject: RE: [PATCH v5 12/13] string: Add sigabbrev_np and sigdescr_np
> 
> Hi,
> 
> This commit seems to have broken the aarch64 build:
> 
>   sigdescr_np.c:24:1: error: conflicting types for ‘__sigdescr_np’
>    __sigdescr_np (int signum)
>    ^~~~~~~~~~~~~
> 
>   In file included from <command-line>:0:0:
>   ../include/string.h:57:20: note: previous declaration of ‘__sigdescr_np’ was
> here
>    libc_hidden_proto (__sigdescr_np)
>                       ^
>   ./../include/libc-symbols.h:605:33: note: in definition of macro
> ‘__hidden_proto’
>      extern thread __typeof (name) name __hidden_proto_hiddenattr (attrs);
>                                    ^~~~
> 
>   ./../include/libc-symbols.h:624:44: note: in expansion of macro
> ‘hidden_proto’
>    # define libc_hidden_proto(name, attrs...) hidden_proto (name, ##attrs)
>                                               ^~~~~~~~~~~~
>   ../include/string.h:57:1: note: in expansion of macro ‘libc_hidden_proto’
>    libc_hidden_proto (__sigdescr_np)
>    ^~~~~~~~~~~~~~~~~
> 
>   In file included from <command-line>:0:0:
>   ../o-iterator.mk:9: recipe for target '/home/teamcity-
> agent/work/fcc7c27539f88edf/build/string/sigdescr_np.o' failed
>   sigdescr_np.c:34:28: error: conflicting types for ‘sigdescr_np’
>    weak_alias (__sigdescr_np, sigdescr_np)
>                               ^
>   ./../include/libc-symbols.h:152:26: note: in definition of macro ‘_weak_alias’
>      extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)))
> \
>                             ^~~~~~~~~
>   sigdescr_np.c:34:1: note: in expansion of macro ‘weak_alias’
>    weak_alias (__sigdescr_np, sigdescr_np)
>    ^~~~~~~~~~
>   In file included from ../include/string.h:63:0,
>                    from sigdescr_np.c:19:
>   ../string/string.h:469:20: note: previous declaration of ‘sigdescr_np’ was
> here
>    extern const char *sigdescr_np (int __sig) __THROW;
>                       ^~~~~~~~~~~
>   make[2]: *** [/home/teamcity-
> agent/work/fcc7c27539f88edf/build/string/sigdescr_np.o] Error 1
>   make[2]: *** Waiting for unfinished jobs....
>   sigabbrev_np.c:24:1: error: conflicting types for ‘sigabbrev_np’
>    sigabbrev_np (int signum)
>    ^~~~~~~~~~~~
>   In file included from ../include/string.h:63:0,
>                    from sigabbrev_np.c:19:
>   ../string/string.h:466:20: note: previous declaration of ‘sigabbrev_np’ was
> here
>    extern const char *sigabbrev_np (int __sig) __THROW;
>                       ^~~~~~~~~~~~
> 
> I'm afraid I don't know glibc internals well enough to know what the right fix
> is here...
> 
> Thanks,
> Tamar
> 
> > -----Original Message-----
> > From: Libc-alpha <libc-alpha-bounces@sourceware.org> On Behalf Of
> > Adhemerval Zanella via Libc-alpha
> > Sent: Friday, July 3, 2020 9:24 PM
> > To: Carlos O'Donell <carlos@redhat.com>; libc-alpha@sourceware.org
> > Subject: Re: [PATCH v5 12/13] string: Add sigabbrev_np and sigdescr_np
> >
> >
> >
> > 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.

  parent reply	other threads:[~2020-07-08 11:18 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
     [not found]       ` <VI1PR08MB532546AD22FA628741788C5BFF670@VI1PR08MB5325.eurprd08.prod.outlook.com>
2020-07-08 11:18         ` Tamar Christina [this message]
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=VI1PR08MB532572614BC13BA12D8F7802FF670@VI1PR08MB5325.eurprd08.prod.outlook.com \
    --to=tamar.christina@arm.com \
    --cc=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).