svn commit: r361770 - in head: include lib/libthr lib/libthr/thread share/man/man3

Antoine Brodin antoine at freebsd.org
Thu Jun 4 05:51:56 UTC 2020


On Thu, Jun 4, 2020 at 4:30 AM Jung-uk Kim <jkim at freebsd.org> wrote:
>
> On 20. 6. 3., Konstantin Belousov wrote:
> > Author: kib
> > Date: Wed Jun  3 20:54:36 2020
> > New Revision: 361770
> > URL: https://svnweb.freebsd.org/changeset/base/361770
> >
> > Log:
> >   Add pthread_getname_np() and pthread_setname_np() aliases
> >
> >   for pthread_get_name_np() and pthread_set_name_np(), to be
> >   compatible with Linux.
> >
> >   PR: 238404
> >   Proposed and reviewed by:   markj
> >   Sponsored by:       The FreeBSD Foundation
> >   MFC after:  1 week
> >   Differential revision:      https://reviews.freebsd.org/D25117
> >
> > Modified:
> >   head/include/pthread_np.h
> >   head/lib/libthr/pthread.map
> >   head/lib/libthr/thread/thr_info.c
> >   head/share/man/man3/Makefile
> >   head/share/man/man3/pthread_set_name_np.3
> >
> > Modified: head/include/pthread_np.h
> > ==============================================================================
> > --- head/include/pthread_np.h Wed Jun  3 20:42:52 2020        (r361769)
> > +++ head/include/pthread_np.h Wed Jun  3 20:54:36 2020        (r361770)
> > @@ -50,6 +50,7 @@ int pthread_attr_get_np(pthread_t, pthread_attr_t *);
> >  int pthread_attr_getaffinity_np(const pthread_attr_t *, size_t, cpuset_t *);
> >  int pthread_attr_setaffinity_np(pthread_attr_t *, size_t, const cpuset_t *);
> >  void pthread_get_name_np(pthread_t, char *, size_t);
> > +void pthread_getname_np(pthread_t, char *, size_t);
> >  int pthread_getaffinity_np(pthread_t, size_t, cpuset_t *);
> >  int pthread_getthreadid_np(void);
> >  int pthread_main_np(void);
> > @@ -65,6 +66,7 @@ void pthread_resume_all_np(void);
> >  int pthread_resume_np(pthread_t);
> >  int pthread_peekjoin_np(pthread_t, void **);
> >  void pthread_set_name_np(pthread_t, const char *);
> > +void pthread_setname_np(pthread_t, const char *);
> >  int pthread_setaffinity_np(pthread_t, size_t, const cpuset_t *);
> >  int pthread_single_np(void);
> >  void pthread_suspend_all_np(void);
> >
> > Modified: head/lib/libthr/pthread.map
> > ==============================================================================
> > --- head/lib/libthr/pthread.map       Wed Jun  3 20:42:52 2020        (r361769)
> > +++ head/lib/libthr/pthread.map       Wed Jun  3 20:54:36 2020        (r361770)
> > @@ -328,5 +328,7 @@ FBSD_1.5 {
> >  };
> >
> >  FBSD_1.6 {
> > +      pthread_getname_np;
> >        pthread_peekjoin_np;
> > +      pthread_setname_np;
> >  };
> >
> > Modified: head/lib/libthr/thread/thr_info.c
> > ==============================================================================
> > --- head/lib/libthr/thread/thr_info.c Wed Jun  3 20:42:52 2020        (r361769)
> > +++ head/lib/libthr/thread/thr_info.c Wed Jun  3 20:54:36 2020        (r361770)
> > @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
> >  #include "thr_private.h"
> >
> >  __weak_reference(_pthread_set_name_np, pthread_set_name_np);
> > +__weak_reference(_pthread_set_name_np, pthread_setname_np);
> >
> >  static void
> >  thr_set_name_np(struct pthread *thread, const char *name)
> > @@ -89,6 +90,7 @@ thr_get_name_np(struct pthread *thread, char *buf, siz
> >  }
> >
> >  __weak_reference(_pthread_get_name_np, pthread_get_name_np);
> > +__weak_reference(_pthread_get_name_np, pthread_getname_np);
> >
> >  void
> >  _pthread_get_name_np(pthread_t thread, char *buf, size_t len)
> >
> > Modified: head/share/man/man3/Makefile
> > ==============================================================================
> > --- head/share/man/man3/Makefile      Wed Jun  3 20:42:52 2020        (r361769)
> > +++ head/share/man/man3/Makefile      Wed Jun  3 20:54:36 2020        (r361770)
> > @@ -493,7 +493,9 @@ PTHREAD_MLINKS+=pthread_rwlock_rdlock.3 pthread_rwlock
> >  PTHREAD_MLINKS+=pthread_rwlock_wrlock.3 pthread_rwlock_trywrlock.3
> >  PTHREAD_MLINKS+=pthread_schedparam.3 pthread_getschedparam.3 \
> >               pthread_schedparam.3 pthread_setschedparam.3
> > -PTHREAD_MLINKS+=pthread_set_name_np.3 pthread_get_name_np.3
> > +PTHREAD_MLINKS+=pthread_set_name_np.3 pthread_get_name_np.3 \
> > +             pthread_set_name_np.3 pthread_getname_np.3 \
> > +             pthread_set_name_np.3 pthread_setname_np.3
> >  PTHREAD_MLINKS+=pthread_spin_init.3 pthread_spin_destroy.3 \
> >               pthread_spin_lock.3 pthread_spin_trylock.3 \
> >               pthread_spin_lock.3 pthread_spin_unlock.3
> >
> > Modified: head/share/man/man3/pthread_set_name_np.3
> > ==============================================================================
> > --- head/share/man/man3/pthread_set_name_np.3 Wed Jun  3 20:42:52 2020        (r361769)
> > +++ head/share/man/man3/pthread_set_name_np.3 Wed Jun  3 20:54:36 2020        (r361770)
> > @@ -24,12 +24,14 @@
> >  .\"
> >  .\" $FreeBSD$
> >  .\"
> > -.Dd August 12, 2018
> > +.Dd June 3, 2020
> >  .Dt PTHREAD_SET_NAME_NP 3
> >  .Os
> >  .Sh NAME
> >  .Nm pthread_get_name_np ,
> > +.Nm pthread_getname_np ,
> >  .Nm pthread_set_name_np
> > +.Nm pthread_setname_np
> >  .Nd set and retrieve the thread name
> >  .Sh LIBRARY
> >  .Lb libpthread
> > @@ -38,18 +40,26 @@
> >  .Ft void
> >  .Fn pthread_get_name_np "pthread_t thread" "char *name" "size_t len"
> >  .Ft void
> > +.Fn pthread_getname_np "pthread_t thread" "char *name" "size_t len"
> > +.Ft void
> >  .Fn pthread_set_name_np "pthread_t thread" "const char *name"
> > +.Ft void
> > +.Fn pthread_setname_np "pthread_t thread" "const char *name"
> >  .Sh DESCRIPTION
> >  The
> >  .Fn pthread_set_name_np
> > -function applies a copy of the given
> > +and
> > +.Fn pthread_setname_np
> > +functions applies a copy of the given
> >  .Fa name
> >  to the given
> >  .Fa thread .
> >  .Pp
> >  The
> >  .Fn pthread_get_name_np
> > -function retrieves the
> > +and
> > +.Fn pthread_getname_np
> > +functions retrieves the
> >  .Fa name
> >  associated with
> >  .Fa thread .
> > @@ -70,6 +80,11 @@ appear inside are silently ignored.
> >  and
> >  .Fn pthread_get_name_np
> >  are non-standard extensions.
> > +.Fn pthread_setname_np
> > +and
> > +.Fn pthread_getname_np
> > +are also non-standard, but are implemented by larger number of operating
> > +systems so they are in fact more portable.
> >  .Sh AUTHORS
> >  This manual page was written by
> >  .An Alexey Zelkin Aq Mt phantom at FreeBSD.org
>
> It broke Firefox build and I found Linux pthread_{get,set}name_np(3)
> returns int.
>
> https://linux.die.net/man/3/pthread_getname_np
>
> I guess you need to write a wrapper.  Please revert this patch for now.

Hi,

It broke devel/glib20 too,  which now tries to use the function
without including the header:
http://beefy18.nyi.freebsd.org/data/head-amd64-default/p537862_s361780/logs/errors/glib-2.56.3_7,1.log

Antoine


More information about the svn-src-head mailing list