aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-09-06stdio: Remove __printf_fp_buffer_2 alloca usageazanella/alloca-removalAdhemerval Zanella1-26/+10
And replace with a scratch_buffer.
2023-09-06stdio: Remove __printf_fp_buffer_1 alloca usageAdhemerval Zanella1-272/+330
The function is refactored so double and long double / Float128 have different stack allocations. For double, allocating the maximum required size for all possible inputs requires about ~480 bytes, so the memory is allocated on the stack. The long double / _Float128 requires about 6240 bytes, so a stratch_buffer is used instead.
2023-09-06stdio: Remove __libc_message alloca usageJoe Simmons-Talbott2-35/+40
Use a fixed size array instead. The maximum number of arguments is set by macro tricks.
2023-08-29Use GMP 6.3.0, MPFR 4.2.1 in build-many-glibcs.pyJoseph Myers1-2/+2
This patch makes build-many-glibcs.py use the new GMP 6.3.0 and MPFR 4.2.1 releases. Tested with build-many-glibcs.py (host-libraries, compilers and glibcs builds).
2023-08-29localedata: Translit common emojis to smileys [BZ #30649]Colin Leroy-Mira4-0/+213
Add common emojis to the translit-able characters (mostly faces and hearts), and translit them to old-fashioned smileys. Signed-off-by: Colin Leroy-Mira <colin@colino.net> Reviewed-by: Florian Weimer <fweimer@redhat.com>
2023-08-29nscd: Skip unusable entries in first pass in prune_cache (bug 30800)Florian Weimer1-14/+11
Previously, if an entry was marked unusable for any reason, but had not timed out yet, the assert would trigger. One way to get into such state is if a data change is detected during re-validation of an entry. This causes the entry to be marked as not usable. If exits nscd soon after that, then the clock jumps backwards, and nscd restarted, the cache re-validation run after startup triggers the removed assert. The change is more complicated than just the removal of the assert because entries marked as not usable should be garbage-collected in the second pass. To make this happen, it is necessary to update some book-keeping data. Reviewed-by: DJ Delorie <dj@redhat.com>
2023-08-29LoongArch: Change loongarch to LoongArch in commentsdengjianbo24-24/+24
2023-08-29LoongArch: Add ifunc support for memcmp{aligned, lsx, lasx}dengjianbo7-0/+861
According to glibc memcmp microbenchmark test results(Add generic memcmp), this implementation have performance improvement except the length is less than 3, details as below: Name Percent of time reduced memcmp-lasx 16%-74% memcmp-lsx 20%-50% memcmp-aligned 5%-20%
2023-08-29LoongArch: Add ifunc support for memset{aligned, unaligned, lsx, lasx}dengjianbo8-0/+688
According to glibc memset microbenchmark test results, for LSX and LASX versions, A few cases with length less than 8 experience performace degradation, overall, the LASX version could reduce the runtime about 15% - 75%, LSX version could reduce the runtime about 15%-50%. The unaligned version uses unaligned memmory access to set data which length is less than 64 and make address aligned with 8. For this part, the performace is better than aligned version. Comparing with the generic version, the performance is close when the length is larger than 128. When the length is 8-128, the unaligned version could reduce the runtime about 30%-70%, the aligned version could reduce the runtime about 20%-50%.
2023-08-29LoongArch: Add ifunc support for memrchr{lsx, lasx}dengjianbo7-0/+335
According to glibc memrchr microbenchmark, this implementation could reduce the runtime as following: Name Percent of rutime reduced memrchr-lasx 20%-83% memrchr-lsx 20%-64%
2023-08-29LoongArch: Add ifunc support for memchr{aligned, lsx, lasx}dengjianbo7-0/+401
According to glibc memchr microbenchmark, this implementation could reduce the runtime as following: Name Percent of runtime reduced memchr-lasx 37%-83% memchr-lsx 30%-66% memchr-aligned 0%-15%
2023-08-29LoongArch: Add ifunc support for rawmemchr{aligned, lsx, lasx}dengjianbo7-0/+365
According to glibc rawmemchr microbenchmark, A few cases tested with char '\0' experience performance degradation due to the lasx and lsx versions don't handle the '\0' separately. Overall, rawmemchr-lasx implementation could reduce the runtime about 40%-80%, rawmemchr-lsx implementation could reduce the runtime about 40%-66%, rawmemchr-aligned implementation could reduce the runtime about 20%-40%.
2023-08-29LoongArch: Micro-optimize LD_PCRELXi Ruoyao1-6/+4
We are requiring Binutils >= 2.41, so explicit relocation syntax is always supported by the assembler. Use it to reduce one instruction. Signed-off-by: Xi Ruoyao <xry111@xry111.site>
2023-08-29LoongArch: Remove support code for old linker in start.SXi Ruoyao1-16/+3
We are requiring Binutils >= 2.41, so la.pcrel always works here. Signed-off-by: Xi Ruoyao <xry111@xry111.site>
2023-08-29LoongArch: Simplify the autoconf check for static PIEXi Ruoyao2-50/+16
We are strictly requiring GAS >= 2.41 now, so we don't need to check assembler capability anymore. Signed-off-by: Xi Ruoyao <xry111@xry111.site>
2023-08-28Add F_SEAL_EXEC from Linux 6.3 to bits/fcntl-linux.h.Kir Kolyshkin1-0/+1
This patch adds the new F_SEAL_EXEC constant from Linux 6.3 (see Linux commit 6fd7353829c ("mm/memfd: add F_SEAL_EXEC") to bits/fcntl-linux.h. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2023-08-28argp-parse: Get rid of allocaJoe Simmons-Talbott1-24/+11
Even though the alloca usage is relatively small and fixed size the code can be written without using alloca. Convert to local variables. Checked on x86_64-linux-gnu. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2023-08-28gencat: Get rid of alloca.Joe Simmons-Talbott1-6/+31
Convert to scratch_buffers to avoid potential stack overflow. Checked on x86_64-linux-gnu and aarch64-linux-gnu. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2023-08-25m68k: Use M68K_SCALE_AVAILABLE on __mpn_lshift and __mpn_rshiftAdhemerval Zanella3-7/+14
This patch adds a new macro, M68K_SCALE_AVAILABLE, similar to gmp scale_available_p (mpn/m68k/m68k-defs.m4) that expand to 1 if a scale factor can be used in addressing modes. This is used instead of __mc68020__ for some optimization decisions. Checked on a build for m68k-linux-gnu target mc68020 and mc68040.
2023-08-25m68k: Fix build with -mcpu=68040 or higher (BZ 30740)Adhemerval Zanella2-1/+21
GCC currently does not define __mc68020__ for -mcpu=68040 or higher, which memcpy/memmove assumptions. Since this memory copy optimization seems only intended for m68020, disable for other m680X0 variants. Checked on a build for m68k-linux-gnu target mc68020 and mc68040.
2023-08-25elf: Check that --list-diagnostics output has the expected syntaxFlorian Weimer4-0/+327
Parts of elf/tst-rtld-list-diagnostics.py have been copied from scripts/tst-ld-trace.py. The abnf module is entirely optional and used to verify the ABNF grammar as included in the manual. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2023-08-25manual: Document ld.so --list-diagnostics outputFlorian Weimer1-0/+207
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2023-08-25manual/jobs.texi: Add missing @item EPERM for getpgidMark Wielaard1-0/+1
The missing @item makes it look like errno will be set to ESRCH if a cross-session getpgid is not permitted. Found by ulfvonbelow on irc.
2023-08-24LoongArch: Add ifunc support for strncmp{aligned, lsx}dengjianbo6-0/+508
Based on the glibc microbenchmark, only a few short inputs with this strncmp-aligned and strncmp-lsx implementation experience performance degradation, overall, strncmp-aligned could reduce the runtime 0%-10% for aligned comparision, 10%-25% for unaligend comparision, strncmp-lsx could reduce the runtime about 0%-60%.
2023-08-24LoongArch: Add ifunc support for strcmp{aligned, lsx}dengjianbo6-0/+426
Based on the glibc microbenchmark, strcmp-aligned implementation could reduce the runtime 0%-10% for aligned comparison, 10%-20% for unaligned comparison, strcmp-lsx implemenation could reduce the runtime 0%-50%.
2023-08-24LoongArch: Add ifunc support for strnlen{aligned, lsx, lasx}dengjianbo7-0/+382
Based on the glibc microbenchmark, strnlen-aligned implementation could reduce the runtime more than 10%, strnlen-lsx implementation could reduce the runtime about 50%-78%, strnlen-lasx implementation could reduce the runtime about 50%-88%.
2023-08-24htl: move pthread_attr_setdetachstate into libcGuy-Fleury Iteriteka7-11/+4
Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> Message-Id: <20230716084414.107245-11-gfleury@disroot.org>
2023-08-24htl: move pthread_attr_getdetachstate into libcGuy-Fleury Iteriteka7-11/+3
Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> Message-Id: <20230716084414.107245-10-gfleury@disroot.org>
2023-08-24htl: move pthread_attr_setschedpolicy into libcGuy-Fleury Iteriteka7-11/+3
Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> Message-Id: <20230716084414.107245-9-gfleury@disroot.org>
2023-08-24htl: move pthread_attr_getschedpolicy into libcGuy-Fleury Iteriteka7-10/+2
Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> Message-Id: <20230716084414.107245-8-gfleury@disroot.org>
2023-08-24htl: move pthread_attr_setinheritsched into libcGuy-Fleury Iteriteka7-11/+4
Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> Message-Id: <20230716084414.107245-7-gfleury@disroot.org>
2023-08-24htl: move pthread_attr_getinheritsched into libcGuy-Fleury Iteriteka7-10/+3
Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> Message-Id: <20230716084414.107245-6-gfleury@disroot.org>
2023-08-24htl: move pthread_attr_getschedparam into libcGuy-Fleury Iteriteka7-13/+3
Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> Message-Id: <20230716084414.107245-5-gfleury@disroot.org>
2023-08-24htl: move pthread_setschedparam into libcGuy-Fleury Iteriteka7-15/+3
Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> Message-Id: <20230716084414.107245-4-gfleury@disroot.org>
2023-08-24htl: move pthread_getschedparam into libcGuy-Fleury Iteriteka7-12/+4
Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> Message-Id: <20230716084414.107245-3-gfleury@disroot.org>
2023-08-24htl: move pthread_equal into libcGuy-Fleury Iteriteka7-12/+2
Signed-off-by: Guy-Fleury Iteriteka <gfleury@disroot.org> Message-Id: <20230716084414.107245-2-gfleury@disroot.org>
2023-08-23Linux: Avoid conflicting types in ld.so --list-diagnosticsFlorian Weimer1-5/+8
The path auxv[*].a_val could either be an integer or a string, depending on the a_type value. Use a separate field, a_val_string, to simplify mechanical parsing of the --list-diagnostics output. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2023-08-22elf: Do not run constructors for proxy objectsFlorian Weimer1-2/+6
Otherwise, the ld.so constructor runs for each audit namespace and each dlmopen namespace.
2023-08-21x86_64: Add log1p with FMAH.J. Lu4-0/+40
On Skylake, it changes log1p bench performance by: Before After Improvement max 63.349 58.347 8% min 4.448 5.651 -30% mean 12.0674 10.336 14% The minimum code path is if (hx < 0x3FDA827A) /* x < 0.41422 */ { if (__glibc_unlikely (ax >= 0x3ff00000)) /* x <= -1.0 */ { ... } if (__glibc_unlikely (ax < 0x3e200000)) /* |x| < 2**-29 */ { math_force_eval (two54 + x); /* raise inexact */ if (ax < 0x3c900000) /* |x| < 2**-54 */ { ... } else return x - x * x * 0.5; FMA and non-FMA code sequences look similar. Non-FMA version is slightly faster. Since log1p is called by asinh and atanh, it improves asinh performance by: Before After Improvement max 75.645 63.135 16% min 10.074 10.071 0% mean 15.9483 14.9089 6% and improves atanh performance by: Before After Improvement max 91.768 75.081 18% min 15.548 13.883 10% mean 18.3713 16.8011 8%
2023-08-21Remove references to the defunct db2 subdirAndreas Schwab3-11/+0
The db2 subdir has been removed more than 20 years ago.
2023-08-18string: Fix tester build with fortify enable with gcc < 12Mahesh Bodapati1-3/+8
When building with fortify enabled, GCC < 12 issues a warning on the fortify strncat wrapper might overflow the destination buffer (the failure is tied to -Werror). Checked on ppc64 and x86_64. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2023-08-18s390x: Fix static PIE condition for toolchain bootstrapping.Stefan Liebler2-12/+138
The static PIE configure check uses link tests. When bootstrapping a cross-toolchain, the link tests fail due to missing crt-files / libc.so. As we explicitely want to test an issue in binutils (ld), we now also explicitely check for known linker versions. See also commit 368b7c614b102122b86af3953daea2b30230d0a8 S390: Use compile-only instead of also link-tests in configure.
2023-08-17m68k: fix __mpn_lshift and __mpn_rshift for non-68020Andreas Schwab2-4/+4
From revision 03f3d275d0d6 in the gmp repository.
2023-08-17sysdeps: tst-bz21269: fix -Wreturn-typeSam James1-2/+0
Thanks to Andreas Schwab for reporting. Fixes: 652b9fdb77d9fd056d4dd26dad2c14142768ab49 Signed-off-by: Sam James <sam@gentoo.org>
2023-08-17Loongarch: Add ifunc support for memcpy{aligned, unaligned, lsx, lasx} and ↵dengjianbo13-0/+2435
memmove{aligned, unaligned, lsx, lasx} These implementations improve the time to copy data in the glibc microbenchmark as below: memcpy-lasx reduces the runtime about 8%-76% memcpy-lsx reduces the runtime about 8%-72% memcpy-unaligned reduces the runtime of unaligned data copying up to 40% memcpy-aligned reduece the runtime of unaligned data copying up to 25% memmove-lasx reduces the runtime about 20%-73% memmove-lsx reduces the runtime about 50% memmove-unaligned reduces the runtime of unaligned data moving up to 40% memmove-aligned reduces the runtime of unaligned data moving up to 25%
2023-08-17Loongarch: Add ifunc support for strchr{aligned, lsx, lasx} and ↵dengjianbo12-0/+581
strchrnul{aligned, lsx, lasx} These implementations improve the time to run strchr{nul} microbenchmark in glibc as below: strchr-lasx reduces the runtime about 50%-83% strchr-lsx reduces the runtime about 30%-67% strchr-aligned reduces the runtime about 10%-20% strchrnul-lasx reduces the runtime about 50%-83% strchrnul-lsx reduces the runtime about 36%-65% strchrnul-aligned reduces the runtime about 6%-10%
2023-08-16sysdeps: tst-bz21269: handle ENOSYS & skip appropriatelySam James1-1/+10
SYS_modify_ldt requires CONFIG_MODIFY_LDT_SYSCALL to be set in the kernel, which some distributions may disable for hardening. Check if that's the case (unset) and mark the test as UNSUPPORTED if so. Reviewed-by: DJ Delorie <dj@redhat.com> Signed-off-by: Sam James <sam@gentoo.org>
2023-08-16sysdeps: tst-bz21269: fix test parameterSam James1-1/+1
All callers pass 1 or 0x11 anyway (same meaning according to man page), but still. Reviewed-by: DJ Delorie <dj@redhat.com> Signed-off-by: Sam James <sam@gentoo.org>
2023-08-16hurd: Fix strictness of <mach/thread_state.h>Samuel Thibault1-3/+3
Fixes: db25bc52026f ("hurd: Add prototype for and thus fix _hurdsig_abort_rpcs call")
2023-08-15hurd: Add prototype for and thus fix _hurdsig_abort_rpcs callSamuel Thibault2-10/+7
This was actually not a problem since NULL was getting passed.