about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* i386: Disable Intel Xeon Phi tests for GCC 15 and above (BZ 31782)Sunil K Pandey2024-05-271-1/+7
| | | | | | | | | | | | | | | This patch disables Intel Xeon Phi tests for GCC 15 and above. GCC 15 removed Intel Xeon Phi ISA support. commit e1a7e2c54d52d0ba374735e285b617af44841ace Author: Haochen Jiang <haochen.jiang@intel.com> Date: Mon May 20 10:43:44 2024 +0800 i386: Remove Xeon Phi ISA support Fixes BZ 31782. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* difftime is pure, not constPaul Eggert2024-05-271-2/+2
| | | | | | | Because difftime's behavior depends on the floating-point environment, the function is pure, not const (BZ 31802). Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* parse_fdinfo: Don't advance pointer twice [BZ #31798]H.J. Lu2024-05-271-1/+3
| | | | | | | | | | | | | | | | | | | pidfd_getpid.c has /* Ignore invalid large values. */ if (INT_MULTIPLY_WRAPV (10, n, &n) || INT_ADD_WRAPV (n, *l++ - '0', &n)) return -1; For GCC older than GCC 7, INT_ADD_WRAPV(a, b, r) is defined as _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW) and *l++ - '0' is evaluated twice. Fix BZ #31798 by moving "l++" out of the if statement. Tested with GCC 6.4 and GCC 14.1. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* elf/Makefile: Split and sort PIE testsH.J. Lu2024-05-251-3/+13
| | | | | | Put each item on a separate line and sort PIE tests. Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
* Revert "Test fscanf of long double without <stdio.h>"H.J. Lu2024-05-243-39/+0
| | | | | | | | This reverts commit 30a745450e01e4c6f484dc691c16a54a6ea72288. On ppc64le, without <stdio.h>, vfscanf is used and with <stdio.h> __isoc23_vfscanfieee128 is used. I am reverting this since it doesn't work on all targets.
* sysdeps/ieee754/ldbl-opt/Makefile: Split and sort libnldbl-callsH.J. Lu2024-05-241-42/+233
| | | | | | Put each item on a separate line and sort libnldbl-calls. Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
* Test fscanf of long double without <stdio.h>H.J. Lu2024-05-243-0/+39
| | | | | | | Add a test for fscanf of long double without including <stdio.h>. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sunil K Pandey <skpgkp2@gmail.com>
* sysdeps/ieee754/ldbl-opt/Makefile: Remove test-nldbl-redirect-staticH.J. Lu2024-05-241-1/+0
| | | | | | Remove $(objpfx)test-nldbl-redirect-static checked in by accident. Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
* sysdeps/ieee754/ldbl-opt/Makefile: Split and sort testsH.J. Lu2024-05-241-10/+18
| | | | | | Put each test on a separate line and sort tests. Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
* s390x: Regenerate ULPs.Stefan Liebler2024-05-241-0/+20
| | | | | | Needed due to: "Implement C23 log2p1" commit ID 79c52daf4740b00bef43e4f5a4281b3480459b38
* powerpc: Remove duplicated versionsort from libm.a (BZ 31789)Adhemerval Zanella2024-05-231-1/+1
| | | | | | | | | The powerpc32 have an extra versionsort provided by LFS versionsort64.o. It seems that 5226a81f5517bcbc892679cca792006a6bafc53f used the wrong check to create the alias for the LFS to non-LFS version. It should not matter for _DIRENT_MATCHES_DIRENT64 since both symbols have the same implementation. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* Update kernel version to 6.9 in header constant testsJoseph Myers2024-05-232-3/+3
| | | | | | | | | | This patch updates the kernel version in the tests tst-mman-consts.py and tst-mount-consts.py to 6.9. (There are no new constants covered by these tests in 6.9 that need any other header changes; tst-pidfd-consts.py was updated separately along with adding new constants relevant to that test.) Tested with build-many-glibcs.py.
* localedata: cv_RU: update translationMike FABIAN2024-05-232-209/+102
| | | | Resolves: BZ # 21271
* math: Provide missing math symbols on libc.a (BZ 31781)Adhemerval Zanella2024-05-233-6/+6
| | | | | | | | | The libc.a for alpha, s390, and sparcv9 does not provide copysignf64x, copysignf128, frexpf64x, frexpf128, modff64x, and modff128. Checked with a static build for the affected ABIs. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* s390: Make utmp32, utmpx32, and login32 shared only (BZ 31790)Adhemerval Zanella2024-05-231-0/+1
| | | | | | The function that work with 'struct utmp32' and 'struct utmpx32' are only for compat symbols. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* microblaze: Remove cacheflush from libc.a (BZ 31788)Adhemerval Zanella2024-05-231-2/+0
| | | | | | microblaze does not export it in libc.so nor the kernel provides the cacheflush syscall. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* powerpc: Remove duplicated llrintf and llrintf32 from libm.a (BZ 31787)Adhemerval Zanella2024-05-232-0/+8
| | | | | | | | Both the generic and POWER6 versions provide definitions of the symbol, which are already provided by the ifunc resolver. Checked on powerpc-linux-gnu-power4. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* powerpc: Remove duplicate strchrnul and strncasecmp_l libc.a (BZ 31786)Adhemerval Zanella2024-05-233-1/+19
| | | | | | | | | | | | For powerpc64 the generic version provides a weak definition of strchrnul, which are already provided by the ifunc resolver. The powerpc32 version is slight different, where for static case there is no iFUNC support. The strncasecmp_l is provided ifunc resolver. Checked on powerpc-linux-gnu-power4 and powerpc64-linux-gnu. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* loongarch: Remove duplicate strnlen in libc.a (BZ 31785)Adhemerval Zanella2024-05-231-0/+2
| | | | | | The generic version provides weak definitions of strnlen, which are already provided by the ifunc resolver. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* aarch64: Remove duplicate memchr/strlen in libc.a (BZ 31777)Adhemerval Zanella2024-05-232-0/+6
| | | | | | The generic version provides weak definitions of memchr/strlen, which are already provided by the ifunc resolvers. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* Update PIDFD_* constants for Linux 6.9Joseph Myers2024-05-232-9/+8
| | | | | | | | Linux 6.9 adds some more PIDFD_* constants. Add them to glibc's sys/pidfd.h, including updating comments that said FLAGS was reserved and must be 0, along with updating tst-pidfd-consts.py. Tested with build-many-glibcs.py.
* Define write_profiling functions only in profile library [BZ #31756]H.J. Lu2024-05-221-1/+2
| | | | | | | | | libc.so doesn't use nor export write_profiling functions. There is no point to define them in libc.so nor in libc.a. Fix BZ #31756 by defining them only in profile library. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* Don't provide XXXf128_do_not_use aliases [BZ #31757]H.J. Lu2024-05-224-0/+10
| | | | | | | | | Don't provide __nexttowardf128_do_not_use, nexttowardf128_do_not_use, finitef128_do_not_use, isinff128_do_not_use and isnanf128_do_not_use. This fixes BZ #31757. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* Don't provide scalb/significand _FloatN aliases [BZ #31760]H.J. Lu2024-05-222-0/+24
| | | | | | | | | | scalb is a deprecated interface which was obsolescent in POSIX.1-2001, removed in POSIX.1-2008, never made to C standard. significant was originally from BSD and never made in any standard. Fix BZ #31760 by not providing _FloatN aliases for them. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* math: Fix isnanf128 static build (BZ 31774)Adhemerval Zanella2024-05-211-0/+4
| | | | | | | | Some static implementation of float128 routines might call __isnanf128, which is not provided by the static object. Checked on x86_64-linux-gnu. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* math: Add support for auto static math testsAdhemerval Zanella2024-05-2112-5/+133
| | | | | | | | | | | | | | | It basically copy the already in place rules for dynamic tests for auto-generated math functions for all support types. To avoid the need to duplicate .inc files, a .SECONDEXPANSION rules is adeed for the gen-libm-test.py generation. New tests are added on the new rules 'libm-test-funcs-auto-static', 'libm-test-funcs-noauto-static', and 'libm-test-funcs-narrow-static'; similar to the non-static counterparts. To avoid add extra build and disk requirement, the new math static tests are only enable with a new define 'build-math-static-tests'. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
* Change _IO_stderr_/_IO_stdin_/_IO_stdout to compat symbols [BZ #31766]H.J. Lu2024-05-211-0/+4
| | | | | | | | | Since Glibc never provides symbol binary compatibility for relocatable files, fix BZ #31766 by changing _IO_stderr_/_IO_stdin_/_IO_stdout to compat symbols. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sunil K Pandey <skpgkp2@gmail.com>
* Obsolete _dl_mcount_wrapper in glibc 2.40 [BZ #31765]H.J. Lu2024-05-211-1/+5
| | | | | | | | | There is no _dl_mcount_wrapper prototype in any installed header files. Fix BZ #31765 by changing _dl_mcount_wrapper to a compat symbol and obsolete it in glibc 2.40. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sunil K Pandey <skpgkp2@gmail.com>
* math: Fix i386 and m68k exp10 on static build (BZ 31775)Adhemerval Zanella2024-05-212-4/+14
| | | | | | | | | | | The commit 08ddd26814 removed the static exp10 on i386 and m68k with an empty w_exp10.c (required for the ABIs that uses the newly implementation). This patch fixes by adding the required symbols on the arch-specific w_exp{f}_compat.c implementation. Checked on i686-linux-gnu and with a build for m68k-linux-gnu. Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
* math: Fix i386 and m68k fmod/fmodf on static build (BZ 31488)Adhemerval Zanella2024-05-215-13/+17
| | | | | | | | | | | | | | | The commit 16439f419b removed the static fmod/fmodf on i386 and m68k with and empty w_fmod.c (required for the ABIs that uses the newly implementation). This patch fixes by adding the required symbols on the arch-specific w_fmod{f}_compat.c implementation. To statically build fmod fails on some ABI (alpha, s390, sparc) because it does not export the ldexpf128, this is also fixed by this patch. Checked on i686-linux-gnu and with a build for m68k-linux-gnu. Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> Tested-by: Aurelien Jarno <aurelien@aurel32.net>
* Remove the clone3 symbol from libc.a [BZ #31770]H.J. Lu2024-05-2111-11/+0
| | | | | | | | clone3 isn't exported from glibc and is hidden in libc.so. Fix BZ #31770 by removing clone3 alias. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* aarch64/fpu: Add vector variants of powJoe Ramsay2024-05-2121-12/+2236
| | | | | | | Plus a small amount of moving includes around in order to be able to remove duplicate definition of asuint64. Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
* Compile libmvec with -fno-math-errnoJoe Ramsay2024-05-211-3/+4
| | | | | | | | | | | Rounding intrinsics may not be inlined without -fno-math-errno. libmvec is free to do what it likes with errno, so disable it for better performance. Tested with no regression on aarch64 and x86_64. Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
* manual: clarify defintions of floating point exponent bounds (bug 31518)Andreas Schwab2024-05-211-5/+5
| | | | | For decimal exponent bounds the range is inclusive, for binary exponent bounds the range is exclusive.
* LoongArch: Update ulpscaiyinyu2024-05-211-0/+20
| | | | For the log2p1 implementation.
* LoongArch: Fix tst-gnu2-tls2 compiler errormengqinggang2024-05-213-2/+8
| | | | | Add -mno-lsx to tst-gnu2-tlsmod*.c if gcc support -mno-lsx. Add escape character '\' in vector support test function.
* resolv: Make _res_opcodes a compat symbol [BZ #31764]H.J. Lu2024-05-201-0/+1
| | | | | | | | _res_opcodes was exported by accident as a variable. Fix BZ #31764 by making _res_opcodes a compat symbol. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sunil K Pandey <skpgkp2@gmail.com>
* i386: Don't define stpncpy alias when used in IFUNC [BZ #31768]H.J. Lu2024-05-201-0/+2
| | | | | | | Fix BZ #31768 by not defining stpncpy alias when used in IFUNC. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sunil K Pandey <skpgkp2@gmail.com>
* powerpc: Update ulpsAdhemerval Zanella2024-05-201-0/+24
| | | | For the log2p1 implementation.
* arm: Update ulpsAdhemerval Zanella2024-05-201-0/+16
| | | | For the log2p1 implementation.
* aarch64: Update ulpsAdhemerval Zanella2024-05-201-0/+20
| | | | For the log2p1 implementation.
* math: Add more details to the test driver output.Joe Simmons-Talbott2024-05-203-49/+162
| | | | | | | | | | | | | Add start and end indicators that identify the test being run in the verbose output. Better identify the tests for max errors in the summary output. Count each exception checked for each test. Remove double counting of tests for the check_<type> functions other than check_float_internal. Rename print_max_error and print_complex_max_error to check_max_error and check_complex_max_error respectively since they have side effects. Co-Authored-By: Carlos O'Donell <carlos@redhat.com> Reviewed-By: Joseph Myers <josmyers@redhat.com>
* Implement C23 log2p1Joseph Myers2024-05-2052-2/+3206
| | | | | | | | | | | | | | | | | | | | | | | | C23 adds various <math.h> function families originally defined in TS 18661-4. Add the log2p1 functions (log2(1+x): like log1p, but for base-2 logarithms). This illustrates the intended structure of implementations of all these function families: define them initially with a type-generic template implementation. If someone wishes to add type-specific implementations, it is likely such implementations can be both faster and more accurate than the type-generic one and can then override it for types for which they are implemented (adding benchmarks would be desirable in such cases to demonstrate that a new implementation is indeed faster). The test inputs are copied from those for log1p. Note that these changes make gen-auto-libm-tests depend on MPFR 4.2 (or later). The bulk of the changes are fairly generic for any such new function. (sysdeps/powerpc/nofpu/Makefile only needs changing for those type-generic templates that use fabs.) Tested for x86_64 and x86, and with build-many-glibcs.py.
* Update syscall lists for Linux 6.9Joseph Myers2024-05-201-2/+2
| | | | | | | Linux 6.9 has no new syscalls. Update the version number in syscall-names.list to reflect that it is still current for 6.9. Tested with build-many-glibcs.py.
* Rename procutils_read_file to __libc_procutils_read_file [BZ #31755]H.J. Lu2024-05-203-5/+7
| | | | | | | | Fix BZ #31755 by renaming the internal function procutils_read_file to __libc_procutils_read_file. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* nearbyint: Don't define alias when used in IFUNC [BZ #31759]H.J. Lu2024-05-202-0/+4
| | | | | | | Fix BZ #31759 by not defining nearbyint aliases when used in IFUNC. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
* Pass -nostdlib -nostartfiles together with -r [BZ #31753]H.J. Lu2024-05-191-1/+2
| | | | | | | | | Since -r in GCC 6/7/8 doesn't imply -nostdlib -nostartfiles, update the link-static-libc.out rule to also pass -nostdlib -nostartfiles. This fixes BZ #31753. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Florian Weimer <fweimer@redhat.com>
* socket: Use may_alias on sockaddr structs (bug 19622)Florian Weimer2024-05-1810-14/+25
| | | | | | | | | | | | | | This supports common coding patterns. The GCC C front end before version 7 rejects the may_alias attribute on a struct definition if it was not present in a previous forward declaration, so this attribute can only be conditionally applied. This implements the spirit of the change in Austin Group issue 1641. Suggested-by: Marek Polacek <polacek@redhat.com> Suggested-by: Jakub Jelinek <jakub@redhat.com> Reviewed-by: Sam James <sam@gentoo.org> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* Use a doubly-linked list for _IO_list_all (bug 27777)Alexandre Ferrieux2024-05-173-2/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes BZ #27777 "fclose does a linear search, takes ages when many FILE* are opened". Simply put, the master list of opened (FILE*), namely _IO_list_all, is a singly-linked list. As a consequence, the removal of a single element is in O(N), which cripples the performance of fclose(). The patch switches to a doubly-linked list, yielding O(1) removal. The one padding field in struct _IO_FILE, __pad5, is renamed to _prevchain for a doubly-linked list. Since fields in struct _IO_FILE after the _lock field are internal to glibc and opaque to applications. We can change them as long as the size of struct _IO_FILE is unchanged, which is checked as the part of glibc ABI with sizes of _IO_2_1_stdin_, _IO_2_1_stdout_ and _IO_2_1_stderr_. NB: When _IO_vtable_offset (fp) == 0, copy relocation will cover the whole struct _IO_FILE. Otherwise, only fields up to the _lock field will be copied to applications at run-time. It is used to check if the _prevchain field can be safely accessed. After opening 2 million (FILE*), the fclose() of 100 of them takes quite a few seconds without the patch, and under 2 seconds with it on a loaded machine. No test is added since there are no functional changes. Co-Authored-By: H.J. Lu <hjl.tools@gmail.com> Signed-off-by: Alexandre Ferrieux <alexandre.ferrieux@orange.com> Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* powerpc64: Fix by using the configure value $libc_cv_cc_submachine [BZ ↵Manjunath Matti2024-05-162-4/+4
| | | | | | | | | | #31629] This patch ensures that $libc_cv_cc_submachine, which is set from "--with-cpu", overrides $CFLAGS for configure time tests. Suggested-by: Peter Bergner <bergner@linux.ibm.com> Reviewed-by: Peter Bergner <bergner@linux.ibm.com>