aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-09string: Replace outdated comments in strlen().Ricardo Bittencourt
Copyright The GNU Toolchain Authors. The comments on strlen() don't match what the actual code does. They describe an older algorithm which is no longer in use. This change replace the old comments with new ones describing the algorithm used. I am a first time contributor, and I believe there is no need for copyright assignment, since the file changed is not in the shared source files list. This patch only changes comments, but for safety I have run the tests in my x64 ubuntu machine, with the following results: Summary of test results: 5051 PASS 80 UNSUPPORTED 16 XFAIL 6 XPASS Signed-off-by: Ricardo Bittencourt <bluepenguin@gmail.com>
2022-04-07S390: Fix elf/tst-audit25[ab]Stefan Liebler
If glibc is configured with --disable-default-pie and build on s390 with -O3, the tests elf/tst-audit25a and elf/tst-audit25b are failing as there are additional la_symbind lines for free and malloc. It turns out that those belong to the executable. In fact those are the PLT-stubs. Furthermore la_symbind is also called for calloc and realloc symbols, but those belong to libc. Those functions are not called at all, but dlsym'ed in elf/dl-minimal.c: __rtld_malloc_init_real (struct link_map *main_map) { ... void *new_calloc = lookup_malloc_symbol (main_map, "calloc", &version); void *new_free = lookup_malloc_symbol (main_map, "free", &version); void *new_malloc = lookup_malloc_symbol (main_map, "malloc", &version); void *new_realloc = lookup_malloc_symbol (main_map, "realloc", &version); ... } Therefore, this commit just ignored symbols with LA_SYMB_DLSYM flag. Reviewed-by: Adheemrval Zanella <adhemerval.zanella@linaro.org>
2022-04-07sparc64: Remove fcopysign{f} implementationAdhemerval Zanella
The builtin from generic code generates similar compliant sequence. Checked on sparc64-linux-gnu.
2022-04-07alpha: Remove fcopysign{f} implementationAdhemerval Zanella
The generic code already uses builtins.
2022-04-07math: Use builtin for ldbl-96 copysignAdhemerval Zanella
All architectures that uses it (x86, ia64, m68k) implement the builtin. Checked on x86_64-linux-gnu and ia64-linux-gnu.
2022-04-07ia64: Remove fcopysign{f} implementationAdhemerval Zanella
The builtin used by generic code generates similar code. Checked on ia64-linux-gnu.
2022-04-07x86: Remove fcopysign{f} implementationAdhemerval Zanella
The builtin used by generic code generates similar code. Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-04-07powerpc: Remove fcopysign{f} implementationAdhemerval Zanella
The builtin and generic implementation from generic files are suffice. Checked on powerpc64-linux-gnu and powerpc-linux-gnu.
2022-04-07Add rif_MA locale [BZ #27781]Ilyahoo Proshel
Resolves: BZ #27781
2022-04-06tests/string: Drop simple/stupid/builtin testsSiddhesh Poyarekar
In most cases the simple/stupid/builtin functions were in there to benchmark optimized implementations against. Only in some cases the functions are used to check expected results. Remove these tests from IMPL() and only keep them in wherever they're used for a specific purpose, e.g. to generate expected results. This improves timing of `make subdirs=string` by over a minute and a half (over 15%) on a Whiskey Lake laptop. Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org> Reviewed-by: Noah Goldstein <libc-alpha@sourceware.org>
2022-04-06test-memcpy: Actually reverse source and destinationSiddhesh Poyarekar
Looks like an oversight in memcpy tests resulted in s2 and s1 not being swapped for the second iteration of the memcpy test. Fix it. Also fix a formatting nit. Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2022-04-05benchtests: Only build libmvec benchmarks iff $(build-mathvec) is setAdhemerval Zanella
Checked on x86_64-linux-gnu.
2022-04-05linux: Fix __closefrom_fallback iterates until max int (BZ#28993)Adhemerval Zanella
The __closefrom_fallback tries to get a available file descriptor if the initial open ("/proc/self/fd/", ...) fails. It assumes the failure would be only if procfs is not mount (ENOENT), however if the the proc file is not accessible (due some other kernel filtering such apparmor) it will iterate over a potentially large file set issuing close calls. It should only try the close fallback if open returns EMFILE, ENFILE, or ENOMEM. Checked on x86_64-linux-gnu.
2022-04-04Remove -z combreloc and HAVE_Z_COMBRELOCFangrui Song
-z combreloc has been the default regadless of the architecture since binutils commit f4d733664aabd7bd78c82895e030ec9779a92809 (2002). The configure check added in commit fdde83499a05 (2001) has long been unneeded. We can therefore treat HAVE_Z_COMBRELOC as always 1 and delete dead code paths in dl-machine.h files (many were copied from commit a711b01d34ca and ee0cb67ec238). Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2022-04-04sparc: Remove s_abs implementationsAdhemerval Zanella
For sparc64 is the same as the generic implementation, while for sparc32 the builtin generates the same code. Checked on sparc64-linux-gnu and sparcv9-linux-gnu.
2022-04-04ia64: Remove fabs implementationsAdhemerval Zanella
The generic implementation fixes 5 fabs tests on ia64-linux-gnu: math/test-double-fabs math/test-float-fabs math/test-float32-fabs math/test-float32x-fabs math/test-float64-fabs Checked on ia64-linux-gnu.
2022-04-04x86: Remove fabs{f} implementationAdhemerval Zanella
For x86_64 is the same as the generic implementation, while for i686 the builtin generates the same code.
2022-04-04alpha: Remove s_abs implementationsAdhemerval Zanella
The generic implementation already uses builtins.
2022-04-04Allow for unpriviledged nested containersDJ Delorie
If the build itself is run in a container, we may not be able to fully set up a nested container for test-container testing. Notably is the mounting of /proc, since it's critical that it be mounted from within the same PID namespace as its users, and thus cannot be bind mounted from outside the container like other mounts. This patch defaults to using the parent's PID namespace instead of creating a new one, as this is more likely to be allowed. If the test needs an isolated PID namespace, it should add the "pidns" command to its init script. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2022-04-01Increase the test timeout of some string testsSzabolcs Nagy
Recent changes in test-strncasecmp and test-strncmp pushed the run time of the tests above the 4 minute limit specified in test-string.h on an arm tester machine.
2022-03-31realpath: Bring back GNU extension on ENOENT and EACCES [BZ #28996]Siddhesh Poyarekar
The GNU extension for realpath states that if the path resolution fails with ENOENT or EACCES and the resolved buffer is non-NULL, it will contain part of the path that failed resolution. commit 949ad78a189194048df8a253bb31d1d11d919044 broke this when it omitted the copy on failure. Bring it back partially to continue supporting this GNU extension. Resolves: BZ #28996 Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org> Reviewed-by: Andreas Schwab <schwab@linux-m68k.org>
2022-03-31stdlib: Fix tst-getrandom memcmp callAdhemerval Zanella
The idea is to check if the up sizeof (buf) are equal, not only the first byte. Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-03-31stdlib: Fix tst-rand48.c printf typesAdhemerval Zanella
Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-03-31elf: Remove unused functions from tst-audit25(a,b)Adhemerval Zanella
2022-03-31nptl: Use libc-diag.h with tst-thread-setspecificAdhemerval Zanella
And also use libsupport. Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-03-31crypt: Remove unused variable on cert testAdhemerval Zanella
Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-03-31elf: Remove unused variables in testsAdhemerval Zanella
Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-03-31elf: Fix wrong fscanf usage on tst-plddAdhemerval Zanella
To take in consideration the extra '\0'. Checked on x86_64-linux-gnu.
2022-03-31posix: Remove unused variable on tst-_Fork.cAdhemerval Zanella
Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-03-31resolv: Initialize loop variable on tst-resolv-trailingAdhemerval Zanella
Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-03-31locale: Remove set but unused variable on ld-collate.cAdhemerval Zanella
Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-03-31localedate: Fix printf type on tst_mbrtowcAdhemerval Zanella
Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-03-31localedata: Remove unused variables in testsAdhemerval Zanella
Checked on x86_64-linux-gnu and i686-linux-gnu.
2022-03-28x86: Small improvements for wcslenNoah Goldstein
Just a few QOL changes. 1. Prefer `add` > `lea` as it has high execution units it can run on. 2. Don't break macro-fusion between `test` and `jcc` 3. Reduce code size by removing gratuitous padding bytes (-90 bytes). geometric_mean(N=20) of all benchmarks New / Original: 0.959 All string/memory tests pass. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-28x86: Small improvements for wcscpy-ssse3Noah Goldstein
Just a few small QOL changes. 1. Prefer `add` > `lea` as it has high execution units it can run on. 2. Don't break macro-fusion between `test` and `jcc` geometric_mean(N=20) of all benchmarks New / Original: 0.973 All string/memory tests pass. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-28debug: Improve fdelt_chk error messageCristian Rodríguez
It is not a "buffer overflow detected" but an out of range bit on fd_set Signed-off-by: Cristian Rodríguez <crrodriguez@opensuse.org> Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2022-03-28Add HWCAP2_AFP, HWCAP2_RPRES from Linux 5.17 to AArch64 bits/hwcap.hJoseph Myers
Add the new HWCAP2_AFP and HWCAP2_RPRES constants from Linux 5.17. Tested with build-many-glibcs.py for aarch64-linux-gnu.
2022-03-25x86: Remove AVX str{n}casecmpNoah Goldstein
The rational is: 1. SSE42 has nearly identical logic so any benefit is minimal (3.4% regression on Tigerlake using SSE42 versus AVX across the benchtest suite). 2. AVX2 version covers the majority of targets that previously prefered it. 3. The targets where AVX would still be best (SnB and IVB) are becoming outdated. All in all the saving the code size is worth it. All string/memory tests pass. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25x86: Add EVEX optimized str{n}casecmpNoah Goldstein
geometric_mean(N=40) of all benchmarks EVEX / SSE42: .621 All string/memory tests pass. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25x86: Add AVX2 optimized str{n}casecmpNoah Goldstein
geometric_mean(N=40) of all benchmarks AVX2 / SSE42: .702 All string/memory tests pass. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25string: Expand page cross test cases in test-strncmp.cNoah Goldstein
Test cases for when both `s1` and `s2` are near the end of a page where previously missing. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25string: Expand page cross test cases in test-strcmp.cNoah Goldstein
Test cases for when both `s1` and `s2` are near the end of a page where previously missing. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25x86: Optimize str{n}casecmp TOLOWER logic in strcmp-sse42.SNoah Goldstein
Slightly faster method of doing TOLOWER that saves an instruction. Also replace the hard coded 5-byte no with .p2align 4. On builds with CET enabled this misaligned entry to strcasecmp. geometric_mean(N=40) of all benchmarks New / Original: .920 All string/memory tests pass. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25x86: Optimize str{n}casecmp TOLOWER logic in strcmp.SNoah Goldstein
Slightly faster method of doing TOLOWER that saves an instruction. Also replace the hard coded 5-byte no with .p2align 4. On builds with CET enabled this misaligned entry to strcasecmp. geometric_mean(N=40) of all benchmarks New / Original: .894 All string/memory tests pass. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25string: Expand page cross tests in test-strncasecmp.cNoah Goldstein
Add more robust tests that cover all the page cross edge cases. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25string: Expand page cross tests in test-strcasecmp.cNoah Goldstein
Add more robust tests that cover all the page cross edge cases. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25benchtests: Use json-lib in bench-strncasecmp.cNoah Goldstein
Just QOL change to make parsing the output of the benchtests more consistent. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25benchtests: Use json-lib in bench-strcasecmp.cNoah Goldstein
Just QOL change to make parsing the output of the benchtests more consistent. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25x86: Fix fallback for wcsncmp_avx2 in strcmp-avx2.S [BZ #28896]Noah Goldstein
Overflow case for __wcsncmp_avx2_rtm should be __wcscmp_avx2_rtm not __wcscmp_avx2. commit ddf0992cf57a93200e0c782e2a94d0733a5a0b87 Author: Noah Goldstein <goldstein.w.n@gmail.com> Date: Sun Jan 9 16:02:21 2022 -0600 x86: Fix __wcsncmp_avx2 in strcmp-avx2.S [BZ# 28755] Set the wrong fallback function for `__wcsncmp_avx2_rtm`. It was set to fallback on to `__wcscmp_avx2` instead of `__wcscmp_avx2_rtm` which can cause spurious aborts. This change will need to be backported. All string/memory tests pass. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2022-03-25x86: Remove strspn-sse2.S and use the generic implementationNoah Goldstein
The generic implementation is faster. geometric_mean(N=20) of all benchmarks New / Original: .710 All string/memory tests pass. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>