This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[glibc/azanella/master-posix_clock] (25 commits) nptl: Remove futex_supports_exact_relative_timeouts


The branch 'azanella/master-posix_clock' was updated to point to:

 a53662b... nptl: Remove futex_supports_exact_relative_timeouts

It previously pointed to:

 b3a2751... nptl: Remove futex_supports_exact_relative_timeouts

Diff:

!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------

  b3a2751... nptl: Remove futex_supports_exact_relative_timeouts
  8606260... Update NEWS for new _clockwait and _clocklock functions
  b255589... nptl: Add POSIX-proposed pthread_mutex_clocklock
  f9921bb... nptl: Rename lll_timedlock to lll_clocklock and add clockid
  de5312f... nptl: Add POSIX-proposed pthread_rwlock_clockrdlock & pthre
  d3c69ac... nptl: pthread_rwlock: Move timeout validation into _full fu
  f3b67b5... nptl: Add POSIX-proposed pthread_cond_clockwait
  7819fd5... nptl: Add POSIX-proposed sem_clockwait
  b219b13... nptl: Add clockid parameter to futex timed wait calls

commit b3a2751462e04df5e872ffe9f66e928b93c35b8b
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 20:18:00 2019 +0000

    nptl: Remove futex_supports_exact_relative_timeouts
    
    The only implementation of futex_supports_exact_relative_timeouts always
    returns true. Let's remove it and all its callers.
    
    	* nptl/pthread_cond_wait.c: (__pthread_cond_clockwait): Remove code
    	that is only useful if futex_supports_exact_relative_timeouts ()
    	returns false.
    	* nptl/pthread_condattr_setclock.c: (pthread_condattr_setclock):
    	Likewise.
    	* sysdeps/nptl/futex-internal.h: Remove comment about relative
    	timeouts potentially being imprecise since it's no longer true.
    	Remove declaration of futex_supports_exact_relative_timeouts.
    	* sysdeps/unix/sysv/linux/futex-internal.h: Remove implementation
    	of futex_supports_exact_relative_timeouts.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 8606260345cf12b6ee9f64bca8aa878b9ef56562
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 19:51:03 2019 +0000

    Update NEWS for new _clockwait and _clocklock functions
    
    	* NEWS: Mention recently-added pthread_cond_clockwait,
    	pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock and
    	sem_clockwait functions.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit b255589a78fd8f9d82b259cbfb71c65758ba755e
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 19:48:14 2019 +0000

    nptl: Add POSIX-proposed pthread_mutex_clocklock
    
    Add POSIX-proposed pthread_mutex_clocklock function that works like
    pthread_mutex_timedlock but takes a clockid parameter to measure the
    abstime parameter against.
    
    	* sysdeps/nptl/pthread.h: Add pthread_mutex_clocklock.
    	* nptl/DESIGN-systemtap-probes.txt: Likewise.
    	* nptl/pthread_mutex_timedlock.c
    	(__pthread_mutex_clocklock_common): Rename from
    	__pthread_mutex_timedlock and add clockid parameter. Pass this
    	parameter to lll_clocklock and lll_clocklock_elision in place of
    	CLOCK_REALTIME. (__pthread_mutex_clocklock): New function to add
    	LIBC_PROBE and validate clockid parameter before calling
    	__pthread_mutex_clocklock_common. (__pthread_mutex_timedlock): New
    	implementation to add LIBC_PROBE and calls
    	__pthread_mutex_clocklock_common passing CLOCK_REALTIME as the
    	clockid.
    	* nptl/Makefile: Add tst-mutex11.c.
    	* nptl/tst-abstime.c (th): Add tests for pthread_mutex_clocklock.
    	* nptl/tst-mutex11.c: New tests for passing invalid and unsupported
    	clockid parameters to pthread_mutex_clocklock.
    	* nptl/tst-mutex5.c (do_test_clock): Rename from do_test and take
    	clockid parameter to indicate which clock to be used. Call
    	pthread_mutex_timedlock or pthread_mutex_clocklock as appropriate.
    	(do_test): Call do_test_clock to separately test
    	pthread_mutex_timedlock, pthread_mutex_clocklock(CLOCK_REALTIME)
    	and pthread_mutex_clocklock(CLOCK_MONOTONIC).
    	* nptl/tst-mutex9.c: Likewise.
    	* nptl/Versions (GLIBC_2.30): Add pthread_mutex_clocklock.
    	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit f9921bb0b23eec82bb7e954f80c95ce6db7f3492
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 13:08:25 2019 +0000

    nptl: Rename lll_timedlock to lll_clocklock and add clockid parameter
    
    Rename lll_timedlock to lll_clocklock and add clockid
    parameter to indicate the clock that the abstime parameter should
    be measured against in preparation for adding
    pthread_mutex_clocklock.
    
    The name change mirrors the naming for the exposed pthread functions:
    
     timed => absolute timeout measured against CLOCK_REALTIME (or clock
              specified by attribute in the case of pthread_cond_timedwait.)
    
     clock => absolute timeout measured against clock specified in preceding
              parameter.
    
    	* sysdeps/nptl/lowlevellock.h (lll_clocklock): Rename from
    	lll_timedlock and add clockid parameter. (__lll_clocklock): Rename
    	from __lll_timedlock and add clockid parameter.
    	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_clocklock):
    	Likewise.
    	* nptl/lll_timedlock_wait.c (__lll_clocklock_wait): Rename from
    	__lll_timedlock_wait and add clockid parameter. Use __clock_gettime
    	rather than __gettimeofday so that clockid can be used. This means
    	that conversion from struct timeval is no longer required.
    	* sysdeps/sparc/sparc32/lowlevellock.c (lll_clocklock_wait):
    	Likewise.
    	* sysdeps/sparc/sparc32/lll_timedlock_wait.c: Update comment to
    	refer to __lll_clocklock_wait rather than __lll_timedlock_wait.
    	* nptl/pthread_mutex_timedlock.c (lll_clocklock_elision): Rename
    	from lll_timedlock_elision, add clockid parameter and use
    	meaningful names for other parameters. (__pthread_mutex_timedlock):
    	Pass CLOCK_REALTIME where necessary to lll_clocklock and
    	lll_clocklock_elision.
    	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
    	(lll_clocklock_elision): Rename from lll_timedlock_elision and add
    	clockid parameter. (__lll_clocklock_elision): Rename from
    	__lll_timedlock_elision and add clockid parameter.
    	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
    	* sysdeps/unix/sysv/linux/x86/lowlevellock.h: Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/elision-timed.c
    	(__lll_lock_elision): Call __lll_clocklock_elision rather than
    	__lll_timedlock_elision. (EXTRAARG): Add clockid parameter.
    	(LLL_LOCK): Likewise.
    	* sysdeps/unix/sysv/linux/s390/elision-timed.c: Likewise.
    	* sysdeps/unix/sysv/linux/x86/elision-timed.c: Likewise.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit de5312fcba049ced881c76fd61ff181822892a66
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 13:05:27 2019 +0000

    nptl: Add POSIX-proposed pthread_rwlock_clockrdlock & pthread_rwlock_clockwrlock
    
    Add:
     int pthread_rwlock_clockrdlock (pthread_rwlock_t *rwlock,
                                     clockid_t clockid,
                                     const struct timespec *abstime)
    and:
     int pthread_rwlock_clockwrlock (pthread_rwlock_t *rwlock,
                                     clockid_t clockid,
                                     const struct timespec *abstime)
    
    which behave like pthread_rwlock_timedrdlock and
    pthread_rwlock_timedwrlock respectively, except they always measure
    abstime against the supplied clockid. The functions currently support
    CLOCK_REALTIME and CLOCK_MONOTONIC and return EINVAL if any other
    clock is specified.
    
    	* sysdeps/nptl/pthread.h: Add pthread_rwlock_clockrdlock and
    	pthread_wrlock_clockwrlock.
    	* nptl/Makefile: Build pthread_rwlock_clockrdlock.c and
    	pthread_rwlock_clockwrlock.c.
    	* nptl/pthread_rwlock_clockrdlock.c: Implement
    	pthread_rwlock_clockrdlock.
    	* nptl/pthread_rwlock_clockwrlock.c: Implement
    	pthread_rwlock_clockwrlock.
    	* nptl/pthread_rwlock_common.c (__pthread_rwlock_rdlock_full): Add
    	clockid parameter and verify that it indicates a supported clock on
    	entry so that we fail even if it doesn't end up being used. Pass
    	that clock on to futex_abstimed_wait when necessary.
    	(__pthread_rwlock_wrlock_full): Likewise.
    	* nptl/pthread_rwlock_rdlock.c: (__pthread_rwlock_rdlock): Pass
    	CLOCK_REALTIME to __pthread_rwlock_rdlock_full even though it won't
    	be used because there's no timeout.
    	* nptl/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Pass
    	CLOCK_REALTIME to __pthread_rwlock_wrlock_full even though it won't
    	be used because there is no timeout.
    	* nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
    	Pass CLOCK_REALTIME to __pthread_rwlock_rdlock_full since abstime
    	uses that clock.
    	* nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
    	Pass CLOCK_REALTIME to __pthread_rwlock_wrlock_full since abstime
    	uses that clock.
    	* sysdeps/mach/hurd/i386/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* nptl/tst-abstime.c (th): Add pthread_rwlock_clockrdlock and
    	pthread_rwlock_clockwrlock timeout tests to match the existing
    	pthread_rwlock_timedrdloock and pthread_rwlock_timedwrlock tests.
    	* nptl/tst-rwlock14.c (do_test): Likewise.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit d3c69ac2aa929b766433f2d13bf1cb6a6ab36b7a
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 12:39:02 2019 +0000

    nptl: pthread_rwlock: Move timeout validation into _full functions
    
    As recommended by the comments in the implementations of
    pthread_rwlock_timedrdlock and pthread_rwlock_timedwrlock, let's move
    the timeout validity checks into the corresponding pthread_rwlock_rdlock_full
    and pthread_rwlock_wrlock_full functions. Since these functions may be
    called with abstime == NULL, an extra check for that is necessary too.
    
    	* nptl/pthread_rwlock_common.c (__pthread_rwlock_rdlock_full):
    	Check validity of abstime parameter.
    	(__pthread_rwlock_rwlock_full): Likewise.
    	* nptl/pthread_rwlock_timedrdlock.c
    	* (pthread_rwlock_timedrdlock):
    	Remove check for validity of abstime parameter.
    	* nptl/pthread_rwlock_timedwrlock.c
    	* (pthread_rwlock_timedwrlock):
    	Likewise.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit f3b67b506f521deda907242ed659371b51014caf
Author: Mike Crowe <mac@mcrowe.com>
Date:   Fri Jun 21 17:36:56 2019 +0000

    nptl: Add POSIX-proposed pthread_cond_clockwait
    
    Add:
    
     int pthread_cond_clockwait (pthread_cond_t *cond,
                                 pthread_mutex_t *mutex,
                                 clockid_t clockid,
                                 const struct timespec *abstime)
    
    which behaves just like pthread_cond_timedwait except it always measures
    abstime against the supplied clockid. Currently supports CLOCK_REALTIME
    and
    CLOCK_MONOTONIC and returns EINVAL if any other clock is specified.
    
    Includes feedback from many others. This function was originally
    proposed[1] as pthread_cond_timedwaitonclock_np, but The Austin Group
    preferred the new name.
    
    	* nptl/Makefile: Add tst-cond26 and tst-cond27
    	* nptl/Versions (GLIBC_2.30): Add pthread_cond_clockwait
    	* sysdeps/nptl/pthread.h: Likewise
    	* nptl/forward.c: Add __pthread_cond_clockwait
    	* nptl/forward.c: Likewise
    	* nptl/pthreadP.h: Likewise
    	* sysdeps/nptl/pthread-functions.h: Likewise
    	* nptl/pthread_cond_wait.c (__pthread_cond_wait_common): Add
    	clockid parameter and comment describing why we don't need to
    	check
    	its value. Use that value when calling
    	futex_abstimed_wait_cancelable rather than reading the clock
    	from
    	the flags. (__pthread_cond_wait): Pass unused clockid parameter.
    	(__pthread_cond_timedwait): Read clock from flags and pass it to
    	__pthread_cond_wait_common. (__pthread_cond_clockwait): Add new
    	function with weak alias from pthread_cond_clockwait.
    	* sysdeps/mach/hurd/i386/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
    	* (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* nptl/tst-cond11.c (run_test): Support testing
    	pthread_cond_clockwait too by using a special magic
    	CLOCK_USE_ATTR_CLOCK value to determine whether to call
    	pthread_cond_timedwait or pthread_cond_clockwait. (do_test):
    	Pass
    	CLOCK_USE_ATTR_CLOCK for existing tests, and add new tests using
    	all combinations of CLOCK_MONOTONIC and CLOCK_REALTIME.
    	* ntpl/tst-cond26.c: New test for passing unsupported and
    	* invalid
    	clocks to pthread_cond_clockwait.
    	* nptl/tst-cond27.c: Add test similar to tst-cond5.c, but using
    	struct timespec and pthread_cond_clockwait.
    	* manual/threads.texi: Document pthread_cond_clockwait. The
    	* comment
    	was provided by Carlos O'Donell.
    
    [1] https://sourceware.org/ml/libc-alpha/2015-07/msg00193.html
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 7819fd5423d0ac4eac5ee46a7980ff27ebb9fd6c
Author: Mike Crowe <mac@mcrowe.com>
Date:   Fri Jun 21 15:57:41 2019 +0000

    nptl: Add POSIX-proposed sem_clockwait
    
    Add:
    
     int sem_clockwait (sem_t *sem, clockid_t clock, const struct timespec
    *abstime)
    
    which behaves just like sem_timedwait, but measures abstime against the
    specified clock. Currently supports CLOCK_REALTIME and CLOCK_MONOTONIC
    and sets errno == EINVAL if any other clock is specified.
    
    	* nptl/sem_waitcommon.c (do_futex_wait, __new_sem_wait_slow): Add
    	clockid parameters to indicate the clock which abstime should be
    	measured against.
    	* nptl/sem_timedwait.c (sem_timedwait), nptl/sem_wait.c
    	(__new_sem_wait): Pass CLOCK_REALTIME as clockid to
    	__new_sem_wait_slow.
    	* nptl/sem_clockwait.c: New file to implement sem_clockwait based
    	on sem_timedwait.c.
    	* nptl/Makefile: Add sem_clockwait.c source file. Add CFLAGS for
    	sem_clockwait.c to match those used for sem_timedwait.c.
    	* sysdeps/pthread/semaphore.h: Add sem_clockwait.
    	* nptl/Versions (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* nptl/tst-sem17.c: Add new test for passing invalid clock to
    	sem_clockwait.
    	* nptl/tst-sem13.c, nptl/tst-sem5.c: Modify existing sem_timedwait
    	tests to also test sem_clockwait.
    	* manual/threads.texi: Document sem_clockwait.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit b219b13118a6b0bbdd1fc76fe956f0748ce43684
Author: Mike Crowe <mac@mcrowe.com>
Date:   Fri Jun 21 14:53:40 2019 +0000

    nptl: Add clockid parameter to futex timed wait calls
    
    In preparation for adding POSIX clockwait variants of timedwait functions,
    add a clockid_t parameter to futex_abstimed_wait functions and pass
    CLOCK_REALTIME from all callers for the time being.
    
    Replace lll_futex_timed_wait_bitset with lll_futex_clock_wait_bitset
    which takes a clockid_t parameter rather than the magic clockbit.
    
    	* sysdeps/nptl/lowlevellock-futex.h,
    	sysdeps/unix/sysv/linux/lowlevellock-futex.h: Replace
    	lll_futex_timed_wait_bitset with lll_futex_clock_wait_bitset that
    	takes a clockid rather than a special clockbit.
    	* sysdeps/nptl/lowlevellock-futex.h: Add
    	lll_futex_supported_clockid so that client functions can check
    	whether their clockid parameter is valid even if they don't
    	ultimately end up calling lll_futex_clock_wait_bitset.
    	* sysdeps/nptl/futex-internal.h,
    	sysdeps/unix/sysv/linux/futex-internal.h
    	(futex_abstimed_wait, futex_abstimed_wait_cancelable): Add
    	clockid_t parameter to indicate which clock the absolute time
    	passed should be measured against. Pass that clockid onto
    	lll_futex_clock_wait_bitset. Add invalid clock as reason for
    	returning -EINVAL.
    	* sysdeps/nptl/futex-internal.h,
    	sysdeps/unix/sysv/linux/futex-internal.h: Introduce
    	futex_abstimed_supported_clockid so that client functions can check
    	whether their clockid parameter is valid even if they don't
    	ultimately end up calling futex_abstimed_wait.
    	* nptl/pthread_cond_wait.c (__pthread_cond_wait_common): Remove
    	code to calculate relative timeout for
    	__PTHREAD_COND_CLOCK_MONOTONIC_MASK and just pass CLOCK_MONOTONIC
    	or CLOCK_REALTIME as required to futex_abstimed_wait_cancelable.
    	* nptl/pthread_rwlock_common (__pthread_rwlock_rdlock_full)
    	(__pthread_wrlock_full), nptl/sem_waitcommon (do_futex_wait): Pass
    	additional CLOCK_REALTIME to futex_abstimed_wait_cancelable.
    	* nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock):
    	Switch to lll_futex_clock_wait_bitset and pass CLOCK_REALTIME
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>


Summary of changes (added commits):
-----------------------------------

  a53662b... nptl: Remove futex_supports_exact_relative_timeouts
  6df32fd... Update NEWS for new _clockwait and _clocklock functions
  5be4cd5... nptl: Add POSIX-proposed pthread_mutex_clocklock
  75c3aae... nptl: Rename lll_timedlock to lll_clocklock and add clockid
  97e3833... nptl: Add POSIX-proposed pthread_rwlock_clockrdlock & pthre
  fd0f159... nptl: pthread_rwlock: Move timeout validation into _full fu
  9224e6c... nptl: Add POSIX-proposed pthread_cond_clockwait
  dc031e4... nptl: Add POSIX-proposed sem_clockwait
  5a830d1... nptl: Add clockid parameter to futex timed wait calls
  41d6f74... nptl: Remove vfork IFUNC-based forwarder from libpthread [B
  27cec9a... malloc: Add nptl, htl dependency for the subdirectory [BZ #
  d1bc2cb... Fix build warnings in resolv/res_send.c
  72edea8... build-many-glibcs.py: Add v4t variant for arm-linux-gnueabi
  d0093c5... Call _dl_open_check after relocation [BZ #24259]
  3db85a9... powerpc: Use faster means to access FPSCR when possible in 
  d064591... Further improve string bench timing
  afe23eb... Bump up the runtime for "short" benchmarks
  507f55c... Linux: Use mmap instead of malloc in dirent/tst-getdents64
  589787f... Replace PREPARE_VERSION macro with inline function
  f0b2132... ld.so: Support moving versioned symbols between sonames [BZ
  17432d7... support: Add xdlvsym function
  5a659cc... io: Remove copy_file_range emulation [BZ #24744]
  1626f49... Prepare vfprintf to use __printf_fp/__printf_fphex with flo
  a620bd7... Linux: Adjust gedents64 buffer size to int range [BZ #24740
  d039da1... x86: Add sysdeps/x86/dl-lookupcfg.h

commit a53662bcb25094bfb79507585af8972f3b6d789f
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 20:18:00 2019 +0000

    nptl: Remove futex_supports_exact_relative_timeouts
    
    The only implementation of futex_supports_exact_relative_timeouts always
    returns true. Let's remove it and all its callers.
    
    	* nptl/pthread_cond_wait.c: (__pthread_cond_clockwait): Remove code
    	that is only useful if futex_supports_exact_relative_timeouts ()
    	returns false.
    	* nptl/pthread_condattr_setclock.c: (pthread_condattr_setclock):
    	Likewise.
    	* sysdeps/nptl/futex-internal.h: Remove comment about relative
    	timeouts potentially being imprecise since it's no longer true.
    	Remove declaration of futex_supports_exact_relative_timeouts.
    	* sysdeps/unix/sysv/linux/futex-internal.h: Remove implementation
    	of futex_supports_exact_relative_timeouts.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 6df32fd016ae8d6e39fbbc3a7fa40b1b608142a3
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 19:51:03 2019 +0000

    Update NEWS for new _clockwait and _clocklock functions
    
    	* NEWS: Mention recently-added pthread_cond_clockwait,
    	pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock and
    	sem_clockwait functions.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 5be4cd5c6c2e81cf4d7a8bd9c1ec78cd4b906bf0
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 19:48:14 2019 +0000

    nptl: Add POSIX-proposed pthread_mutex_clocklock
    
    Add POSIX-proposed pthread_mutex_clocklock function that works like
    pthread_mutex_timedlock but takes a clockid parameter to measure the
    abstime parameter against.
    
    	* sysdeps/nptl/pthread.h: Add pthread_mutex_clocklock.
    	* nptl/DESIGN-systemtap-probes.txt: Likewise.
    	* nptl/pthread_mutex_timedlock.c
    	(__pthread_mutex_clocklock_common): Rename from
    	__pthread_mutex_timedlock and add clockid parameter. Pass this
    	parameter to lll_clocklock and lll_clocklock_elision in place of
    	CLOCK_REALTIME. (__pthread_mutex_clocklock): New function to add
    	LIBC_PROBE and validate clockid parameter before calling
    	__pthread_mutex_clocklock_common. (__pthread_mutex_timedlock): New
    	implementation to add LIBC_PROBE and calls
    	__pthread_mutex_clocklock_common passing CLOCK_REALTIME as the
    	clockid.
    	* nptl/Makefile: Add tst-mutex11.c.
    	* nptl/tst-abstime.c (th): Add tests for pthread_mutex_clocklock.
    	* nptl/tst-mutex11.c: New tests for passing invalid and unsupported
    	clockid parameters to pthread_mutex_clocklock.
    	* nptl/tst-mutex5.c (do_test_clock): Rename from do_test and take
    	clockid parameter to indicate which clock to be used. Call
    	pthread_mutex_timedlock or pthread_mutex_clocklock as appropriate.
    	(do_test): Call do_test_clock to separately test
    	pthread_mutex_timedlock, pthread_mutex_clocklock(CLOCK_REALTIME)
    	and pthread_mutex_clocklock(CLOCK_MONOTONIC).
    	* nptl/tst-mutex9.c: Likewise.
    	* nptl/Versions (GLIBC_2.30): Add pthread_mutex_clocklock.
    	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30):
    	Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 75c3aaefcd72e75548d7d46eeefeae0c318e9322
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 13:08:25 2019 +0000

    nptl: Rename lll_timedlock to lll_clocklock and add clockid parameter
    
    Rename lll_timedlock to lll_clocklock and add clockid
    parameter to indicate the clock that the abstime parameter should
    be measured against in preparation for adding
    pthread_mutex_clocklock.
    
    The name change mirrors the naming for the exposed pthread functions:
    
     timed => absolute timeout measured against CLOCK_REALTIME (or clock
              specified by attribute in the case of pthread_cond_timedwait.)
    
     clock => absolute timeout measured against clock specified in preceding
              parameter.
    
    	* sysdeps/nptl/lowlevellock.h (lll_clocklock): Rename from
    	lll_timedlock and add clockid parameter. (__lll_clocklock): Rename
    	from __lll_timedlock and add clockid parameter.
    	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_clocklock):
    	Likewise.
    	* nptl/lll_timedlock_wait.c (__lll_clocklock_wait): Rename from
    	__lll_timedlock_wait and add clockid parameter. Use __clock_gettime
    	rather than __gettimeofday so that clockid can be used. This means
    	that conversion from struct timeval is no longer required.
    	* sysdeps/sparc/sparc32/lowlevellock.c (lll_clocklock_wait):
    	Likewise.
    	* sysdeps/sparc/sparc32/lll_timedlock_wait.c: Update comment to
    	refer to __lll_clocklock_wait rather than __lll_timedlock_wait.
    	* nptl/pthread_mutex_timedlock.c (lll_clocklock_elision): Rename
    	from lll_timedlock_elision, add clockid parameter and use
    	meaningful names for other parameters. (__pthread_mutex_timedlock):
    	Pass CLOCK_REALTIME where necessary to lll_clocklock and
    	lll_clocklock_elision.
    	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
    	(lll_clocklock_elision): Rename from lll_timedlock_elision and add
    	clockid parameter. (__lll_clocklock_elision): Rename from
    	__lll_timedlock_elision and add clockid parameter.
    	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
    	* sysdeps/unix/sysv/linux/x86/lowlevellock.h: Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/elision-timed.c
    	(__lll_lock_elision): Call __lll_clocklock_elision rather than
    	__lll_timedlock_elision. (EXTRAARG): Add clockid parameter.
    	(LLL_LOCK): Likewise.
    	* sysdeps/unix/sysv/linux/s390/elision-timed.c: Likewise.
    	* sysdeps/unix/sysv/linux/x86/elision-timed.c: Likewise.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 97e3833081ced7b0b73837648ad79737a9c4b1f0
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 13:05:27 2019 +0000

    nptl: Add POSIX-proposed pthread_rwlock_clockrdlock & pthread_rwlock_clockwrlock
    
    Add:
     int pthread_rwlock_clockrdlock (pthread_rwlock_t *rwlock,
                                     clockid_t clockid,
                                     const struct timespec *abstime)
    and:
     int pthread_rwlock_clockwrlock (pthread_rwlock_t *rwlock,
                                     clockid_t clockid,
                                     const struct timespec *abstime)
    
    which behave like pthread_rwlock_timedrdlock and
    pthread_rwlock_timedwrlock respectively, except they always measure
    abstime against the supplied clockid. The functions currently support
    CLOCK_REALTIME and CLOCK_MONOTONIC and return EINVAL if any other
    clock is specified.
    
    	* sysdeps/nptl/pthread.h: Add pthread_rwlock_clockrdlock and
    	pthread_wrlock_clockwrlock.
    	* nptl/Makefile: Build pthread_rwlock_clockrdlock.c and
    	pthread_rwlock_clockwrlock.c.
    	* nptl/pthread_rwlock_clockrdlock.c: Implement
    	pthread_rwlock_clockrdlock.
    	* nptl/pthread_rwlock_clockwrlock.c: Implement
    	pthread_rwlock_clockwrlock.
    	* nptl/pthread_rwlock_common.c (__pthread_rwlock_rdlock_full): Add
    	clockid parameter and verify that it indicates a supported clock on
    	entry so that we fail even if it doesn't end up being used. Pass
    	that clock on to futex_abstimed_wait when necessary.
    	(__pthread_rwlock_wrlock_full): Likewise.
    	* nptl/pthread_rwlock_rdlock.c: (__pthread_rwlock_rdlock): Pass
    	CLOCK_REALTIME to __pthread_rwlock_rdlock_full even though it won't
    	be used because there's no timeout.
    	* nptl/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Pass
    	CLOCK_REALTIME to __pthread_rwlock_wrlock_full even though it won't
    	be used because there is no timeout.
    	* nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
    	Pass CLOCK_REALTIME to __pthread_rwlock_rdlock_full since abstime
    	uses that clock.
    	* nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
    	Pass CLOCK_REALTIME to __pthread_rwlock_wrlock_full since abstime
    	uses that clock.
    	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* nptl/tst-abstime.c (th): Add pthread_rwlock_clockrdlock and
    	pthread_rwlock_clockwrlock timeout tests to match the existing
    	pthread_rwlock_timedrdloock and pthread_rwlock_timedwrlock tests.
    	* nptl/tst-rwlock14.c (do_test): Likewise.
    	* nptl/tst-rwlock6.c Invent verbose_printf macro, and use for
    	ancillary output throughout. (tf): Accept thread_args structure so
    	that rwlock, a clockid and function name can be passed to the
    	thread. (do_test_clock): Rename from do_test. Accept clockid
    	parameter to specify test clock. Use the magic clockid value of
    	CLOCK_USE_TIMEDLOCK to indicate that pthread_rwlock_timedrdlock and
    	pthread_rwlock_timedwrlock should be tested, otherwise pass the
    	specified clockid to pthread_rwlock_clockrdlock and
    	pthread_rwlock_clockwrlock. Use xpthread_create and xpthread_join.
    	(do_test): Call do_test_clock to test each clockid in turn.
    	* nptl/tst-rwlock7.c: Likewise.
    	* nptl/tst-rwlock9.c (writer_thread, reader_thread): Accept
    	thread_args structure so that the (now int) thread number, the
    	clockid and the function name can be passed to the thread.
    	(do_test_clock): Renamed from do_test. Pass the necessary
    	thread_args when creating the reader and writer threads. Use
    	xpthread_create and xpthread_join.
    	(do_test): Call do_test_clock to test each clockid in turn.
    	* manual/threads.texi: Add documentation for
    	pthread_rwlock_clockrdlock and pthread_rwlock_clockwrclock.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit fd0f15914edab6a2c5f780f70079965df4d00f54
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 12:39:02 2019 +0000

    nptl: pthread_rwlock: Move timeout validation into _full functions
    
    As recommended by the comments in the implementations of
    pthread_rwlock_timedrdlock and pthread_rwlock_timedwrlock, let's move
    the timeout validity checks into the corresponding pthread_rwlock_rdlock_full
    and pthread_rwlock_wrlock_full functions. Since these functions may be
    called with abstime == NULL, an extra check for that is necessary too.
    
    	* nptl/pthread_rwlock_common.c (__pthread_rwlock_rdlock_full):
    	Check validity of abstime parameter.
    	(__pthread_rwlock_rwlock_full): Likewise.
    	* nptl/pthread_rwlock_timedrdlock.c
    	* (pthread_rwlock_timedrdlock):
    	Remove check for validity of abstime parameter.
    	* nptl/pthread_rwlock_timedwrlock.c
    	* (pthread_rwlock_timedwrlock):
    	Likewise.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 9224e6cc464fa7df55d72c25bd2ed46e285edd50
Author: Mike Crowe <mac@mcrowe.com>
Date:   Fri Jun 21 17:36:56 2019 +0000

    nptl: Add POSIX-proposed pthread_cond_clockwait
    
    Add:
    
     int pthread_cond_clockwait (pthread_cond_t *cond,
                                 pthread_mutex_t *mutex,
                                 clockid_t clockid,
                                 const struct timespec *abstime)
    
    which behaves just like pthread_cond_timedwait except it always measures
    abstime against the supplied clockid. Currently supports CLOCK_REALTIME
    and
    CLOCK_MONOTONIC and returns EINVAL if any other clock is specified.
    
    Includes feedback from many others. This function was originally
    proposed[1] as pthread_cond_timedwaitonclock_np, but The Austin Group
    preferred the new name.
    
    	* nptl/Makefile: Add tst-cond26 and tst-cond27
    	* nptl/Versions (GLIBC_2.30): Add pthread_cond_clockwait
    	* sysdeps/nptl/pthread.h: Likewise
    	* nptl/forward.c: Add __pthread_cond_clockwait
    	* nptl/forward.c: Likewise
    	* nptl/pthreadP.h: Likewise
    	* sysdeps/nptl/pthread-functions.h: Likewise
    	* nptl/pthread_cond_wait.c (__pthread_cond_wait_common): Add
    	clockid parameter and comment describing why we don't need to
    	check
    	its value. Use that value when calling
    	futex_abstimed_wait_cancelable rather than reading the clock
    	from
    	the flags. (__pthread_cond_wait): Pass unused clockid parameter.
    	(__pthread_cond_timedwait): Read clock from flags and pass it to
    	__pthread_cond_wait_common. (__pthread_cond_clockwait): Add new
    	function with weak alias from pthread_cond_clockwait.
    	* sysdeps/mach/hurd/i386/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
    	* (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30):
    	* Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* nptl/tst-cond11.c (run_test): Support testing
    	pthread_cond_clockwait too by using a special magic
    	CLOCK_USE_ATTR_CLOCK value to determine whether to call
    	pthread_cond_timedwait or pthread_cond_clockwait. (do_test):
    	Pass
    	CLOCK_USE_ATTR_CLOCK for existing tests, and add new tests using
    	all combinations of CLOCK_MONOTONIC and CLOCK_REALTIME.
    	* ntpl/tst-cond26.c: New test for passing unsupported and
    	* invalid
    	clocks to pthread_cond_clockwait.
    	* nptl/tst-cond27.c: Add test similar to tst-cond5.c, but using
    	struct timespec and pthread_cond_clockwait.
    	* manual/threads.texi: Document pthread_cond_clockwait. The
    	* comment
    	was provided by Carlos O'Donell.
    
    [1] https://sourceware.org/ml/libc-alpha/2015-07/msg00193.html
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit dc031e4504dabfffe472c4e3b8fbe8ea81b28076
Author: Mike Crowe <mac@mcrowe.com>
Date:   Fri Jun 21 15:57:41 2019 +0000

    nptl: Add POSIX-proposed sem_clockwait
    
    Add:
    
     int sem_clockwait (sem_t *sem, clockid_t clock, const struct timespec
    *abstime)
    
    which behaves just like sem_timedwait, but measures abstime against the
    specified clock. Currently supports CLOCK_REALTIME and CLOCK_MONOTONIC
    and sets errno == EINVAL if any other clock is specified.
    
    	* nptl/sem_waitcommon.c (do_futex_wait, __new_sem_wait_slow): Add
    	clockid parameters to indicate the clock which abstime should be
    	measured against.
    	* nptl/sem_timedwait.c (sem_timedwait), nptl/sem_wait.c
    	(__new_sem_wait): Pass CLOCK_REALTIME as clockid to
    	__new_sem_wait_slow.
    	* nptl/sem_clockwait.c: New file to implement sem_clockwait based
    	on sem_timedwait.c.
    	* nptl/Makefile: Add sem_clockwait.c source file. Add CFLAGS for
    	sem_clockwait.c to match those used for sem_timedwait.c.
    	* sysdeps/pthread/semaphore.h: Add sem_clockwait.
    	* nptl/Versions (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
    	(GLIBC_2.30): Likewise.
    	* nptl/tst-sem17.c: Add new test for passing invalid clock to
    	sem_clockwait.
    	* nptl/tst-sem13.c, nptl/tst-sem5.c: Modify existing sem_timedwait
    	tests to also test sem_clockwait.
    	* manual/threads.texi: Document sem_clockwait.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 5a830d13df8f2a9688bbcdf3b5a0e4e89dd91883
Author: Mike Crowe <mac@mcrowe.com>
Date:   Fri Jun 21 14:53:40 2019 +0000

    nptl: Add clockid parameter to futex timed wait calls
    
    In preparation for adding POSIX clockwait variants of timedwait functions,
    add a clockid_t parameter to futex_abstimed_wait functions and pass
    CLOCK_REALTIME from all callers for the time being.
    
    Replace lll_futex_timed_wait_bitset with lll_futex_clock_wait_bitset
    which takes a clockid_t parameter rather than the magic clockbit.
    
    	* sysdeps/nptl/lowlevellock-futex.h,
    	sysdeps/unix/sysv/linux/lowlevellock-futex.h: Replace
    	lll_futex_timed_wait_bitset with lll_futex_clock_wait_bitset that
    	takes a clockid rather than a special clockbit.
    	* sysdeps/nptl/lowlevellock-futex.h: Add
    	lll_futex_supported_clockid so that client functions can check
    	whether their clockid parameter is valid even if they don't
    	ultimately end up calling lll_futex_clock_wait_bitset.
    	* sysdeps/nptl/futex-internal.h,
    	sysdeps/unix/sysv/linux/futex-internal.h
    	(futex_abstimed_wait, futex_abstimed_wait_cancelable): Add
    	clockid_t parameter to indicate which clock the absolute time
    	passed should be measured against. Pass that clockid onto
    	lll_futex_clock_wait_bitset. Add invalid clock as reason for
    	returning -EINVAL.
    	* sysdeps/nptl/futex-internal.h,
    	sysdeps/unix/sysv/linux/futex-internal.h: Introduce
    	futex_abstimed_supported_clockid so that client functions can check
    	whether their clockid parameter is valid even if they don't
    	ultimately end up calling futex_abstimed_wait.
    	* nptl/pthread_cond_wait.c (__pthread_cond_wait_common): Remove
    	code to calculate relative timeout for
    	__PTHREAD_COND_CLOCK_MONOTONIC_MASK and just pass CLOCK_MONOTONIC
    	or CLOCK_REALTIME as required to futex_abstimed_wait_cancelable.
    	* nptl/pthread_rwlock_common (__pthread_rwlock_rdlock_full)
    	(__pthread_wrlock_full), nptl/sem_waitcommon (do_futex_wait): Pass
    	additional CLOCK_REALTIME to futex_abstimed_wait_cancelable.
    	* nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock):
    	Switch to lll_futex_clock_wait_bitset and pass CLOCK_REALTIME
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 41d6f74e6cb6a92ab428c11ee1e408b2a16aa1b0
Author: Florian Weimer <fweimer@redhat.com>
Date:   Tue Jul 2 15:12:20 2019 +0200

    nptl: Remove vfork IFUNC-based forwarder from libpthread [BZ #20188]
    
    With commit f0b2132b35248c1f4a80f62a2c38cddcc802aa8c ("ld.so:
    Support moving versioned symbols between sonames [BZ #24741]"), the
    dynamic linker will find the definition of vfork in libc and binds
    a vfork reference to that symbol, even if the soname in the version
    reference says that the symbol should be located in libpthread.
    
    As a result, the forwarder (whether it's IFUNC-based or a duplicate
    of the libc implementation) is no longer necessary.
    
    On older architectures, a placeholder symbol is required, to make sure
    that the GLIBC_2.1.2 symbol version does not go away, or is turned in
    to a weak symbol definition by the link editor.  (The symbol version
    needs to preserved so that the symbol coverage check in
    elf/dl-version.c does not fail for old binaries.)
    
    mips32 is an outlier: It defined __vfork@@GLIBC_2.2, but the
    baseline is GLIBC_2.0.  Since there are other @@GLIBC_2.2 symbols,
    the placeholder symbol is not needed there.

commit 27cec9aed97447dff887a88f4241604fffd8c525
Author: Florian Weimer <fweimer@redhat.com>
Date:   Tue Jul 2 16:45:52 2019 +0200

    malloc: Add nptl, htl dependency for the subdirectory [BZ #24757]
    
    memusagestat may indirectly link against libpthread.  The built
    libpthread should be used, but that is only possible if it has been
    built before the malloc programs.

commit d1bc2cbbed9aea2017ef941f63c8786571da5b4f
Author: Stefan Liebler <stli@linux.ibm.com>
Date:   Tue Jul 2 14:07:44 2019 +0200

    Fix build warnings in resolv/res_send.c
    
    This patch fixes the gcc warnings seen with gcc 9 -march>=z13 on s390x:
    res_send.c: In function â??__res_context_sendâ??:
    res_send.c:498:7: error: â??resplenâ?? may be used uninitialized in this function [-Werror=maybe-uninitialized]
      498 |    if (n == 0 && (buf2 == NULL || *resplen2 == 0))
          |       ^
    
    In this case send_vc is inlined into __res_context_send
    and the maybe uninitialized resplen belongs to the one in send_vc.
    
    In send_vc there is already a DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized")
    and a comment which explains that this is a false-positive.
    Note that resplen is used as return value.
    
    This patch adds a further DIAG_IGNORE_NEEDS_COMMENT around the declaration of n
    in __res_context_send and the comparison after n was set to the return value of send_vc.
    
    ChangeLog:
    
    	* resolv/res_send.c (__res_context_send): Disable maybe-uninitialized
    	warning.

commit 72edea80c1bb402f41d8bca58c835abf46dadd48
Author: Florian Weimer <fweimer@redhat.com>
Date:   Tue Jul 2 13:14:58 2019 +0200

    build-many-glibcs.py: Add v4t variant for arm-linux-gnueabi

commit d0093c5cefb7f7a4143f3bb03743633823229cc6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Jul 1 12:23:10 2019 -0700

    Call _dl_open_check after relocation [BZ #24259]
    
    This is a workaround for [BZ #20839] which doesn't remove the NODELETE
    object when _dl_open_check throws an exception.  Move it after relocation
    in dl_open_worker to avoid leaving the NODELETE object mapped without
    relocation.
    
    	[BZ #24259]
    	* elf/dl-open.c (dl_open_worker): Call _dl_open_check after
    	relocation.
    	* sysdeps/x86/Makefile (tests): Add tst-cet-legacy-5a,
    	tst-cet-legacy-5b, tst-cet-legacy-6a and tst-cet-legacy-6b.
    	(modules-names): Add tst-cet-legacy-mod-5a, tst-cet-legacy-mod-5b,
    	tst-cet-legacy-mod-5c, tst-cet-legacy-mod-6a, tst-cet-legacy-mod-6b
    	and tst-cet-legacy-mod-6c.
    	(CFLAGS-tst-cet-legacy-5a.c): New.
    	(CFLAGS-tst-cet-legacy-5b.c): Likewise.
    	(CFLAGS-tst-cet-legacy-mod-5a.c): Likewise.
    	(CFLAGS-tst-cet-legacy-mod-5b.c): Likewise.
    	(CFLAGS-tst-cet-legacy-mod-5c.c): Likewise.
    	(CFLAGS-tst-cet-legacy-6a.c): Likewise.
    	(CFLAGS-tst-cet-legacy-6b.c): Likewise.
    	(CFLAGS-tst-cet-legacy-mod-6a.c): Likewise.
    	(CFLAGS-tst-cet-legacy-mod-6b.c): Likewise.
    	(CFLAGS-tst-cet-legacy-mod-6c.c): Likewise.
    	($(objpfx)tst-cet-legacy-5a): Likewise.
    	($(objpfx)tst-cet-legacy-5a.out): Likewise.
    	($(objpfx)tst-cet-legacy-mod-5a.so): Likewise.
    	($(objpfx)tst-cet-legacy-mod-5b.so): Likewise.
    	($(objpfx)tst-cet-legacy-5b): Likewise.
    	($(objpfx)tst-cet-legacy-5b.out): Likewise.
    	(tst-cet-legacy-5b-ENV): Likewise.
    	($(objpfx)tst-cet-legacy-6a): Likewise.
    	($(objpfx)tst-cet-legacy-6a.out): Likewise.
    	($(objpfx)tst-cet-legacy-mod-6a.so): Likewise.
    	($(objpfx)tst-cet-legacy-mod-6b.so): Likewise.
    	($(objpfx)tst-cet-legacy-6b): Likewise.
    	($(objpfx)tst-cet-legacy-6b.out): Likewise.
    	(tst-cet-legacy-6b-ENV): Likewise.
    	* sysdeps/x86/tst-cet-legacy-5.c: New file.
    	* sysdeps/x86/tst-cet-legacy-5a.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-5b.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-6.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-6a.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-6b.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-mod-5.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-mod-5a.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-mod-5b.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-mod-5c.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-mod-6.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-mod-6a.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-mod-6b.c: Likewise.
    	* sysdeps/x86/tst-cet-legacy-mod-6c.c: Likewise.

commit 3db85a9814784a74536a1f0e7b7ddbfef7dc84bb
Author: Paul A. Clarke <pc@us.ibm.com>
Date:   Thu Jun 20 11:57:18 2019 -0500

    powerpc: Use faster means to access FPSCR when possible in some cases
    
    Using 'mffs' instruction to read the Floating Point Status Control Register
    (FPSCR) can force a processor flush in some cases, with undesirable
    performance impact.  If the values of the bits in the FPSCR which force the
    flush are not needed, an instruction that is new to POWER9 (ISA version 3.0),
    'mffsl' can be used instead.
    
    Cases included:  get_rounding_mode, fegetround, fegetmode, fegetexcept.
    
    	* sysdeps/powerpc/bits/fenvinline.h (__fegetround): Use
    	__fegetround_ISA300() or __fegetround_ISA2() as appropriate.
    	(__fegetround_ISA300) New.
    	(__fegetround_ISA2) New.
    	* sysdeps/powerpc/fpu_control.h (IS_ISA300): New.
    	(_FPU_MFFS): Move implementation...
    	(_FPU_GETCW): Here.
    	(_FPU_MFFSL): Move implementation....
    	(_FPU_GET_RC_ISA300): Here. New.
    	(_FPU_GET_RC): Use _FPU_GET_RC_ISA300() or _FPU_GETCW() as appropriate.
    	* sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_status_ISA300): New.
    	(fegetenv_status): New.
    	* sysdeps/powerpc/fpu/fegetmode.c (fegetmode): Use fegetenv_status()
    	instead of fegetenv_register().
    	* sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Likewise.
    
    Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>

commit d064591266634a8ff55b645181167b8626c793c9
Author: Wilco Dijkstra <wdijkstr@arm.com>
Date:   Fri Jun 28 13:42:36 2019 +0100

    Further improve string bench timing
    
    Further improve the timings of the string benchmarks.  Ensure most take
    between 1 and 4 seconds to improve accuracy.  Overall time taken increases
    by 35%.  Tested on AArch64.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
    
    	* benchtests/bench-math-inlines.c: Increase iterations.
    	* benchtests/bench-memcmp.c: Likewise.
    	* benchtests/bench-rawmemchr.c: Likewise.
    	* benchtests/bench-strcmp.c: Likewise.
    	* benchtests/bench-strcpy_chk.c: Likewise.
    	* benchtests/bench-string.h (INNER_LOOP_ITERS8): Add define.
    	(INNER_LOOP_ITERS_MEDIUM): Increase iterations.
    	(INNER_LOOP_ITERS_SMALL): Likewise.
    	* benchtests/bench-strncat.c: Increase iterations.
    	* benchtests/bench-strncmp.c: Increase iterations.
    	* benchtests/bench-strncpy.c: Reduce iterations for wide strings.
    	* benchtests/bench-strrchr.c: Increase iterations.
    	* benchtests/bench-strstr.c: Keep iterations unchanged.
    	* benchtests/bench-strtod.c: Increase iterations.

commit afe23eb0f1942cb033ffdf3a338f669be4683f6c
Author: Anton Youdkevitch <anton.youdkevitch@bell-sw.com>
Date:   Fri Jun 28 13:38:07 2019 +0100

    Bump up the runtime for "short" benchmarks
    
    Some benchmarks with a very short runtime show significantly
    different results across runs on Aarch64 - up to tens of percents.
    Increasing the runtime to 100ms+ makes the deviation under 5%.
    
    Tested on Aarch64 and x86-64.
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
    
    	* benchtests/bench-memccpy.c: Replace INNER_LOOP_ITERS
    	with INNER_LOOP_ITERS_LARGE.
    	* benchtests/bench-memchr.c: Likewise.
    	* benchtests/bench-rawmemchr.c: Likewise.
    	* benchtests/bench-strcat.c: Likewise.
    	* benchtests/bench-strchr.c: Likewise.
    	* benchtests/bench-string.h: Likewise.
    	* benchtests/bench-strlen.c: Likewise.
    	* benchtests/bench-strncpy.c: Likewise.
    	* benchtests/bench-strnlen.c: Likewise.

commit 507f55c05f30c9eb80faf2546ec635c338c039eb
Author: Florian Weimer <fweimer@redhat.com>
Date:   Fri Jun 28 10:48:48 2019 +0200

    Linux: Use mmap instead of malloc in dirent/tst-getdents64
    
    malloc dirties the entire allocated memory region due to M_PERTURB
    in the test harness.

commit 589787f8894251c3b114f4ce06a89ecf2763f1b4
Author: Tobias Klauser <tklauser@distanz.ch>
Date:   Fri Jun 28 08:46:00 2019 -0300

    Replace PREPARE_VERSION macro with inline function
    
    	* sysdeps/unix/sysv/linux/dl-vdso.h (PREPARE_VERSION): Remove macro.
    	(prepare_version_base): New helper inline function.
    	(prepare_version): New macro replacing PREPARE_VERSION.
    	(PREPARE_VERSION_KNOWN): Use prepare_version instead of PREPARE_VERSION.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit f0b2132b35248c1f4a80f62a2c38cddcc802aa8c
Author: Florian Weimer <fweimer@redhat.com>
Date:   Fri Jun 28 10:12:50 2019 +0200

    ld.so: Support moving versioned symbols between sonames [BZ #24741]
    
    This change should be fully backwards-compatible because the old
    code aborted the load if a soname mismatch was encountered
    (instead of searching further for a matching symbol).  This means
    that no different symbols are found.
    
    The soname check was explicitly disabled for the skip_map != NULL
    case.  However, this only happens with dl(v)sym and RTLD_NEXT,
    and those lookups do not come with a verneed entry that could be used
    for the check.
    
    The error check was already explicitly disabled for the skip_map !=
    NULL case, that is, when dl(v)sym was called with RTLD_NEXT.  But
    _dl_vsym always sets filename in the struct r_found_version argument
    to NULL, so the check was not active anyway.  This means that
    symbol lookup results for the skip_map != NULL case do not change,
    either.

commit 17432d7150bdab3bce2ea66c70ad6c920f54077a
Author: Florian Weimer <fweimer@redhat.com>
Date:   Fri Jun 28 10:15:30 2019 +0200

    support: Add xdlvsym function

commit 5a659ccc0ec217ab02a4c273a1f6d346a359560a
Author: Florian Weimer <fweimer@redhat.com>
Date:   Fri Jun 28 09:39:21 2019 +0200

    io: Remove copy_file_range emulation [BZ #24744]
    
    The kernel is evolving this interface (e.g., removal of the
    restriction on cross-device copies), and keeping up with that
    is difficult.  Applications which need the function should
    run kernels which support the system call instead of relying on
    the imperfect glibc emulation.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 1626f499d159f17d5d99dc41497b52074f3850df
Author: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
Date:   Thu Jun 27 17:43:44 2019 -0300

    Prepare vfprintf to use __printf_fp/__printf_fphex with float128 arg
    
    On powerpc64le, long double can currently take two formats: the same as
    double (-mlong-double-64) or IBM Extended Precision (default with
    -mlong-double-128 or explicitly with -mabi=ibmlongdouble).  The internal
    implementation of printf-like functions is aware of these possibilities
    and properly parses floating-point values from the variable arguments,
    before making calls to __printf_fp and __printf_fphex.  These functions
    are also aware of the format possibilities and know how to convert both
    formats to string.
    
    When library support for TS 18661-3 was added to glibc, __printf_fp and
    __printf_fphex were extended with support for an additional type
    (__float128/_Float128) with a different format (binary128).  Now that
    powerpc64le is getting support for its third long double format, and
    taking into account that this format is the same as the format of
    __float128/_Float128, this patch extends __vfprintf_internal to properly
    call __printf_fp and __printf_fphex with this new format.
    
    Tested for powerpc64le (with additional patches to actually enable the
    use of these preparations) and for x86_64.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit a620bd7935c4b2dc94e472e62bd9a5c9434ea7b7
Author: Florian Weimer <fweimer@redhat.com>
Date:   Thu Jun 27 15:08:40 2019 +0200

    Linux: Adjust gedents64 buffer size to int range [BZ #24740]
    
    The kernel interface uses type unsigned int, but there is an
    internal conversion to int, so INT_MAX is the correct limit.
    Part of the buffer will always be unused, but this is not a
    problem.  Such huge buffers do not occur in practice anyway.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit d039da1c00e01f8d3c3d74f439a971eb73e3045e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Jun 26 15:07:18 2019 -0700

    x86: Add sysdeps/x86/dl-lookupcfg.h
    
    Since sysdeps/i386/dl-lookupcfg.h and sysdeps/x86_64/dl-lookupcfg.h are
    identical, we can replace them with sysdeps/x86/dl-lookupcfg.h.
    
    	* sysdeps/i386/dl-lookupcfg.h: Moved to ...
    	* sysdeps/x86/dl-lookupcfg.h: Here.
    	* sysdeps/x86_64/dl-lookupcfg.h: Removed.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]