glibc/sysdeps
Adhemerval Zanella 2a969b53c0 elf: Do not duplicate the GLIBC_TUNABLES string
The tunable parsing duplicates the tunable environment variable so it
null-terminates each one since it simplifies the later parsing. It has
the drawback of adding another point of failure (__minimal_malloc
failing), and the memory copy requires tuning the compiler to avoid mem
operations calls.

The parsing now tracks the tunable start and its size. The
dl-tunable-parse.h adds helper functions to help parsing, like a strcmp
that also checks for size and an iterator for suboptions that are
comma-separated (used on hwcap parsing by x86, powerpc, and s390x).

Since the environment variable is allocated on the stack by the kernel,
it is safe to keep the references to the suboptions for later parsing
of string tunables (as done by set_hwcaps by multiple architectures).

Checked on x86_64-linux-gnu, powerpc64le-linux-gnu, and
aarch64-linux-gnu.
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2023-12-19 13:25:45 -03:00
..
aarch64 aarch64: correct CFI in rawmemchr (bug 31113) 2023-12-05 12:49:37 +01:00
alpha elf: Remove LD_PROFILE for static binaries 2023-11-21 16:15:42 -03:00
arc configure: Use autoconf 2.71 2023-07-17 10:08:10 -04:00
arm elf: Remove LD_PROFILE for static binaries 2023-11-21 16:15:42 -03:00
csky configure: Use autoconf 2.71 2023-07-17 10:08:10 -04:00
generic elf: Do not duplicate the GLIBC_TUNABLES string 2023-12-19 13:25:45 -03:00
gnu Add TCP_MD5SIG_FLAG_IFINDEX from Linux 5.6 to netinet/tcp.h. 2023-11-28 13:44:47 +01:00
hppa elf: Remove LD_PROFILE for static binaries 2023-11-21 16:15:42 -03:00
htl htl: move pthread_attr_setdetachstate into libc 2023-08-24 01:57:22 +02:00
hurd hurd: Fix using interposable hurd_thread_self 2023-05-19 20:45:51 +02:00
i386 elf: Remove LD_PROFILE for static binaries 2023-11-21 16:15:42 -03:00
ia64 elf: Remove LD_PROFILE for static binaries 2023-11-21 16:15:42 -03:00
ieee754 math: Add new exp10 implementation 2023-12-04 15:52:11 +00:00
loongarch elf: Remove LD_PROFILE for static binaries 2023-11-21 16:15:42 -03:00
m68k elf: Remove LD_PROFILE for static binaries 2023-11-21 16:15:42 -03:00
mach hurd: [!__USE_MISC] Do not #undef BSD macros in ioctls 2023-12-02 21:26:50 +01:00
microblaze configure: Use autoconf 2.71 2023-07-17 10:08:10 -04:00
mips mips: dl-machine-reject-phdr: Get rid of alloca. 2023-10-02 12:55:27 +00:00
nios2 configure: Use autoconf 2.71 2023-07-17 10:08:10 -04:00
nptl Fix misspellings in sysdeps/ -- BZ 25337 2023-05-30 23:02:29 +00:00
or1k configure: Use autoconf 2.71 2023-07-17 10:08:10 -04:00
posix linux: Decorate __libc_fatal error buffer 2023-11-07 10:27:53 -03:00
powerpc powerpc: Add space for HWCAP3/HWCAP4 in the TCB for future Power. 2023-12-15 20:20:14 -06:00
pthread sysdeps: sem_open: Clear O_CREAT when semaphore file is expected to exist [BZ #30789] 2023-11-03 15:19:38 -03:00
riscv riscv: Add support for XTheadBb in string-fz[a,i].h 2023-09-06 09:27:43 -03:00
s390 elf: Do not duplicate the GLIBC_TUNABLES string 2023-12-19 13:25:45 -03:00
sh elf: Remove LD_PROFILE for static binaries 2023-11-21 16:15:42 -03:00
sparc Do not build sparc32 libgcc functions into static libc 2023-12-19 16:00:11 +00:00
unix elf: Do not duplicate the GLIBC_TUNABLES string 2023-12-19 13:25:45 -03:00
wordsize-32 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
wordsize-64 hurd: Fix tst-writev test 2023-05-01 13:01:30 +02:00
x86 elf: Do not duplicate the GLIBC_TUNABLES string 2023-12-19 13:25:45 -03:00
x86_64 x86: Unifies 'strlen-evex' and 'strlen-evex512' implementations. 2023-12-18 12:38:01 -06:00