aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-08-04Prepare for glibc 2.32 release.glibc-2.32Carlos O'Donell3-3/+15380
Update version.h, features.h, and ChangeLog.old/ChangeLog.21.
2020-08-04Regenerate configure scripts.Carlos O'Donell2-1/+2
2020-08-04Update NEWS with bugs.Carlos O'Donell1-2/+110
2020-08-04Update translations.Carlos O'Donell35-25496/+17951
Incorporate updates from translationproject.org.
2020-08-04Don't mix linker error messages into edited scriptsAlan Modra1-2/+2
* Makerules (shlib.lds): Discard linker warning output. (format.lds): Likewise. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-08-04benchtests/README update.Paul Zimmermann1-6/+14
Improve documentation of the 'name' directive and the 'workload' mechanism. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-08-04RISC-V: Update lp64d libm-test-ulps according to HiFive UnleashedMaciej W. Rozycki1-15/+18
Produced with HiFive Unleashed hardware using Linux 5.8-rc5 exactly and GCC 10.0.1 20200426. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-08-03aarch64: update NEWS about branch protectionSzabolcs Nagy1-1/+3
After some discussions it seems the original news was not clear and that it is valid to manually pass the branch protection flags iff GCC target libs are built with them too. The main difference between manually passing the flags and using the configure option is that the latter also makes branch protection the default in GCC which may not be desirable in some cases. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-08-03Add NEWS entry for CVE-2016-10228 (bug 19519)Aurelien Jarno1-0/+4
2020-08-03powerpc: Fix incorrect cache line size load in memset (bug 26332)Florian Weimer1-2/+2
__GLRO loaded the word after the requested variable on big-endian PowerPC, where LOWORD is 4. This can cause the memset implement go wrong because the masking with the cache line size produces wrong results, particularly if the loaded value happens to be 1. The __GLRO macro is not used in any place where loading the lower 32-bit word of a 64-bit value is desired, so the +4 offset is always wrong. Fixes commit 18363b4f010da9ba459b13310b113ac0647c2fcc ("powerpc: Move cache line size to rtld_global_ro") and bug 26332. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-08-03Update Nios II libm-test-ulps file.Chung-Lin Tang1-11/+11
2020-07-31Move NEWS entry for CVE-2020-1751 to the 2.31 sectionFlorian Weimer1-3/+3
It was fixed in commit d93769405996dfc11d216ddbe415946617b5a494 ("Fix array overflow in backtrace on PowerPC (bug 25423)"), which went into glibc 2.31. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-31NEWS: Deprecate weak libpthread symbols for single-threaded checksFlorian Weimer1-0/+8
Recommend the new __libc_single_thread variable instead. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-31NEWS: Deprecate nss_hesiodFlorian Weimer1-0/+5
Storing user databases in DNS, without client-side DNSSEC validation, is problematic from a security point of view. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-27nptl: Zero-extend arguments to SETXID syscalls [BZ #26248]H.J. Lu3-2/+87
nptl has /* Opcodes and data types for communication with the signal handler to change user/group IDs. */ struct xid_command { int syscall_no; long int id[3]; volatile int cntr; volatile int error; }; /* This must be last, otherwise the current thread might not have permissions to send SIGSETXID syscall to the other threads. */ result = INTERNAL_SYSCALL_NCS (cmdp->syscall_no, 3, cmdp->id[0], cmdp->id[1], cmdp->id[2]); But the second argument of setgroups syscal is a pointer: int setgroups (size_t size, const gid_t *list); But on x32, pointers passed to syscall must have pointer type so that they will be zero-extended. The kernel XID arguments are unsigned and do not require sign extension. Change xid_command to struct xid_command { int syscall_no; unsigned long int id[3]; volatile int cntr; volatile int error; }; so that all arguments are zero-extended. A testcase is added for x32 and setgroups returned with EFAULT when running as root without the fix.
2020-07-27Use binutils 2.35 branch in build-many-glibcs.py.Joseph Myers1-1/+1
This patch makes build-many-glibcs.py use binutils 2.35 branch. Tested with build-many-glibcs.py (compilers and glibcs builds).
2020-07-27aarch64: Use future HWCAP2_MTE in ifunc resolverSzabolcs Nagy1-2/+8
Make glibc MTE-safe on systems where MTE is available. This allows using heap tagging with an LD_PRELOADed malloc implementation that enables MTE. We don't document this as guaranteed contract yet, so glibc may not be MTE safe when HWCAP2_MTE is set (older glibcs certainly aren't). This is mainly for testing and debugging. The HWCAP flag is not exposed in public headers until Linux adds it to its uapi. The HWCAP value reservation will be in Linux 5.9.
2020-07-25Update x86-64 libm-test-ulpsAndreas K. Hüttel1-2/+2
x86_64 Intel(R) Core(TM) i5-8265U gcc (Gentoo 10.1.0-r2 p3) 10.1.0 Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-24aarch64: Respect p_flags when protecting code with PROT_BTISzabolcs Nagy1-1/+8
Use PROT_READ and PROT_WRITE according to the load segment p_flags when adding PROT_BTI. This is before processing relocations which may drop PROT_BTI in case of textrels. Executable stacks are not protected via PROT_BTI either. PROT_BTI is hardening in case memory corruption happened, it's value is reduced if there is writable and executable memory available so missing it on such memory is fine, but we should respect the p_flags and should not drop PROT_WRITE.
2020-07-23Disable warnings due to deprecated libselinux symbols used by nss and nscdArjun Shankar2-0/+24
The SELinux API deprecated several symbols in its 3.1 release, including security_context_t, matchpathcon, avc_init, and sidput, which are used in makedb and nscd. While the usage of these should eventually be replaced by newer interfaces, this commit disables GCC warnings due to the use of the above symbols. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2020-07-22Regenerate INSTALL for ARC port updates.Carlos O'Donell1-0/+5
2020-07-22Update libc.pot for 2.32 release.Carlos O'Donell1-918/+647
2020-07-21powerpc: Fix POWER10 selectionTulio Magno Quites Machado Filho1-0/+1
Add a line that was missing from a previous commit. Without increasing str, the null-byte is not validated, and _dl_string_platform returns -1. Fixes: d2ba3677da7a ("powerpc: Add support for POWER10") Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21powerpc64le: guarantee a .gnu.attributes section [BZ #26220]Paul E. Murphy1-0/+8
Upstream GCC 11 development is now building the ibm128 runtime support (in libgcc) without a .gnu.attributes section on ppc64le. Ensure we have one to replace by building one ibm128 file in libc and libm with attributes. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
2020-07-21libio: Remove __libc_readline_unlockedFlorian Weimer5-423/+2
__nss_readline supersedes it. This reverts part of commit 3f5e3f5d066dcffb80af48ae2cf35a01a85a8f10 ("libio: Implement internal function __libc_readline_unlocked"). The internal aliases __fseeko64 and __ftello64 are preserved because they are needed by __nss_readline as well. Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21shadow: Implement fgetspent_r using __nss_fgetent_rFlorian Weimer2-37/+7
Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21pwd: Implement fgetpwent_r using __nss_fgetent_rFlorian Weimer1-37/+6
Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21gshadow: Implement fgetsgent_r using __nss_fgetent_r (bug 20338)Florian Weimer3-36/+198
Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21grp: Implement fgetgrent_r using __nss_fgetent_rFlorian Weimer1-48/+6
Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21nss: Add __nss_fgetent_rFlorian Weimer7-54/+260
And helper functions __nss_readline, __nss_readline_seek, __nss_parse_line_result. This consolidates common code for handling overlong lines and parse files. Use the new functionality in internal_getent in nss/nss_files/files-XXX.c. Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21libio: Add fseterr_unlocked for internal useFlorian Weimer1-0/+7
Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21nss_files: Use generic result pointer in parse_lineFlorian Weimer2-38/+15
As a result, all parse_line functions have the same prototype, except for that producing struct hostent. This change is ABI-compatible, so it does not alter the internal GLIBC_PRIVATE ABI (otherwise we should probably have renamed the exported functions). A future change will use this to implement a generict fget*ent_r function. Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21nss_files: Consolidate line parse declarations in <nss_files.h>Florian Weimer9-49/+52
These functions should eventually have the same type, so it makes sense to declare them together. Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21nss_compat: Do not use mmap to read database files (bug 26258)Florian Weimer4-16/+8
This avoids crashes in case the files are truncated for some reason. For typically file sizes, it is also going to be slightly faster. Using __nss_files_fopen instead mirrors what nss_files does. Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-21nss_files: Consolidate file opening in __nss_files_fopenFlorian Weimer8-11/+86
Tested-by: Carlos O'Donell <carlos@redhat.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-20Update powerpc-nofpu libm-test-ulps.Joseph Myers1-30/+30
2020-07-20Use MPFR 4.1.0 in build-many-glibcs.py.Joseph Myers1-1/+1
This patch makes build-many-glibcs.py use the new MPFR 4.1.0 release. Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2020-07-20elf: Change TLS static surplus default back to 1664Florian Weimer3-8/+75
Make the computation in elf/dl-tls.c more transparent, and add an explicit test for the historic value. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-18hurd: Fix longjmp check for sigstateSamuel Thibault2-2/+2
* sysdeps/mach/hurd/i386/____longjmp_chk.S,__longjmp.S: Properly check for sigstate being NULL.
2020-07-18hurd: Fix longjmp early in initializationSamuel Thibault2-2/+16
When e.g. an LD_PRELOAD fails, _dl_signal_exception/error longjmps, but TLS is not initialized yet, let along signal state. We thus mustn't look at them within __longjmp. * sysdeps/mach/hurd/i386/____longjmp_chk.S,__longjmp.S: Check for initialized value of %gs, and that sigstate is non-NULL.
2020-07-17manual: New signal and errno string functions are AS-safeFlorian Weimer2-4/+4
The annotations for sigabbrev_np, sigdescr_np, strerrordesc_np, strerrorname_np are not preliminary. These functions were added precisely because they are AS-safe. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-17AArch64: Improve strlen_asimd performance (bug 25824)Wilco Dijkstra5-126/+161
Optimize strlen using a mix of scalar and SIMD code. On modern micro architectures large strings are 2.6 times faster than existing strlen_asimd and 35% faster than the new MTE version of strlen. On a random strlen benchmark using small sizes the speedup is 7% vs strlen_asimd and 40% vs the MTE strlen. This fixes the main strlen regressions on Cortex-A53 and other cores with a simple Neon unit. Rename __strlen_generic to __strlen_mte, and select strlen_asimd when MTE is not enabled (this is waiting on support for a HWCAP_MTE bit). This fixes big-endian bug 25824. Passes GLIBC regression tests. Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
2020-07-17Move <rpc/netdb.h> from sunrpc to inetFlorian Weimer5-12/+3
Restore <rpc/netdb.h> as an installed header. Delete the dummy header resolv/rpc/netdb.h because inet is not an optional glibc component (so its <rpc/netdb.h> is always available). Fixes commit acb527929d0c2b3bb0798472c42ddb3203729708 ("Move non-deprecated RPC-related functions from sunrpc to inet") in combination with commit 5500cdba4018ddbda7909bc7f4f9718610b43cf0 ("Remove --enable-obsolete-rpc configure flag").
2020-07-16en_US: Minimize changes to date_fmt (Bug 25923)Carlos O'Donell1-2/+5
In 2000 when date_fmt was originally added as an extension the en_US locale did not have a date_fmt specifier and so used the default which resulted in the abbreviated month name coming before the day of the month (as expected in the US and other locales). In commit 7395f3a0efad9fc51bb54fa383ef6524702e0c49 the date_fmt was added to en_US with a 12H time to better align with US user expectations. Unfortunately the abbreviated month name and day were inverted during that transition, and that was seen as a regression and reported against Fedora 32: https://bugzilla.redhat.com/show_bug.cgi?id=1830623 The progression of date_fmt looks like this: "%a %b %e %H:%M:%S %Z %Y" <- Originally (2000) "%a %d %b %Y %I:%M:%S %p %Z" <- glibc 2.29 (2019) "%a %b %e %r %Z %Y" <- glibc 2.32 (2020) [this commit] Note: "%r" is "%I:%M:%S %p" in en_US and so shorter to write. Likewise the year is in the wrong place in commit 7395f3a0efad9fc51bb54fa383ef6524702e0c49 and this is corrected in this patch. For reference d_t_fmt: "%a %d %b %Y %r %Z" <- d_t_fmt (1997) Yes, d_t_fmt and date_fmt are *not* the same, this is just the history of this locale. This commit does not change d_t_fmt to better align with date_fmt. No users have requested we change d_t_fmt or given any justification for such a change. The only goals of this change are to place the abbreviated month name before the day of the month as it has been printed since 2000, and place the year at the end. This minimizes the change from commit 7395f3a0efad9fc51bb54fa383ef6524702e0c49 and makes good on changing only from 24H clock to 12H clock. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2020-07-16Linux: Remove rseq supportFlorian Weimer54-1197/+6
The kernel ABI is not finalized, and there are now various proposals to change the size of struct rseq, which would make the glibc ABI dependent on the version of the kernels used for building glibc. This is of course not acceptable. This reverts commit 48699da1c468543ade14777819bd1b4d652709de ("elf: Support at least 32-byte alignment in static dlopen"), commit 8f4632deb3545b2949cec5454afc3cb21a0024ea ("Linux: rseq registration tests"), commit 6e29cb3f61ff5432c78a1c84b0d9b123a350ab36 ("Linux: Use rseq in sched_getcpu if available"), and commit 0c76fc3c2b346dc5401dc055d97d4279632b0fb3 ("Linux: Perform rseq registration at C startup and thread creation"), resolving the conflicts introduced by the ARC port and the TLS static surplus changes. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-16manual: Use Unicode instead HTML entities for characters (bug 19737)Florian Weimer1-3/+3
Texinfo no longer treats arguments to @set in @ifhtml blocks as literal HTML, so the & in the entity references was encoded as @amp; in HTML. Using the equivalent Unicode characters avoids this issue. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
2020-07-16Add NEWS entry for CVE-2020-6096 (bug 25620)Aurelien Jarno1-0/+5
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-16arm: remove string/tst-memmove-overflow XFAILAurelien Jarno1-5/+0
The arm string/tst-memmove-overflow XFAIL has been added in commit eca1b233322 ("arm: XFAIL string/tst-memmove-overflow due to bug 25620") as a way to reproduce the reported bug. Now that this bug has been fixed in commits 79a4fa341b8 ("arm: CVE-2020-6096: fix memcpy and memmove for negative length [BZ #25620]") and beea3610507 ("arm: CVE-2020-6096: Fix multiarch memcpy for negative length [BZ #25620]"), let's remove the XFAIL. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-15AArch64: Rename IS_ARES to IS_NEOVERSE_N1Wilco Dijkstra3-4/+8
Rename IS_ARES to IS_NEOVERSE_N1 since that is a bit clearer. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-07-15AArch64: Add optimized Q-register memcpyWilco Dijkstra5-4/+255
Add a new memcpy using 128-bit Q registers - this is faster on modern cores and reduces codesize. Similar to the generic memcpy, small cases include copies up to 32 bytes. 64-128 byte copies are split into two cases to improve performance of 64-96 byte copies. Large copies align the source rather than the destination. bench-memcpy-random is ~9% faster than memcpy_falkor on Neoverse N1, so make this memcpy the default on N1 (on Centriq it is 15% faster than memcpy_falkor). Passes GLIBC regression tests. Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>