nptl: Move pthread_equal implementation into libc

Message ID 874l2lhxbl.fsf@oldenburg2.str.redhat.com
State Committed
Headers

Commit Message

Florian Weimer Aug. 13, 2019, 3:58 p.m. UTC
  Tested on x86_64-linux-gnu and i686-linux-gnu, and compile-tested using
build-many-glibcs.py.  No regressions related to this change.

Thanks,
Florian

2019-08-13  Florian Weimer  <fweimer@redhat.com>

	nptl: Move pthread_equal implementation into libc.
	* nptl/Makefile (routines): Add pthread_equal.
	* nptl/forward.c (pthread_equal): Remove definition.
	* nptl/nptl-init.c (pthread_functions): Remove initializer for
	ptr_pthread_equal.
	* sysdeps/nptl/pthread-functions.h (struct pthread_functions):
	Remove ptr_pthread_equal member.
	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17):
	Remove pthread_equal.
	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.4):
	Likewise.
	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29):
	Likewise.
	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2):
	Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
	(GLIBC_2.4): Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
	(GLIBC_2.0): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
	(GLIBC_2.18): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
	(GLIBC_2.0): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
	(GLIBC_2.0): Likewise.
	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
	(GLIBC_2.0): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
	(GLIBC_2.3): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
	(GLIBC_2.17): Likewise.
	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
	(GLIBC_2.27): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
	(GLIBC_2.0): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
	(GLIBC_2.2): Likewise.
	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.2):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
	(GLIBC_2.0): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
	(GLIBC_2.2): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
	(GLIBC_2.2.5): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
	(GLIBC_2.16): Likewise.
  

Comments

Adhemerval Zanella Netto Aug. 13, 2019, 7:39 p.m. UTC | #1
On 13/08/2019 12:58, Florian Weimer wrote:
> Tested on x86_64-linux-gnu and i686-linux-gnu, and compile-tested using
> build-many-glibcs.py.  No regressions related to this change.

What is the motivation for this change? Simplify the internal libc stubs?

> 
> Thanks,
> Florian
> 
> 2019-08-13  Florian Weimer  <fweimer@redhat.com>
> 
> 	nptl: Move pthread_equal implementation into libc.
> 	* nptl/Makefile (routines): Add pthread_equal.
> 	* nptl/forward.c (pthread_equal): Remove definition.
> 	* nptl/nptl-init.c (pthread_functions): Remove initializer for
> 	ptr_pthread_equal.
> 	* sysdeps/nptl/pthread-functions.h (struct pthread_functions):
> 	Remove ptr_pthread_equal member.
> 	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17):
> 	Remove pthread_equal.
> 	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.4):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> 	(GLIBC_2.4): Likewise.
> 	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
> 	(GLIBC_2.18): Likewise.
> 	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> 	(GLIBC_2.3): Likewise.
> 	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> 	(GLIBC_2.17): Likewise.
> 	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> 	(GLIBC_2.27): Likewise.
> 	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> 	(GLIBC_2.2): Likewise.
> 	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.2):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> 	(GLIBC_2.2): Likewise.
> 	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> 	(GLIBC_2.2.5): Likewise.
> 	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> 	(GLIBC_2.16): Likewise.
> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 0567e77a79..e66b115562 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -30,7 +30,7 @@ extra-libs-others := $(extra-libs)
>  routines = alloca_cutoff forward libc-lowlevellock libc-cancellation \
>  	   libc-cleanup libc_pthread_init libc_multiple_threads \
>  	   register-atfork pthread_atfork pthread_self thrd_current \
> -	   thrd_equal thrd_sleep thrd_yield
> +	   thrd_equal thrd_sleep thrd_yield pthread_equal
>  shared-only-routines = forward
>  static-only-routines = pthread_atfork
>  
> @@ -50,7 +50,7 @@ libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
>  		      pthread_create pthread_exit pthread_detach \
>  		      pthread_join pthread_tryjoin pthread_timedjoin \
>  		      pthread_join_common \
> -		      compat-pthread_self pthread_equal pthread_yield \
> +		      compat-pthread_self pthread_yield \
>  		      pthread_getconcurrency pthread_setconcurrency \
>  		      pthread_getschedparam pthread_setschedparam \
>  		      pthread_setschedprio \
> diff --git a/nptl/forward.c b/nptl/forward.c
> index ed1e7d0350..3ec9a46078 100644
> --- a/nptl/forward.c
> +++ b/nptl/forward.c
> @@ -166,10 +166,6 @@ versioned_symbol (libc, __pthread_cond_timedwait, pthread_cond_timedwait,
>  		  GLIBC_2_3_2);
>  
>  
> -FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
> -	 (thread1, thread2), 1)
> -
> -
>  FORWARD_NORETURN (__pthread_exit, void, (void *retval), (retval),
>  		  exit (EXIT_SUCCESS))
>  strong_alias (__pthread_exit, pthread_exit);
> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
> index 73935f8be4..5734e21bd9 100644
> --- a/nptl/nptl-init.c
> +++ b/nptl/nptl-init.c
> @@ -103,7 +103,6 @@ static const struct pthread_functions pthread_functions =
>      .ptr___pthread_cond_wait_2_0 = __pthread_cond_wait_2_0,
>      .ptr___pthread_cond_timedwait_2_0 = __pthread_cond_timedwait_2_0,
>  # endif
> -    .ptr_pthread_equal = __pthread_equal,
>      .ptr___pthread_exit = __pthread_exit,
>      .ptr_pthread_getschedparam = __pthread_getschedparam,
>      .ptr_pthread_setschedparam = __pthread_setschedparam,
> diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
> index cd5e94d1a6..edb42d341b 100644
> --- a/sysdeps/nptl/pthread-functions.h
> +++ b/sysdeps/nptl/pthread-functions.h
> @@ -64,7 +64,6 @@ struct pthread_functions
>    int (*ptr___pthread_cond_timedwait_2_0) (pthread_cond_2_0_t *,
>  					   pthread_mutex_t *,
>  					   const struct timespec *);
> -  int (*ptr_pthread_equal) (pthread_t, pthread_t);
>    void (*ptr___pthread_exit) (void *) __attribute__ ((__noreturn__));
>    int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);
>    int (*ptr_pthread_setschedparam) (pthread_t, int,
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 48c8e956bf..3c06f7a7c2 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -114,7 +114,6 @@ GLIBC_2.17 pthread_condattr_setclock F
>  GLIBC_2.17 pthread_condattr_setpshared F
>  GLIBC_2.17 pthread_create F
>  GLIBC_2.17 pthread_detach F
> -GLIBC_2.17 pthread_equal F
>  GLIBC_2.17 pthread_exit F
>  GLIBC_2.17 pthread_getaffinity_np F
>  GLIBC_2.17 pthread_getattr_np F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index d1912b159c..de3c561502 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
> diff --git a/sysdeps/unix/sysv/linux/arm/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/libpthread.abilist
> index 23d6f91363..a11a84ea4d 100644
> --- a/sysdeps/unix/sysv/linux/arm/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/libpthread.abilist
> @@ -148,7 +148,6 @@ GLIBC_2.4 pthread_condattr_setclock F
>  GLIBC_2.4 pthread_condattr_setpshared F
>  GLIBC_2.4 pthread_create F
>  GLIBC_2.4 pthread_detach F
> -GLIBC_2.4 pthread_equal F
>  GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
>  GLIBC_2.4 pthread_getattr_np F
> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 52373fc287..d95aa8cc9d 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -122,7 +122,6 @@ GLIBC_2.29 pthread_condattr_setclock F
>  GLIBC_2.29 pthread_condattr_setpshared F
>  GLIBC_2.29 pthread_create F
>  GLIBC_2.29 pthread_detach F
> -GLIBC_2.29 pthread_equal F
>  GLIBC_2.29 pthread_exit F
>  GLIBC_2.29 pthread_getaffinity_np F
>  GLIBC_2.29 pthread_getattr_default_np F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 71ff910bfd..eef00dc1cc 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
> -GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index e30d05dbb7..2f85c3370d 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 0104488fda..e219379f57 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
> -GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 23d6f91363..a11a84ea4d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -148,7 +148,6 @@ GLIBC_2.4 pthread_condattr_setclock F
>  GLIBC_2.4 pthread_condattr_setpshared F
>  GLIBC_2.4 pthread_create F
>  GLIBC_2.4 pthread_detach F
> -GLIBC_2.4 pthread_equal F
>  GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
>  GLIBC_2.4 pthread_getattr_np F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index e30d05dbb7..2f85c3370d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
> index 2e55810b02..25a9b489f3 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
> @@ -114,7 +114,6 @@ GLIBC_2.18 pthread_condattr_setclock F
>  GLIBC_2.18 pthread_condattr_setpshared F
>  GLIBC_2.18 pthread_create F
>  GLIBC_2.18 pthread_detach F
> -GLIBC_2.18 pthread_equal F
>  GLIBC_2.18 pthread_exit F
>  GLIBC_2.18 pthread_getaffinity_np F
>  GLIBC_2.18 pthread_getattr_default_np F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 9aea7a96e9..9c5562fe8a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 9aea7a96e9..9c5562fe8a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 0150ea362a..666b7884b9 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -114,7 +114,6 @@ GLIBC_2.21 pthread_condattr_setclock F
>  GLIBC_2.21 pthread_condattr_setpshared F
>  GLIBC_2.21 pthread_create F
>  GLIBC_2.21 pthread_detach F
> -GLIBC_2.21 pthread_equal F
>  GLIBC_2.21 pthread_exit F
>  GLIBC_2.21 pthread_getaffinity_np F
>  GLIBC_2.21 pthread_getattr_default_np F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index e958dc3233..91be3af8be 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index ae1ffd1ac9..214b155741 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -132,7 +132,6 @@ GLIBC_2.3 pthread_condattr_init F
>  GLIBC_2.3 pthread_condattr_setpshared F
>  GLIBC_2.3 pthread_create F
>  GLIBC_2.3 pthread_detach F
> -GLIBC_2.3 pthread_equal F
>  GLIBC_2.3 pthread_exit F
>  GLIBC_2.3 pthread_getattr_np F
>  GLIBC_2.3 pthread_getconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 48c8e956bf..3c06f7a7c2 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -114,7 +114,6 @@ GLIBC_2.17 pthread_condattr_setclock F
>  GLIBC_2.17 pthread_condattr_setpshared F
>  GLIBC_2.17 pthread_create F
>  GLIBC_2.17 pthread_detach F
> -GLIBC_2.17 pthread_equal F
>  GLIBC_2.17 pthread_exit F
>  GLIBC_2.17 pthread_getaffinity_np F
>  GLIBC_2.17 pthread_getattr_np F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 7dab4e5139..6255250e19 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.27 pthread_condattr_setclock F
>  GLIBC_2.27 pthread_condattr_setpshared F
>  GLIBC_2.27 pthread_create F
>  GLIBC_2.27 pthread_detach F
> -GLIBC_2.27 pthread_equal F
>  GLIBC_2.27 pthread_exit F
>  GLIBC_2.27 pthread_getaffinity_np F
>  GLIBC_2.27 pthread_getattr_default_np F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 841d8ef42e..03b2f218bd 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index ff3441c8ce..dd35404615 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -113,7 +113,6 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
> -GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/sh/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/libpthread.abilist
> index 71ff910bfd..eef00dc1cc 100644
> --- a/sysdeps/unix/sysv/linux/sh/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
> -GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index d1912b159c..de3c561502 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 0104488fda..e219379f57 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
> -GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 297fec9686..90510bbf2c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.2.5 pthread_condattr_init F
>  GLIBC_2.2.5 pthread_condattr_setpshared F
>  GLIBC_2.2.5 pthread_create F
>  GLIBC_2.2.5 pthread_detach F
> -GLIBC_2.2.5 pthread_equal F
>  GLIBC_2.2.5 pthread_exit F
>  GLIBC_2.2.5 pthread_getattr_np F
>  GLIBC_2.2.5 pthread_getconcurrency F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 1d04e63423..8ca9d90b71 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -114,7 +114,6 @@ GLIBC_2.16 pthread_condattr_setclock F
>  GLIBC_2.16 pthread_condattr_setpshared F
>  GLIBC_2.16 pthread_create F
>  GLIBC_2.16 pthread_detach F
> -GLIBC_2.16 pthread_equal F
>  GLIBC_2.16 pthread_exit F
>  GLIBC_2.16 pthread_getaffinity_np F
>  GLIBC_2.16 pthread_getattr_np F
>
  
Florian Weimer Aug. 13, 2019, 8:18 p.m. UTC | #2
* Adhemerval Zanella:

> On 13/08/2019 12:58, Florian Weimer wrote:
>> Tested on x86_64-linux-gnu and i686-linux-gnu, and compile-tested using
>> build-many-glibcs.py.  No regressions related to this change.
>
> What is the motivation for this change? Simplify the internal libc
> stubs?

We only need one implementation.  The indirection from libc to
libpthread is completely unnecessary.

My goal is to get rid of the forwarders than do not depend on internal
libpthread state fairly quickly, and then move the rest once the
__libc_single_threaded flag has been around for a while (so that
applications do not have to use pthread_create or something else for
guiding optimization of atomics).

Where appropriate, the remaining implementations should have fast
paths which avoid atomics.  The old approach, where the libpthread
implementations do not have fast paths and the libc implementations do
not use atomics, fail to optimize the rather common case of
single-threaded processes that load libpthread via a library
dependency.  We also have subtle bugs because process-shared mutexes
cannot be locked and unlocked properly unless the program is linked
against libpthread, but nothing actually enforces that if the mutexes
are created by a different process.
  
Zack Weinberg Aug. 13, 2019, 8:23 p.m. UTC | #3
On Tue, Aug 13, 2019 at 4:18 PM Florian Weimer <fw@deneb.enyo.de> wrote:
> My goal is to get rid of the forwarders than do not depend on internal
> libpthread state fairly quickly, and then move the rest once the
> __libc_single_threaded flag has been around for a while (so that
> applications do not have to use pthread_create or something else for
> guiding optimization of atomics).

FYI, I did some work on this last year, but I never posted the
patches, because I discovered that a complete job would be easier if
we first merged Adhemerval's cancellation overhaul.  That's still
waiting for review, right?  We should really get that done _anyway_...

zw
  
Florian Weimer Aug. 14, 2019, 8:44 a.m. UTC | #4
* Zack Weinberg:

> On Tue, Aug 13, 2019 at 4:18 PM Florian Weimer <fw@deneb.enyo.de> wrote:
>> My goal is to get rid of the forwarders than do not depend on internal
>> libpthread state fairly quickly, and then move the rest once the
>> __libc_single_threaded flag has been around for a while (so that
>> applications do not have to use pthread_create or something else for
>> guiding optimization of atomics).
>
> FYI, I did some work on this last year, but I never posted the
> patches, because I discovered that a complete job would be easier if
> we first merged Adhemerval's cancellation overhaul.

I think there isn't an inherent dependency, just fewer textual changes
as the result.

> That's still waiting for review, right?  We should really get that
> done _anyway_...

I can try to review it this cycle.

Thanks,
Florian
  
Adhemerval Zanella Netto Aug. 14, 2019, 8:08 p.m. UTC | #5
On 14/08/2019 05:44, Florian Weimer wrote:
> * Zack Weinberg:
> 
>> On Tue, Aug 13, 2019 at 4:18 PM Florian Weimer <fw@deneb.enyo.de> wrote:
>>> My goal is to get rid of the forwarders than do not depend on internal
>>> libpthread state fairly quickly, and then move the rest once the
>>> __libc_single_threaded flag has been around for a while (so that
>>> applications do not have to use pthread_create or something else for
>>> guiding optimization of atomics).
>>
>> FYI, I did some work on this last year, but I never posted the
>> patches, because I discovered that a complete job would be easier if
>> we first merged Adhemerval's cancellation overhaul.
> 
> I think there isn't an inherent dependency, just fewer textual changes
> as the result.
> 
>> That's still waiting for review, right?  We should really get that
>> done _anyway_...
> 
> I can try to review it this cycle.

I plan to push the sigcontext.h [1], this simplifies the code to parse
the program counter from the signal handler on all architectures. It
is a large patch unfortunately, however it is mainly a refactor so it
should be easier to get some review.

I have been working on BZ#12683 sporadically and do hope we could finally
make it upstream for next release. I tested it on more architectures 
recently (ia64, s390, sh4, mips), narrowing down some missing bits and 
in overall I think it is on good shape. The only architectures I haven't 
actually tested are csky, microblaze, nios2, and riscv.

[1] https://sourceware.org/ml/libc-alpha/2019-08/msg00025.html
  
Adhemerval Zanella Netto Aug. 14, 2019, 8:25 p.m. UTC | #6
On 13/08/2019 12:58, Florian Weimer wrote:
> Tested on x86_64-linux-gnu and i686-linux-gnu, and compile-tested using
> build-many-glibcs.py.  No regressions related to this change.
> 
> Thanks,
> Florian
> 
> 2019-08-13  Florian Weimer  <fweimer@redhat.com>
> 
> 	nptl: Move pthread_equal implementation into libc.
> 	* nptl/Makefile (routines): Add pthread_equal.
> 	* nptl/forward.c (pthread_equal): Remove definition.
> 	* nptl/nptl-init.c (pthread_functions): Remove initializer for
> 	ptr_pthread_equal.
> 	* sysdeps/nptl/pthread-functions.h (struct pthread_functions):
> 	Remove ptr_pthread_equal member.
> 	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17):
> 	Remove pthread_equal.
> 	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.4):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> 	(GLIBC_2.4): Likewise.
> 	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
> 	(GLIBC_2.18): Likewise.
> 	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> 	(GLIBC_2.3): Likewise.
> 	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> 	(GLIBC_2.17): Likewise.
> 	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> 	(GLIBC_2.27): Likewise.
> 	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> 	(GLIBC_2.2): Likewise.
> 	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.2):
> 	Likewise.
> 	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> 	(GLIBC_2.0): Likewise.
> 	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> 	(GLIBC_2.2): Likewise.
> 	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> 	(GLIBC_2.2.5): Likewise.
> 	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> 	(GLIBC_2.16): Likewise.

LGTM, thanks.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

> 
> diff --git a/nptl/Makefile b/nptl/Makefile
> index 0567e77a79..e66b115562 100644
> --- a/nptl/Makefile
> +++ b/nptl/Makefile
> @@ -30,7 +30,7 @@ extra-libs-others := $(extra-libs)
>  routines = alloca_cutoff forward libc-lowlevellock libc-cancellation \
>  	   libc-cleanup libc_pthread_init libc_multiple_threads \
>  	   register-atfork pthread_atfork pthread_self thrd_current \
> -	   thrd_equal thrd_sleep thrd_yield
> +	   thrd_equal thrd_sleep thrd_yield pthread_equal
>  shared-only-routines = forward
>  static-only-routines = pthread_atfork
>  

Ok. Can we also move compat-pthread_self to libc?

> @@ -50,7 +50,7 @@ libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
>  		      pthread_create pthread_exit pthread_detach \
>  		      pthread_join pthread_tryjoin pthread_timedjoin \
>  		      pthread_join_common \
> -		      compat-pthread_self pthread_equal pthread_yield \
> +		      compat-pthread_self pthread_yield \
>  		      pthread_getconcurrency pthread_setconcurrency \
>  		      pthread_getschedparam pthread_setschedparam \
>  		      pthread_setschedprio \
Ok

> diff --git a/nptl/forward.c b/nptl/forward.c
> index ed1e7d0350..3ec9a46078 100644
> --- a/nptl/forward.c
> +++ b/nptl/forward.c
> @@ -166,10 +166,6 @@ versioned_symbol (libc, __pthread_cond_timedwait, pthread_cond_timedwait,
>  		  GLIBC_2_3_2);
>  
>  
> -FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
> -	 (thread1, thread2), 1)
> -
> -
>  FORWARD_NORETURN (__pthread_exit, void, (void *retval), (retval),
>  		  exit (EXIT_SUCCESS))
>  strong_alias (__pthread_exit, pthread_exit);

Ok.

> diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
> index 73935f8be4..5734e21bd9 100644
> --- a/nptl/nptl-init.c
> +++ b/nptl/nptl-init.c
> @@ -103,7 +103,6 @@ static const struct pthread_functions pthread_functions =
>      .ptr___pthread_cond_wait_2_0 = __pthread_cond_wait_2_0,
>      .ptr___pthread_cond_timedwait_2_0 = __pthread_cond_timedwait_2_0,
>  # endif
> -    .ptr_pthread_equal = __pthread_equal,
>      .ptr___pthread_exit = __pthread_exit,
>      .ptr_pthread_getschedparam = __pthread_getschedparam,
>      .ptr_pthread_setschedparam = __pthread_setschedparam,

Ok.

> diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
> index cd5e94d1a6..edb42d341b 100644
> --- a/sysdeps/nptl/pthread-functions.h
> +++ b/sysdeps/nptl/pthread-functions.h
> @@ -64,7 +64,6 @@ struct pthread_functions
>    int (*ptr___pthread_cond_timedwait_2_0) (pthread_cond_2_0_t *,
>  					   pthread_mutex_t *,
>  					   const struct timespec *);
> -  int (*ptr_pthread_equal) (pthread_t, pthread_t);
>    void (*ptr___pthread_exit) (void *) __attribute__ ((__noreturn__));
>    int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);
>    int (*ptr_pthread_setschedparam) (pthread_t, int,

Ok.

> diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> index 48c8e956bf..3c06f7a7c2 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
> @@ -114,7 +114,6 @@ GLIBC_2.17 pthread_condattr_setclock F
>  GLIBC_2.17 pthread_condattr_setpshared F
>  GLIBC_2.17 pthread_create F
>  GLIBC_2.17 pthread_detach F
> -GLIBC_2.17 pthread_equal F
>  GLIBC_2.17 pthread_exit F
>  GLIBC_2.17 pthread_getaffinity_np F
>  GLIBC_2.17 pthread_getattr_np F

Ok, I should be safe now with f0b2132b35248c1.

> diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> index d1912b159c..de3c561502 100644
> --- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/arm/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/libpthread.abilist
> index 23d6f91363..a11a84ea4d 100644
> --- a/sysdeps/unix/sysv/linux/arm/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/arm/libpthread.abilist
> @@ -148,7 +148,6 @@ GLIBC_2.4 pthread_condattr_setclock F
>  GLIBC_2.4 pthread_condattr_setpshared F
>  GLIBC_2.4 pthread_create F
>  GLIBC_2.4 pthread_detach F
> -GLIBC_2.4 pthread_equal F
>  GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
>  GLIBC_2.4 pthread_getattr_np F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> index 52373fc287..d95aa8cc9d 100644
> --- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
> @@ -122,7 +122,6 @@ GLIBC_2.29 pthread_condattr_setclock F
>  GLIBC_2.29 pthread_condattr_setpshared F
>  GLIBC_2.29 pthread_create F
>  GLIBC_2.29 pthread_detach F
> -GLIBC_2.29 pthread_equal F
>  GLIBC_2.29 pthread_exit F
>  GLIBC_2.29 pthread_getaffinity_np F
>  GLIBC_2.29 pthread_getattr_default_np F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> index 71ff910bfd..eef00dc1cc 100644
> --- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
> -GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> index e30d05dbb7..2f85c3370d 100644
> --- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> index 0104488fda..e219379f57 100644
> --- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
> -GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> index 23d6f91363..a11a84ea4d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
> @@ -148,7 +148,6 @@ GLIBC_2.4 pthread_condattr_setclock F
>  GLIBC_2.4 pthread_condattr_setpshared F
>  GLIBC_2.4 pthread_create F
>  GLIBC_2.4 pthread_detach F
> -GLIBC_2.4 pthread_equal F
>  GLIBC_2.4 pthread_exit F
>  GLIBC_2.4 pthread_getaffinity_np F
>  GLIBC_2.4 pthread_getattr_np F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> index e30d05dbb7..2f85c3370d 100644
> --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
> index 2e55810b02..25a9b489f3 100644
> --- a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
> @@ -114,7 +114,6 @@ GLIBC_2.18 pthread_condattr_setclock F
>  GLIBC_2.18 pthread_condattr_setpshared F
>  GLIBC_2.18 pthread_create F
>  GLIBC_2.18 pthread_detach F
> -GLIBC_2.18 pthread_equal F
>  GLIBC_2.18 pthread_exit F
>  GLIBC_2.18 pthread_getaffinity_np F
>  GLIBC_2.18 pthread_getattr_default_np F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> index 9aea7a96e9..9c5562fe8a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> index 9aea7a96e9..9c5562fe8a 100644
> --- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> index 0150ea362a..666b7884b9 100644
> --- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
> @@ -114,7 +114,6 @@ GLIBC_2.21 pthread_condattr_setclock F
>  GLIBC_2.21 pthread_condattr_setpshared F
>  GLIBC_2.21 pthread_create F
>  GLIBC_2.21 pthread_detach F
> -GLIBC_2.21 pthread_equal F
>  GLIBC_2.21 pthread_exit F
>  GLIBC_2.21 pthread_getaffinity_np F
>  GLIBC_2.21 pthread_getattr_default_np F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> index e958dc3233..91be3af8be 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> index ae1ffd1ac9..214b155741 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
> @@ -132,7 +132,6 @@ GLIBC_2.3 pthread_condattr_init F
>  GLIBC_2.3 pthread_condattr_setpshared F
>  GLIBC_2.3 pthread_create F
>  GLIBC_2.3 pthread_detach F
> -GLIBC_2.3 pthread_equal F
>  GLIBC_2.3 pthread_exit F
>  GLIBC_2.3 pthread_getattr_np F
>  GLIBC_2.3 pthread_getconcurrency F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> index 48c8e956bf..3c06f7a7c2 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
> @@ -114,7 +114,6 @@ GLIBC_2.17 pthread_condattr_setclock F
>  GLIBC_2.17 pthread_condattr_setpshared F
>  GLIBC_2.17 pthread_create F
>  GLIBC_2.17 pthread_detach F
> -GLIBC_2.17 pthread_equal F
>  GLIBC_2.17 pthread_exit F
>  GLIBC_2.17 pthread_getaffinity_np F
>  GLIBC_2.17 pthread_getattr_np F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> index 7dab4e5139..6255250e19 100644
> --- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.27 pthread_condattr_setclock F
>  GLIBC_2.27 pthread_condattr_setpshared F
>  GLIBC_2.27 pthread_create F
>  GLIBC_2.27 pthread_detach F
> -GLIBC_2.27 pthread_equal F
>  GLIBC_2.27 pthread_exit F
>  GLIBC_2.27 pthread_getaffinity_np F
>  GLIBC_2.27 pthread_getattr_default_np F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> index 841d8ef42e..03b2f218bd 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> index ff3441c8ce..dd35404615 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
> @@ -113,7 +113,6 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
> -GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/sh/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/libpthread.abilist
> index 71ff910bfd..eef00dc1cc 100644
> --- a/sysdeps/unix/sysv/linux/sh/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sh/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
> -GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> index d1912b159c..de3c561502 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
> @@ -69,7 +69,6 @@ GLIBC_2.0 pthread_condattr_destroy F
>  GLIBC_2.0 pthread_condattr_init F
>  GLIBC_2.0 pthread_create F
>  GLIBC_2.0 pthread_detach F
> -GLIBC_2.0 pthread_equal F
>  GLIBC_2.0 pthread_exit F
>  GLIBC_2.0 pthread_getschedparam F
>  GLIBC_2.0 pthread_getspecific F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> index 0104488fda..e219379f57 100644
> --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.2 pthread_condattr_init F
>  GLIBC_2.2 pthread_condattr_setpshared F
>  GLIBC_2.2 pthread_create F
>  GLIBC_2.2 pthread_detach F
> -GLIBC_2.2 pthread_equal F
>  GLIBC_2.2 pthread_exit F
>  GLIBC_2.2 pthread_getconcurrency F
>  GLIBC_2.2 pthread_getcpuclockid F
Ok.

> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> index 297fec9686..90510bbf2c 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
> @@ -111,7 +111,6 @@ GLIBC_2.2.5 pthread_condattr_init F
>  GLIBC_2.2.5 pthread_condattr_setpshared F
>  GLIBC_2.2.5 pthread_create F
>  GLIBC_2.2.5 pthread_detach F
> -GLIBC_2.2.5 pthread_equal F
>  GLIBC_2.2.5 pthread_exit F
>  GLIBC_2.2.5 pthread_getattr_np F
>  GLIBC_2.2.5 pthread_getconcurrency F

Ok.

> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> index 1d04e63423..8ca9d90b71 100644
> --- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
> @@ -114,7 +114,6 @@ GLIBC_2.16 pthread_condattr_setclock F
>  GLIBC_2.16 pthread_condattr_setpshared F
>  GLIBC_2.16 pthread_create F
>  GLIBC_2.16 pthread_detach F
> -GLIBC_2.16 pthread_equal F
>  GLIBC_2.16 pthread_exit F
>  GLIBC_2.16 pthread_getaffinity_np F
>  GLIBC_2.16 pthread_getattr_np F
> 

Ok.
  
Florian Weimer Aug. 14, 2019, 8:31 p.m. UTC | #7
* Adhemerval Zanella:

>> diff --git a/nptl/Makefile b/nptl/Makefile
>> index 0567e77a79..e66b115562 100644
>> --- a/nptl/Makefile
>> +++ b/nptl/Makefile
>> @@ -30,7 +30,7 @@ extra-libs-others := $(extra-libs)
>>  routines = alloca_cutoff forward libc-lowlevellock libc-cancellation \
>>  	   libc-cleanup libc_pthread_init libc_multiple_threads \
>>  	   register-atfork pthread_atfork pthread_self thrd_current \
>> -	   thrd_equal thrd_sleep thrd_yield
>> +	   thrd_equal thrd_sleep thrd_yield pthread_equal
>>  shared-only-routines = forward
>>  static-only-routines = pthread_atfork
>>  
>
> Ok. Can we also move compat-pthread_self to libc?

Yes, the compat symbol is no longer needed, now that the loader no
longer requires matching sonames.  I had forgotten about that; I will
prepare a patch as well.

I suppose it's better to send many small patches for these cleanups,
rather than one large patch.

Thanks,
Florian
  

Patch

diff --git a/nptl/Makefile b/nptl/Makefile
index 0567e77a79..e66b115562 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -30,7 +30,7 @@  extra-libs-others := $(extra-libs)
 routines = alloca_cutoff forward libc-lowlevellock libc-cancellation \
 	   libc-cleanup libc_pthread_init libc_multiple_threads \
 	   register-atfork pthread_atfork pthread_self thrd_current \
-	   thrd_equal thrd_sleep thrd_yield
+	   thrd_equal thrd_sleep thrd_yield pthread_equal
 shared-only-routines = forward
 static-only-routines = pthread_atfork
 
@@ -50,7 +50,7 @@  libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
 		      pthread_create pthread_exit pthread_detach \
 		      pthread_join pthread_tryjoin pthread_timedjoin \
 		      pthread_join_common \
-		      compat-pthread_self pthread_equal pthread_yield \
+		      compat-pthread_self pthread_yield \
 		      pthread_getconcurrency pthread_setconcurrency \
 		      pthread_getschedparam pthread_setschedparam \
 		      pthread_setschedprio \
diff --git a/nptl/forward.c b/nptl/forward.c
index ed1e7d0350..3ec9a46078 100644
--- a/nptl/forward.c
+++ b/nptl/forward.c
@@ -166,10 +166,6 @@  versioned_symbol (libc, __pthread_cond_timedwait, pthread_cond_timedwait,
 		  GLIBC_2_3_2);
 
 
-FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
-	 (thread1, thread2), 1)
-
-
 FORWARD_NORETURN (__pthread_exit, void, (void *retval), (retval),
 		  exit (EXIT_SUCCESS))
 strong_alias (__pthread_exit, pthread_exit);
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 73935f8be4..5734e21bd9 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -103,7 +103,6 @@  static const struct pthread_functions pthread_functions =
     .ptr___pthread_cond_wait_2_0 = __pthread_cond_wait_2_0,
     .ptr___pthread_cond_timedwait_2_0 = __pthread_cond_timedwait_2_0,
 # endif
-    .ptr_pthread_equal = __pthread_equal,
     .ptr___pthread_exit = __pthread_exit,
     .ptr_pthread_getschedparam = __pthread_getschedparam,
     .ptr_pthread_setschedparam = __pthread_setschedparam,
diff --git a/sysdeps/nptl/pthread-functions.h b/sysdeps/nptl/pthread-functions.h
index cd5e94d1a6..edb42d341b 100644
--- a/sysdeps/nptl/pthread-functions.h
+++ b/sysdeps/nptl/pthread-functions.h
@@ -64,7 +64,6 @@  struct pthread_functions
   int (*ptr___pthread_cond_timedwait_2_0) (pthread_cond_2_0_t *,
 					   pthread_mutex_t *,
 					   const struct timespec *);
-  int (*ptr_pthread_equal) (pthread_t, pthread_t);
   void (*ptr___pthread_exit) (void *) __attribute__ ((__noreturn__));
   int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);
   int (*ptr_pthread_setschedparam) (pthread_t, int,
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 48c8e956bf..3c06f7a7c2 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -114,7 +114,6 @@  GLIBC_2.17 pthread_condattr_setclock F
 GLIBC_2.17 pthread_condattr_setpshared F
 GLIBC_2.17 pthread_create F
 GLIBC_2.17 pthread_detach F
-GLIBC_2.17 pthread_equal F
 GLIBC_2.17 pthread_exit F
 GLIBC_2.17 pthread_getaffinity_np F
 GLIBC_2.17 pthread_getattr_np F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index d1912b159c..de3c561502 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
diff --git a/sysdeps/unix/sysv/linux/arm/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/libpthread.abilist
index 23d6f91363..a11a84ea4d 100644
--- a/sysdeps/unix/sysv/linux/arm/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/libpthread.abilist
@@ -148,7 +148,6 @@  GLIBC_2.4 pthread_condattr_setclock F
 GLIBC_2.4 pthread_condattr_setpshared F
 GLIBC_2.4 pthread_create F
 GLIBC_2.4 pthread_detach F
-GLIBC_2.4 pthread_equal F
 GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
 GLIBC_2.4 pthread_getattr_np F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 52373fc287..d95aa8cc9d 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -122,7 +122,6 @@  GLIBC_2.29 pthread_condattr_setclock F
 GLIBC_2.29 pthread_condattr_setpshared F
 GLIBC_2.29 pthread_create F
 GLIBC_2.29 pthread_detach F
-GLIBC_2.29 pthread_equal F
 GLIBC_2.29 pthread_exit F
 GLIBC_2.29 pthread_getaffinity_np F
 GLIBC_2.29 pthread_getattr_default_np F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index 71ff910bfd..eef00dc1cc 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -111,7 +111,6 @@  GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
-GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index e30d05dbb7..2f85c3370d 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 0104488fda..e219379f57 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -111,7 +111,6 @@  GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
-GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 23d6f91363..a11a84ea4d 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -148,7 +148,6 @@  GLIBC_2.4 pthread_condattr_setclock F
 GLIBC_2.4 pthread_condattr_setpshared F
 GLIBC_2.4 pthread_create F
 GLIBC_2.4 pthread_detach F
-GLIBC_2.4 pthread_equal F
 GLIBC_2.4 pthread_exit F
 GLIBC_2.4 pthread_getaffinity_np F
 GLIBC_2.4 pthread_getattr_np F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index e30d05dbb7..2f85c3370d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
diff --git a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
index 2e55810b02..25a9b489f3 100644
--- a/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
@@ -114,7 +114,6 @@  GLIBC_2.18 pthread_condattr_setclock F
 GLIBC_2.18 pthread_condattr_setpshared F
 GLIBC_2.18 pthread_create F
 GLIBC_2.18 pthread_detach F
-GLIBC_2.18 pthread_equal F
 GLIBC_2.18 pthread_exit F
 GLIBC_2.18 pthread_getaffinity_np F
 GLIBC_2.18 pthread_getattr_default_np F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 9aea7a96e9..9c5562fe8a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 9aea7a96e9..9c5562fe8a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 0150ea362a..666b7884b9 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -114,7 +114,6 @@  GLIBC_2.21 pthread_condattr_setclock F
 GLIBC_2.21 pthread_condattr_setpshared F
 GLIBC_2.21 pthread_create F
 GLIBC_2.21 pthread_detach F
-GLIBC_2.21 pthread_equal F
 GLIBC_2.21 pthread_exit F
 GLIBC_2.21 pthread_getaffinity_np F
 GLIBC_2.21 pthread_getattr_default_np F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index e958dc3233..91be3af8be 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index ae1ffd1ac9..214b155741 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -132,7 +132,6 @@  GLIBC_2.3 pthread_condattr_init F
 GLIBC_2.3 pthread_condattr_setpshared F
 GLIBC_2.3 pthread_create F
 GLIBC_2.3 pthread_detach F
-GLIBC_2.3 pthread_equal F
 GLIBC_2.3 pthread_exit F
 GLIBC_2.3 pthread_getattr_np F
 GLIBC_2.3 pthread_getconcurrency F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 48c8e956bf..3c06f7a7c2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -114,7 +114,6 @@  GLIBC_2.17 pthread_condattr_setclock F
 GLIBC_2.17 pthread_condattr_setpshared F
 GLIBC_2.17 pthread_create F
 GLIBC_2.17 pthread_detach F
-GLIBC_2.17 pthread_equal F
 GLIBC_2.17 pthread_exit F
 GLIBC_2.17 pthread_getaffinity_np F
 GLIBC_2.17 pthread_getattr_np F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 7dab4e5139..6255250e19 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -111,7 +111,6 @@  GLIBC_2.27 pthread_condattr_setclock F
 GLIBC_2.27 pthread_condattr_setpshared F
 GLIBC_2.27 pthread_create F
 GLIBC_2.27 pthread_detach F
-GLIBC_2.27 pthread_equal F
 GLIBC_2.27 pthread_exit F
 GLIBC_2.27 pthread_getaffinity_np F
 GLIBC_2.27 pthread_getattr_default_np F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index 841d8ef42e..03b2f218bd 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index ff3441c8ce..dd35404615 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -113,7 +113,6 @@  GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
-GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/sh/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/libpthread.abilist
index 71ff910bfd..eef00dc1cc 100644
--- a/sysdeps/unix/sysv/linux/sh/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/libpthread.abilist
@@ -111,7 +111,6 @@  GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
-GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index d1912b159c..de3c561502 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -69,7 +69,6 @@  GLIBC_2.0 pthread_condattr_destroy F
 GLIBC_2.0 pthread_condattr_init F
 GLIBC_2.0 pthread_create F
 GLIBC_2.0 pthread_detach F
-GLIBC_2.0 pthread_equal F
 GLIBC_2.0 pthread_exit F
 GLIBC_2.0 pthread_getschedparam F
 GLIBC_2.0 pthread_getspecific F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 0104488fda..e219379f57 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -111,7 +111,6 @@  GLIBC_2.2 pthread_condattr_init F
 GLIBC_2.2 pthread_condattr_setpshared F
 GLIBC_2.2 pthread_create F
 GLIBC_2.2 pthread_detach F
-GLIBC_2.2 pthread_equal F
 GLIBC_2.2 pthread_exit F
 GLIBC_2.2 pthread_getconcurrency F
 GLIBC_2.2 pthread_getcpuclockid F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index 297fec9686..90510bbf2c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -111,7 +111,6 @@  GLIBC_2.2.5 pthread_condattr_init F
 GLIBC_2.2.5 pthread_condattr_setpshared F
 GLIBC_2.2.5 pthread_create F
 GLIBC_2.2.5 pthread_detach F
-GLIBC_2.2.5 pthread_equal F
 GLIBC_2.2.5 pthread_exit F
 GLIBC_2.2.5 pthread_getattr_np F
 GLIBC_2.2.5 pthread_getconcurrency F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 1d04e63423..8ca9d90b71 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -114,7 +114,6 @@  GLIBC_2.16 pthread_condattr_setclock F
 GLIBC_2.16 pthread_condattr_setpshared F
 GLIBC_2.16 pthread_create F
 GLIBC_2.16 pthread_detach F
-GLIBC_2.16 pthread_equal F
 GLIBC_2.16 pthread_exit F
 GLIBC_2.16 pthread_getaffinity_np F
 GLIBC_2.16 pthread_getattr_np F