about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* elf: Unconditionally use __ehdr_startFangrui Song2021-08-104-98/+4
| | | | | | | | | | | | | We can consider __ehdr_start (from binutils 2.23 onwards) unconditionally supported, since configure.ac requires binutils>=2.25. The configure.ac check is related to an ia64 bug fixed by binutils 2.24. See https://sourceware.org/pipermail/libc-alpha/2014-August/053503.html Tested on x86_64-linux-gnu. Tested build-many-glibcs.py with aarch64-linux-gnu and s390x-linux-gnu. Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
* hurd: Add support for AT_NO_AUTOMOUNTSamuel Thibault2021-08-101-0/+6
|
* [5/5] AArch64: Improve A64FX memset medium loopsWilco Dijkstra2021-08-101-26/+19
| | | | | | | Simplify the code for memsets smaller than L1. Improve the unroll8 and L1_prefetch loops. Reviewed-by: Naohiro Tamura <naohirot@fujitsu.com>
* [4/5] AArch64: Improve A64FX memset by removing unroll32Wilco Dijkstra2021-08-101-17/+1
| | | | | | Remove unroll32 code since it doesn't improve performance. Reviewed-by: Naohiro Tamura <naohirot@fujitsu.com>
* [3/5] AArch64: Improve A64FX memset for remaining bytesWilco Dijkstra2021-08-101-33/+13
| | | | | | | Simplify handling of remaining bytes. Avoid lots of taken branches and complex whilelo computations, instead unconditionally write vectors from the end. Reviewed-by: Naohiro Tamura <naohirot@fujitsu.com>
* [2/5] AArch64: Improve A64FX memset for large sizesWilco Dijkstra2021-08-101-60/+25
| | | | | | | | Improve performance of large memsets. Simplify alignment code. For zero memset use DC ZVA, which almost doubles performance. For non-zero memsets use the unroll8 loop which is about 10% faster. Reviewed-by: Naohiro Tamura <naohirot@fujitsu.com>
* [1/5] AArch64: Improve A64FX memset for small sizesWilco Dijkstra2021-08-101-60/+36
| | | | | | | | Improve performance of small memsets by reducing instruction counts and improving code alignment. Bench-memset shows 35-45% performance gain for small sizes. Reviewed-by: Naohiro Tamura <naohirot@fujitsu.com>
* Use binutils 2.37 branch in build-many-glibcs.pyJoseph Myers2021-08-091-1/+1
| | | | | | This patch makes build-many-glibcs.py use binutils 2.37 branch. Tested with build-many-glibcs.py (compilers and glibcs builds).
* Add PTRACE_GET_RSEQ_CONFIGURATION from Linux 5.13 to sys/ptrace.hJoseph Myers2021-08-099-7/+52
| | | | | | | | | | | Linux 5.13 adds a PTRACE_GET_RSEQ_CONFIGURATION constant, with an associated ptrace_rseq_configuration structure. Add this constant to the various sys/ptrace.h headers in glibc, with the structure in bits/ptrace-shared.h (named struct __ptrace_rseq_configuration in glibc, as with other such structures). Tested for x86_64, and with build-many-glibcs.py.
* librt: fix NULL pointer dereference (bug 28213)Nikita Popov2021-08-091-1/+1
| | | | | | | | | | | | | | | | | Helper thread frees copied attribute on NOTIFY_REMOVED message received from the OS kernel. Unfortunately, it fails to check whether copied attribute actually exists (data.attr != NULL). This worked earlier because free() checks passed pointer before actually attempting to release corresponding memory. But __pthread_attr_destroy assumes pointer is not NULL. So passing NULL pointer to __pthread_attr_destroy will result in segmentation fault. This scenario is possible if notification->sigev_notify_attributes == NULL (which means default thread attributes should be used). Signed-off-by: Nikita Popov <npv1310@gmail.com> Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
* powerpc64: Add checks for Altivec and VSX in ifunc selectionAnton Blanchard2021-08-0626-68/+139
| | | | | | | We'd like to support processors without Altivec or VSX, so check the relevant hwcap bits before selecting them. Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
* powerpc64: Check cacheline size before using optimised memset routinesAnton Blanchard2021-08-062-10/+23
| | | | | | | A number of optimised memset routines assume the cacheline size is 128B, so we better check before using them. Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
* powerpc64: Replace some PPC_FEATURE_HAS_VSX with PPC_FEATURE_ARCH_2_06Anton Blanchard2021-08-0620-38/+38
| | | | | | | | We use PPC_FEATURE_HAS_VSX to select a number of POWER7 optimised functions. These functions don't use any VSX instructions, so PPC_FEATURE_ARCH_2_06 seems like a better fit. Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
* Linux: Fix fcntl, ioctl, prctl redirects for _TIME_BITS=64 (bug 28182)Florian Weimer2021-08-063-7/+7
| | | | | | | | | | | | | __REDIRECT and __THROW are not compatible with C++ due to the ordering of the __asm__ alias and the throw specifier. __REDIRECT_NTH has to be used instead. Fixes commit 8a40aff86ba5f64a3a84883e539cb67b ("io: Add time64 alias for fcntl"), commit 82c395d91ea4f69120d453aeec398e30 ("misc: Add time64 alias for ioctl"), commit b39ffab860cd743a82c91946619f1b8158 ("Linux: Add time64 alias for prctl"). Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* Add INADDR_DUMMY from Linux 5.13 to netinet/in.hJoseph Myers2021-08-051-0/+3
| | | | | | | | Linux 5.13 adds an INADDR_DUMMY definition; add a corresponding definition to glibc's netinet/in.h. (This isn't strictly a new kernel interface, rather a value defined in RFC 7600.) Tested for x86_64.
* tst-mxfast: Don't run with mcheckSiddhesh Poyarekar2021-08-051-1/+2
| | | | | The test may not show predictable behaviour with -lmcheck since the padding won't always guarantee fastbin usage.
* rt: Set the correct message queue for tst-mqueue10Adhemerval Zanella2021-08-041-2/+2
| | | | Checked on x86_64-linux-gnu.
* Update sparc libm-test-ulpsAdhemerval Zanella2021-08-041-1/+1
|
* linux: Add sparck brk implementationAdhemerval Zanella2021-08-041-0/+58
| | | | | | | | | | | It turned that the generic implementation of brk() does not work for sparc, since on failure kernel will just return the previous input value without setting the conditional register. This patches adds back a sparc32 and sparc64 implementation removed by 720480934ab9107. Checked on sparc64-linux-gnu and sparcv9-linux-gnu.
* test-dlclose-exit-race: avoid hang on pthread_create errorDJ Delorie2021-08-041-1/+13
| | | | | | | | | | | | | | | This test depends on the "last" function being called in a different thread than the "first" function, as "last" posts a semaphore that "first" is waiting on. However, if pthread_create fails - for example, if running in an older container before the clone3()-in-container-EPERM fixes - exit() is called in the same thread as everything else, the semaphore never gets posted, and first hangs. The fix is to pre-post that semaphore before a single-threaded exit. Reviewed-by: Arjun Shankar <arjun@redhat.com>
* gethosts: Remove unused argument _typeSiddhesh Poyarekar2021-08-041-3/+3
| | | | The generated code is unchanged.
* hurd: Avoid spurious warningSamuel Thibault2021-08-031-1/+1
| | | | | Compilers missing some flow analysis may think ss may be used uninitialized.
* gaiconf_init: Avoid double-free in label and precedence listsSiddhesh Poyarekar2021-08-031-0/+2
| | | | | | | labellist and precedencelist could get freed a second time if there are allocation failures, so set them to NULL to avoid a double-free. Reviewed-by: Arjun Shankar <arjun@redhat.com>
* copy_and_spawn_sgid: Avoid double calls to close()Siddhesh Poyarekar2021-08-031-0/+1
| | | | | | | If close() on infd and outfd succeeded, reset the fd numbers so that we don't attempt to close them again. Reviewed-by: Arjun Shankar <arjun@redhat.com>
* iconv_charmap: Close output file when doneSiddhesh Poyarekar2021-08-031-0/+2
| | | | Reviewed-by: Arjun Shankar <arjun@redhat.com>
* gconv_parseconfdir: Fix memory leakSiddhesh Poyarekar2021-08-031-5/+4
| | | | | | | The allocated `conf` would leak if we have to skip over the file due to the underlying filesystem not supporting dt_type. Reviewed-by: Arjun Shankar <arjun@redhat.com>
* ldconfig: avoid leak on empty paths in config fileSiddhesh Poyarekar2021-08-031-1/+5
| | | | Reviewed-by: Arjun Shankar <arjun@redhat.com>
* Fix build of nptl/tst-thread_local1.cc with GCC 12Joseph Myers2021-08-021-0/+1
| | | | | | | | | | | | | | | The test nptl/tst-thread_local1.cc fails to build with GCC mainline because of changes to what libstdc++ headers implicitly include what other headers: tst-thread_local1.cc: In function 'int do_test()': tst-thread_local1.cc:177:5: error: variable 'std::array<std::pair<const char*, std::function<void(void* (*)(void*))> >, 2> do_thread_X' has initializer but incomplete type 177 | do_thread_X | ^~~~~~~~~~~ Fix this by adding an explicit include of <array>. Tested with build-many-glibcs.py for aarch64-linux-gnu.
* nis: Fix leak on realloc failure in nis_getnames [BZ #28150]Robbie Harwood2021-08-021-4/+4
| | | | | | | | | | | If pos >= count but realloc fails, tmp will not have been placed in getnames[pos] yet, and so will not be freed in free_null. Detected by Coverity. Also remove misleading comment from nis_getnames(), since it actually did properly release getnames when out of memory. Tested-by: Carlos O'Donell <carlos@redhat.com>
* Remove obsolete comments/name from several benchtest input files.Paul Zimmermann2021-08-026-23/+0
| | | | | | | | These comments refer to slow paths that were removed in glibc 2.34 or earlier. The corresponding "names" that yield separate workload traces for "make bench" are thus obsolete. We are however keeping the corresponding inputs. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
* Remove obsolete comments/name from acos-inputs, since slow path was removed.Paul Zimmermann2021-08-021-3/+0
|
* Open master branch for glibc 2.35 development glibc-2.34.9000Carlos O'Donell2021-08-012-2/+26
|
* Update ChangeLog.old/ChangeLog.23. glibc-2.34Carlos O'Donell2021-08-011-0/+32243
|
* Prepare for glibc 2.34 release.Carlos O'Donell2021-08-012-3/+3
| | | | Update version.h, and include/features.h.
* po/nl.po: Update Dutch translation.Carlos O'Donell2021-08-011-6/+72
|
* Update install.texi, and regenerate INSTALL.Carlos O'Donell2021-08-012-8/+8
|
* Update translations.Carlos O'Donell2021-08-0136-6169/+6699
|
* Update NEWS.Carlos O'Donell2021-08-011-4/+172
| | | | | | | | | Suggestions by Florian Weimer, Andreas Schwab, and Alexander Monakov. See: https://sourceware.org/pipermail/libc-alpha/2021-July/129356.html https://sourceware.org/pipermail/libc-alpha/2021-July/129357.html https://sourceware.org/pipermail/libc-alpha/2021-July/129361.html
* NEWS: Fix typos, grammar, and missing wordsMark Harris2021-08-011-12/+13
| | | | Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* elf: Fix audit regressionAdhemerval Zanella2021-07-304-10/+61
| | | | | | | Commit 03e187a41d9 added a regression when an audit module does not have libc as DT_NEEDED (although unusual it is possible). Checked on x86_64-linux-gnu.
* Update libc.pot for 2.34 release.Carlos O'Donell2021-07-281-208/+208
|
* x86-64: Add Avoid_Short_Distance_REP_MOVSBH.J. Lu2021-07-285-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | commit 3ec5d83d2a237d39e7fd6ef7a0bc8ac4c171a4a5 Author: H.J. Lu <hjl.tools@gmail.com> Date: Sat Jan 25 14:19:40 2020 -0800 x86-64: Avoid rep movsb with short distance [BZ #27130] introduced some regressions on Intel processors without Fast Short REP MOV (FSRM). Add Avoid_Short_Distance_REP_MOVSB to avoid rep movsb with short distance only on Intel processors with FSRM. bench-memmove-large on Skylake server shows that cycles of __memmove_evex_unaligned_erms improves for the following data size: before after Improvement length=4127, align1=3, align2=0: 479.38 349.25 27% length=4223, align1=9, align2=5: 405.62 333.25 18% length=8223, align1=3, align2=0: 786.12 496.38 37% length=8319, align1=9, align2=5: 727.50 501.38 31% length=16415, align1=3, align2=0: 1436.88 840.00 41% length=16511, align1=9, align2=5: 1375.50 836.38 39% length=32799, align1=3, align2=0: 2890.00 1860.12 36% length=32895, align1=9, align2=5: 2891.38 1931.88 33%
* Typo: Rename HAVE_CLONE3_WAPPER to HAVE_CLONE3_WRAPPERH.J. Lu2021-07-283-3/+3
|
* build-many-glibcs.py: Add x86_64-linux-gnu-minimal configurationFlorian Weimer2021-07-281-0/+10
| | | | | | This configuration exercises various --disable-* configure options. It is expected to catch -Werror failures that only affect these configurations.
* tests: use xmalloc to allocate implementation arraySiddhesh Poyarekar2021-07-283-11/+23
| | | | | | | | The benchmark and tests must fail in case of allocation failure in the implementation array. Also annotate the x* allocators in support.h so that the compiler has more information about them. Reviewed-by: Florian Weimer <fweimer@redhat.com>
* xmalloc: Fix warnings with gcc analyzerSiddhesh Poyarekar2021-07-282-3/+16
| | | | | | | | | | Tell the compiler that xmalloc family of allocators always return non-NULL. xrealloc in locale/programs also always returns non-NULL, but that conflicts with default realloc behaviour and that of xrealloc in libsupport, so keep it as is for now and resolve the differences later. Reviewed-by: Florian Weimer <fweimer@redhat.com>
* __cxa_thread_atexit_impl: Abort on allocation failure [BZ #18524]Siddhesh Poyarekar2021-07-281-0/+4
| | | | | | | Abort in the unlikely event that allocation fails when trying to register a TLS destructor. Reviewed-by: Florian Weimer <fweimer@redhat.com>
* manual: Drop the .so suffix in libc_malloc_debug descriptionSiddhesh Poyarekar2021-07-272-4/+4
| | | | | | | All references to libraries in the manual are without the .so prefix, so do the same for libc_malloc_debug. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* hurd: _Fork: unlock malloc before calling fork child hooksSamuel Thibault2021-07-271-0/+1
| | | | | The setitimer fork hook, fork_itimer, needs to call malloc inside __mach_setup_tls, so we need to unlock malloc before calling it.
* Exclude static tests for mcheck and malloc-checkSiddhesh Poyarekar2021-07-261-10/+3
| | | | | | | | | mcheck and malloc-check no longer work with static binaries, so drop those tests. Reported-by: Samuel Thibault <samuel.thibault@gnu.org> Tested-by: Samuel Thibault <samuel.thibault@gnu.org> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>