aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
AgeCommit message (Collapse)AuthorFilesLines
2021-05-06nptl: Move pthread_barrier_destroy into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Move sem_trywait, sem_wait into libcFlorian Weimer61-74/+150
The symbols were moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Move sem_unlink into libcFlorian Weimer62-31/+85
The symbol was moved using scripts/move-symbol-to-libc.py. A small adjust to the sem_unlink implementation is necessary to avoid a check-localplt failure. A placeholder symbol to keep the GLIBC_2.1.1 version alive in libpthread is added with this commit. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Move sem_timedwait into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Move sem_post into libcFlorian Weimer61-37/+75
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Move sem_init into libcFlorian Weimer61-37/+75
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Move sem_getvalue into libcFlorian Weimer61-37/+75
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Move sem_destroy into libcFlorian Weimer61-37/+75
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Move sem_close, sem_open into libcFlorian Weimer64-77/+169
The symbols were moved using move-symbol-to-libc.py. Both functions are moved at the same time because they depend on internal functions in sysdeps/pthread/sem_routines.c, which are moved in this commit as well. Additional hidden prototypes are required to avoid check-localplt failures. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Move sem_clockwait into libcFlorian Weimer61-29/+91
The symbol was moved using scripts/move-symbol-to-libc.py. A new placeholder version is added at version GLIBC_2.30, to preserve that version in libpthread.so.0. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Consolidate async cancel enable/disable implementation in libcFlorian Weimer5-72/+12
Previously, the source file nptl/cancellation.c was compiled multiple times, for libc, libpthread, librt. This commit switches to a single implementation, with new __pthread_enable_asynccancel@@GLIBC_PRIVATE, __pthread_disable_asynccancel@@GLIBC_PRIVATE exports. The almost-unused CANCEL_ASYNC and CANCEL_RESET macros are replaced by LIBC_CANCEL_ASYNC and LIBC_CANCEL_ASYNC macros. They call the __pthread_* functions unconditionally now. The macros are still needed because shared code uses them; Hurd has different definitions. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05nptl: Move pthread_testcancel into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. A temporary __pthread_testcancel@@GLIBC_PRIVATE export is created because it is needed by the semaphore implementation. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-05elf, nptl: Initialize static TLS directly in ld.soFlorian Weimer1-0/+19
The stack list is available in ld.so since commit 1daccf403b1bd86370eb94edca794dc106d02039 ("nptl: Move stack list variables into _rtld_global"), so it's possible to walk the stack list directly in ld.so and perform the initialization there. This eliminates an unprotected function pointer from _rtld_global and reduces the libpthread initialization code.
2021-05-03x86: Optimize memchr-evex.SNoah Goldstein1-225/+322
No bug. This commit optimizes memchr-evex.S. The optimizations include replacing some branches with cmovcc, avoiding some branches entirely in the less_4x_vec case, making the page cross logic less strict, saving some ALU in the alignment process, and most importantly increasing ILP in the 4x loop. test-memchr, test-rawmemchr, and test-wmemchr are all passing. Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com> Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2021-05-03x86: Optimize memchr-avx2.SNoah Goldstein1-178/+247
No bug. This commit optimizes memchr-avx2.S. The optimizations include replacing some branches with cmovcc, avoiding some branches entirely in the less_4x_vec case, making the page cross logic less strict, asaving a few instructions the in loop return loop. test-memchr, test-rawmemchr, and test-wmemchr are all passing. Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com> Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2021-05-03linux: use __fd_to_filename helper function instead of snprintf.Érico Nogueira2-16/+7
Change made to fchmodat and fexecve. There are tests using xasprintf instead of this helper as well, but this commit doesn't touch them.
2021-05-03linux: Add execveat system call wrapperAlexandra Hájková34-0/+65
It operates similar to execve and it is is already used to implement fexecve without requiring /proc to be mounted. However, different than fexecve, if the syscall is not supported by the kernel an error is returned instead of trying a fallback. Checked on x86_64-linux-gnu and powerpc64le-linux-gnu. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-05-03x86: Set rep_movsb_threshold to 2112 on processors with FSRMH.J. Lu1-0/+4
The glibc memcpy benchmark on Intel Core i7-1065G7 (Ice Lake) showed that REP MOVSB became faster after 2112 bytes: Vector Move REP MOVSB length=2112, align1=0, align2=0: 24.20 24.40 length=2112, align1=1, align2=0: 26.07 23.13 length=2112, align1=0, align2=1: 27.18 28.13 length=2112, align1=1, align2=1: 26.23 25.16 length=2176, align1=0, align2=0: 23.18 22.52 length=2176, align1=2, align2=0: 25.45 22.52 length=2176, align1=0, align2=2: 27.14 27.82 length=2176, align1=2, align2=2: 22.73 25.56 length=2240, align1=0, align2=0: 24.62 24.25 length=2240, align1=3, align2=0: 29.77 27.15 length=2240, align1=0, align2=3: 35.55 29.93 length=2240, align1=3, align2=3: 34.49 25.15 length=2304, align1=0, align2=0: 34.75 26.64 length=2304, align1=4, align2=0: 32.09 22.63 length=2304, align1=0, align2=4: 28.43 31.24 Use REP MOVSB for data size > 2112 bytes in memcpy on processors with fast short REP MOVSB (FSRM). * sysdeps/x86/dl-cacheinfo.h (dl_init_cacheinfo): Set rep_movsb_threshold to 2112 on processors with fast short REP MOVSB (FSRM).
2021-05-03nptl: Move pthread_yield into libc, as a compatibility symbolFlorian Weimer62-33/+39
And deprecate it in <pthread.h>, redirecting it to sched_yield for the time being. The symbol was moved using scripts/move-symbol-to-libc.py. No GLIBC_2.34 symbol version is added because of the compatibility symbol status. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlockattr_setpshared into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlockattr_setkind_np into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlockattr_init into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlockattr_getpshared into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlockattr_getkind_np into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlockattr_destroy into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlock_trywrlock into libcFlorian Weimer62-63/+96
And __pthread_rwlock_trywrlock as a compatibility symbol. Remove the unused __libc_rwlock_trywrlock macro. The symbols were moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlock_tryrdlock into libcFlorian Weimer62-63/+96
And __pthread_rwlock_tryrdlock as a compatibility symbol. Remove the unused __libc_rwlock_tryrdlock macro. The symbols were moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlock_timedwrlock into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlock_timedrdlock into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlock_init into libcFlorian Weimer62-67/+98
And __pthread_rwlock_init as a compatibility symbol. __libc_rwlock_init is changed to call __pthread_rwlock_init directly. The symbols were moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlock_destroy into libcFlorian Weimer62-66/+97
And __pthread_rwlock_destroy as a compatibility symbol. rwlocks do not need finalization, so change __libc_rwlock_fini to do nothing. The symbols were moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlock_clockwrlock into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move pthread_rwlock_clockrdlock into libcFlorian Weimer61-29/+64
The symbol was moved using scripts/move-symbol-to-libc.py. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move tss_set into libcFlorian Weimer63-64/+76
The symbol was moved using scripts/move-symbol-to-libc.py. __pthread_setspecific@@GLIBC_2.34 is no longer needed after the move, so it is removed with this commit, too. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move tss_get into libcFlorian Weimer63-63/+76
The symbol was moved using scripts/move-symbol-to-libc.py. __pthread_getspecific@@GLIBC_2.34 is no longer needed after the move, so it is removed with this commit, too. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move tss_delete into libcFlorian Weimer63-31/+76
The symbol was moved using scripts/move-symbol-to-libc.py. __pthread_key_delete@@GLIBC_PRIVATE is no longer needed after that, so it is removed as well. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move tss_create into libcFlorian Weimer63-31/+76
The symbol was moved using scripts/move-symbol-to-libc.py. __pthread_key_create@@GLIBC_2.34 is no longer needed by glibc itself with this change, but __pthread_key_create is used by libstdc++, so it still has to be exported as a public symbol. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move thrd_exit into libcFlorian Weimer63-31/+76
The symbol was moved using scripts/move-symbol-to-libc.py. The __pthread_exit@@GLIBC_PRIVATE symbol is no longer needed after this change, so remove it. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move mtx_unlock into libcFlorian Weimer63-31/+75
The symbol was moved using scripts/move-symbol-to-libc.py. __pthread_mutex_unlock@GLIBC_2.34 is not removed in this commit because it is still used from nptl/nptl-init.c. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move mtx_trylock into libcFlorian Weimer63-63/+76
The symbol was moved using scripts/move-symbol-to-libc.py. The __pthread_mutex_trylock@@GLIBC_2.34 symbol version is no longer needed because the call is now internal to libc, so remove it with this commit. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move mtx_timedlock into libcFlorian Weimer64-38/+80
The symbol was moved using scripts/move-symbol-to-libc.py. The __pthread_mutex_timedlock@@GLIBC_PRIVATE export is no longer needed, so it is removed with this commit. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move mtx_lock into libcFlorian Weimer63-31/+76
The symbol was moved using scripts/move-symbol-to-libc.py. __pthread_mutex_lock@GLIBC_2.34 is not removed in this commit because it is still used from nptl/nptl-init.c. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move mtx_init into libcFlorian Weimer64-135/+76
The symbol was moved using scripts/move-symbol-to-libc.py. The calls to __pthread_mutex_init, __pthread_mutexattr_init, __pthread_mutexattr_settype are now private and no longer need to be exported. This allows the removal of the newly added GLIBC_2.34 symbol versions for those functions. Also clean up some weak declarations in <libc-lockP.h> for these functions. They are not needed and potentially incorrect for static linking of mtx_init. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move mtx_destroy into libcFlorian Weimer63-63/+76
The symbol was moved using scripts/move-symbol-to-libc.py. The __pthread_mutex_destroy@@GLIBC_2.34 symbol is no longer neded because this commit makes __pthread_mutex_destroy@GLIBC_2.0 a compatibility symbol, so remove the new symbol version. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move cnd_wait into libcFlorian Weimer63-31/+75
The symbol was moved using scripts/move-symbol-to-libc.py. The __pthread_cond_wait@@GLIBC_PRIVATE symbol is no longer neded, so remove that as well. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move cnd_timedwait into libcFlorian Weimer64-38/+81
The symbol was moved using scripts/move-symbol-to-libc.py. The __pthread_cond_timedwait@@GLIBC_PRIVATE symbol is no longer neded, so remove that as well. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move cnd_signal into libcFlorian Weimer63-31/+76
The symbol was moved using scripts/move-symbol-to-libc.py. The __pthread_cond_signal@@GLIBC_PRIVATE symbol is no longer neded, so remove that as well. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move cnd_init into libcFlorian Weimer63-31/+76
The symbol was moved using scripts/move-symbol-to-libc.py. The __pthread_cond_init@@GLIBC_PRIVATE symbol is no longer neded, so remove that as well. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move cnd_destroy into libcFlorian Weimer63-31/+76
The symbol was moved using scripts/move-symbol-to-libc.py. The __pthread_cond_destroy@@GLIBC_PRIVATE symbol is no longer neded, so remove that as well. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2021-05-03nptl: Move cnd_broadcast into libcFlorian Weimer63-31/+75
The symbol was moved using scripts/move-symbol-to-libc.py. The __pthread_cond_broadcast@@GLIBC_PRIVATE symbol is no longer neded, so remove that as well. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>