glibc/sysdeps/unix/sysv/linux
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 elf: Do not duplicate the GLIBC_TUNABLES string 2023-12-19 13:25:45 -03:00
alpha Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
arc Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
arm Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
bits Add SEGV_CPERR from Linux 6.6 to bits/siginfo-consts.h 2023-11-03 16:36:35 +00:00
csky Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
hppa Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
i386 elf: Fix _dl_debug_vdprintf to work before self-relocation 2023-11-21 16:15:42 -03:00
ia64 Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
include
loongarch Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
m68k Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
microblaze Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
mips Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
net
netash
netatalk
netax25
neteconet
netinet
netipx
netiucv
netpacket
netrom
netrose
nfs
nios2 Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
or1k Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
powerpc elf: Do not duplicate the GLIBC_TUNABLES string 2023-12-19 13:25:45 -03:00
riscv Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
s390 s390: Set psw addr field in getcontext and friends. 2023-12-19 11:00:19 +01:00
scsi
sh Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
sparc Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
sys linux: Add FSCONFIG_CMD_CREATE_EXCL from Linux 6.6 to sys/mount.h 2023-11-03 10:01:46 -03:00
wordsize-64
x86 linux: Add MMAP_ABOVE4G from Linux 6.6 to sys/mman.h 2023-11-03 10:01:46 -03:00
x86_64 Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
Implies
Makefile linux: Make fdopendir fail with O_PATH (BZ 30373) 2023-11-30 13:37:04 -03:00
Versions linux: Add pidfd_getpid 2023-09-05 13:08:59 -03:00
_G_config.h
____longjmp_chk.c
_exit.c
a.out.h
accept.c
accept4.c
access.c
adjtime.c
adjtimex.c
aio_misc.h
aio_sigqueue.c
alphasort64.c
arch-fd_to_filename.h
arch-fork.h
bind.c
brk.c
brk_call.h
check_native.c
check_pf.c
chmod.c
chown.c
clock.c
clock_adjtime.c
clock_getcpuclockid.c
clock_getres.c
clock_gettime.c
clock_nanosleep.c
clock_settime.c
clone-internal.c
clone-pidfd-support.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
clone3.c
clone3.h
close.c
close_nocancel.c
closedir.c
closefrom_fallback.c
cmsg_nxthdr.c
cnd_timedwait.c
configure
configure.ac
connect.c
convert_scm_timestamps.c
copy_file_range.c
creat.c
creat64.c
default-sched.h
device-nrs.h
dirfd.c
dirstream.h
dl-diagnostics-kernel.c Linux: Avoid conflicting types in ld.so --list-diagnostics 2023-08-23 08:12:48 +02:00
dl-early_allocate.c
dl-execstack.c
dl-execve.h
dl-fxstatat64.c
dl-getcwd.c
dl-openat64.c
dl-opendir.c
dl-origin.c
dl-osinfo.h
dl-parse_auxv.h
dl-sbrk.c
dl-sysdep.c
dl-sysdep.h
dl-vdso-setup.c
dl-vdso-setup.h
dl-vdso.h
dl-write.c
dl-writev.h
dup2.c
epoll_create.c
epoll_pwait.c
epoll_pwait2.c
epoll_wait.c
errlist-compat-data.h
errlist-compat.h
errqueue.h
eventfd_read.c
eventfd_write.c
execveat.c
faccessat.c
fallocate.c
fallocate64.c
fanotify_mark.c
fatal-prepare.h
fchmodat.c linux: Use fchmodat2 on fchmod for flags different than 0 (BZ 26401) 2023-11-20 13:15:24 -03:00
fcntl.c
fcntl64.c
fcntl_nocancel.c
fdatasync.c
fdopendir.c linux: Make fdopendir fail with O_PATH (BZ 30373) 2023-11-30 13:37:04 -03:00
features-time64.h
fexecve.c
filter-nr-syscalls.awk
fixup-asm-unistd.h
fpathconf.c
fstat.c
fstat64.c io: Do not implement fstat with fstatat 2023-09-27 09:30:24 -03:00
fstatat.c
fstatat64.c io: Do not implement fstat with fstatat 2023-09-27 09:30:24 -03:00
fstatfs.c
fstatfs64.c
fstatvfs.c
fstatvfs64.c
fsync.c
ftime.c
ftruncate.c
ftruncate64.c
futimens.c
futimes.c
futimesat.c
fxstat.c
fxstat64.c
fxstatat.c
fxstatat64.c
gai_sigqueue.c
gen-syscall-h.awk
gentempfd.c
getclktck.c
getcpu.c
getcwd.c
getdents.c
getdents64.c
getdirentries.c
getdirentries64.c
getdtsz.c
getentropy.c
gethostid.c
getipv4sourcefilter.c
getitimer.c
getloadavg.c
getlogin.c
getlogin_r.c
getpagesize.c
getpeername.c
getpriority.c
getpt.c
getrandom.c
getrlimit.c
getrlimit64.c
getrusage.c
getsockname.c
getsockopt.c
getsourcefilter.c
getsourcefilter.h
getsysstats.c malloc: Use __get_nprocs on arena_get2 (BZ 30945) 2023-11-22 09:39:29 -03:00
gettimeofday.c
glibcsyscalls.py
glob-lstat-compat.c
glob.c
glob64-lstat-compat.c
glob64-time64.c
glob64.c
globfree.c
globfree64-time64.c
globfree64.c
grantpt.c
if_index.c
ifaddrs.c
ifreq.c
inotify_init.c
internal-ioctl.h
internal-signals.h
internal-sigset.h
internal-stat.h io: Do not implement fstat with fstatat 2023-09-27 09:30:24 -03:00
internal_statvfs.c
internal_statvfs.h
ioctl.c
ipc_ops.h
ipc_priv.h
kernel-features.h linux: Use fchmodat2 on fchmod for flags different than 0 (BZ 26401) 2023-11-20 13:15:24 -03:00
kernel-posix-cpu-timers.h
kernel-posix-timers.h
kernel_sigaction.h
kernel_stat.h
kernel_termios.h
kstat_cp.h
lchown.c
ldsodefs.h
libc-vdso.h
libc_fatal.c
libc_sigaction.c
librt-compat.c
link.c
linux_fsinfo.h
listen.c
local-setxid.h
lseek.c
lseek64.c
lstat.c
lstat64.c
lutimes.c
lxstat.c
lxstat64.c
machine-sp.h
malloc-hugepages.c
malloc-sysdep.h
mkdir.c
mknodat.c
mlock2.c
mmap.c
mmap64.c
mmap_call.h
mmap_internal.h
mq_close.c
mq_getattr.c
mq_notify.c
mq_open.c
mq_receive.c
mq_send.c
mq_setattr.c
mq_timedreceive.c
mq_timedsend.c
mq_unlink.c
mremap.c
msgctl.c
msgget.c
msgrcv.c
msgsnd.c
msync.c
mtx_timedlock.c
nanosleep.c
netlink_assert_response.c
netlinkaccess.h
not-cancel.h
not-errno.h Remove __access_noerrno 2023-11-23 19:01:32 +00:00
nscd_setup_thread.c
ntp_gettime.c
ntp_gettimex.c
olddirent.h
oldglob.c
open.c
open64.c
open64_nocancel.c
open_by_handle_at.c
open_nocancel.c
openat.c
openat64.c
openat64_nocancel.c
openat_nocancel.c
opendir.c
pathconf.c
pathconf.h
paths.h
pause.c
personality.c
pidfd_getpid.c linux: Add pidfd_getpid 2023-09-05 13:08:59 -03:00
pidfd_spawn.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
pidfd_spawnp.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
pipe.c
pkey_get.c
pkey_mprotect.c
pkey_set.c
poll.c
posix_fadvise.c
posix_fadvise64.c
posix_fallocate.c
posix_fallocate64.c
posix_madvise.c
ppoll.c
ppoll_chk.c
prctl.c
pread.c
pread64.c
pread64_nocancel.c
preadv.c
preadv2.c
preadv64.c
preadv64v2.c
prlimit.c
prlimit64.c
process_vm_readv.c
process_vm_writev.c
procutils.c linux: Add pidfd_getpid 2023-09-05 13:08:59 -03:00
procutils.h linux: Add pidfd_getpid 2023-09-05 13:08:59 -03:00
prof-freq.c
profil-counter.h
profil.c
pselect.c
pselect32.c
ptrace.c
ptsname.c
pwrite.c
pwrite64.c
pwritev.c
pwritev2.c
pwritev64.c
pwritev64v2.c
read.c
read_nocancel.c
readahead.c
readdir.c
readdir64.c
readdir64_r.c
readdir_r.c
readlink.c
readonly-area.c Fix FORTIFY_SOURCE false positive 2023-10-04 08:07:43 -03:00
readv.c
reboot.c
recv.c
recvfrom.c
recvmmsg.c
recvmsg.c
remove.c
rename.c
renameat.c
renameat2.c
rewinddir.c
rmdir.c
rseq-internal.h
sa_len.c
safe-fatal.h
scandir64.c
sched_getaffinity.c
sched_getcpu.c
sched_rr_gi.c
sched_setaffinity.c
seekdir.c
select.c
semctl.c
semget.c
semop.c
semtimedop.c
send.c
sendfile.c
sendfile64.c
sendmmsg.c
sendmsg.c
sendto.c
set-freeres-os.h
setegid.c
seteuid.c
setgid.c
setgroups.c
sethostid.c
setipv4sourcefilter.c
setitimer.c
setregid.c
setresgid.c
setresuid.c
setreuid.c
setrlimit.c
setrlimit64.c
setsockopt.c
setsourcefilter.c
settimeofday.c
settimezone.c
setuid.c
setvmaname.c elf: Add glibc.mem.decorate_maps tunable 2023-11-07 10:27:57 -03:00
setvmaname.h linux: Add PR_SET_VMA_ANON_NAME support 2023-11-07 10:27:20 -03:00
shlib-versions
shmat.c
shmctl.c
shmdt.c
shmget.c
shutdown.c
siglist-compat.h
signalfd.c
sigpending.c
sigprocmask.c
sigqueue.c
sigreturn.c
sigset-cvt-mask.h
sigsetops.h
sigstack.c
sigsuspend.c
sigtimedwait.c
sigwait.c
sigwaitinfo.c
single-thread.h
sizes.h
socket-constants-time64.h
socket.c
socketcall.h
socketpair.c
spawn_int_def.h
spawnattr_getcgroup_np.c linux: Add posix_spawnattr_{get, set}cgroup_np (BZ 26371) 2023-09-05 13:08:48 -03:00
spawnattr_setcgroup_np.c linux: Add posix_spawnattr_{get, set}cgroup_np (BZ 26371) 2023-09-05 13:08:48 -03:00
spawni.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
speed.c
splice.c
startup.h
stat.c
stat64.c
stat_t64_cp.c
stat_t64_cp.h
statfs.c
statfs64.c
statvfs.c
statvfs64.c
statx.c
statx_cp.c
statx_cp.h
struct_kernel_msqid64_ds.h
struct_kernel_semid64_ds.h
struct_kernel_shmid64_ds.h
struct_stat_time64.h
symlink.c
sync_file_range.c
syscall-names.list Update syscall lists for Linux 6.6 2023-11-03 10:01:46 -03:00
syscall.c
syscalls.list
sysconf-pthread_stack_min.h
sysconf-sigstksz.h
sysconf.c
sysctl.c
sysdep-cancel.h
sysdep-vdso.h
sysdep.h
tcdrain.c
tcflow.c
tcflush.c
tcgetattr.c
tcgetpgrp.c
tcsendbrk.c
tcsetattr.c
tcsetpgrp.c
tee.c
telldir.c
termio.h
test-errno-linux.c
thrd_priv.h
thrd_sleep.c
time-clockid.h
time.c
timer_create.c
timer_delete.c
timer_getoverr.c
timer_gettime.c
timer_routines.c
timer_settime.c
timer_t_was_int_compat.h
timerfd_gettime.c
timerfd_settime.c
times.c
timespec_get.c
timespec_getres.c
tls-internal.c
tls-internal.h
truncate.c
truncate64.c
tst-adjtimex-time64.c
tst-adjtimex.c
tst-affinity-pid.c
tst-affinity-static.c
tst-affinity.c
tst-align-clone-internal.c
tst-align-clone.c
tst-clock_adjtime-time64.c
tst-clock_adjtime.c
tst-clock_gettime-clobber.c
tst-clone.c
tst-clone2-internal.c
tst-clone2.c
tst-clone3-internal.c
tst-clone3.c
tst-epoll-time64.c
tst-epoll.c
tst-fallocate-common.c
tst-fallocate.c
tst-fallocate64.c
tst-fanotify.c
tst-fdopendir-o_path.c linux: Make fdopendir fail with O_PATH (BZ 30373) 2023-11-30 13:37:04 -03:00
tst-getauxval.c
tst-getcwd-smallbuff.c
tst-getdents64.c
tst-getpid1-internal.c
tst-getpid1.c
tst-gettid-kill.c
tst-gettid.c
tst-gettimeofday-clobber.c
tst-glibcsyscalls.py
tst-memfd_create.c
tst-misalign-clone.c
tst-mlock2.c
tst-mman-consts.py linux: Add MMAP_ABOVE4G from Linux 6.6 to sys/mman.h 2023-11-03 10:01:46 -03:00
tst-mount-compile.py
tst-mount-consts.py Update kernel version to 6.6 in header constant tests 2023-11-03 10:01:46 -03:00
tst-mount.c
tst-ntp_adjtime-time64.c
tst-ntp_adjtime.c
tst-ntp_gettime-time64.c
tst-ntp_gettime.c
tst-ntp_gettimex-time64.c
tst-ntp_gettimex.c
tst-o_path-locks.c
tst-ofdlocks-compat.c
tst-ofdlocks.c
tst-personality.c
tst-pidfd-consts.py Update kernel version to 6.6 in header constant tests 2023-11-03 10:01:46 -03:00
tst-pidfd.c linux: Add pidfd_getpid 2023-09-05 13:08:59 -03:00
tst-pidfd_getpid.c linux: Add pidfd_getpid 2023-09-05 13:08:59 -03:00
tst-pkey.c
tst-posix_spawn-setsid-pidfd.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
tst-ppoll-time64.c
tst-ppoll.c
tst-prctl-time64.c
tst-prctl.c
tst-process_madvise.c
tst-process_mrelease.c
tst-quota.c
tst-readdir64-compat.c
tst-rlimit-infinity.c
tst-rseq-disable.c
tst-rseq-nptl.c
tst-rseq.c
tst-rseq.h
tst-scm_rights-time64.c
tst-scm_rights.c
tst-sigcontext-get_pc.c
tst-signal-numbers.py
tst-sigtimedwait-time64.c
tst-sigtimedwait.c
tst-skeleton-affinity.c
tst-skeleton-thread-affinity.c
tst-socket-consts.py
tst-socket-timestamp-compat-time64.c
tst-socket-timestamp-compat.c
tst-socket-timestamp-time64.c
tst-socket-timestamp.c
tst-spawn-cgroup.c tst-spawn-cgroup.c: Fix argument order of UNSUPPORTED message. 2023-10-20 08:46:09 +02:00
tst-spawn-chdir-pidfd.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
tst-spawn-pidfd.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
tst-spawn-pidfd.h posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
tst-spawn2-pidfd.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
tst-spawn3-pidfd.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
tst-spawn4-pidfd.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
tst-spawn5-pidfd.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
tst-spawn6-pidfd.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
tst-spawn7-pidfd.c posix: Add pidfd_spawn and pidfd_spawnp (BZ 30349) 2023-09-05 13:08:59 -03:00
tst-sync_file_range.c
tst-syscall-list.sh
tst-sysconf-iov_max-uapi.c
tst-sysconf-iov_max.c
tst-sysvmsg-linux.c
tst-sysvsem-linux.c
tst-sysvshm-linux.c
tst-tgkill.c
tst-time-clobber.c
tst-timerfd-time64.c
tst-timerfd.c
tst-ttyname-common.c
tst-ttyname-direct.c
tst-ttyname-namespace.c
ttyname.c
ttyname.h
ttyname_r.c
tv32-compat.h
ualarm.c
umount.c
umount2.c
unlink.c
unlockpt.c
update-syscall-lists.py
updwtmp.c
ustat.c
utime.c
utimensat.c
utimes.c
utmp_file.c
versionsort64.c
vfork.c
vmsplice.c
wait3.c
wait4.c
waitid.c
write.c
write_nocancel.c
writev.c
xmknod.c
xmknodat.c
xstat.c
xstat64.c
xstatconv.c
xstatconv.h
xstatover.h
xstatver.h