aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r--sysdeps/unix/sysv/linux/Makefile83
-rw-r--r--sysdeps/unix/sysv/linux/Versions15
-rw-r--r--sysdeps/unix/sysv/linux/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/_exit.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/Makefile145
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/arch-pkey.h53
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h16
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/mman.h10
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/clone.S8
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/clone3.S6
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/cpu-features.c9
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-cache.h15
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c24
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/dl-procruntime.c37
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/getcontext.S22
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ioctl.S2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc-start.h62
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libmvec.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/makecontext.c39
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/pkey_get.c73
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/pkey_set.c113
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/pointer_guard.h37
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/setcontext.S72
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/swapcontext.S37
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/elf.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/syscall_cancel.S59
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sysconf.c4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sysdep.h12
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-aarch64-pkey.c190
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-abort.sh39
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-disabled.c3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-enforced.c3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-off.c3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-on.c3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-override.c3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen.c62
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-abort.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static-abort.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-helper.h39
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod1.c (renamed from sysdeps/unix/sysv/linux/nios2/bits/timesize.h)15
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod2.c (renamed from sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h)15
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod3.c (renamed from sysdeps/unix/sysv/linux/nios2/kernel_stat.h)16
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-noreturn.c101
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-off.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-on.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-off.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-on.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-override-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-override.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-disabled.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-enforced-abort.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-optional.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-override.c2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared.c41
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-gcs-skeleton.c43
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c27
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac.c (renamed from sysdeps/unix/sysv/linux/i386/dl-procinfo.h)48
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h7
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/vfork.S9
-rwxr-xr-xsysdeps/unix/sysv/linux/aarch64/vltest.py2
-rw-r--r--sysdeps/unix/sysv/linux/accept.c2
-rw-r--r--sysdeps/unix/sysv/linux/accept4.c2
-rw-r--r--sysdeps/unix/sysv/linux/access.c2
-rw-r--r--sysdeps/unix/sysv/linux/adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/adjtimex.c2
-rw-r--r--sysdeps/unix/sysv/linux/aio_misc.h2
-rw-r--r--sysdeps/unix/sysv/linux/aio_sigqueue.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/adjtimex.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/dirent.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/ioctls.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/netdb.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/resource.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/socket_type.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/statfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-cbaud.h (renamed from sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h)45
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h13
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/wordsize.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/brk_call.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/dl-auxv.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/errlist-compat-data.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fstatfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fstatfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/fxstatat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getegid.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/geteuid.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/gethostname.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getppid.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/getrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/globfree.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ioperm.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/kernel-features.h13
-rw-r--r--sysdeps/unix/sysv/linux/alpha/kernel_termios.h43
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/alpha/librt-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/lxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/oldglob.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_getitimer.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_getrusage.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_setitimer.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_utimes.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/osf_wait4.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/rt_sigaction.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/select.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/setfpucw.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/setrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/settimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/statfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/statfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/io.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscall_cancel.S80
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/termios_arch.h26
-rw-r--r--sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/wait4.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/xstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/xstatconv.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/xstatconv.h2
-rw-r--r--sysdeps/unix/sysv/linux/alphasort64.c2
-rw-r--r--sysdeps/unix/sysv/linux/arc/Makefile9
-rw-r--r--sysdeps/unix/sysv/linux/arc/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/arc/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/arc/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/arc/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/arc/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/arc/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/shlib-versions4
-rw-r--r--sysdeps/unix/sysv/linux/arc/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/sigrestorer.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/sys/cachectl.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/arc/syscall_cancel.S56
-rw-r--r--sysdeps/unix/sysv/linux/arc/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/arc/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/ucontext-macros.h2
-rw-r--r--sysdeps/unix/sysv/linux/arc/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/arch-fd_to_filename.h2
-rw-r--r--sysdeps/unix/sysv/linux/arch-fork.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/Makefile3
-rw-r--r--sysdeps/unix/sysv/linux/arm/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/arm/arm-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/hwcap.h10
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-procinfo.c66
-rw-r--r--sysdeps/unix/sysv/linux/arm/dl-procinfo.h73
-rw-r--r--sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/ioperm.c2
-rw-r--r--sysdeps/unix/sysv/linux/arm/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/ldsodefs.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/arm/libc-do-syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/arm/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/arm/profil-counter.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/arm/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sigrestorer.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/elf.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/syscall_cancel.S78
-rw-r--r--sysdeps/unix/sysv/linux/arm/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/arm/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/tls.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/bind.c2
-rw-r--r--sysdeps/unix/sysv/linux/bits/dirent.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/dirent_ext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/fcntl-linux.h5
-rw-r--r--sysdeps/unix/sysv/linux/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/in.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/ioctl-types.h13
-rw-r--r--sysdeps/unix/sysv/linux/bits/ioctls.h87
-rw-r--r--sysdeps/unix/sysv/linux/bits/ipc-perm.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/local_lim.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-linux.h5
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman-shared.h24
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/mman_ext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/mqueue.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/msq.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/param.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/poll.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/posix_opt.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/procfs-extra.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/procfs-prregset.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/ptrace-shared.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/resource.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sched.h63
-rw-r--r--sysdeps/unix/sysv/linux/bits/sem.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/semaphore.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/shm.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigcontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigevent-consts.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/siginfo-consts.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/signal_ext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/signum-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigstksz.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket_type.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/spawn_ext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/ss_flags.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/statfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/statvfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/statx.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/stdio_lim.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_cc.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_cflag.h6
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_iflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_lflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-c_oflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-cbaud.h (renamed from sysdeps/unix/sysv/linux/bits/termios-baud.h)41
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-misc.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-struct.h13
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios-tcflow.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/termios.h52
-rw-r--r--sysdeps/unix/sysv/linux/bits/time.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/timex.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/stack_t.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/uio-ext.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/uio_lim.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/unistd_ext.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/utsname.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/waitflags.h2
-rw-r--r--sysdeps/unix/sysv/linux/brk.c4
-rw-r--r--sysdeps/unix/sysv/linux/brk_call.h2
-rw-r--r--sysdeps/unix/sysv/linux/cfsetspeed.c59
-rw-r--r--sysdeps/unix/sysv/linux/check_native.c2
-rw-r--r--sysdeps/unix/sysv/linux/check_pf.c2
-rw-r--r--sysdeps/unix/sysv/linux/chmod.c2
-rw-r--r--sysdeps/unix/sysv/linux/chown.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_getcpuclockid.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_getres.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_gettime.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_nanosleep.c2
-rw-r--r--sysdeps/unix/sysv/linux/clock_settime.c2
-rw-r--r--sysdeps/unix/sysv/linux/clone-internal.c2
-rw-r--r--sysdeps/unix/sysv/linux/clone-pidfd-support.c2
-rw-r--r--sysdeps/unix/sysv/linux/clone3.h2
-rw-r--r--sysdeps/unix/sysv/linux/close.c2
-rw-r--r--sysdeps/unix/sysv/linux/close_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/close_nocancel_nostatus.c (renamed from sysdeps/unix/sysv/linux/nios2/cacheflush.c)19
-rw-r--r--sysdeps/unix/sysv/linux/closedir.c2
-rw-r--r--sysdeps/unix/sysv/linux/closefrom_fallback.c2
-rw-r--r--sysdeps/unix/sysv/linux/cmsg_nxthdr.c2
-rw-r--r--sysdeps/unix/sysv/linux/cnd_timedwait.c2
-rw-r--r--sysdeps/unix/sysv/linux/connect.c2
-rw-r--r--sysdeps/unix/sysv/linux/convert_scm_timestamps.c2
-rw-r--r--sysdeps/unix/sysv/linux/copy_file_range.c2
-rw-r--r--sysdeps/unix/sysv/linux/creat.c2
-rw-r--r--sysdeps/unix/sysv/linux/creat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/csky/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/statfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/kernel_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/csky/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/csky/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/csky/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/sys/cachectl.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/csky/syscall_cancel.S114
-rw-r--r--sysdeps/unix/sysv/linux/csky/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/default-sched.h2
-rw-r--r--sysdeps/unix/sysv/linux/device-nrs.h2
-rw-r--r--sysdeps/unix/sysv/linux/dirfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/dirstream.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-affinity.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c2
-rw-r--r--sysdeps/unix/sysv/linux/dl-early_allocate.c4
-rw-r--r--sysdeps/unix/sysv/linux/dl-execstack.c74
-rw-r--r--sysdeps/unix/sysv/linux/dl-execve.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-extra_tls.h71
-rw-r--r--sysdeps/unix/sysv/linux/dl-openat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/dl-origin.c25
-rw-r--r--sysdeps/unix/sysv/linux/dl-osinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-parse_auxv.h9
-rw-r--r--sysdeps/unix/sysv/linux/dl-rseq-symbols.S29
-rw-r--r--sysdeps/unix/sysv/linux/dl-sysdep.c19
-rw-r--r--sysdeps/unix/sysv/linux/dl-sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso-setup.c7
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso-setup.h5
-rw-r--r--sysdeps/unix/sysv/linux/dl-vdso.h2
-rw-r--r--sysdeps/unix/sysv/linux/dl-write.c2
-rw-r--r--sysdeps/unix/sysv/linux/dl-writev.h2
-rw-r--r--sysdeps/unix/sysv/linux/dup2.c2
-rw-r--r--sysdeps/unix/sysv/linux/epoll_create.c2
-rw-r--r--sysdeps/unix/sysv/linux/epoll_pwait.c2
-rw-r--r--sysdeps/unix/sysv/linux/epoll_pwait2.c2
-rw-r--r--sysdeps/unix/sysv/linux/epoll_wait.c2
-rw-r--r--sysdeps/unix/sysv/linux/errlist-compat-data.h2
-rw-r--r--sysdeps/unix/sysv/linux/errlist-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/errqueue.h2
-rw-r--r--sysdeps/unix/sysv/linux/eventfd_read.c2
-rw-r--r--sysdeps/unix/sysv/linux/eventfd_write.c2
-rw-r--r--sysdeps/unix/sysv/linux/execveat.c2
-rw-r--r--sysdeps/unix/sysv/linux/faccessat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fallocate.c2
-rw-r--r--sysdeps/unix/sysv/linux/fallocate64.c2
-rw-r--r--sysdeps/unix/sysv/linux/fanotify_mark.c2
-rw-r--r--sysdeps/unix/sysv/linux/fatal-prepare.h2
-rw-r--r--sysdeps/unix/sysv/linux/fchmodat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fcntl.c2
-rw-r--r--sysdeps/unix/sysv/linux/fcntl64.c2
-rw-r--r--sysdeps/unix/sysv/linux/fcntl_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/fdatasync.c2
-rw-r--r--sysdeps/unix/sysv/linux/fdopendir.c2
-rw-r--r--sysdeps/unix/sysv/linux/features-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/fexecve.c2
-rw-r--r--sysdeps/unix/sysv/linux/filter-nr-syscalls.awk2
-rw-r--r--sysdeps/unix/sysv/linux/fixup-asm-unistd.h2
-rw-r--r--sysdeps/unix/sysv/linux/fpathconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstat64.c6
-rw-r--r--sysdeps/unix/sysv/linux/fstatat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstatat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/fstatfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstatfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstatvfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/fstatvfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/fsync.c2
-rw-r--r--sysdeps/unix/sysv/linux/ftime.c2
-rw-r--r--sysdeps/unix/sysv/linux/ftruncate.c2
-rw-r--r--sysdeps/unix/sysv/linux/ftruncate64.c2
-rw-r--r--sysdeps/unix/sysv/linux/futimens.c2
-rw-r--r--sysdeps/unix/sysv/linux/futimes.c2
-rw-r--r--sysdeps/unix/sysv/linux/futimesat.c2
-rw-r--r--sysdeps/unix/sysv/linux/fxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/fxstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat.c4
-rw-r--r--sysdeps/unix/sysv/linux/fxstatat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/gai_sigqueue.c2
-rw-r--r--sysdeps/unix/sysv/linux/gen-syscall-h.awk2
-rw-r--r--sysdeps/unix/sysv/linux/gentempfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/getclktck.c2
-rw-r--r--sysdeps/unix/sysv/linux/getcpu.c2
-rw-r--r--sysdeps/unix/sysv/linux/getcwd.c2
-rw-r--r--sysdeps/unix/sysv/linux/getdents.c2
-rw-r--r--sysdeps/unix/sysv/linux/getdents64.c99
-rw-r--r--sysdeps/unix/sysv/linux/getdirentries.c2
-rw-r--r--sysdeps/unix/sysv/linux/getdirentries64.c2
-rw-r--r--sysdeps/unix/sysv/linux/getdtsz.c2
-rw-r--r--sysdeps/unix/sysv/linux/getentropy.c2
-rw-r--r--sysdeps/unix/sysv/linux/gethostid.c2
-rw-r--r--sysdeps/unix/sysv/linux/getipv4sourcefilter.c2
-rw-r--r--sysdeps/unix/sysv/linux/getitimer.c2
-rw-r--r--sysdeps/unix/sysv/linux/getloadavg.c2
-rw-r--r--sysdeps/unix/sysv/linux/getlogin.c2
-rw-r--r--sysdeps/unix/sysv/linux/getlogin_r.c2
-rw-r--r--sysdeps/unix/sysv/linux/getpagesize.c2
-rw-r--r--sysdeps/unix/sysv/linux/getpeername.c2
-rw-r--r--sysdeps/unix/sysv/linux/getpriority.c2
-rw-r--r--sysdeps/unix/sysv/linux/getpt.c2
-rw-r--r--sysdeps/unix/sysv/linux/getrandom-internal.h29
-rw-r--r--sysdeps/unix/sysv/linux/getrandom.c331
-rw-r--r--sysdeps/unix/sysv/linux/getrlimit.c2
-rw-r--r--sysdeps/unix/sysv/linux/getrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/getrusage.c2
-rw-r--r--sysdeps/unix/sysv/linux/getsockname.c2
-rw-r--r--sysdeps/unix/sysv/linux/getsockopt.c2
-rw-r--r--sysdeps/unix/sysv/linux/getsourcefilter.c2
-rw-r--r--sysdeps/unix/sysv/linux/getsourcefilter.h2
-rw-r--r--sysdeps/unix/sysv/linux/getsysstats.c2
-rw-r--r--sysdeps/unix/sysv/linux/gettimeofday.c14
-rw-r--r--sysdeps/unix/sysv/linux/glibcsyscalls.py2
-rw-r--r--sysdeps/unix/sysv/linux/glob-lstat-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/glob.c2
-rw-r--r--sysdeps/unix/sysv/linux/glob64-lstat-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/glob64-time64.c2
-rw-r--r--sysdeps/unix/sysv/linux/glob64.c2
-rw-r--r--sysdeps/unix/sysv/linux/globfree.c2
-rw-r--r--sysdeps/unix/sysv/linux/globfree64-time64.c2
-rw-r--r--sysdeps/unix/sysv/linux/globfree64.c2
-rw-r--r--sysdeps/unix/sysv/linux/grantpt.c2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/Makefile5
-rw-r--r--sysdeps/unix/sysv/linux/hppa/Versions3
-rw-r--r--sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/hppa/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/ioctls.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/socket_type.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/wordsize.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/clone.S65
-rw-r--r--sysdeps/unix/sysv/linux/hppa/errlist-compat-data.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc.abilist20
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/hppa/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sys/cachectl.h (renamed from sysdeps/unix/sysv/linux/nios2/sys/cachectl.h)11
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/syscall_cancel.S81
-rw-r--r--sysdeps/unix/sysv/linux/hppa/syscalls.list1
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/vfork.S53
-rw-r--r--sysdeps/unix/sysv/linux/i386/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/i386/brk.c2
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/dl-sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/dl-writev.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/ldconfig.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc-do-syscall-int80.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc-do-syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/i386/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/startup.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscall_cancel.S104
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/i386/tst-bz21269.c2
-rw-r--r--sysdeps/unix/sysv/linux/i386/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/if_index.c43
-rw-r--r--sysdeps/unix/sysv/linux/ifaddrs.c2
-rw-r--r--sysdeps/unix/sysv/linux/ifreq.c2
-rw-r--r--sysdeps/unix/sysv/linux/include/bits/mman-shared.h16
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/mount.h2
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/syscall.h2
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/sysinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/timex.h2
-rw-r--r--sysdeps/unix/sysv/linux/inotify_init.c2
-rw-r--r--sysdeps/unix/sysv/linux/internal-ioctl.h2
-rw-r--r--sysdeps/unix/sysv/linux/internal-signals.h11
-rw-r--r--sysdeps/unix/sysv/linux/internal-sigset.h4
-rw-r--r--sysdeps/unix/sysv/linux/internal-stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/internal_statvfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/internal_statvfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/ioctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/ipc_ops.h2
-rw-r--r--sysdeps/unix/sysv/linux/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/isatty.c29
-rw-r--r--sysdeps/unix/sysv/linux/isatty_nostatus.c (renamed from sysdeps/unix/sysv/linux/nios2/kernel-features.h)18
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h6
-rw-r--r--sysdeps/unix/sysv/linux/kernel-posix-timers.h2
-rw-r--r--sysdeps/unix/sysv/linux/kernel_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/kernel_termios.h37
-rw-r--r--sysdeps/unix/sysv/linux/lchown.c2
-rw-r--r--sysdeps/unix/sysv/linux/ldsodefs.h2
-rw-r--r--sysdeps/unix/sysv/linux/libc-vdso.h2
-rw-r--r--sysdeps/unix/sysv/linux/libc_fatal.c2
-rw-r--r--sysdeps/unix/sysv/linux/libc_sigaction.c4
-rw-r--r--sysdeps/unix/sysv/linux/librt-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/link.c2
-rw-r--r--sysdeps/unix/sysv/linux/linux_fsinfo.h3
-rw-r--r--sysdeps/unix/sysv/linux/listen.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h3
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/rseq.h36
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/cpu-features.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/cpu-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/fixup-asm-unistd.h21
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/libc-start.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S50
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/sysdep.h3
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h2
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/lseek.c2
-rw-r--r--sysdeps/unix/sysv/linux/lseek64.c2
-rw-r--r--sysdeps/unix/sysv/linux/lstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/lstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/lutimes.c2
-rw-r--r--sysdeps/unix/sysv/linux/lxstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/lxstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/poll.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/getpagesize.c2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/libc-lock-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m68k-helpers.c2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/mremap.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/reg.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/syscall_cancel.S84
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/machine-sp.h2
-rw-r--r--sysdeps/unix/sysv/linux/malloc-hugepages.c2
-rw-r--r--sysdeps/unix/sysv/linux/malloc-sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/clock-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/kernel_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/pselect32.c2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S61
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/Makefile7
-rw-r--r--sysdeps/unix/sysv/linux/mips/Versions4
-rw-r--r--sysdeps/unix/sysv/linux/mips/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/_test_and_set.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h14
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/poll.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/resource.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sigcontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/signum-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/socket_type.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/statfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-struct.h34
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/errlist-compat-data.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/fxstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/getrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/kernel_termios.h37
-rw-r--r--sysdeps/unix/sysv/linux/mips/ldsodefs.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/lxstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/syscall_cancel.S128
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/sysdep.h6
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/getdents64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/kstat_cp.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/msgctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/syscall_types.h (renamed from sysdeps/unix/sysv/linux/nios2/syscall.S)28
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/fstatat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/semctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/shmctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S112
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/sysdep.h54
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/xstat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/setrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/socket-constants-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/cachectl.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/sysmips.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/mips/termios_arch.h (renamed from sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h)31
-rw-r--r--sysdeps/unix/sysv/linux/mips/ustat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/mips/xstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/xstatconv.c2
-rw-r--r--sysdeps/unix/sysv/linux/mkdir.c2
-rw-r--r--sysdeps/unix/sysv/linux/mknodat.c2
-rw-r--r--sysdeps/unix/sysv/linux/mlock2.c2
-rw-r--r--sysdeps/unix/sysv/linux/mmap.c2
-rw-r--r--sysdeps/unix/sysv/linux/mmap64.c2
-rw-r--r--sysdeps/unix/sysv/linux/mmap_call.h2
-rw-r--r--sysdeps/unix/sysv/linux/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/mq_close.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_getattr.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_notify.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_open.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_receive.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_send.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_setattr.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_timedreceive.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_timedsend.c2
-rw-r--r--sysdeps/unix/sysv/linux/mq_unlink.c2
-rw-r--r--sysdeps/unix/sysv/linux/mremap-failure.h2
-rw-r--r--sysdeps/unix/sysv/linux/mremap.c2
-rw-r--r--sysdeps/unix/sysv/linux/msgctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/msgget.c2
-rw-r--r--sysdeps/unix/sysv/linux/msgrcv.c2
-rw-r--r--sysdeps/unix/sysv/linux/msgsnd.c2
-rw-r--r--sysdeps/unix/sysv/linux/msync.c2
-rw-r--r--sysdeps/unix/sysv/linux/mtx_timedlock.c2
-rw-r--r--sysdeps/unix/sysv/linux/nanosleep.c2
-rw-r--r--sysdeps/unix/sysv/linux/net/ethernet.h2
-rw-r--r--sysdeps/unix/sysv/linux/net/if_arp.h2
-rw-r--r--sysdeps/unix/sysv/linux/net/if_packet.h2
-rw-r--r--sysdeps/unix/sysv/linux/net/if_shaper.h2
-rw-r--r--sysdeps/unix/sysv/linux/net/if_slip.h2
-rw-r--r--sysdeps/unix/sysv/linux/net/route.h2
-rw-r--r--sysdeps/unix/sysv/linux/netash/ash.h2
-rw-r--r--sysdeps/unix/sysv/linux/netatalk/at.h2
-rw-r--r--sysdeps/unix/sysv/linux/netax25/ax25.h2
-rw-r--r--sysdeps/unix/sysv/linux/neteconet/ec.h2
-rw-r--r--sysdeps/unix/sysv/linux/netinet/if_ether.h2
-rw-r--r--sysdeps/unix/sysv/linux/netinet/if_fddi.h2
-rw-r--r--sysdeps/unix/sysv/linux/netinet/if_tr.h2
-rw-r--r--sysdeps/unix/sysv/linux/netipx/ipx.h2
-rw-r--r--sysdeps/unix/sysv/linux/netiucv/iucv.h2
-rw-r--r--sysdeps/unix/sysv/linux/netlink_assert_response.c2
-rw-r--r--sysdeps/unix/sysv/linux/netlinkaccess.h2
-rw-r--r--sysdeps/unix/sysv/linux/netpacket/packet.h2
-rw-r--r--sysdeps/unix/sysv/linux/netrom/netrom.h2
-rw-r--r--sysdeps/unix/sysv/linux/netrose/rose.h2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Implies1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Makefile18
-rw-r--r--sysdeps/unix/sysv/linux/nios2/Versions6
-rw-r--r--sysdeps/unix/sysv/linux/nios2/arch-syscall.h338
-rw-r--r--sysdeps/unix/sysv/linux/nios2/atomic-machine.h83
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/procfs.h34
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/statfs.h75
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h135
-rw-r--r--sysdeps/unix/sysv/linux/nios2/c++-types.data67
-rw-r--r--sysdeps/unix/sysv/linux/nios2/clone.S83
-rw-r--r--sysdeps/unix/sysv/linux/nios2/configure5
-rw-r--r--sysdeps/unix/sysv/linux/nios2/configure.ac4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/getcontext.S66
-rw-r--r--sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/ld.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libanl.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist2875
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist28
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libdl.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libm.abilist880
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libnsl.abilist121
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libpthread.abilist4
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libresolv.abilist67
-rw-r--r--sysdeps/unix/sysv/linux/nios2/librt.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libthread_db.abilist40
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libutil.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/localplt.data30
-rw-r--r--sysdeps/unix/sysv/linux/nios2/makecontext.c79
-rw-r--r--sysdeps/unix/sysv/linux/nios2/pointer_guard.h40
-rw-r--r--sysdeps/unix/sysv/linux/nios2/send.c9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/setcontext.S115
-rw-r--r--sysdeps/unix/sysv/linux/nios2/shlib-versions2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/swapcontext.S125
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/ucontext.h61
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/user.h58
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sysdep.S50
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sysdep.h223
-rw-r--r--sysdeps/unix/sysv/linux/nios2/time64-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/ucontext_i.sym29
-rw-r--r--sysdeps/unix/sysv/linux/not-cancel.h31
-rw-r--r--sysdeps/unix/sysv/linux/not-errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/nscd_setup_thread.c2
-rw-r--r--sysdeps/unix/sysv/linux/ntp_gettime.c2
-rw-r--r--sysdeps/unix/sysv/linux/ntp_gettimex.c2
-rw-r--r--sysdeps/unix/sysv/linux/old_termios.h23
-rw-r--r--sysdeps/unix/sysv/linux/olddirent.h4
-rw-r--r--sysdeps/unix/sysv/linux/open.c2
-rw-r--r--sysdeps/unix/sysv/linux/open64.c2
-rw-r--r--sysdeps/unix/sysv/linux/open64_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/open_by_handle_at.c2
-rw-r--r--sysdeps/unix/sysv/linux/open_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/openat.c2
-rw-r--r--sysdeps/unix/sysv/linux/openat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/openat64_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/openat_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/opendir.c2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/or1k/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/clone.c2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/getcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/or1k/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/or1k/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/or1k_clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/prctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/setcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/swapcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/syscall_cancel.S63
-rw-r--r--sysdeps/unix/sysv/linux/or1k/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/or1k/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.c5
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.h2
-rw-r--r--sysdeps/unix/sysv/linux/pause.c2
-rw-r--r--sysdeps/unix/sysv/linux/personality.c2
-rw-r--r--sysdeps/unix/sysv/linux/pidfd_getpid.c2
-rw-r--r--sysdeps/unix/sysv/linux/pidfd_spawn.c2
-rw-r--r--sysdeps/unix/sysv/linux/pidfd_spawnp.c2
-rw-r--r--sysdeps/unix/sysv/linux/pipe.c2
-rw-r--r--sysdeps/unix/sysv/linux/pkey_get.c7
-rw-r--r--sysdeps/unix/sysv/linux/pkey_mprotect.c6
-rw-r--r--sysdeps/unix/sysv/linux/pkey_set.c7
-rw-r--r--sysdeps/unix/sysv/linux/poll.c2
-rw-r--r--sysdeps/unix/sysv/linux/posix_fadvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/posix_fadvise64.c2
-rw-r--r--sysdeps/unix/sysv/linux/posix_fallocate.c2
-rw-r--r--sysdeps/unix/sysv/linux/posix_fallocate64.c2
-rw-r--r--sysdeps/unix/sysv/linux/posix_madvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/environments.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h13
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ioctls.h36
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ppc.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-cbaud.h (renamed from sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h)44
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/cancellation-pc-check.h65
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/configure43
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/configure.ac19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/cpu-features.c46
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/cpu-features.h101
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-auxv.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.c117
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.h34
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-conf.c4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-conf.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-lock.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-timed.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-trylock.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-unlock.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/htm.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/internal-ioctl.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/kernel_termios.h53
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libc-start.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libc-start.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libc-vdso.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/libpthread-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S9
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S37
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S14
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist108
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/sysctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S8
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_get.c6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_set.c6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S26
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S26
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/syscall_cancel.S86
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sysdep.h45
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/termios_arch.h26
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/time.c2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/tst-hwcap-tunables.c2
-rw-r--r--sysdeps/unix/sysv/linux/ppoll.c2
-rw-r--r--sysdeps/unix/sysv/linux/ppoll_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/pread.c2
-rw-r--r--sysdeps/unix/sysv/linux/pread64.c2
-rw-r--r--sysdeps/unix/sysv/linux/pread64_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/preadv.c2
-rw-r--r--sysdeps/unix/sysv/linux/preadv2.c2
-rw-r--r--sysdeps/unix/sysv/linux/preadv64.c2
-rw-r--r--sysdeps/unix/sysv/linux/preadv64v2.c2
-rw-r--r--sysdeps/unix/sysv/linux/prlimit.c2
-rw-r--r--sysdeps/unix/sysv/linux/prlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/process_vm_readv.c2
-rw-r--r--sysdeps/unix/sysv/linux/process_vm_writev.c2
-rw-r--r--sysdeps/unix/sysv/linux/procutils.c2
-rw-r--r--sysdeps/unix/sysv/linux/procutils.h2
-rw-r--r--sysdeps/unix/sysv/linux/prof-freq.c2
-rw-r--r--sysdeps/unix/sysv/linux/profil-counter.h2
-rw-r--r--sysdeps/unix/sysv/linux/pselect.c2
-rw-r--r--sysdeps/unix/sysv/linux/pselect32.c2
-rw-r--r--sysdeps/unix/sysv/linux/ptrace.c2
-rw-r--r--sysdeps/unix/sysv/linux/ptsname.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwrite.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwrite64.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwritev.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwritev2.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwritev64.c2
-rw-r--r--sysdeps/unix/sysv/linux/pwritev64v2.c2
-rw-r--r--sysdeps/unix/sysv/linux/read.c2
-rw-r--r--sysdeps/unix/sysv/linux/read_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/readahead.c2
-rw-r--r--sysdeps/unix/sysv/linux/readdir.c2
-rw-r--r--sysdeps/unix/sysv/linux/readdir64.c92
-rw-r--r--sysdeps/unix/sysv/linux/readdir64_r.c129
-rw-r--r--sysdeps/unix/sysv/linux/readdir_r.c13
-rw-r--r--sysdeps/unix/sysv/linux/readlink.c2
-rw-r--r--sysdeps/unix/sysv/linux/readonly-area-fallback.c (renamed from sysdeps/unix/sysv/linux/readonly-area.c)23
-rw-r--r--sysdeps/unix/sysv/linux/readv.c2
-rw-r--r--sysdeps/unix/sysv/linux/reboot.c2
-rw-r--r--sysdeps/unix/sysv/linux/recv.c2
-rw-r--r--sysdeps/unix/sysv/linux/recvfrom.c2
-rw-r--r--sysdeps/unix/sysv/linux/recvmmsg.c2
-rw-r--r--sysdeps/unix/sysv/linux/recvmsg.c2
-rw-r--r--sysdeps/unix/sysv/linux/rename.c2
-rw-r--r--sysdeps/unix/sysv/linux/renameat.c2
-rw-r--r--sysdeps/unix/sysv/linux/renameat2.c2
-rw-r--r--sysdeps/unix/sysv/linux/rewinddir.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/environments.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/rseq.h44
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/flush-icache.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/hwprobe.c6
-rw-r--r--sysdeps/unix/sysv/linux/riscv/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/multiarch/ifunc-impl-list.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/multiarch/memcpy.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/riscv/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/cachectl.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h42
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/syscall.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/syscall_cancel.S67
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sysdep.h3
-rw-r--r--sysdeps/unix/sysv/linux/riscv/ucontext-macros.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/rmdir.c2
-rw-r--r--sysdeps/unix/sysv/linux/rseq-internal.h99
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/elfclass.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/environments.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/hwcap.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/statfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/utmp.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/utmpx.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/dl-procinfo.h48
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-conf.c5
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-conf.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-lock.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-timed.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-trylock.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/elision-unlock.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/htm.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/jmp-unwind.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/ldconfig.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/libpthread-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/mmap_call.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutent.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutid.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutline.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/login.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/login32.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S62
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S62
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/elf.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/s390/sysconf.c7
-rw-r--r--sysdeps/unix/sysv/linux/s390/sysdep.h3
-rw-r--r--sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c2
-rw-r--r--sysdeps/unix/sysv/linux/safe-fatal.h2
-rw-r--r--sysdeps/unix/sysv/linux/scandir64.c2
-rw-r--r--sysdeps/unix/sysv/linux/sched_getaffinity.c2
-rw-r--r--sysdeps/unix/sysv/linux/sched_getattr.c27
-rw-r--r--sysdeps/unix/sysv/linux/sched_getcpu.c5
-rw-r--r--sysdeps/unix/sysv/linux/sched_rr_gi.c2
-rw-r--r--sysdeps/unix/sysv/linux/sched_setaffinity.c2
-rw-r--r--sysdeps/unix/sysv/linux/sched_setattr.c (renamed from sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h)16
-rw-r--r--sysdeps/unix/sysv/linux/scsi/scsi.h2
-rw-r--r--sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h2
-rw-r--r--sysdeps/unix/sysv/linux/scsi/sg.h2
-rw-r--r--sysdeps/unix/sysv/linux/seekdir.c2
-rw-r--r--sysdeps/unix/sysv/linux/select.c2
-rw-r--r--sysdeps/unix/sysv/linux/semctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/semget.c2
-rw-r--r--sysdeps/unix/sysv/linux/semop.c2
-rw-r--r--sysdeps/unix/sysv/linux/semtimedop.c2
-rw-r--r--sysdeps/unix/sysv/linux/send.c2
-rw-r--r--sysdeps/unix/sysv/linux/sendfile.c2
-rw-r--r--sysdeps/unix/sysv/linux/sendfile64.c2
-rw-r--r--sysdeps/unix/sysv/linux/sendmmsg.c2
-rw-r--r--sysdeps/unix/sysv/linux/sendmsg.c2
-rw-r--r--sysdeps/unix/sysv/linux/sendto.c2
-rw-r--r--sysdeps/unix/sysv/linux/set-freeres-os.h2
-rw-r--r--sysdeps/unix/sysv/linux/setegid.c2
-rw-r--r--sysdeps/unix/sysv/linux/seteuid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setgid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setgroups.c2
-rw-r--r--sysdeps/unix/sysv/linux/setipv4sourcefilter.c2
-rw-r--r--sysdeps/unix/sysv/linux/setitimer.c2
-rw-r--r--sysdeps/unix/sysv/linux/setregid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setresgid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setresuid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setreuid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setrlimit.c2
-rw-r--r--sysdeps/unix/sysv/linux/setrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/setsockopt.c2
-rw-r--r--sysdeps/unix/sysv/linux/setsourcefilter.c2
-rw-r--r--sysdeps/unix/sysv/linux/settimeofday.c6
-rw-r--r--sysdeps/unix/sysv/linux/settimezone.c2
-rw-r--r--sysdeps/unix/sysv/linux/setuid.c2
-rw-r--r--sysdeps/unix/sysv/linux/setvmaname.c47
-rw-r--r--sysdeps/unix/sysv/linux/setvmaname.h10
-rw-r--r--sysdeps/unix/sysv/linux/sh/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/adaptive_spin_count.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/sh/atomic-machine.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libm.abilist72
-rw-r--r--sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/makecontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/getcontext.S8
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/setcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S4
-rw-r--r--sysdeps/unix/sysv/linux/sh/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/syscall_cancel.S126
-rw-r--r--sysdeps/unix/sysv/linux/sh/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/shmat.c2
-rw-r--r--sysdeps/unix/sysv/linux/shmctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/shmdt.c2
-rw-r--r--sysdeps/unix/sysv/linux/shmget.c2
-rw-r--r--sysdeps/unix/sysv/linux/shutdown.c2
-rw-r--r--sysdeps/unix/sysv/linux/siglist-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/signalfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigpending.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigprocmask.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigqueue.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigset-cvt-mask.h2
-rw-r--r--sysdeps/unix/sysv/linux/sigsetops.h2
-rw-r--r--sysdeps/unix/sysv/linux/sigstack.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigsuspend.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigtimedwait.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigwait.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigwaitinfo.c4
-rw-r--r--sysdeps/unix/sysv/linux/single-thread.h2
-rw-r--r--sysdeps/unix/sysv/linux/sizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/socket-constants-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/socket.c2
-rw-r--r--sysdeps/unix/sysv/linux/socketcall.h37
-rw-r--r--sysdeps/unix/sysv/linux/socketpair.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/Versions4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/environments.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/errno.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/ioctls.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/poll.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/resource.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/setjmp.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/shmlba.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigaction.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigstack.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/socket_type.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-cbaud.h (renamed from sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h)41
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h34
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/brk_call.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/errlist-compat-data.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/getrlimit64.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/getshmlba.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/kernel_termios.h40
-rw-r--r--sysdeps/unix/sysv/linux/sparc/librt-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/profil-counter.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/readelflib.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/clone.S6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sigreturn_stub.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/syscall_cancel.S80
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/kstat_cp.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist21
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc_sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigreturn_stub.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscall_cancel.S74
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sysdep.h76
-rw-r--r--sysdeps/unix/sysv/linux/sparc/termios_arch.h34
-rw-r--r--sysdeps/unix/sysv/linux/spawn_int_def.h2
-rw-r--r--sysdeps/unix/sysv/linux/spawnattr_getcgroup_np.c2
-rw-r--r--sysdeps/unix/sysv/linux/spawnattr_setcgroup_np.c2
-rw-r--r--sysdeps/unix/sysv/linux/spawni.c18
-rw-r--r--sysdeps/unix/sysv/linux/speed.c365
-rw-r--r--sysdeps/unix/sysv/linux/splice.c2
-rw-r--r--sysdeps/unix/sysv/linux/startup.h2
-rw-r--r--sysdeps/unix/sysv/linux/stat.c2
-rw-r--r--sysdeps/unix/sysv/linux/stat64.c2
-rw-r--r--sysdeps/unix/sysv/linux/stat_t64_cp.c2
-rw-r--r--sysdeps/unix/sysv/linux/stat_t64_cp.h2
-rw-r--r--sysdeps/unix/sysv/linux/statfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/statfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/statvfs.c2
-rw-r--r--sysdeps/unix/sysv/linux/statvfs64.c2
-rw-r--r--sysdeps/unix/sysv/linux/statx.c2
-rw-r--r--sysdeps/unix/sysv/linux/statx_cp.c2
-rw-r--r--sysdeps/unix/sysv/linux/statx_cp.h2
-rw-r--r--sysdeps/unix/sysv/linux/struct_stat_time64.h2
-rw-r--r--sysdeps/unix/sysv/linux/symlink.c2
-rw-r--r--sysdeps/unix/sysv/linux/sync_file_range.c2
-rw-r--r--sysdeps/unix/sysv/linux/sys/acct.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/eventfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/fanotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/fsuid.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/inotify.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/kd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/klog.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/mount.h4
-rw-r--r--sysdeps/unix/sysv/linux/sys/pci.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/personality.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/pidfd.h16
-rw-r--r--sysdeps/unix/sysv/linux/sys/prctl.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/quota.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/raw.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/reboot.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/rseq.h13
-rw-r--r--sysdeps/unix/sysv/linux/sys/signalfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/swap.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/syscall.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/sysinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/timerfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/timex.h2
-rw-r--r--sysdeps/unix/sysv/linux/syscall-names.list12
-rw-r--r--sysdeps/unix/sysv/linux/syscall.c2
-rw-r--r--sysdeps/unix/sysv/linux/syscall_cancel.c73
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list4
-rw-r--r--sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h2
-rw-r--r--sysdeps/unix/sysv/linux/sysconf-sigstksz.h2
-rw-r--r--sysdeps/unix/sysv/linux/sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/sysctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/sysdep-cancel.h14
-rw-r--r--sysdeps/unix/sysv/linux/sysdep-vdso.h2
-rw-r--r--sysdeps/unix/sysv/linux/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/tcdrain.c2
-rw-r--r--sysdeps/unix/sysv/linux/tcflow.c2
-rw-r--r--sysdeps/unix/sysv/linux/tcflush.c2
-rw-r--r--sysdeps/unix/sysv/linux/tcgetattr.c88
-rw-r--r--sysdeps/unix/sysv/linux/tcsendbrk.c2
-rw-r--r--sysdeps/unix/sysv/linux/tcsetattr.c127
-rw-r--r--sysdeps/unix/sysv/linux/tee.c2
-rw-r--r--sysdeps/unix/sysv/linux/telldir.c2
-rw-r--r--sysdeps/unix/sysv/linux/termio.h6
-rw-r--r--sysdeps/unix/sysv/linux/termios_arch.h23
-rw-r--r--sysdeps/unix/sysv/linux/termios_internals.h143
-rw-r--r--sysdeps/unix/sysv/linux/test-errno-linux.c2
-rw-r--r--sysdeps/unix/sysv/linux/thrd_priv.h2
-rw-r--r--sysdeps/unix/sysv/linux/thrd_sleep.c2
-rw-r--r--sysdeps/unix/sysv/linux/time-clockid.h2
-rw-r--r--sysdeps/unix/sysv/linux/time.c9
-rw-r--r--sysdeps/unix/sysv/linux/timer_create.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_delete.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_getoverr.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_gettime.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_routines.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_settime.c2
-rw-r--r--sysdeps/unix/sysv/linux/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/timerfd_gettime.c2
-rw-r--r--sysdeps/unix/sysv/linux/timerfd_settime.c2
-rw-r--r--sysdeps/unix/sysv/linux/times.c2
-rw-r--r--sysdeps/unix/sysv/linux/timespec_get.c2
-rw-r--r--sysdeps/unix/sysv/linux/timespec_getres.c2
-rw-r--r--sysdeps/unix/sysv/linux/tls-internal.c2
-rw-r--r--sysdeps/unix/sysv/linux/tls-internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/truncate.c2
-rw-r--r--sysdeps/unix/sysv/linux/truncate64.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-adjtimex.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-affinity-pid.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-affinity.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-align-clone-internal.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-align-clone.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clock_adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clock_gettime-clobber.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone2-internal.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone2.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone3-internal.c6
-rw-r--r--sysdeps/unix/sysv/linux/tst-clone3.c6
-rw-r--r--sysdeps/unix/sysv/linux/tst-epoll-ioctls.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-epoll.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-fallocate-common.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-fallocate.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-fallocate64.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-fanotify.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-getauxval.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c4
-rw-r--r--sysdeps/unix/sysv/linux/tst-getdents64.c27
-rw-r--r--sysdeps/unix/sysv/linux/tst-getpid1-internal.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-gettid-kill.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-gettid.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-gettimeofday-clobber.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-glibcsyscalls.py2
-rw-r--r--sysdeps/unix/sysv/linux/tst-linux-mremap1.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-memfd_create.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-misalign-clone.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-mlock2.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-mman-consts.py4
-rwxr-xr-xsysdeps/unix/sysv/linux/tst-mount-compile.py2
-rwxr-xr-xsysdeps/unix/sysv/linux/tst-mount-consts.py6
-rw-r--r--sysdeps/unix/sysv/linux/tst-mount.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-nolink-libc.c (renamed from sysdeps/unix/sysv/linux/nios2/vfork.S)23
-rw-r--r--sysdeps/unix/sysv/linux/tst-ntp_adjtime.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ntp_gettime.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ntp_gettimex.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-o_path-locks.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ofdlocks.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-personality.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-pidfd-consts.py4
-rw-r--r--sysdeps/unix/sysv/linux/tst-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-pidfd_getpid.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-pkey.c59
-rw-r--r--sysdeps/unix/sysv/linux/tst-posix_spawn-setsid-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ppoll.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-prctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-process_madvise.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-process_mrelease.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-quota.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-readdir64-compat.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-rlimit-infinity.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-disable-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-disable.c79
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-nptl-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-nptl.c11
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-tls-range-mod.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-tls-range-static.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq-tls-range.c195
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq.c99
-rw-r--r--sysdeps/unix/sysv/linux/tst-rseq.h5
-rw-r--r--sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c72
-rw-r--r--sysdeps/unix/sysv/linux/tst-sched-consts.py56
-rw-r--r--sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c116
-rw-r--r--sysdeps/unix/sysv/linux/tst-sched_setattr.c96
-rw-r--r--sysdeps/unix/sysv/linux/tst-scm_rights.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c185
-rw-r--r--sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-signal-numbers.py2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sigtimedwait.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-skeleton-affinity.c9
-rw-r--r--sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c38
-rw-r--r--sysdeps/unix/sysv/linux/tst-socket-consts.py2
-rw-r--r--sysdeps/unix/sysv/linux/tst-socket-timestamp-compat.c6
-rw-r--r--sysdeps/unix/sysv/linux/tst-socket-timestamp.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn-cgroup.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn-chdir-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn-pidfd.h2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn2-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn3-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn4-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn5-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn6-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-spawn7-pidfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sync_file_range.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-syscall-list.sh2
-rw-r--r--sysdeps/unix/sysv/linux/tst-syscall-restart.c112
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysvmsg-linux.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysvsem-linux.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-sysvshm-linux.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-termios-linux.c592
-rw-r--r--sysdeps/unix/sysv/linux/tst-tgkill.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-time-clobber.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-timerfd.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ttyname-common.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ttyname-direct.c2
-rw-r--r--sysdeps/unix/sysv/linux/tst-ttyname-namespace.c2
-rw-r--r--sysdeps/unix/sysv/linux/ttyname.c2
-rw-r--r--sysdeps/unix/sysv/linux/ttyname.h2
-rw-r--r--sysdeps/unix/sysv/linux/ttyname_r.c2
-rw-r--r--sysdeps/unix/sysv/linux/tv32-compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/umount.c2
-rw-r--r--sysdeps/unix/sysv/linux/umount2.c2
-rw-r--r--sysdeps/unix/sysv/linux/unlink.c2
-rw-r--r--sysdeps/unix/sysv/linux/unlockpt.c2
-rw-r--r--sysdeps/unix/sysv/linux/update-syscall-lists.py2
-rw-r--r--sysdeps/unix/sysv/linux/updwtmp.c2
-rw-r--r--sysdeps/unix/sysv/linux/ustat.c2
-rw-r--r--sysdeps/unix/sysv/linux/utime.c2
-rw-r--r--sysdeps/unix/sysv/linux/utimensat.c5
-rw-r--r--sysdeps/unix/sysv/linux/utimes.c2
-rw-r--r--sysdeps/unix/sysv/linux/utmp_file.c2
-rw-r--r--sysdeps/unix/sysv/linux/versionsort64.c2
-rw-r--r--sysdeps/unix/sysv/linux/vmsplice.c2
-rw-r--r--sysdeps/unix/sysv/linux/wait3.c2
-rw-r--r--sysdeps/unix/sysv/linux/wait4.c2
-rw-r--r--sysdeps/unix/sysv/linux/waitid.c2
-rw-r--r--sysdeps/unix/sysv/linux/write.c2
-rw-r--r--sysdeps/unix/sysv/linux/write_nocancel.c2
-rw-r--r--sysdeps/unix/sysv/linux/writev.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/arch-pkey.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/environments.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/epoll.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/fcntl.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/ipctypes.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/mman.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/platform/features.h4
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/procfs-id.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/rseq.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/sigcontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/struct_stat.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/timesize.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/typesizes.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/dl-hwcap2.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/dl-minsigstacksize.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/dl-sysdep.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elf-read-prop.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-conf.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-conf.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-lock.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-timed.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-trylock.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/elision-unlock.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/gettimeofday.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/longjmp.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/pkey_get.c7
-rw-r--r--sysdeps/unix/sysv/linux/x86/pkey_set.c7
-rw-r--r--sysdeps/unix/sysv/linux/x86/setjmpP.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/debugreg.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/elf.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/io.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/perm.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/ptrace.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/reg.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/ucontext.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/user.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/vm86.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86/sysconf.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/time.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/Makefile10
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/__start_context.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/clone.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/clone3.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/dl-cet.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/dl-plt-rewrite.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h5
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/get-cpuid-feature-leaf.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/getcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/makecontext.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/pointer_guard.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/setcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/swapcontext.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/syscall.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S57
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sysdep.h3
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-cet-property-1.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-cet-property-2.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-cet-property-dep-2.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-cet-setcontext-1.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-cet-vfork-1.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/vfork.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist19
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist96
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/lseek.S2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/prctl.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/syscall_types.h34
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/times.c2
-rw-r--r--sysdeps/unix/sysv/linux/xmknod.c2
-rw-r--r--sysdeps/unix/sysv/linux/xmknodat.c2
-rw-r--r--sysdeps/unix/sysv/linux/xstat.c4
-rw-r--r--sysdeps/unix/sysv/linux/xstat64.c4
-rw-r--r--sysdeps/unix/sysv/linux/xstatconv.c2
-rw-r--r--sysdeps/unix/sysv/linux/xstatconv.h2
-rw-r--r--sysdeps/unix/sysv/linux/xstatover.h2
1792 files changed, 12426 insertions, 9365 deletions
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 59998c7..c47cbdf 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -95,6 +95,8 @@ sysdep_routines += \
process_vm_writev \
pselect32 \
readahead \
+ sched_getattr \
+ sched_setattr \
setfsgid \
setfsuid \
setvmaname \
@@ -149,15 +151,6 @@ sysdep_headers += \
bits/struct_stat.h \
bits/struct_stat_time64_helper.h \
bits/syscall.h \
- bits/termios-baud.h \
- bits/termios-c_cc.h \
- bits/termios-c_cflag.h \
- bits/termios-c_iflag.h \
- bits/termios-c_lflag.h \
- bits/termios-c_oflag.h \
- bits/termios-misc.h \
- bits/termios-struct.h \
- bits/termios-tcflow.h \
bits/timerfd.h \
bits/types/struct_msqid64_ds.h \
bits/types/struct_msqid64_ds_helper.h \
@@ -224,9 +217,13 @@ tests += \
tst-process_mrelease \
tst-quota \
tst-rlimit-infinity \
+ tst-sched-affinity-inheritance \
+ tst-sched_setattr \
+ tst-sched_setattr-thread \
tst-scm_rights \
tst-sigtimedwait \
tst-sync_file_range \
+ tst-syscall-restart \
tst-sysconf-iov_max \
tst-sysvmsg-linux \
tst-sysvsem-linux \
@@ -263,6 +260,11 @@ tests-internal += \
tst-rseq-disable \
# tests-internal
+tests-static += \
+ tst-rseq-disable-static \
+ tst-rseq-static \
+ # tests-static
+
tests-time64 += \
tst-adjtimex-time64 \
tst-clock_adjtime-time64 \
@@ -395,10 +397,39 @@ $(objpfx)tst-mount-compile.out: ../sysdeps/unix/sysv/linux/tst-mount-compile.py
< /dev/null > $@ 2>&1; $(evaluate-test)
$(objpfx)tst-mount-compile.out: $(sysdeps-linux-python-deps)
+tests-special += \
+ $(objpfx)tst-sched-consts.out \
+ # tests-special
+$(objpfx)tst-sched-consts.out: ../sysdeps/unix/sysv/linux/tst-sched-consts.py
+ $(sysdeps-linux-python) \
+ ../sysdeps/unix/sysv/linux/tst-sched-consts.py \
+ $(sysdeps-linux-python-cc) \
+ < /dev/null > $@ 2>&1; $(evaluate-test)
+$(objpfx)tst-sched-consts.out: $(sysdeps-linux-python-deps)
+
tst-rseq-disable-ENV = GLIBC_TUNABLES=glibc.pthread.rseq=0
+tst-rseq-disable-static-ENV = GLIBC_TUNABLES=glibc.pthread.rseq=0
endif # $(subdir) == misc
+ifeq ($(subdir),termios)
+sysdep_headers += \
+ bits/termios-c_cc.h \
+ bits/termios-c_cflag.h \
+ bits/termios-c_iflag.h \
+ bits/termios-c_lflag.h \
+ bits/termios-c_oflag.h \
+ bits/termios-cbaud.h \
+ bits/termios-misc.h \
+ bits/termios-struct.h \
+ bits/termios-tcflow.h \
+ # sysdep_headers
+
+tests += \
+ tst-termios-linux \
+ # tests
+endif
+
ifeq ($(subdir),time)
sysdep_headers += \
bits/timex.h \
@@ -484,12 +515,6 @@ sysdep_headers += \
# sysdep_headers
endif
-ifeq ($(subdir),termios)
-sysdep_headers += \
- termio.h \
- # sysdep_headers
-endif
-
ifeq ($(subdir),posix)
sysdep_headers += \
bits/initspin.h \
@@ -587,6 +612,7 @@ endif
ifeq ($(subdir),io)
sysdep_routines += \
close_nocancel \
+ close_nocancel_nostatus \
fallocate \
fallocate64 \
fcntl_nocancel \
@@ -638,7 +664,29 @@ install-bin += \
# install-bin
$(objpfx)pldd: $(objpfx)xmalloc.o
+
+tests += tst-rseq-tls-range tst-rseq-tls-range-4096
+tests-static += tst-rseq-tls-range-static tst-rseq-tls-range-4096-static
+modules-names += tst-rseq-tls-range-mod
+CFLAGS-tst-rseq-tls-range.c += -DMAIN_TLS_ALIGN=4
+CFLAGS-tst-rseq-tls-range-4096.c += -DMAIN_TLS_ALIGN=4096
+CFLAGS-tst-rseq-tls-range-static.c += -DMAIN_TLS_ALIGN=4
+CFLAGS-tst-rseq-tls-range-4096-static.c += -DMAIN_TLS_ALIGN=4096
+$(objpfx)tst-rseq-tls-range.out: $(objpfx)tst-rseq-tls-range-mod.so
+$(objpfx)tst-rseq-tls-range-4096.out: $(objpfx)tst-rseq-tls-range-mod.so
+$(objpfx)tst-rseq-tls-range-static.out: $(objpfx)tst-rseq-tls-range-mod.so
+$(objpfx)tst-rseq-tls-range-4096-static.out: $(objpfx)tst-rseq-tls-range-mod.so
+tst-rseq-tls-range-static-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx)
+tst-rseq-tls-range-4096-static-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx)
+
+test-internal-extras += tst-nolink-libc
+ifeq ($(run-built-tests),yes)
+tests-special += \
+ $(objpfx)tst-nolink-libc-1.out \
+ $(objpfx)tst-nolink-libc-2.out \
+ # tests-special
endif
+endif # $(subdir) == elf
ifeq ($(subdir),rt)
CFLAGS-mq_send.c += -fexceptions
@@ -654,6 +702,7 @@ ifeq ($(subdir),nptl)
tests += \
tst-align-clone \
tst-getpid1 \
+ tst-sem_getvalue-affinity \
# tests
# tst-rseq-nptl is an internal test because it requires a definition of
@@ -661,4 +710,8 @@ tests += \
tests-internal += \
tst-rseq-nptl \
# tests-internal
+
+tests-static += \
+ tst-rseq-nptl-static \
+ # tests-static
endif
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 268ba1b..585dec7 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -328,6 +328,17 @@ libc {
posix_spawnattr_getcgroup_np;
posix_spawnattr_setcgroup_np;
}
+ GLIBC_2.41 {
+ sched_getattr;
+ sched_setattr;
+ }
+ GLIBC_2.42 {
+ cfgetospeed;
+ cfgetispeed;
+ cfsetospeed;
+ cfsetispeed;
+ cfsetspeed;
+ }
GLIBC_PRIVATE {
# functions used in other libraries
__syscall_rt_sigqueueinfo;
@@ -335,6 +346,7 @@ libc {
__read_nocancel;
__pread64_nocancel;
__close_nocancel;
+ __close_nocancel_nostatus;
__sigtimedwait;
# functions used by nscd
__netlink_assert_response;
@@ -356,7 +368,4 @@ ld {
__rseq_offset;
__rseq_size;
}
- GLIBC_PRIVATE {
- __nptl_change_stack_perm;
- }
}
diff --git a/sysdeps/unix/sysv/linux/____longjmp_chk.c b/sysdeps/unix/sysv/linux/____longjmp_chk.c
index 3c66a46..f3725db 100644
--- a/sysdeps/unix/sysv/linux/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/____longjmp_chk.c
@@ -1,5 +1,5 @@
/* longjmp fortify implementation. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/_exit.c b/sysdeps/unix/sysv/linux/_exit.c
index 1e39923..fcca24b 100644
--- a/sysdeps/unix/sysv/linux/_exit.c
+++ b/sysdeps/unix/sysv/linux/_exit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/Makefile b/sysdeps/unix/sysv/linux/aarch64/Makefile
index 40b9a2e..15a2b44 100644
--- a/sysdeps/unix/sysv/linux/aarch64/Makefile
+++ b/sysdeps/unix/sysv/linux/aarch64/Makefile
@@ -1,6 +1,149 @@
+ifeq ($(subdir),elf)
+tests += \
+ tst-tlsdesc-pac \
+ # tests
+modules-names += \
+ tst-tlsdesc-pac-mod \
+ # modules-names
+
+LDFLAGS-tst-tlsdesc-pac = -rdynamic
+
+$(objpfx)tst-tlsdesc-pac.out: $(objpfx)tst-tlsdesc-pac-mod.so
+endif
+
ifeq ($(subdir),misc)
sysdep_headers += sys/elf.h
-endif
+tests += \
+ tst-aarch64-pkey \
+ # tests
+
+ifneq (no,$(findstring no,$(have-cc-gcs) $(have-test-cc-gcs) $(have-ld-gcs)))
+
+gcs-tests-dynamic = \
+ tst-gcs-disabled \
+ tst-gcs-dlopen-disabled \
+ tst-gcs-dlopen-enforced \
+ tst-gcs-dlopen-optional-off \
+ tst-gcs-dlopen-optional-on \
+ tst-gcs-dlopen-override \
+ tst-gcs-enforced \
+ tst-gcs-enforced-abort \
+ tst-gcs-noreturn \
+ tst-gcs-optional-off \
+ tst-gcs-optional-on \
+ tst-gcs-override \
+ tst-gcs-shared-disabled \
+ tst-gcs-shared-enforced-abort \
+ tst-gcs-shared-optional \
+ tst-gcs-shared-override \
+ # gcs-tests-dynamic
+
+gcs-tests-static = \
+ tst-gcs-disabled-static \
+ tst-gcs-enforced-static \
+ tst-gcs-enforced-static-abort \
+ tst-gcs-optional-static-off \
+ tst-gcs-optional-static-on \
+ tst-gcs-override-static \
+ # gcs-tests-static
+
+tests += \
+ $(gcs-tests-dynamic) \
+ $(gcs-tests-static) \
+ # tests
+
+tests-static += \
+ $(gcs-tests-static) \
+ # tests-static
+
+define run-gcs-abort-test
+ $(test-wrapper-env) $(run-program-env) \
+ $(tst-gcs-$*-abort-ENV) $(host-test-program-cmd)
+endef
+
+$(objpfx)tst-gcs-%-abort.out: $(..)sysdeps/unix/sysv/linux/aarch64/tst-gcs-abort.sh \
+ $(objpfx)tst-gcs-%-abort
+ $(SHELL) $< $(common-objpfx) $(test-name) '$(run-gcs-abort-test)'; \
+ $(evaluate-test)
+
+LDFLAGS-tst-gcs-disabled += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-enforced += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-enforced-abort += -Wl,-z gcs=never
+LDFLAGS-tst-gcs-optional-on += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-optional-off += -Wl,-z gcs=never
+LDFLAGS-tst-gcs-override += -Wl,-z gcs=never
+
+LDFLAGS-tst-gcs-disabled-static += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-enforced-static += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-enforced-static-abort += -Wl,-z gcs=never
+LDFLAGS-tst-gcs-optional-static-on += -Wl,-z gcs=always
+LDFLAGS-tst-gcs-optional-static-off += -Wl,-z gcs=never
+LDFLAGS-tst-gcs-override-static += -Wl,-z gcs=never
+
+tst-gcs-disabled-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=0
+tst-gcs-enforced-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-enforced-abort-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-optional-on-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-optional-off-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-override-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=3
+
+tst-gcs-disabled-static-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=0
+tst-gcs-enforced-static-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-enforced-static-abort-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-optional-static-on-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-optional-static-off-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-override-static-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=3
+
+# force one of the dependencies to be unmarked
+LDFLAGS-tst-gcs-mod2.so += -Wl,-z gcs=never
+
+LDFLAGS-tst-gcs-shared-disabled = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-shared-enforced-abort = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-shared-optional = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-shared-override = -Wl,-z gcs=always
+
+modules-names += \
+ tst-gcs-mod1 \
+ tst-gcs-mod2 \
+ tst-gcs-mod3 \
+ # modules-names
+
+$(objpfx)tst-gcs-shared-disabled: $(objpfx)tst-gcs-mod1.so $(objpfx)tst-gcs-mod3.so
+$(objpfx)tst-gcs-shared-enforced-abort: $(objpfx)tst-gcs-mod1.so $(objpfx)tst-gcs-mod3.so
+$(objpfx)tst-gcs-shared-optional: $(objpfx)tst-gcs-mod1.so $(objpfx)tst-gcs-mod3.so
+$(objpfx)tst-gcs-shared-override: $(objpfx)tst-gcs-mod1.so $(objpfx)tst-gcs-mod3.so
+$(objpfx)tst-gcs-mod1.so: $(objpfx)tst-gcs-mod2.so
+
+tst-gcs-shared-disabled-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=0
+tst-gcs-shared-enforced-abort-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-shared-optional-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-shared-override-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=3
+
+LDFLAGS-tst-gcs-dlopen-disabled = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-dlopen-enforced = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-dlopen-optional-on = -Wl,-z gcs=always
+LDFLAGS-tst-gcs-dlopen-optional-off = -Wl,-z gcs=never
+LDFLAGS-tst-gcs-dlopen-override = -Wl,-z gcs=always
+
+tst-gcs-dlopen-disabled-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=0
+tst-gcs-dlopen-enforced-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=1
+tst-gcs-dlopen-optional-on-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-dlopen-optional-off-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=2
+tst-gcs-dlopen-override-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=3
+
+$(objpfx)tst-gcs-dlopen-disabled.out: $(objpfx)tst-gcs-mod2.so
+$(objpfx)tst-gcs-dlopen-enforced.out: $(objpfx)tst-gcs-mod2.so
+$(objpfx)tst-gcs-dlopen-optional-on.out: $(objpfx)tst-gcs-mod2.so
+$(objpfx)tst-gcs-dlopen-optional-off.out: $(objpfx)tst-gcs-mod2.so
+$(objpfx)tst-gcs-dlopen-override.out: $(objpfx)tst-gcs-mod2.so
+
+LDFLAGS-tst-gcs-noreturn = -Wl,-z gcs=always
+
+tst-gcs-noreturn-ENV = GLIBC_TUNABLES=glibc.cpu.aarch64_gcs=0
+
+endif # ifeq ($(have-test-cc-gcs),yes)
+
+endif # ifeq ($(subdir),misc)
ifeq ($(subdir),stdlib)
gen-as-const-headers += ucontext_i.sym
diff --git a/sysdeps/unix/sysv/linux/aarch64/arch-pkey.h b/sysdeps/unix/sysv/linux/aarch64/arch-pkey.h
new file mode 100644
index 0000000..dbfcc91
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/arch-pkey.h
@@ -0,0 +1,53 @@
+/* Helper functions for manipulating memory protection keys.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _ARCH_PKEY_H
+#define _ARCH_PKEY_H
+
+#include <sys/cdefs.h>
+
+#define S1POE_PERM_NO_ACCESS 0b0000UL
+#define S1POE_PERM_R 0b0001UL
+#define S1POE_PERM_X 0b0010UL
+#define S1POE_PERM_RX 0b0011UL
+#define S1POE_PERM_W 0b0100UL
+#define S1POE_PERM_RW 0b0101UL
+#define S1POE_PERM_WX 0b0110UL
+#define S1POE_PERM_RWX 0b0111UL
+
+#define S1POE_PERM_MASK 0b1111UL
+
+#define S1POE_BITS_PER_POI 4UL
+
+/* Return the value of the POR_EL0 register. */
+static __always_inline unsigned long
+pkey_read (void)
+{
+ unsigned long r;
+ __asm__ volatile ("mrs %0, s3_3_c10_c2_4" : "=r" (r));
+ return r;
+}
+
+/* Overwrite the POR_EL0 register with VALUE. */
+static __always_inline void
+pkey_write (unsigned long value)
+{
+ __asm__ volatile ("msr s3_3_c10_c2_4, %0; isb" : : "r" (value));
+}
+
+#endif /* _ARCH_PKEY_H */
diff --git a/sysdeps/unix/sysv/linux/aarch64/arch-syscall.h b/sysdeps/unix/sysv/linux/aarch64/arch-syscall.h
index 19b6316..ba4a461 100644
--- a/sysdeps/unix/sysv/linux/aarch64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/aarch64/arch-syscall.h
@@ -95,6 +95,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -124,6 +125,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_lookup_dcookie 18
#define __NR_lremovexattr 15
@@ -173,6 +175,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -212,6 +215,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat 38
#define __NR_renameat2 276
#define __NR_request_key 218
@@ -270,6 +274,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h b/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
index 036c476..6579126 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for the AArch64 Linux ABI.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -25,17 +25,11 @@
#define __O_NOFOLLOW 0100000
#define __O_DIRECT 0200000
-#ifdef __ILP32__
-# define __O_LARGEFILE 0400000
-#else
-# define __O_LARGEFILE 0
-#endif
+#define __O_LARGEFILE 0
-#ifdef __LP64__
-# define F_GETLK64 5
-# define F_SETLK64 6
-# define F_SETLKW64 7
-#endif
+#define F_GETLK64 5
+#define F_SETLK64 6
+#define F_SETLKW64 7
struct flock
{
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h b/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
index 8dceaa1..d064a09 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP. AArch64 Linux version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,6 +54,7 @@
#define HWCAP_SB (1 << 29)
#define HWCAP_PACA (1 << 30)
#define HWCAP_PACG (1UL << 31)
+#define HWCAP_GCS (1UL << 32)
#define HWCAP2_DCPODP (1 << 0)
#define HWCAP2_SVE2 (1 << 1)
@@ -118,3 +119,4 @@
#define HWCAP2_SME_SF8FMA (1UL << 60)
#define HWCAP2_SME_SF8DP4 (1UL << 61)
#define HWCAP2_SME_SF8DP2 (1UL << 62)
+#define HWCAP2_POE (1UL << 63)
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
index c5b6c69..a6eb7b0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/AArch64 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,6 +26,14 @@
#define PROT_BTI 0x10
#define PROT_MTE 0x20
+#ifdef __USE_GNU
+# define PKEY_UNRESTRICTED 0x0
+# define PKEY_DISABLE_ACCESS 0x1
+# define PKEY_DISABLE_WRITE 0x2
+# define PKEY_DISABLE_EXECUTE 0x4
+# define PKEY_DISABLE_READ 0x8
+#endif
+
#include <bits/mman-map-flags-generic.h>
/* Include generic Linux declarations. */
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h b/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h
index 4abc9e3..7d1d4a2 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. AArch64 version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h
index 22c2bab..7ef84b4 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. Linux/aarch64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/rseq.h b/sysdeps/unix/sysv/linux/aarch64/bits/rseq.h
index e36bf13..2175562 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux aarch64 architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
index 03e6e40..51d6fa2 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/clone.S b/sysdeps/unix/sysv/linux/aarch64/clone.S
index 0e7ee24..40015c6 100644
--- a/sysdeps/unix/sysv/linux/aarch64/clone.S
+++ b/sysdeps/unix/sysv/linux/aarch64/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -33,12 +33,6 @@
*/
.text
ENTRY(__clone)
- PTR_ARG (0)
- PTR_ARG (1)
- PTR_ARG (3)
- PTR_ARG (4)
- PTR_ARG (5)
- PTR_ARG (6)
/* Save args for the child. */
mov x10, x0
mov x11, x2
diff --git a/sysdeps/unix/sysv/linux/aarch64/clone3.S b/sysdeps/unix/sysv/linux/aarch64/clone3.S
index e28aaa5..c9ca845 100644
--- a/sysdeps/unix/sysv/linux/aarch64/clone3.S
+++ b/sysdeps/unix/sysv/linux/aarch64/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/aarch64 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -36,10 +36,6 @@
.text
ENTRY(__clone3)
- PTR_ARG (0)
- PTR_ARG (1)
- PTR_ARG (3)
- PTR_ARG (4)
/* Save args for the child. */
mov x10, x0 /* cl_args */
mov x11, x2 /* func */
diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
index c0b047b..1acc82d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
@@ -1,6 +1,6 @@
/* Initialize CPU feature data. AArch64 version.
This file is part of the GNU C Library.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -23,6 +23,7 @@
#include <sys/prctl.h>
#include <sys/utsname.h>
#include <dl-tunables-parse.h>
+#include <dl-symbol-redir-ifunc.h>
#define DCZID_DZP_MASK (1 << 4)
#define DCZID_BS_MASK (0xf)
@@ -128,7 +129,7 @@ init_cpu_features (struct cpu_features *cpu_features)
cpu_features->midr_el1 = midr;
/* Check if ZVA is enabled. */
- unsigned dczid;
+ uint64_t dczid;
asm volatile ("mrs %0, dczid_el0" : "=r"(dczid));
if ((dczid & DCZID_DZP_MASK) == 0)
@@ -176,4 +177,8 @@ init_cpu_features (struct cpu_features *cpu_features)
/* Check if MOPS is supported. */
cpu_features->mops = GLRO (dl_hwcap2) & HWCAP2_MOPS;
+
+ if (GLRO (dl_hwcap) & HWCAP_GCS)
+ /* GCS status may be updated later by binary compatibility checks. */
+ GL (dl_aarch64_gcs) = TUNABLE_GET (glibc, cpu, aarch64_gcs, uint64_t, 0);
}
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-cache.h b/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
index fe4d274..35e1b91 100644
--- a/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,11 +18,7 @@
#include <ldconfig.h>
-#ifdef __LP64__
-# define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB64 | FLAG_ELF_LIBC6)
-#else
-# define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB32 | FLAG_ELF_LIBC6)
-#endif
+#define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB64 | FLAG_ELF_LIBC6)
#define _dl_cache_check_flags(flags) \
((flags) == _DL_CACHE_DEFAULT_ID)
@@ -38,18 +34,11 @@
len -= 2; \
path[len] = '\0'; \
} \
- if (len >= 9 && ! memcmp (path + len - 9, "/libilp32", 9))\
- { \
- len -= 5; \
- path[len] = '\0'; \
- } \
add_dir (path); \
if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \
{ \
memcpy (path + len, "64", 3); \
add_dir (path); \
- memcpy (path + len, "ilp32", 6); \
- add_dir (path); \
} \
} while (0)
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
index 7af232d..20966e0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
+++ b/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
@@ -1,6 +1,6 @@
/* Data for AArch64 version of processor capability information.
Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -56,27 +56,5 @@ PROCINFO_CLASS struct cpu_features _dl_aarch64_cpu_features
# endif
#endif
-/* Number of HWCAP bits set. */
-#define _DL_HWCAP_COUNT 32
-
-#if !defined PROCINFO_DECL && defined SHARED
- ._dl_aarch64_cap_flags
-#else
-PROCINFO_CLASS const char _dl_aarch64_cap_flags[_DL_HWCAP_COUNT][10]
-#endif
-#ifndef PROCINFO_DECL
-/* Matches the names in arch/arm64/kernel/cpuinfo.c of Linux. */
-= { "fp", "asimd", "evtstrm", "aes", "pmull", "sha1", "sha2", "crc32",
- "atomics", "fphp", "asimdhp", "cpuid", "asimdrdm", "jscvt", "fcma",
- "lrcpc", "dcpop", "sha3", "sm3", "sm4", "asimddp", "sha512", "sve",
- "asimdfhm", "dit", "uscat", "ilrcpc", "flagm", "ssbs", "sb", "paca",
- "pacg" }
-#endif
-#if !defined SHARED || defined PROCINFO_DECL
-;
-#else
-,
-#endif
-
#undef PROCINFO_DECL
#undef PROCINFO_CLASS
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procruntime.c b/sysdeps/unix/sysv/linux/aarch64/dl-procruntime.c
new file mode 100644
index 0000000..044544a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/dl-procruntime.c
@@ -0,0 +1,37 @@
+/* Data for processor runtime information. AArch64 version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef PROCINFO_CLASS
+# define PROCINFO_CLASS
+#endif
+
+#if !IS_IN (ldconfig)
+# if !defined PROCINFO_DECL && defined SHARED
+ ._dl_aarch64_gcs
+# else
+PROCINFO_CLASS unsigned long _dl_aarch64_gcs
+# endif
+# ifndef PROCINFO_DECL
+= 0
+# endif
+# if !defined SHARED || defined PROCINFO_DECL
+;
+# else
+,
+# endif
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
index e5b69c9..b6e64e5 100644
--- a/sysdeps/unix/sysv/linux/aarch64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
@@ -1,6 +1,6 @@
/* Save current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -30,7 +30,6 @@
.text
ENTRY(__getcontext)
- PTR_ARG (0)
/* The saved context will return to the getcontext() call point
with a return value of 0 */
str xzr, [x0, oX0 + 0 * SZREG]
@@ -83,15 +82,30 @@ ENTRY(__getcontext)
mrs x4, fpcr
str w4, [x3, oFPCR - oFPSR]
- /* Write the termination context extension header. */
add x2, x2, #FPSIMD_CONTEXT_SIZE
+ /* Save the GCSPR. */
+ mov x16, 1 /* _CHKFEAT_GCS */
+ CHKFEAT_X16
+ tbnz x16, 0, L(gcs_done)
+ mov w3, #(GCS_MAGIC & 0xffff)
+ movk w3, #(GCS_MAGIC >> 16), lsl #16
+ str w3, [x2, #oHEAD + oMAGIC]
+ mov w3, #GCS_CONTEXT_SIZE
+ str w3, [x2, #oHEAD + oSIZE]
+ MRS_GCSPR (x4)
+ add x4, x4, 8 /* GCS state right after getcontext returns. */
+ str x4, [x2, #oGCSPR]
+ add x2, x2, #GCS_CONTEXT_SIZE
+L(gcs_done):
+
+ /* Write the termination context extension header. */
str wzr, [x2, #oHEAD + oMAGIC]
str wzr, [x2, #oHEAD + oSIZE]
/* Grab the signal mask */
/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
- add PTR_REG (2), PTR_REG (0), #UCONTEXT_SIGMASK
+ add x2, x0, UCONTEXT_SIGMASK
mov x0, SIG_BLOCK
mov x1, 0
mov x3, _NSIG8
diff --git a/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
index 1341e6d..379781a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/ioctl.S b/sysdeps/unix/sysv/linux/aarch64/ioctl.S
index 74f381f..6543ad4 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ioctl.S
+++ b/sysdeps/unix/sysv/linux/aarch64/ioctl.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
index d99056d..8cdd6ed 100644
--- a/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. AArch64 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
index c6a1e9c..6102262 100644
--- a/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
+++ b/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc-start.h b/sysdeps/unix/sysv/linux/aarch64/libc-start.h
new file mode 100644
index 0000000..75ae0a8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/libc-start.h
@@ -0,0 +1,62 @@
+/* AArch64 definitions for libc main startup.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _LIBC_START_H
+#define _LIBC_START_H
+
+#ifndef SHARED
+
+# include <dl-prop.h>
+
+# ifndef PR_SET_SHADOW_STACK_STATUS
+# define PR_SET_SHADOW_STACK_STATUS 75
+# define PR_SHADOW_STACK_ENABLE (1UL << 0)
+# endif
+
+/* Must be on a top-level stack frame that does not return. */
+static inline void __attribute__((always_inline))
+aarch64_libc_setup_tls (void)
+{
+ __libc_setup_tls ();
+
+ struct link_map *main_map = _dl_get_dl_main_map ();
+ const ElfW(Phdr) *phdr = GL(dl_phdr);
+ const ElfW(Phdr) *ph;
+ for (ph = phdr; ph < phdr + GL(dl_phnum); ph++)
+ if (ph->p_type == PT_GNU_PROPERTY)
+ {
+ _dl_process_pt_gnu_property (main_map, -1, ph);
+ _rtld_main_check (main_map, _dl_argv[0]);
+ break;
+ }
+
+ if (GL(dl_aarch64_gcs) != 0)
+ {
+ int ret = INLINE_SYSCALL_CALL (prctl, PR_SET_SHADOW_STACK_STATUS,
+ PR_SHADOW_STACK_ENABLE, 0, 0, 0);
+ if (ret)
+ _dl_fatal_printf ("failed to enable GCS: %d\n", -ret);
+ }
+}
+
+# define ARCH_SETUP_IREL() apply_irel ()
+# define ARCH_SETUP_TLS() aarch64_libc_setup_tls ()
+# define ARCH_APPLY_IREL()
+#endif /* ! SHARED */
+
+#endif /* _LIBC_START_H */
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 68eeca1..a22e651 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -2748,3 +2748,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc_sigaction.c b/sysdeps/unix/sysv/linux/aarch64/libc_sigaction.c
index dc4cce8..29eb01e 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/aarch64/libc_sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 024cb8d..bb8114b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1189,3 +1189,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist
index b685106..f7f72b6 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist
@@ -128,3 +128,43 @@ GLIBC_2.40 _ZGVsMxvv_hypot F
GLIBC_2.40 _ZGVsMxvv_hypotf F
GLIBC_2.40 _ZGVsMxvv_pow F
GLIBC_2.40 _ZGVsMxvv_powf F
+GLIBC_2.41 _ZGVnN2v_cospi F
+GLIBC_2.41 _ZGVnN2v_cospif F
+GLIBC_2.41 _ZGVnN2v_logp1 F
+GLIBC_2.41 _ZGVnN2v_logp1f F
+GLIBC_2.41 _ZGVnN2v_sinpi F
+GLIBC_2.41 _ZGVnN2v_sinpif F
+GLIBC_2.41 _ZGVnN2v_tanpi F
+GLIBC_2.41 _ZGVnN2v_tanpif F
+GLIBC_2.41 _ZGVnN4v_cospif F
+GLIBC_2.41 _ZGVnN4v_logp1f F
+GLIBC_2.41 _ZGVnN4v_sinpif F
+GLIBC_2.41 _ZGVnN4v_tanpif F
+GLIBC_2.41 _ZGVsMxv_cospi F
+GLIBC_2.41 _ZGVsMxv_cospif F
+GLIBC_2.41 _ZGVsMxv_logp1 F
+GLIBC_2.41 _ZGVsMxv_logp1f F
+GLIBC_2.41 _ZGVsMxv_sinpi F
+GLIBC_2.41 _ZGVsMxv_sinpif F
+GLIBC_2.41 _ZGVsMxv_tanpi F
+GLIBC_2.41 _ZGVsMxv_tanpif F
+GLIBC_2.42 _ZGVnN2v_acospi F
+GLIBC_2.42 _ZGVnN2v_acospif F
+GLIBC_2.42 _ZGVnN2v_asinpi F
+GLIBC_2.42 _ZGVnN2v_asinpif F
+GLIBC_2.42 _ZGVnN2v_atanpi F
+GLIBC_2.42 _ZGVnN2v_atanpif F
+GLIBC_2.42 _ZGVnN2vv_atan2pi F
+GLIBC_2.42 _ZGVnN2vv_atan2pif F
+GLIBC_2.42 _ZGVnN4v_acospif F
+GLIBC_2.42 _ZGVnN4v_asinpif F
+GLIBC_2.42 _ZGVnN4v_atanpif F
+GLIBC_2.42 _ZGVnN4vv_atan2pif F
+GLIBC_2.42 _ZGVsMxv_acospi F
+GLIBC_2.42 _ZGVsMxv_acospif F
+GLIBC_2.42 _ZGVsMxv_asinpi F
+GLIBC_2.42 _ZGVsMxv_asinpif F
+GLIBC_2.42 _ZGVsMxv_atanpi F
+GLIBC_2.42 _ZGVsMxv_atanpif F
+GLIBC_2.42 _ZGVsMxvv_atan2pi F
+GLIBC_2.42 _ZGVsMxvv_atan2pif F
diff --git a/sysdeps/unix/sysv/linux/aarch64/makecontext.c b/sysdeps/unix/sysv/linux/aarch64/makecontext.c
index 5aec182..4485723 100644
--- a/sysdeps/unix/sysv/linux/aarch64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/aarch64/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -21,7 +21,27 @@
#include <stdarg.h>
#include <stdint.h>
#include <ucontext.h>
+#include <sys/mman.h>
+#include "aarch64-gcs.h"
+
+#define GCS_MAGIC 0x47435300
+
+static struct _aarch64_ctx *extension (void *p)
+{
+ return p;
+}
+
+/* Allocate GCS stack for new context. */
+static void *
+alloc_makecontext_gcs (size_t stack_size)
+{
+ void *gcsp = __alloc_gcs (stack_size, NULL);
+ if (gcsp == NULL)
+ /* ENOSYS, bad size or OOM. */
+ abort ();
+ return gcsp;
+}
/* makecontext sets up a stack and the registers for the
user context. The stack looks like this:
@@ -56,10 +76,23 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
sp = (uint64_t *) (((uintptr_t) sp) & -16L);
ucp->uc_mcontext.regs[19] = (uintptr_t) ucp->uc_link;
+ ucp->uc_mcontext.regs[20] = (uintptr_t) func;
ucp->uc_mcontext.sp = (uintptr_t) sp;
- ucp->uc_mcontext.pc = (uintptr_t) func;
+ ucp->uc_mcontext.pc = (uintptr_t) __startcontext;
ucp->uc_mcontext.regs[29] = (uintptr_t) 0;
- ucp->uc_mcontext.regs[30] = (uintptr_t) &__startcontext;
+ ucp->uc_mcontext.regs[30] = (uintptr_t) 0;
+
+ void *p = ucp->uc_mcontext.__reserved;
+ if (extension (p)->magic == FPSIMD_MAGIC)
+ p = (char *)p + extension (p)->size;
+ if (extension (p)->magic == GCS_MAGIC)
+ {
+ /* Using the kernel struct gcs_context layout. */
+ struct { uint64_t x, gcspr, y, z; } *q = p;
+ /* TODO: this allocation remains mapped even after thread
+ that uses it exits. */
+ q->gcspr = (uint64_t) alloc_makecontext_gcs (ucp->uc_stack.ss_size);
+ }
va_start (ap, argc);
for (i = 0; i < argc; ++i)
diff --git a/sysdeps/unix/sysv/linux/aarch64/pkey_get.c b/sysdeps/unix/sysv/linux/aarch64/pkey_get.c
new file mode 100644
index 0000000..2dd9d81
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/pkey_get.c
@@ -0,0 +1,73 @@
+/* Reading the per-thread memory protection key, AArch64 version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <arch-pkey.h>
+#include <errno.h>
+#include <sys/mman.h>
+
+int
+pkey_get (int key)
+{
+ if (key < 0 || key > 15)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+ unsigned long int por_el0 = pkey_read ();
+ unsigned long int perm = (por_el0 >> (S1POE_BITS_PER_POI * key))
+ & S1POE_PERM_MASK;
+
+ /* The following mapping between POR permission bits (4 bits)
+ and PKEY flags is supported:
+
+ -WXR POR to PKEY_ mapping
+ 0000 => DISABLE_ACCESS | DISABLE_READ | DISABLE_WRITE | DISABLE_EXECUTE
+ 0001 => DISABLE_WRITE | DISABLE_EXECUTE (read-only)
+ 0010 => DISABLE_ACCESS | DISABLE_READ | DISABLE_WRITE (execute-only)
+ 0011 => DISABLE_WRITE (read-execute)
+ 0100 => DISABLE_READ | DISABLE_EXECUTE (write-only)
+ 0101 => DISABLE_EXECUTE (read-write)
+ 0110 => DISABLE_READ (execute-write)
+ 0111 => UNRESTRICTED (no restrictions, read-write-execute)
+ else => undefined behavior
+
+ Note that pkey_set and pkey_alloc would only set these specific
+ values. The PKEY_DISABLE_ACCESS flag is redundant as it implies
+ PKEY_DISABLE_READ | PKEY_DISABLE_WRITE but is kept for backward
+ compatibility. */
+
+ if (perm == S1POE_PERM_NO_ACCESS)
+ return PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE
+ | PKEY_DISABLE_READ;
+ if (perm == S1POE_PERM_R)
+ return PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE;
+ if (perm == S1POE_PERM_X)
+ return PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE;
+ if (perm == S1POE_PERM_RX)
+ return PKEY_DISABLE_WRITE;
+ if (perm == S1POE_PERM_W)
+ return PKEY_DISABLE_READ | PKEY_DISABLE_EXECUTE;
+ if (perm == S1POE_PERM_RW)
+ return PKEY_DISABLE_EXECUTE;
+ if (perm == S1POE_PERM_WX)
+ return PKEY_DISABLE_READ;
+ if (perm == S1POE_PERM_RWX)
+ return PKEY_UNRESTRICTED;
+
+ return PKEY_DISABLE_ACCESS;
+}
diff --git a/sysdeps/unix/sysv/linux/aarch64/pkey_set.c b/sysdeps/unix/sysv/linux/aarch64/pkey_set.c
new file mode 100644
index 0000000..a521cc0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/pkey_set.c
@@ -0,0 +1,113 @@
+/* Changing the per-thread memory protection key, AArch64 version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <arch-pkey.h>
+#include <errno.h>
+#include <sys/mman.h>
+
+#define MAX_PKEY_RIGHTS (PKEY_DISABLE_ACCESS | \
+ PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE | PKEY_DISABLE_READ)
+
+int
+pkey_set (int key, unsigned int restrictions)
+{
+ if (key < 0 || key > 15 || restrictions > MAX_PKEY_RIGHTS)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+ unsigned long mask = S1POE_PERM_MASK << (S1POE_BITS_PER_POI * key);
+ unsigned long por_el0 = pkey_read ();
+ unsigned long perm;
+
+ /* POR ot PKEY mapping: -WXR
+ PKEY_UNRESTRICTED => 0111 (read-write-execute)
+ PKEY_DISABLE_ACCESS => removes R and W access
+ PKEY_DISABLE_READ => removes R access
+ PKEY_DISABLE_WRITE => removes W access
+ PKEY_DISABLE_EXECUTE => removes X access
+
+ Either of PKEY_DISABLE_ACCESS or PKEY_DISABLE_READ removes R access.
+ Either of PKEY_DISABLE_ACCESS or PKEY_DISABLE_WRITE removes W access.
+ Using PKEY_DISABLE_ACCESS along with only one of PKEY_DISABLE_READ or
+ PKEY_DISABLE_WRITE is considered to be in error.
+
+ Furthermore, for avoidance of doubt:
+
+ PKEY flags Permissions
+ rxwa -WXR
+ 1111 => 0000 S1POE_PERM_NO_ACCESS
+ 1110 => 0000 S1POE_PERM_NO_ACCESS
+ 1101 => EINVAL
+ 1100 => 0100 S1POE_PERM_W
+ 1011 => 0010 S1POE_PERM_X
+ 1010 => 0010 S1POE_PERM_X
+ 1001 => EINVAL
+ 1000 => 0110 S1POE_PERM_WX
+ 0111 => EINVAL
+ 0110 => 0001 S1POE_PERM_R
+ 0101 => 0000 S1POE_PERM_NO_ACCESS
+ 0100 => 0101 S1POE_PERM_RW
+ 0011 => EINVAL
+ 0010 => 0011 S1POE_PERM_RX
+ 0001 => 0010 S1POE_PERM_X
+ 0000 => 0111 S1POE_PERM_RWX */
+ switch (restrictions)
+ {
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ | PKEY_DISABLE_EXECUTE:
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_EXECUTE:
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_EXECUTE:
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE:
+ case PKEY_DISABLE_READ | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE:
+ perm = S1POE_PERM_NO_ACCESS;
+ break;
+ case PKEY_DISABLE_READ | PKEY_DISABLE_EXECUTE:
+ perm = S1POE_PERM_W;
+ break;
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ:
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE:
+ case PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE:
+ case PKEY_DISABLE_READ | PKEY_DISABLE_WRITE:
+ case PKEY_DISABLE_ACCESS:
+ perm = S1POE_PERM_X;
+ break;
+ case PKEY_DISABLE_READ:
+ perm = S1POE_PERM_WX;
+ break;
+ case PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE:
+ perm = S1POE_PERM_R;
+ break;
+ case PKEY_DISABLE_EXECUTE:
+ perm = S1POE_PERM_RW;
+ break;
+ case PKEY_DISABLE_WRITE:
+ perm = S1POE_PERM_RX;
+ break;
+ case PKEY_UNRESTRICTED:
+ perm = S1POE_PERM_RWX;
+ break;
+ default:
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ por_el0 = (por_el0 & ~mask) | (perm << (S1POE_BITS_PER_POI * key));
+ pkey_write (por_el0);
+ return 0;
+}
diff --git a/sysdeps/unix/sysv/linux/aarch64/pointer_guard.h b/sysdeps/unix/sysv/linux/aarch64/pointer_guard.h
index 23c825d..fd4501b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/aarch64/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer guard implementation. AArch64 version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,18 +24,11 @@
|| (!defined SHARED && (IS_IN (libc) \
|| IS_IN (libpthread))))
# ifdef __ASSEMBLER__
-/* Note, dst, src, guard, and tmp are all register numbers rather than
- register names so they will work with both ILP32 and LP64. */
-# define PTR_MANGLE(dst, src, guard, tmp) \
- LDST_PCREL (ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard_local)); \
- PTR_MANGLE2 (dst, src, guard)
-/* Use PTR_MANGLE2 for efficiency if guard is already loaded. */
-# define PTR_MANGLE2(dst, src, guard)\
- eor x##dst, x##src, x##guard
-# define PTR_DEMANGLE(dst, src, guard, tmp)\
- PTR_MANGLE (dst, src, guard, tmp)
-# define PTR_DEMANGLE2(dst, src, guard)\
- PTR_MANGLE2 (dst, src, guard)
+# define PTR_MANGLE(dst, src, tmp) \
+ adrp tmp, C_SYMBOL_NAME(__pointer_chk_guard_local); \
+ ldr tmp, [tmp, :lo12:C_SYMBOL_NAME(__pointer_chk_guard_local)]; \
+ eor dst, src, tmp
+# define PTR_DEMANGLE(dst, src, tmp) PTR_MANGLE (dst, src, tmp)
# else
extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
# define PTR_MANGLE(var) \
@@ -44,18 +37,12 @@ extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
# endif
#else
# ifdef __ASSEMBLER__
-/* Note, dst, src, guard, and tmp are all register numbers rather than
- register names so they will work with both ILP32 and LP64. */
-# define PTR_MANGLE(dst, src, guard, tmp) \
- LDST_GLOBAL (ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard)); \
- PTR_MANGLE2 (dst, src, guard)
-/* Use PTR_MANGLE2 for efficiency if guard is already loaded. */
-# define PTR_MANGLE2(dst, src, guard)\
- eor x##dst, x##src, x##guard
-# define PTR_DEMANGLE(dst, src, guard, tmp)\
- PTR_MANGLE (dst, src, guard, tmp)
-# define PTR_DEMANGLE2(dst, src, guard)\
- PTR_MANGLE2 (dst, src, guard)
+# define PTR_MANGLE(dst, src, tmp) \
+ adrp tmp, :got:C_SYMBOL_NAME(__pointer_chk_guard); \
+ ldr tmp, [tmp, :got_lo12:C_SYMBOL_NAME(__pointer_chk_guard)]; \
+ ldr tmp, [tmp]; \
+ eor dst, src, tmp;
+# define PTR_DEMANGLE(dst, src, tmp) PTR_MANGLE (dst, src, tmp)
# else
# include <stdint.h>
extern uintptr_t __pointer_chk_guard attribute_relro;
diff --git a/sysdeps/unix/sysv/linux/aarch64/readelflib.c b/sysdeps/unix/sysv/linux/aarch64/readelflib.c
index 0076161..9ada075 100644
--- a/sysdeps/unix/sysv/linux/aarch64/readelflib.c
+++ b/sysdeps/unix/sysv/linux/aarch64/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/setcontext.S b/sysdeps/unix/sysv/linux/aarch64/setcontext.S
index ba65943..d9716f0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/aarch64/setcontext.S
@@ -1,6 +1,6 @@
/* Set current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -34,7 +34,6 @@
.text
ENTRY (__setcontext)
- PTR_ARG (0)
/* Save a copy of UCP. */
mov x9, x0
@@ -49,25 +48,16 @@ ENTRY (__setcontext)
cbz x0, 1f
b C_SYMBOL_NAME (__syscall_error)
1:
- /* Disable ZA of SME. */
-#if HAVE_AARCH64_PAC_RET
- PACIASP
- cfi_window_save
-#endif
- stp x29, x30, [sp, -16]!
- cfi_adjust_cfa_offset (16)
- cfi_rel_offset (x29, 0)
- cfi_rel_offset (x30, 8)
- mov x29, sp
+ /* Clear ZA state of SME. */
+ /* The calling convention of __libc_arm_za_disable allows to do
+ this thus allowing to avoid saving to and reading from stack.
+ As a result we also don't need to sign the return address and
+ check it after returning because it is not stored to stack. */
+ mov x13, x30
+ cfi_register (x30, x13)
bl __libc_arm_za_disable
- ldp x29, x30, [sp], 16
- cfi_adjust_cfa_offset (-16)
- cfi_restore (x29)
- cfi_restore (x30)
-#if HAVE_AARCH64_PAC_RET
- AUTIASP
- cfi_window_save
-#endif
+ mov x30, x13
+ cfi_register (x13, x30)
/* Restore the general purpose registers. */
mov x0, x9
cfi_def_cfa (x0, 0)
@@ -130,6 +120,44 @@ ENTRY (__setcontext)
ldr w4, [x3, oFPCR - oFPSR]
msr fpcr, x4
+ /* Restore the GCS. */
+ mov x16, 1 /* _CHKFEAT_GCS */
+ CHKFEAT_X16
+ tbnz x16, 0, L(gcs_done)
+ /* Get target GCS from GCS context. */
+ ldr w1, [x2, #oHEAD + oSIZE]
+ add x2, x2, x1
+ mov w3, #(GCS_MAGIC & 0xffff)
+ movk w3, #(GCS_MAGIC >> 16), lsl #16
+ ldr w1, [x2, #oHEAD + oMAGIC]
+ cmp w1, w3
+ b.ne L(gcs_done)
+ ldr x3, [x2, #oGCSPR]
+ MRS_GCSPR (x2)
+ mov x4, x3
+ /* x2: GCSPR now. x3, x4: target GCSPR. x5, x6: tmp regs. */
+L(gcs_scan):
+ cmp x2, x4
+ b.eq L(gcs_pop)
+ sub x4, x4, 8
+ /* Check for a cap token. */
+ ldr x5, [x4]
+ and x6, x4, 0xfffffffffffff000
+ orr x6, x6, 1
+ cmp x5, x6
+ b.ne L(gcs_scan)
+L(gcs_switch):
+ add x2, x4, 8
+ GCSSS1 (x4)
+ GCSSS2 (xzr)
+L(gcs_pop):
+ cmp x2, x3
+ b.eq L(gcs_done)
+ GCSPOPM (xzr)
+ add x2, x2, 8
+ b L(gcs_pop)
+L(gcs_done):
+
2:
ldr x16, [x0, oPC]
/* Restore arg registers. */
@@ -142,7 +170,11 @@ ENTRY (__setcontext)
PSEUDO_END (__setcontext)
weak_alias (__setcontext, setcontext)
+/* makecontext start function: receives uc_link in x19 and func in x20.
+ Arguments of func, x29, x30 and sp are set up by the caller. */
ENTRY (__startcontext)
+ cfi_undefined (x30)
+ blr x20
mov x0, x19
cbnz x0, __setcontext
1: b HIDDEN_JUMPTARGET (exit)
diff --git a/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
index 50ffce6..0bd0f36 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* AArch64 definitions for signal handling calling conventions.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
index f049140..58ddb95 100644
--- a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
@@ -1,6 +1,6 @@
/* Modify saved context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -27,13 +27,19 @@
.text
ENTRY(__swapcontext)
- PTR_ARG (0)
/* Set the value returned when swapcontext() returns in this context.
And set up x1 to become the return address of the caller, so we
can return there with a normal RET instead of an indirect jump. */
stp xzr, x30, [x0, oX0 + 0 * SZREG]
+
+ /* With GCS, swapcontext calls are followed by BTI J, otherwise
+ we have to be compatible with old BTI enabled binaries. */
+ mov x16, 1 /* _CHKFEAT_GCS */
+ CHKFEAT_X16
+ tbz x16, 0, L(skip_x30_redirect)
/* Arrange the oucp context to return to 2f. */
adr x30, 2f
+L(skip_x30_redirect):
stp x18, x19, [x0, oX0 + 18 * SZREG]
stp x20, x21, [x0, oX0 + 20 * SZREG]
@@ -72,14 +78,27 @@ ENTRY(__swapcontext)
mrs x4, fpcr
str w4, [x3, #oFPCR - oFPSR]
- /* Write the termination context extension header. */
add x2, x2, #FPSIMD_CONTEXT_SIZE
+ /* Save the GCSPR. */
+ tbnz x16, 0, L(gcs_done)
+ mov w3, #(GCS_MAGIC & 0xffff)
+ movk w3, #(GCS_MAGIC >> 16), lsl #16
+ str w3, [x2, #oHEAD + oMAGIC]
+ mov w3, #GCS_CONTEXT_SIZE
+ str w3, [x2, #oHEAD + oSIZE]
+ MRS_GCSPR (x4)
+ add x4, x4, 8 /* GCSPR of the caller. */
+ str x4, [x2, #oGCSPR]
+ add x2, x2, #GCS_CONTEXT_SIZE
+L(gcs_done):
+
+ /* Write the termination context extension header. */
str wzr, [x2, #oHEAD + oMAGIC]
str wzr, [x2, #oHEAD + oSIZE]
/* Preserve ucp. */
- mov x21, x1
+ mov x9, x1
/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask,
_NSIG8) */
@@ -93,18 +112,14 @@ ENTRY(__swapcontext)
svc 0
cbnz x0, 1f
- mov x22, x30
- mov x0, x21
- bl JUMPTARGET (__setcontext)
- mov x30, x22
- RET
-
+ mov x0, x9
+ b JUMPTARGET (__setcontext)
1:
b C_SYMBOL_NAME(__syscall_error)
2:
/* The oucp context is restored here via an indirect branch,
x1 must be restored too which has the real return address. */
- BTI_J
+ bti j
mov x30, x1
RET
PSEUDO_END (__swapcontext)
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/elf.h b/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
index c2a9618..7ccf9a2 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
index 19b3302..4dc04af 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/AArch64 version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
index d361b25..5a4a824 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/user.h b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
index 84db61c..4c37a16 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/syscall.S b/sysdeps/unix/sysv/linux/aarch64/syscall.S
index e5670cc..07b34e7 100644
--- a/sysdeps/unix/sysv/linux/aarch64/syscall.S
+++ b/sysdeps/unix/sysv/linux/aarch64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/syscall_cancel.S b/sysdeps/unix/sysv/linux/aarch64/syscall_cancel.S
new file mode 100644
index 0000000..2151f0e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/syscall_cancel.S
@@ -0,0 +1,59 @@
+/* Cancellable syscall wrapper. Linux/AArch64 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int [x0] __syscall_cancel_arch (int *cancelhandling [x0],
+ long int nr [x1],
+ long int arg1 [x2],
+ long int arg2 [x3],
+ long int arg3 [x4],
+ long int arg4 [x5],
+ long int arg5 [x6],
+ long int arg6 [x7]) */
+
+ENTRY (__syscall_cancel_arch)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ ldr w0, [x0]
+ tbnz w0, TCB_CANCELED_BIT, 1f
+
+ /* Issue a 6 argument syscall, the nr [x1] being the syscall
+ number. */
+ mov x8, x1
+ mov x0, x2
+ mov x1, x3
+ mov x2, x4
+ mov x3, x5
+ mov x4, x6
+ mov x5, x7
+ svc 0x0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ ret
+
+1:
+ b __syscall_do_cancel
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysconf.c b/sysdeps/unix/sysv/linux/aarch64/sysconf.c
index 6c8216e..eec2453 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysconf.c
+++ b/sysdeps/unix/sysv/linux/aarch64/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,7 +27,7 @@ static long int linux_sysconf (int name);
long int
__sysconf (int name)
{
- unsigned ctr;
+ uint64_t ctr;
/* Unfortunately, the registers that contain the actual cache info
(CCSIDR_EL1, CLIDR_EL1, and CSSELR_EL1) are protected by the Linux
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.c b/sysdeps/unix/sysv/linux/aarch64/sysdep.c
index c6439f6..540481a 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.c
+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
index bbbe357..f0e8d64 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -152,18 +152,14 @@
#else /* not __ASSEMBLER__ */
-# ifdef __LP64__
-# define VDSO_NAME "LINUX_2.6.39"
-# define VDSO_HASH 123718537
-# else
-# define VDSO_NAME "LINUX_4.9"
-# define VDSO_HASH 61765625
-# endif
+# define VDSO_NAME "LINUX_2.6.39"
+# define VDSO_HASH 123718537
/* List of system calls which are supported as vsyscalls. */
# define HAVE_CLOCK_GETRES64_VSYSCALL "__kernel_clock_getres"
# define HAVE_CLOCK_GETTIME64_VSYSCALL "__kernel_clock_gettime"
# define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday"
+# define HAVE_GETRANDOM_VSYSCALL "__kernel_getrandom"
# define HAVE_CLONE3_WRAPPER 1
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-aarch64-pkey.c b/sysdeps/unix/sysv/linux/aarch64/tst-aarch64-pkey.c
new file mode 100644
index 0000000..c884efc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-aarch64-pkey.c
@@ -0,0 +1,190 @@
+/* AArch64 tests for memory protection keys.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <inttypes.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/support.h>
+#include <support/test-driver.h>
+#include <support/xsignal.h>
+#include <support/xunistd.h>
+#include <sys/mman.h>
+#include <array_length.h>
+
+static sig_atomic_t sigusr1_handler_ran;
+static int pkey;
+
+/* On AArch64 access is revoked during signal handling for
+ pkey > 0 because POR is reset to the default value 0x7. */
+static void
+sigusr1_handler (int signum)
+{
+ TEST_COMPARE (signum, SIGUSR1);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_ACCESS, PKEY_DISABLE_ACCESS);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_READ, PKEY_DISABLE_READ);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_WRITE, PKEY_DISABLE_WRITE);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_EXECUTE, PKEY_DISABLE_EXECUTE);
+ sigusr1_handler_ran += 1;
+}
+
+static int
+do_test (void)
+{
+ pkey = pkey_alloc (0, PKEY_UNRESTRICTED);
+ if (pkey < 0)
+ {
+ if (errno == ENOSYS || errno == EINVAL)
+ FAIL_UNSUPPORTED
+ ("kernel or CPU does not support memory protection keys");
+ if (errno == ENOSPC)
+ FAIL_UNSUPPORTED
+ ("no keys available or kernel does not support memory"
+ " protection keys");
+ FAIL_EXIT1 ("pkey_alloc: %m");
+ }
+
+ long int pagesize = xsysconf (_SC_PAGESIZE);
+
+ int *page = xmmap (NULL, pagesize, PROT_NONE, MAP_ANONYMOUS | MAP_PRIVATE,
+ -1);
+
+ /* On AArch64 pkey == 0 is reserved and should never be allocated. */
+ TEST_VERIFY (pkey > 0);
+ TEST_COMPARE (pkey_get(pkey), PKEY_UNRESTRICTED);
+
+ /* Check that access is revoked during signal handling
+ with initial rights being set to no restrictions. */
+ TEST_COMPARE (pkey_mprotect ((void *) page, pagesize, PROT_READ
+ | PROT_WRITE, pkey), 0);
+ xsignal (SIGUSR1, &sigusr1_handler);
+ xraise (SIGUSR1);
+ xsignal (SIGUSR1, SIG_DFL);
+ TEST_COMPARE (sigusr1_handler_ran, 1);
+
+ /* Check that access is revoked during signal handling
+ with initial rights being set to PKEY_DISABLE_WRITE. */
+ TEST_COMPARE (pkey_set (pkey, PKEY_DISABLE_WRITE), 0);
+ xsignal (SIGUSR1, &sigusr1_handler);
+ xraise (SIGUSR1);
+ xsignal (SIGUSR1, SIG_DFL);
+ TEST_COMPARE (sigusr1_handler_ran, 2);
+
+ /* Check that all combinations of PKEY flags used in pkey_set
+ result in consistent values obtained via pkey_get.
+ Note that whenever flags PKEY_DISABLE_READ and PKEY_DISABLE_WRITE
+ are set, the PKEY_DISABLE_ACCESS is also set. */
+ struct
+ {
+ unsigned int set;
+ unsigned int expected;
+ } rrs[] =
+ {
+ {
+ PKEY_UNRESTRICTED,
+ PKEY_UNRESTRICTED
+ },
+ {
+ PKEY_DISABLE_ACCESS,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ },
+ {
+ PKEY_DISABLE_WRITE,
+ PKEY_DISABLE_WRITE
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ },
+ {
+ PKEY_DISABLE_EXECUTE,
+ PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_EXECUTE,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ | PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE,
+ PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ | PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_READ,
+ PKEY_DISABLE_READ
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ },
+ {
+ PKEY_DISABLE_WRITE | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_READ
+ },
+ {
+ PKEY_DISABLE_EXECUTE | PKEY_DISABLE_READ,
+ PKEY_DISABLE_EXECUTE | PKEY_DISABLE_READ
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_EXECUTE | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ | PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_READ | PKEY_DISABLE_WRITE
+ | PKEY_DISABLE_EXECUTE
+ },
+ {
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE
+ | PKEY_DISABLE_READ,
+ PKEY_DISABLE_ACCESS | PKEY_DISABLE_WRITE | PKEY_DISABLE_EXECUTE
+ | PKEY_DISABLE_READ
+ },
+ };
+
+ for (int k = 0; k < (array_length (rrs) / 2); k++) {
+ TEST_COMPARE (k, rrs[k].set);
+ TEST_COMPARE (pkey_set (pkey, rrs[k].set), 0);
+ TEST_COMPARE (pkey_get (pkey), rrs[k].expected);
+ }
+
+ /* Check that restrictions above maximum allowed value are rejected. */
+ TEST_COMPARE (pkey_set (pkey, 16), -1);
+ TEST_COMPARE (errno, EINVAL);
+
+ TEST_COMPARE (pkey_free (pkey), 0);
+
+ xmunmap ((void *) page, pagesize);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-abort.sh b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-abort.sh
new file mode 100644
index 0000000..9e2be2d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-abort.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+# Test wrapper for AArch64 tests for GCS that are expected to abort.
+# Copyright (C) 2025 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <https://www.gnu.org/licenses/>.
+
+objpfx=$1; shift
+tstname=$1; shift
+tstrun=$1; shift
+
+logfile=$objpfx/$tstname.out
+
+rm -vf $logfile
+touch $logfile
+
+${tstrun} 2>> $logfile >> $logfile; status=$?
+
+if test $status -eq 127 \
+ && grep -q -w "not GCS compatible" "$logfile" ; then
+ exit 0
+elif test $status -eq 77; then
+ exit 77
+else
+ echo "unexpected test output or exit status $status"
+ exit 1
+fi
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled-static.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled-static.c
new file mode 100644
index 0000000..c71d68c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled-static.c
@@ -0,0 +1 @@
+#include "tst-gcs-disabled.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled.c
new file mode 100644
index 0000000..bd68878
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-disabled.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-disabled.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-disabled.c
new file mode 100644
index 0000000..3439528
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-disabled.c
@@ -0,0 +1,3 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#define TEST_GCS_EXPECT_DLOPEN 1
+#include "tst-gcs-dlopen.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-enforced.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-enforced.c
new file mode 100644
index 0000000..d8489ec
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-enforced.c
@@ -0,0 +1,3 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#define TEST_GCS_EXPECT_DLOPEN 0
+#include "tst-gcs-dlopen.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-off.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-off.c
new file mode 100644
index 0000000..3439528
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-off.c
@@ -0,0 +1,3 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#define TEST_GCS_EXPECT_DLOPEN 1
+#include "tst-gcs-dlopen.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-on.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-on.c
new file mode 100644
index 0000000..d8489ec
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-optional-on.c
@@ -0,0 +1,3 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#define TEST_GCS_EXPECT_DLOPEN 0
+#include "tst-gcs-dlopen.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-override.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-override.c
new file mode 100644
index 0000000..152ffcf
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen-override.c
@@ -0,0 +1,3 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#define TEST_GCS_EXPECT_DLOPEN 1
+#include "tst-gcs-dlopen.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen.c
new file mode 100644
index 0000000..6e0801c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-dlopen.c
@@ -0,0 +1,62 @@
+/* AArch64 tests for GCS for dlopen use case.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-gcs-helper.h"
+
+#include <dlfcn.h>
+#include <string.h>
+
+static int
+do_test (void)
+{
+ /* Check if GCS could possible by enabled. */
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ puts ("kernel or CPU does not support GCS");
+ return EXIT_UNSUPPORTED;
+ }
+ /* The tst-gcs-mod2.so test library does not have GCS marking. */
+ void *h = dlopen ("tst-gcs-mod2.so", RTLD_NOW);
+ const char *err = dlerror ();
+
+#if TEST_GCS_EXPECT_DLOPEN
+ TEST_VERIFY (h != NULL);
+#else
+ TEST_VERIFY (h == NULL);
+ /* Only accept expected GCS-related errors. */
+ TEST_VERIFY (strstr (err, "not GCS compatible") != NULL);
+#endif
+
+#if TEST_GCS_EXPECT_ENABLED
+ TEST_VERIFY (__check_gcs_status ());
+#else
+ TEST_VERIFY (!__check_gcs_status ());
+#endif
+
+ if (h == NULL)
+ printf ("dlopen error: %s\n", err);
+ else
+ {
+ puts ("library loaded normally");
+ dlclose (h);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-abort.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-abort.c
new file mode 100644
index 0000000..608318f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-abort.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static-abort.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static-abort.c
new file mode 100644
index 0000000..c20a999
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static-abort.c
@@ -0,0 +1 @@
+#include "tst-gcs-enforced-abort.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static.c
new file mode 100644
index 0000000..bb39dad
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced-static.c
@@ -0,0 +1 @@
+#include "tst-gcs-enforced.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced.c
new file mode 100644
index 0000000..608318f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-enforced.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-helper.h b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-helper.h
new file mode 100644
index 0000000..d8a586d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-helper.h
@@ -0,0 +1,39 @@
+/* AArch64 tests for GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef TST_GCS_HELPER_H
+#define TST_GCS_HELPER_H
+
+#include <support/check.h>
+#include <support/support.h>
+#include <support/test-driver.h>
+
+#include <stdio.h>
+#include <sys/auxv.h>
+
+static bool __check_gcs_status (void)
+{
+ register unsigned long x16 asm ("x16");
+ asm volatile (
+ "mov x16, #1 /* _CHKFEAT_GCS */\n"
+ "hint 40 /* CHKFEAT_X16 */\n"
+ : "=r" (x16));
+ return x16 ^ 1;
+}
+
+#endif // POINTER_GUARD_H
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/timesize.h b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod1.c
index 6f11fde..931ff81 100644
--- a/sysdeps/unix/sysv/linux/nios2/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod1.c
@@ -1,5 +1,5 @@
-/* Bit size of the time_t type at glibc build time, Linux/NIOS2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* DSO for testing GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,5 +16,12 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-/* Size in bits of the 'time_t' type of the default ABI. */
-#define __TIMESIZE 32
+#include <stdio.h>
+
+int fun2 (void); // tst-gcs-mod2.c
+
+int fun1 (void)
+{
+ puts ("called function fun1");
+ return fun2 ();
+}
diff --git a/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod2.c
index b759d37..f9370eb 100644
--- a/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod2.c
@@ -1,5 +1,5 @@
-/* Nios II definitions for signal handling calling conventions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* DSO for testing GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,13 +16,10 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _SIGCONTEXTINFO_H
-#define _SIGCONTEXTINFO_H
+#include <stdio.h>
-static inline uintptr_t
-sigcontext_get_pc (const ucontext_t *ctx)
+int fun2 (void)
{
- return ctx->uc_mcontext.regs[27];
+ puts ("called function fun2");
+ return 0;
}
-
-#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_stat.h b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod3.c
index d92b5fe..38bb357 100644
--- a/sysdeps/unix/sysv/linux/nios2/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-mod3.c
@@ -1,5 +1,5 @@
-/* Internal definitions for stat functions. Linux/nios2.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* DSO for testing GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -13,9 +13,13 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
+ License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#define STAT_IS_KERNEL_STAT 1
-#define XSTAT_IS_XSTAT64 0
-#define STATFS_IS_STATFS64 0
+#include <stdio.h>
+
+int fun3 (void)
+{
+ puts ("called function fun3");
+ return 0;
+}
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-noreturn.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-noreturn.c
new file mode 100644
index 0000000..f550579
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-noreturn.c
@@ -0,0 +1,101 @@
+/* AArch64 test for GCS abort when returning to non-GCS address.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-gcs-helper.h"
+
+#include <sys/prctl.h>
+#include <stdlib.h>
+
+#include <support/xsignal.h>
+
+# ifndef PR_SET_SHADOW_STACK_STATUS
+# define PR_SET_SHADOW_STACK_STATUS 75
+# define PR_SHADOW_STACK_ENABLE (1UL << 0)
+# endif
+
+static void
+run_with_gcs (void)
+{
+ int r = prctl (PR_SET_SHADOW_STACK_STATUS, PR_SHADOW_STACK_ENABLE, 0, 0, 0);
+ /* Syscall should succeed. */
+ TEST_VERIFY (r == 0);
+ bool gcs_enabled = __check_gcs_status ();
+ /* Now GCS should be enabled. */
+ TEST_VERIFY (gcs_enabled);
+ printf ("GCS is %s\n", gcs_enabled ? "enabled" : "disabled");
+}
+
+static struct _aarch64_ctx *
+extension (void *p)
+{
+ return p;
+}
+
+#ifndef GCS_MAGIC
+#define GCS_MAGIC 0x47435300
+#endif
+
+static void
+handler (int sig, siginfo_t *si, void *ctx)
+{
+ TEST_VERIFY (sig == SIGSEGV);
+ ucontext_t *uc = ctx;
+ void *p = uc->uc_mcontext.__reserved;
+ if (extension (p)->magic == FPSIMD_MAGIC)
+ p = (char *)p + extension (p)->size;
+ if (extension (p)->magic == GCS_MAGIC)
+ {
+ struct { uint64_t x, gcspr, y, z; } *q = p;
+ printf ("GCS pointer: %016lx\n", q->gcspr);
+ exit (0);
+ }
+ else
+ exit (3);
+}
+
+static int
+do_test (void)
+{
+ /* Check if GCS could possible by enabled. */
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ puts ("kernel or CPU does not support GCS");
+ return EXIT_UNSUPPORTED;
+ }
+ bool gcs_enabled = __check_gcs_status ();
+ /* This test should be rung with GCS initially disabled. */
+ TEST_VERIFY (!gcs_enabled);
+
+ /* We can't use EXPECTED_SIGNAL because of cases when
+ this test runs on a system that does not support GCS
+ which is being detected at runtime. */
+ struct sigaction sigact;
+ sigemptyset (&sigact.sa_mask);
+ sigact.sa_flags = 0;
+ sigact.sa_flags = sigact.sa_flags | SA_SIGINFO;
+ sigact.sa_sigaction = handler;
+ xsigaction (SIGSEGV, &sigact, NULL);
+
+ run_with_gcs ();
+ /* If we reached this point, then something went wrong.
+ Returning from a function that enabled GCS should result in
+ SIGSEGV that we catch with the handler set up above. */
+ return 2;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-off.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-off.c
new file mode 100644
index 0000000..bd68878
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-off.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-on.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-on.c
new file mode 100644
index 0000000..608318f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-on.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-off.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-off.c
new file mode 100644
index 0000000..54e3b9a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-off.c
@@ -0,0 +1 @@
+#include "tst-gcs-optional-off.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-on.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-on.c
new file mode 100644
index 0000000..11b884b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-optional-static-on.c
@@ -0,0 +1 @@
+#include "tst-gcs-optional-on.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override-static.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override-static.c
new file mode 100644
index 0000000..09055dc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override-static.c
@@ -0,0 +1 @@
+#include "tst-gcs-override.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override.c
new file mode 100644
index 0000000..608318f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-override.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-skeleton.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-disabled.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-disabled.c
new file mode 100644
index 0000000..8598dc4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-disabled.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#include "tst-gcs-shared.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-enforced-abort.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-enforced-abort.c
new file mode 100644
index 0000000..f1333ce
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-enforced-abort.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-shared.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-optional.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-optional.c
new file mode 100644
index 0000000..8598dc4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-optional.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 0
+#include "tst-gcs-shared.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-override.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-override.c
new file mode 100644
index 0000000..f1333ce
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared-override.c
@@ -0,0 +1,2 @@
+#define TEST_GCS_EXPECT_ENABLED 1
+#include "tst-gcs-shared.c"
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared.c
new file mode 100644
index 0000000..1192de6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-shared.c
@@ -0,0 +1,41 @@
+/* AArch64 tests for GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-gcs-helper.h"
+
+int fun1 (void); // tst-gcs-mod1.c
+int fun3 (void); // tst-gcs-mod3.c
+
+static int
+do_test (void)
+{
+ /* Check if GCS could possible by enabled. */
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ puts ("kernel or CPU does not support GCS");
+ return EXIT_UNSUPPORTED;
+ }
+#if TEST_GCS_EXPECT_ENABLED
+ TEST_VERIFY (__check_gcs_status ());
+#else
+ TEST_VERIFY (!__check_gcs_status ());
+#endif
+ return fun1 () + fun3 ();
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-gcs-skeleton.c b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-skeleton.c
new file mode 100644
index 0000000..feb5e33
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-gcs-skeleton.c
@@ -0,0 +1,43 @@
+/* AArch64 tests for GCS.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "tst-gcs-helper.h"
+
+static int
+do_test (void)
+{
+ /* Check if GCS could possible by enabled. */
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ puts ("kernel or CPU does not support GCS");
+ return EXIT_UNSUPPORTED;
+ }
+ bool gcs_enabled = __check_gcs_status ();
+ if (gcs_enabled)
+ puts ("GCS enabled");
+ else
+ puts ("GCS not enabled");
+#if TEST_GCS_EXPECT_ENABLED
+ TEST_VERIFY (gcs_enabled);
+#else
+ TEST_VERIFY (!gcs_enabled);
+#endif
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c
new file mode 100644
index 0000000..d34c8be
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c
@@ -0,0 +1,27 @@
+/* AArch64 tests for unwinding TLSDESC (BZ 32612)
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+_Thread_local int foo;
+/* Make the TLS segment large enough to trigger _dl_tlsdesc_dynamic. */
+_Thread_local int foobar[1000];
+
+void
+bar (void)
+{
+ foo = 1;
+}
diff --git a/sysdeps/unix/sysv/linux/i386/dl-procinfo.h b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac.c
index 3de8dea..24d656a 100644
--- a/sysdeps/unix/sysv/linux/i386/dl-procinfo.h
+++ b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac.c
@@ -1,5 +1,5 @@
-/* Linux/i386 version of processor capability information handling macros.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* AArch64 tests for unwinding TLSDESC (BZ 32612)
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,31 +16,33 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _DL_I386_PROCINFO_H
-#define _DL_I386_PROCINFO_H 1
-#include <sysdeps/x86/dl-procinfo.h>
+#include <stdlib.h>
+#include <unwind.h>
+#include <support/xdlfcn.h>
-#undef _dl_procinfo
-static inline int
-__attribute__ ((unused))
-_dl_procinfo (unsigned int type, unsigned long int word)
+static _Unwind_Reason_Code
+unwind_callback (struct _Unwind_Context* context, void* closure)
{
- /* This table should match the information from arch/i386/kernel/setup.c
- in the kernel sources. */
- int i;
-
- /* Fallback to generic output mechanism. */
- if (type != AT_HWCAP)
- return -1;
-
- _dl_printf ("AT_HWCAP: ");
+ return _URC_NO_REASON;
+}
- for (i = 0; i < 32; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", GLRO(dl_x86_cap_flags)[i]);
+/* Assume that TLS variable from tst-tlsdesc-pac-mod.so will trigger
+ the slow-path that allocates the required memory with malloc. */
+void *
+malloc (size_t s)
+{
+ _Unwind_Backtrace (unwind_callback, NULL);
+ return calloc (1, s);
+}
- _dl_printf ("\n");
+static int
+do_test (void)
+{
+ void *h = xdlopen ("tst-tlsdesc-pac-mod.so", RTLD_LAZY);
+ void (*func)(void) = xdlsym (h, "bar");
+ func ();
return 0;
}
-#endif
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h b/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
index 096d5fb..8419842 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
+++ b/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -43,3 +43,8 @@
#define oX21 (oX0 + 21*8)
#define oFP (oX0 + 29*8)
#define oLR (oX0 + 30*8)
+
+/* Use kernel layout for saving GCSPR in ucontext. */
+#define GCS_MAGIC 0x47435300
+#define GCS_CONTEXT_SIZE 32
+#define oGCSPR 8
diff --git a/sysdeps/unix/sysv/linux/aarch64/vfork.S b/sysdeps/unix/sysv/linux/aarch64/vfork.S
index e71e492..d5943a7 100644
--- a/sysdeps/unix/sysv/linux/aarch64/vfork.S
+++ b/sysdeps/unix/sysv/linux/aarch64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -33,8 +33,13 @@ ENTRY (__vfork)
cmn x0, #4095
b.cs .Lsyscall_error
+ cbz x0, L(child)
RET
-
+L(child):
+ /* Return with indirect branch in the child to support GCS.
+ Compilers insert BTI instruction after vfork() to make
+ sure return via BR works on systems with BTI. */
+ br x30
PSEUDO_END (__vfork)
libc_hidden_def (__vfork)
diff --git a/sysdeps/unix/sysv/linux/aarch64/vltest.py b/sysdeps/unix/sysv/linux/aarch64/vltest.py
index f74be43..3a09905 100755
--- a/sysdeps/unix/sysv/linux/aarch64/vltest.py
+++ b/sysdeps/unix/sysv/linux/aarch64/vltest.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Set Scalable Vector Length test helper
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/accept.c b/sysdeps/unix/sysv/linux/accept.c
index cf52661..410b1c0 100644
--- a/sysdeps/unix/sysv/linux/accept.c
+++ b/sysdeps/unix/sysv/linux/accept.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/accept4.c b/sysdeps/unix/sysv/linux/accept4.c
index 63133c8..20fb640 100644
--- a/sysdeps/unix/sysv/linux/accept4.c
+++ b/sysdeps/unix/sysv/linux/accept4.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/access.c b/sysdeps/unix/sysv/linux/access.c
index 4b7c3be..bdf14ab 100644
--- a/sysdeps/unix/sysv/linux/access.c
+++ b/sysdeps/unix/sysv/linux/access.c
@@ -1,5 +1,5 @@
/* Linux implementation for access function.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/adjtime.c b/sysdeps/unix/sysv/linux/adjtime.c
index 4b0a54f..ff80909 100644
--- a/sysdeps/unix/sysv/linux/adjtime.c
+++ b/sysdeps/unix/sysv/linux/adjtime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/adjtimex.c b/sysdeps/unix/sysv/linux/adjtimex.c
index 72d5c18..f3bf393 100644
--- a/sysdeps/unix/sysv/linux/adjtimex.c
+++ b/sysdeps/unix/sysv/linux/adjtimex.c
@@ -1,5 +1,5 @@
/* Tune kernel clock. Linux specific syscall.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aio_misc.h b/sysdeps/unix/sysv/linux/aio_misc.h
index ef5276c..e8094c2 100644
--- a/sysdeps/unix/sysv/linux/aio_misc.h
+++ b/sysdeps/unix/sysv/linux/aio_misc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
index dcae15f..4d9e8ce 100644
--- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S b/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
index 09ef76e..2cf1096 100644
--- a/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/adjtime.c b/sysdeps/unix/sysv/linux/alpha/adjtime.c
index 463cec3..f78d939 100644
--- a/sysdeps/unix/sysv/linux/alpha/adjtime.c
+++ b/sysdeps/unix/sysv/linux/alpha/adjtime.c
@@ -1,5 +1,5 @@
/* adjtime -- Adjust the current time of day. Linux/Alpha/tv64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/adjtimex.c b/sysdeps/unix/sysv/linux/alpha/adjtimex.c
index 8245698..75b7b37 100644
--- a/sysdeps/unix/sysv/linux/alpha/adjtimex.c
+++ b/sysdeps/unix/sysv/linux/alpha/adjtimex.c
@@ -1,5 +1,5 @@
/* adjtimex -- Adjust the current time of day. Linux/Alpha/tv64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/arch-syscall.h b/sysdeps/unix/sysv/linux/alpha/arch-syscall.h
index 216a557..840d6fe 100644
--- a/sysdeps/unix/sysv/linux/alpha/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/alpha/arch-syscall.h
@@ -119,6 +119,7 @@
#define __NR_gettimeofday 359
#define __NR_getuid 24
#define __NR_getxattr 385
+#define __NR_getxattrat 574
#define __NR_getxgid 47
#define __NR_getxpid 20
#define __NR_getxuid 24
@@ -153,6 +154,7 @@
#define __NR_listen 106
#define __NR_listmount 568
#define __NR_listxattr 388
+#define __NR_listxattrat 575
#define __NR_llistxattr 389
#define __NR_lookup_dcookie 406
#define __NR_lremovexattr 392
@@ -207,6 +209,7 @@
#define __NR_open 45
#define __NR_open_by_handle_at 498
#define __NR_open_tree 538
+#define __NR_open_tree_attr 577
#define __NR_openat 450
#define __NR_openat2 547
#define __NR_osf_adjtime 140
@@ -364,6 +367,7 @@
#define __NR_recvmsg 113
#define __NR_remap_file_pages 410
#define __NR_removexattr 391
+#define __NR_removexattrat 576
#define __NR_rename 128
#define __NR_renameat 457
#define __NR_renameat2 510
@@ -428,6 +432,7 @@
#define __NR_settimeofday 360
#define __NR_setuid 23
#define __NR_setxattr 382
+#define __NR_setxattrat 573
#define __NR_shmat 209
#define __NR_shmctl 210
#define __NR_shmdt 211
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/dirent.h b/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
index b604576..fbec550 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/epoll.h b/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
index 83c950e..dc81854 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/errno.h b/sysdeps/unix/sysv/linux/alpha/bits/errno.h
index 16dbca7..c019bdce 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux/Alpha specific version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h b/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
index 5e46341..f1bb9b8 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h b/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
index 29397ba..d6b87e7 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/inotify.h b/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
index 73a5146..52f7542 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h b/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
index eca4132..77dc0c1 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/mman.h b/sysdeps/unix/sysv/linux/alpha/bits/mman.h
index 43b22a4..6403700 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/Alpha version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/netdb.h b/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
index 05726e3..040071d 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h b/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h
index ac1e57a..aad7f91 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h
@@ -1,5 +1,5 @@
/* Types of prgregset_t and prfpregset_t. Alpha version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/procfs.h b/sysdeps/unix/sysv/linux/alpha/bits/procfs.h
index d55fe92..99dd1c7 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. Alpha version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h
index 324b549..cf70ea5 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. Linux/Alpha version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/resource.h b/sysdeps/unix/sysv/linux/alpha/bits/resource.h
index 2bcbdf0..225ed98 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Alpha/Linux version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h b/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
index ffd0288..54ee8c9 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux/Alpha sigaction.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h b/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
index 6753f00..ba4dbd3 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h b/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h
index 56ec725..68bcda1 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/Alpha version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
index d43039d..3864e79 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h b/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h
index 7a5a426..fdbb2bd 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures. Version for alpha.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h b/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
index 7300dd9..74ea018 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/Alpha.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/statfs.h b/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
index ed23840..4998ca1 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/struct_stat.h b/sysdeps/unix/sysv/linux/alpha/bits/struct_stat.h
index 83a9bfd..d9b5f32 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
index a9735f5..8ece17d 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
@@ -1,5 +1,5 @@
/* termios c_cc symbolic constant definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h
index ff50a24..d830884 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cflag.h
@@ -1,5 +1,5 @@
/* termios control mode definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -36,4 +36,6 @@
#ifdef __USE_MISC
# define ADDRB 04000000000
+# define CMSPAR 010000000000 /* Mark or space (stick) parity. */
+# define CRTSCTS 020000000000 /* Flow control. */
#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
index 2556911..b4dfdb4 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
@@ -1,5 +1,5 @@
/* termios input mode definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h
index 9ae43ba..84b876c 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h
@@ -1,5 +1,5 @@
/* termios local mode definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h
index e3bec09..f1ae9e5 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_oflag.h
@@ -1,5 +1,5 @@
/* termios output mode definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-cbaud.h
index 0345e9f..69421f6 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-cbaud.h
@@ -1,5 +1,5 @@
/* termios baud rate selection definitions. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,30 +17,29 @@
<https://www.gnu.org/licenses/>. */
#ifndef _TERMIOS_H
-# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+# error "Never include <bits/termios-cbaud.h> directly; use <termios.h> instead."
#endif
#ifdef __USE_MISC
-# define CBAUD 0000037
-# define CBAUDEX 0000000
-# define CMSPAR 010000000000 /* mark or space (stick) parity */
-# define CRTSCTS 020000000000 /* flow control */
+# define CBAUD 000000037
+# define CBAUDEX 000000000
+# define CIBAUD 007600000
+# define IBSHIFT 16
#endif
-#define B57600 00020
-#define B115200 00021
-#define B230400 00022
-#define B460800 00023
-#define B500000 00024
-#define B576000 00025
-#define B921600 00026
-#define B1000000 00027
-#define B1152000 00030
-#define B1500000 00031
-#define B2000000 00032
-#define B2500000 00033
-#define B3000000 00034
-#define B3500000 00035
-#define B4000000 00036
-
-#define __MAX_BAUD B4000000
+#define __B57600 00020
+#define __B115200 00021
+#define __B230400 00022
+#define __B460800 00023
+#define __B500000 00024
+#define __B576000 00025
+#define __B921600 00026
+#define __B1000000 00027
+#define __B1152000 00030
+#define __B1500000 00031
+#define __B2000000 00032
+#define __B2500000 00033
+#define __B3000000 00034
+#define __B3500000 00035
+#define __B4000000 00036
+#define __BOTHER 00037
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h
index 3fa02fe..f50e9ef 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-struct.h
@@ -1,5 +1,5 @@
/* struct termios definition. Linux/alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,8 +30,15 @@ struct termios
tcflag_t c_lflag; /* local mode flags */
cc_t c_cc[NCCS]; /* control characters */
cc_t c_line; /* line discipline (== c_cc[33]) */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
+ /* Input and output baud rates. */
+ __extension__ union {
+ speed_t __ispeed;
+ speed_t c_ispeed;
+ };
#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+ __extension__ union {
+ speed_t __ospeed;
+ speed_t c_ospeed;
+ };
#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
};
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h b/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
index fd1ead8..0dfafe5 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
index 5da4ce2..8cc4491 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/Alpha version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h b/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
index 259f563..88de5c4 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/brk_call.h b/sysdeps/unix/sysv/linux/alpha/brk_call.h
index ec20208..49053ab 100644
--- a/sysdeps/unix/sysv/linux/alpha/brk_call.h
+++ b/sysdeps/unix/sysv/linux/alpha/brk_call.h
@@ -1,5 +1,5 @@
/* Invoke the brk system call. Alpha version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/clone.S b/sysdeps/unix/sysv/linux/alpha/clone.S
index 747a68d..727346f 100644
--- a/sysdeps/unix/sysv/linux/alpha/clone.S
+++ b/sysdeps/unix/sysv/linux/alpha/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/dl-auxv.h b/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
index e90c2cb..26e0460 100644
--- a/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
+++ b/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
@@ -1,5 +1,5 @@
/* Auxiliary vector processing for Linux/Alpha.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/errlist-compat-data.h b/sysdeps/unix/sysv/linux/alpha/errlist-compat-data.h
index 25028fd..a0e0b81 100644
--- a/sysdeps/unix/sysv/linux/alpha/errlist-compat-data.h
+++ b/sysdeps/unix/sysv/linux/alpha/errlist-compat-data.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compat symbol definitions. Alpha version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S b/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
index 96265ac..933a3d8 100644
--- a/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
+++ b/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/fstatfs.c b/sysdeps/unix/sysv/linux/alpha/fstatfs.c
index 147d491..e940ea0 100644
--- a/sysdeps/unix/sysv/linux/alpha/fstatfs.c
+++ b/sysdeps/unix/sysv/linux/alpha/fstatfs.c
@@ -1,5 +1,5 @@
/* Get filesystem statistics. Linux/alpha.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/fstatfs64.c b/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
index 7e08929..59d99b2 100644
--- a/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
+++ b/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
@@ -1,5 +1,5 @@
/* Get filesystem statistics. Linux/alpha.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/fxstat64.c b/sysdeps/unix/sysv/linux/alpha/fxstat64.c
index 89d84f3..bb52faa 100644
--- a/sysdeps/unix/sysv/linux/alpha/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/alpha/fxstat64.c
@@ -1,5 +1,5 @@
/* fxstat64 using old-style Unix stat system call.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/fxstatat64.c b/sysdeps/unix/sysv/linux/alpha/fxstatat64.c
index 2ee47a4..5594c4c 100644
--- a/sysdeps/unix/sysv/linux/alpha/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/alpha/fxstatat64.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix stat system call.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/getcontext.S b/sysdeps/unix/sysv/linux/alpha/getcontext.S
index 5c0be7d..a833269 100644
--- a/sysdeps/unix/sysv/linux/alpha/getcontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/getegid.S b/sysdeps/unix/sysv/linux/alpha/getegid.S
index 29370f1..885c1a5 100644
--- a/sysdeps/unix/sysv/linux/alpha/getegid.S
+++ b/sysdeps/unix/sysv/linux/alpha/getegid.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/geteuid.S b/sysdeps/unix/sysv/linux/alpha/geteuid.S
index 68af11a..b171943 100644
--- a/sysdeps/unix/sysv/linux/alpha/geteuid.S
+++ b/sysdeps/unix/sysv/linux/alpha/geteuid.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/gethostname.c b/sysdeps/unix/sysv/linux/alpha/gethostname.c
index 30da8f3..2aeb8c8 100644
--- a/sysdeps/unix/sysv/linux/alpha/gethostname.c
+++ b/sysdeps/unix/sysv/linux/alpha/gethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/getppid.S b/sysdeps/unix/sysv/linux/alpha/getppid.S
index c0405e6..e0e8b3f 100644
--- a/sysdeps/unix/sysv/linux/alpha/getppid.S
+++ b/sysdeps/unix/sysv/linux/alpha/getppid.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c b/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
index 898049e..bf32626 100644
--- a/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/alpha/getrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/gettimeofday.c b/sysdeps/unix/sysv/linux/alpha/gettimeofday.c
index 2cfd20f..27ffdc6 100644
--- a/sysdeps/unix/sysv/linux/alpha/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/alpha/gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday -- Get the current time of day. Linux/Alpha/tv64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/globfree.c b/sysdeps/unix/sysv/linux/alpha/globfree.c
index fcb89a4..fe2a7e1 100644
--- a/sysdeps/unix/sysv/linux/alpha/globfree.c
+++ b/sysdeps/unix/sysv/linux/alpha/globfree.c
@@ -1,5 +1,5 @@
/* Compat globfree. Linux/alpha version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
index e599d7a..43b80bd 100644
--- a/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
+++ b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
index d9a3a66..f5a7d9d 100644
--- a/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
+++ b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/ioperm.c b/sysdeps/unix/sysv/linux/alpha/ioperm.c
index b1b373b..2e193d9 100644
--- a/sysdeps/unix/sysv/linux/alpha/ioperm.c
+++ b/sysdeps/unix/sysv/linux/alpha/ioperm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/ipc_priv.h b/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
index 6ba8e81..70612b1 100644
--- a/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. Alpha version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
index e0233ea..83fdf91 100644
--- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,4 +54,15 @@
#undef __ASSUME_CLONE3
#define __ASSUME_CLONE3 0
+/* Alpha did not provide BOTHER, CIBAUD or the termios2 ioctls until
+ kernel 4.20. Even though struct __kernel_termios and struct
+ termios2 are the same on Alpha, Calling the legacy TCSETS* ioctls
+ with BOTHER set triggers a bug in these old kernels, so only use
+ the legacy TCSETS* ioctl numbers if neither BOTHER nor split speed is
+ needed; that way the code will fail gracefully. */
+#if __LINUX_KERNEL_VERSION < 0x041400
+# undef __ASSUME_TERMIOS2
+# define __ASSUME_TERMIOS2 0
+#endif
+
#endif /* _KERNEL_FEATURES_H */
diff --git a/sysdeps/unix/sysv/linux/alpha/kernel_termios.h b/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
deleted file mode 100644
index bdc0377..0000000
--- a/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _KERNEL_TERMIOS_H
-#define _KERNEL_TERMIOS_H 1
-
-/* The following corresponds to the values from the Linux 2.1.20 kernel. */
-
-/* We need the definition of tcflag_t, cc_t, and speed_t. */
-#include <termios.h>
-
-#define __KERNEL_NCCS 19
-
-struct __kernel_termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_cc[__KERNEL_NCCS]; /* control characters */
- cc_t c_line; /* line discipline */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
- };
-
-#define _HAVE_C_ISPEED 1
-#define _HAVE_C_OSPEED 1
-
-#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 34c187b..4b5736a 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -3095,6 +3095,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 4b7f756..4b383b1 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1348,3 +1348,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/alpha/librt-compat.c b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
index 020cad7..4dd6a44 100644
--- a/sysdeps/unix/sysv/linux/alpha/librt-compat.c
+++ b/sysdeps/unix/sysv/linux/alpha/librt-compat.c
@@ -1,5 +1,5 @@
/* Placeholder definitions to pull in removed symbol versions. alpha version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/lxstat64.c b/sysdeps/unix/sysv/linux/alpha/lxstat64.c
index 6daade4..2d5b9a9 100644
--- a/sysdeps/unix/sysv/linux/alpha/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/alpha/lxstat64.c
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix stat system call.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/makecontext.S b/sysdeps/unix/sysv/linux/alpha/makecontext.S
index 1fefc37..72e1dbb 100644
--- a/sysdeps/unix/sysv/linux/alpha/makecontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/makecontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/oldglob.c b/sysdeps/unix/sysv/linux/alpha/oldglob.c
index f2dce70..f0e6197 100644
--- a/sysdeps/unix/sysv/linux/alpha/oldglob.c
+++ b/sysdeps/unix/sysv/linux/alpha/oldglob.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c b/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c
index acc4e6a..8f53b7c 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_adjtime.c
@@ -1,5 +1,5 @@
/* adjtime -- adjust the system clock. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c b/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c
index 000b044..f7140b5 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_getitimer.c
@@ -1,5 +1,5 @@
/* getitimer -- Get the state of an interval timer. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c b/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c
index facfacc..d19658b 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_getrusage.c
@@ -1,5 +1,5 @@
/* utimes -- change file timestamps. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c b/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c
index 5c5409b..21f6137 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday -- Get the current time of day. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c b/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c
index 3130353..faeb944 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_setitimer.c
@@ -1,5 +1,5 @@
/* getitimer -- Get the state of an interval timer. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c b/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c
index 572f1b5..b5634f7 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c
@@ -1,5 +1,5 @@
/* settimeofday -- Set the current time of day. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_utimes.c b/sysdeps/unix/sysv/linux/alpha/osf_utimes.c
index 055da7b..096ac1e 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_utimes.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_utimes.c
@@ -1,5 +1,5 @@
/* utimes -- change file timestamps. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/osf_wait4.c b/sysdeps/unix/sysv/linux/alpha/osf_wait4.c
index c290c38..5ab6212 100644
--- a/sysdeps/unix/sysv/linux/alpha/osf_wait4.c
+++ b/sysdeps/unix/sysv/linux/alpha/osf_wait4.c
@@ -1,5 +1,5 @@
/* wait4 -- wait for process to change state. Linux/Alpha/tv32 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/pointer_guard.h b/sysdeps/unix/sysv/linux/alpha/pointer_guard.h
index 4b7ca8d..3bbd924 100644
--- a/sysdeps/unix/sysv/linux/alpha/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/alpha/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer guard implementation. Alpha version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
index a17fb2e..d75550c 100644
--- a/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+++ b/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/select.c b/sysdeps/unix/sysv/linux/alpha/select.c
index 72c82da..b00d26e 100644
--- a/sysdeps/unix/sysv/linux/alpha/select.c
+++ b/sysdeps/unix/sysv/linux/alpha/select.c
@@ -1,5 +1,5 @@
/* Linux/alpha select implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/setcontext.S b/sysdeps/unix/sysv/linux/alpha/setcontext.S
index 2c1bd7e..5dc16c6 100644
--- a/sysdeps/unix/sysv/linux/alpha/setcontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/setfpucw.c b/sysdeps/unix/sysv/linux/alpha/setfpucw.c
index 19433aa..7b0b596 100644
--- a/sysdeps/unix/sysv/linux/alpha/setfpucw.c
+++ b/sysdeps/unix/sysv/linux/alpha/setfpucw.c
@@ -1,5 +1,5 @@
/* Set FP exception mask and rounding mode.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c b/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
index 67947c8..fd6c50c 100644
--- a/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
+++ b/sysdeps/unix/sysv/linux/alpha/setrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/settimeofday.c b/sysdeps/unix/sysv/linux/alpha/settimeofday.c
index 3a19960..02005a8 100644
--- a/sysdeps/unix/sysv/linux/alpha/settimeofday.c
+++ b/sysdeps/unix/sysv/linux/alpha/settimeofday.c
@@ -1,5 +1,5 @@
/* settimeofday -- Set the current time of day. Linux/Alpha/tv64 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h b/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
index 174bcc7..9f18fb1 100644
--- a/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sizes.h b/sysdeps/unix/sysv/linux/alpha/sizes.h
index 4e3df21..0493a95 100644
--- a/sysdeps/unix/sysv/linux/alpha/sizes.h
+++ b/sysdeps/unix/sysv/linux/alpha/sizes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/statfs.c b/sysdeps/unix/sysv/linux/alpha/statfs.c
index e11a798..eda0bce 100644
--- a/sysdeps/unix/sysv/linux/alpha/statfs.c
+++ b/sysdeps/unix/sysv/linux/alpha/statfs.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides. Linux/alpha.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/statfs64.c b/sysdeps/unix/sysv/linux/alpha/statfs64.c
index 319772e..1f5fa4e 100644
--- a/sysdeps/unix/sysv/linux/alpha/statfs64.c
+++ b/sysdeps/unix/sysv/linux/alpha/statfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides. Linux/alpha.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/swapcontext.S b/sysdeps/unix/sysv/linux/alpha/swapcontext.S
index 5baceee..42c2dc2 100644
--- a/sysdeps/unix/sysv/linux/alpha/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/alpha/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/io.h b/sysdeps/unix/sysv/linux/alpha/sys/io.h
index dc8a0ac..8eb1bc0 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/io.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/io.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
index 5308cfa..ac3d183 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/user.h b/sysdeps/unix/sysv/linux/alpha/sys/user.h
index ca52b67..e14ab13 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/user.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/syscall.S b/sysdeps/unix/sysv/linux/alpha/syscall.S
index 0e8528e..585e29c 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscall.S
+++ b/sysdeps/unix/sysv/linux/alpha/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/syscall_cancel.S b/sysdeps/unix/sysv/linux/alpha/syscall_cancel.S
new file mode 100644
index 0000000..fad1a29
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/syscall_cancel.S
@@ -0,0 +1,80 @@
+/* Cancellable syscall wrapper. Linux/alpha version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *ch,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+ .set noreorder
+ .set noat
+ .set nomacro
+ENTRY (__syscall_cancel_arch)
+ .frame sp, 16, ra, 0
+ .mask 0x4000000,-16
+ cfi_startproc
+ ldah gp, 0(t12)
+ lda gp, 0(gp)
+ lda sp, -16(sp)
+ cfi_def_cfa_offset (16)
+ mov a1, v0
+ stq ra, 0(sp)
+ cfi_offset (26, -16)
+ .prologue 1
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ ldl t0, 0(a0)
+ addl zero, t0, t0
+ /* if (*ch & CANCELED_BITMASK) */
+ and t0, TCB_CANCELED_BITMASK, t0
+ bne t0, 1f
+ mov a2, a0
+ mov a3, a1
+ mov a4, a2
+ ldq a4, 16(sp)
+ mov a5, a3
+ ldq a5, 24(sp)
+ .set macro
+ callsys
+ .set nomacro
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ subq zero, v0, t0
+ ldq ra, 0(sp)
+ cmovne a3, t0, v0
+ lda sp, 16(sp)
+ cfi_remember_state
+ cfi_restore (26)
+ cfi_def_cfa_offset (0)
+ ret zero, (ra), 1
+ .align 4
+1:
+ cfi_restore_state
+ ldq t12, __syscall_do_cancel(gp) !literal!2
+ jsr ra, (t12), __syscall_do_cancel !lituse_jsr!2
+ cfi_endproc
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/alpha/sysconf.c b/sysdeps/unix/sysv/linux/alpha/sysconf.c
index 1d14e82..916533a 100644
--- a/sysdeps/unix/sysv/linux/alpha/sysconf.c
+++ b/sysdeps/unix/sysv/linux/alpha/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/sysdep.h b/sysdeps/unix/sysv/linux/alpha/sysdep.h
index 3c880e0..1f0e249 100644
--- a/sysdeps/unix/sysv/linux/alpha/sysdep.h
+++ b/sysdeps/unix/sysv/linux/alpha/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/termios_arch.h b/sysdeps/unix/sysv/linux/alpha/termios_arch.h
new file mode 100644
index 0000000..20025f2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/termios_arch.h
@@ -0,0 +1,26 @@
+/* Architectural parameters for Linux termios - Alpha/PowerPC version
+
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef TERMIOS_INTERNALS_H
+# error "<termios_arch.h> should only be included from <termios_internals.h>"
+#endif
+
+#define _TERMIOS2_NCCS 19
+#define _HAVE_TERMIOS2_C_CC_BEFORE_C_LINE 1
+#define _HAVE_STRUCT_OLD_TERMIOS 0
diff --git a/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h
index b9dccd7..ebbccc1 100644
--- a/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/alpha/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. alpha version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/vfork.S b/sysdeps/unix/sysv/linux/alpha/vfork.S
index a66266a..d290423 100644
--- a/sysdeps/unix/sysv/linux/alpha/vfork.S
+++ b/sysdeps/unix/sysv/linux/alpha/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/wait4.c b/sysdeps/unix/sysv/linux/alpha/wait4.c
index 8fae2c5..a07cc97 100644
--- a/sysdeps/unix/sysv/linux/alpha/wait4.c
+++ b/sysdeps/unix/sysv/linux/alpha/wait4.c
@@ -1,5 +1,5 @@
/* wait4 -- wait for process to change state. Linux/Alpha version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/xstat64.c b/sysdeps/unix/sysv/linux/alpha/xstat64.c
index b998384..36e8adb 100644
--- a/sysdeps/unix/sysv/linux/alpha/xstat64.c
+++ b/sysdeps/unix/sysv/linux/alpha/xstat64.c
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/xstatconv.c b/sysdeps/unix/sysv/linux/alpha/xstatconv.c
index 444ab67..405f1f6 100644
--- a/sysdeps/unix/sysv/linux/alpha/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/alpha/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alpha/xstatconv.h b/sysdeps/unix/sysv/linux/alpha/xstatconv.h
index d54b8f2..3ef0189 100644
--- a/sysdeps/unix/sysv/linux/alpha/xstatconv.h
+++ b/sysdeps/unix/sysv/linux/alpha/xstatconv.h
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/alphasort64.c b/sysdeps/unix/sysv/linux/alphasort64.c
index 672268c..8f2812d 100644
--- a/sysdeps/unix/sysv/linux/alphasort64.c
+++ b/sysdeps/unix/sysv/linux/alphasort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/Makefile b/sysdeps/unix/sysv/linux/arc/Makefile
index eca9a9f..dd3da52 100644
--- a/sysdeps/unix/sysv/linux/arc/Makefile
+++ b/sysdeps/unix/sysv/linux/arc/Makefile
@@ -11,12 +11,3 @@ ifeq ($(subdir),misc)
sysdep_headers += sys/cachectl.h
sysdep_routines += cacheflush
endif
-
-abi-variants := arcle arcbe
-
-ifeq (,$(filter $(default-abi),$(abi-variants)))
-$(error Unknown ABI $(default-abi), must be one of $(abi-variants))
-endif
-
-abi-arcle-condition := !defined __BIG_ENDIAN__
-abi-arcbe-condition := defined __BIG_ENDIAN__
diff --git a/sysdeps/unix/sysv/linux/arc/arch-syscall.h b/sysdeps/unix/sysv/linux/arc/arch-syscall.h
index ea581b0..2534f0f 100644
--- a/sysdeps/unix/sysv/linux/arc/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/arc/arch-syscall.h
@@ -98,6 +98,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -128,6 +129,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_llseek 62
#define __NR_lookup_dcookie 18
@@ -175,6 +177,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -214,6 +217,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat 38
#define __NR_renameat2 276
#define __NR_request_key 218
@@ -272,6 +276,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/arc/bits/procfs.h b/sysdeps/unix/sysv/linux/arc/bits/procfs.h
index e5a6c37..fe98451 100644
--- a/sysdeps/unix/sysv/linux/arc/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/arc/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/clone.S b/sysdeps/unix/sysv/linux/arc/clone.S
index a2b520a..cfdae35 100644
--- a/sysdeps/unix/sysv/linux/arc/clone.S
+++ b/sysdeps/unix/sysv/linux/arc/clone.S
@@ -1,5 +1,5 @@
/* clone() implementation for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/clone3.S b/sysdeps/unix/sysv/linux/arc/clone3.S
index 38a2706..0dc2f9b 100644
--- a/sysdeps/unix/sysv/linux/arc/clone3.S
+++ b/sysdeps/unix/sysv/linux/arc/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/arc version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h
index f388938..e75ef3f 100644
--- a/sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h
+++ b/sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h
@@ -1,5 +1,5 @@
/* Regularize <asm/unistd.h> definitions. ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/arc/getcontext.S b/sysdeps/unix/sysv/linux/arc/getcontext.S
index 680e84a..14a60ff 100644
--- a/sysdeps/unix/sysv/linux/arc/getcontext.S
+++ b/sysdeps/unix/sysv/linux/arc/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/kernel-features.h b/sysdeps/unix/sysv/linux/arc/kernel-features.h
index 8ae54ca..e9e1a3d 100644
--- a/sysdeps/unix/sysv/linux/arc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/arc/kernel-features.h
@@ -1,7 +1,7 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/libc.abilist
index 916c18e..b8a4478 100644
--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libc.abilist
@@ -2509,3 +2509,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/arc/libc_sigaction.c b/sysdeps/unix/sysv/linux/arc/libc_sigaction.c
index 938c7bf..6c20481 100644
--- a/sysdeps/unix/sysv/linux/arc/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/arc/libc_sigaction.c
@@ -1,5 +1,5 @@
/* ARC specific sigaction.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/libm.abilist
index f6eb7a5..c865ec8 100644
--- a/sysdeps/unix/sysv/linux/arc/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libm.abilist
@@ -787,3 +787,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/arc/makecontext.c b/sysdeps/unix/sysv/linux/arc/makecontext.c
index 2ae8c12..a6cabdb 100644
--- a/sysdeps/unix/sysv/linux/arc/makecontext.c
+++ b/sysdeps/unix/sysv/linux/arc/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/mmap_internal.h b/sysdeps/unix/sysv/linux/arc/mmap_internal.h
index 8ddc699..8640014 100644
--- a/sysdeps/unix/sysv/linux/arc/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/arc/mmap_internal.h
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux/ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/setcontext.S b/sysdeps/unix/sysv/linux/arc/setcontext.S
index ce783f7..45d6bb3 100644
--- a/sysdeps/unix/sysv/linux/arc/setcontext.S
+++ b/sysdeps/unix/sysv/linux/arc/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/shlib-versions b/sysdeps/unix/sysv/linux/arc/shlib-versions
index 343c0a0..62c1bd5 100644
--- a/sysdeps/unix/sysv/linux/arc/shlib-versions
+++ b/sysdeps/unix/sysv/linux/arc/shlib-versions
@@ -1,7 +1,3 @@
DEFAULT GLIBC_2.32
-%ifdef HAVE_ARC_BE
-ld=ld-linux-arceb.so.2
-%else
ld=ld-linux-arc.so.2
-%endif
diff --git a/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h b/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h
index fd3a4be..b7a892a 100644
--- a/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/arc/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* ARC definitions for signal handling calling conventions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/sigrestorer.S b/sysdeps/unix/sysv/linux/arc/sigrestorer.S
index 154241e..d06234d 100644
--- a/sysdeps/unix/sysv/linux/arc/sigrestorer.S
+++ b/sysdeps/unix/sysv/linux/arc/sigrestorer.S
@@ -1,5 +1,5 @@
/* Default sigreturn stub for ARC Linux.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/swapcontext.S b/sysdeps/unix/sysv/linux/arc/swapcontext.S
index abaec4a..31816e4 100644
--- a/sysdeps/unix/sysv/linux/arc/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/arc/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/sys/cachectl.h b/sysdeps/unix/sysv/linux/arc/sys/cachectl.h
index 9c17237..3bce65a 100644
--- a/sysdeps/unix/sysv/linux/arc/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/arc/sys/cachectl.h
@@ -1,5 +1,5 @@
/* cacheflush - flush contents of instruction and/or data cache.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/sys/ucontext.h b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
index 5b44ebf..5fa0015 100644
--- a/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
@@ -1,5 +1,5 @@
/* struct ucontext definition, ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/sys/user.h b/sysdeps/unix/sysv/linux/arc/sys/user.h
index bf9a589..7caa0c6 100644
--- a/sysdeps/unix/sysv/linux/arc/sys/user.h
+++ b/sysdeps/unix/sysv/linux/arc/sys/user.h
@@ -1,5 +1,5 @@
/* ptrace register data format definitions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/syscall.S b/sysdeps/unix/sysv/linux/arc/syscall.S
index 1f96853..71177e1 100644
--- a/sysdeps/unix/sysv/linux/arc/syscall.S
+++ b/sysdeps/unix/sysv/linux/arc/syscall.S
@@ -1,5 +1,5 @@
/* syscall - indirect system call.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/syscall_cancel.S b/sysdeps/unix/sysv/linux/arc/syscall_cancel.S
new file mode 100644
index 0000000..ccffef3f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arc/syscall_cancel.S
@@ -0,0 +1,56 @@
+/* Cancellable syscall wrapper. Linux/ARC version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+ENTRY (__syscall_cancel_arch)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ ld_s r12,[r0]
+ bbit1 r12, TCB_CANCELED_BITMASK, 1f
+ mov_s r8, r1
+ mov_s r0, r2
+ mov_s r1, r3
+ mov_s r2, r4
+ mov_s r3, r5
+ mov_s r4, r6
+ mov_s r5, r7
+ trap_s 0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ j_s [blink]
+
+ .align 4
+1: push_s blink
+ cfi_def_cfa_offset (4)
+ cfi_offset (31, -4)
+ bl @__syscall_do_cancel
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/arc/sysdep.c b/sysdeps/unix/sysv/linux/arc/sysdep.c
index ede5a16..ed5025c 100644
--- a/sysdeps/unix/sysv/linux/arc/sysdep.c
+++ b/sysdeps/unix/sysv/linux/arc/sysdep.c
@@ -1,5 +1,5 @@
/* ARC wrapper for setting errno.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/sysdep.h b/sysdeps/unix/sysv/linux/arc/sysdep.h
index 60d5ef8..06e3140 100644
--- a/sysdeps/unix/sysv/linux/arc/sysdep.h
+++ b/sysdeps/unix/sysv/linux/arc/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for ARC.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/ucontext-macros.h b/sysdeps/unix/sysv/linux/arc/ucontext-macros.h
index ab20d85..35caf73 100644
--- a/sysdeps/unix/sysv/linux/arc/ucontext-macros.h
+++ b/sysdeps/unix/sysv/linux/arc/ucontext-macros.h
@@ -1,5 +1,5 @@
/* Macros for ucontext routines, ARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arc/vfork.S b/sysdeps/unix/sysv/linux/arc/vfork.S
index 63eb42b..33498cd 100644
--- a/sysdeps/unix/sysv/linux/arc/vfork.S
+++ b/sysdeps/unix/sysv/linux/arc/vfork.S
@@ -1,5 +1,5 @@
/* vfork for ARC Linux.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arch-fd_to_filename.h b/sysdeps/unix/sysv/linux/arch-fd_to_filename.h
index 8e70b2b..dea487d 100644
--- a/sysdeps/unix/sysv/linux/arch-fd_to_filename.h
+++ b/sysdeps/unix/sysv/linux/arch-fd_to_filename.h
@@ -1,5 +1,5 @@
/* Query filename corresponding to an open FD. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arch-fork.h b/sysdeps/unix/sysv/linux/arch-fork.h
index 650f3ec..1886630 100644
--- a/sysdeps/unix/sysv/linux/arch-fork.h
+++ b/sysdeps/unix/sysv/linux/arch-fork.h
@@ -1,5 +1,5 @@
/* arch_fork definition for Linux fork implementation.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile
index a73c897..e73ce4f 100644
--- a/sysdeps/unix/sysv/linux/arm/Makefile
+++ b/sysdeps/unix/sysv/linux/arm/Makefile
@@ -1,5 +1,8 @@
ifeq ($(subdir),elf)
sysdep-rtld-routines += aeabi_read_tp libc-do-syscall
+# The test uses INTERNAL_SYSCALL_CALL. In thumb mode, this uses
+# an undefined reference to __libc_do_syscall.
+CFLAGS-tst-nolink-libc.c += -marm
endif
ifeq ($(subdir),misc)
diff --git a/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S b/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
index 080c6ae..0af9b2e 100644
--- a/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
index fd31e16..6b1806f 100644
--- a/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
+++ b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/arch-syscall.h b/sysdeps/unix/sysv/linux/arm/arch-syscall.h
index 2809f52..8e585a4 100644
--- a/sysdeps/unix/sysv/linux/arm/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/arm/arch-syscall.h
@@ -132,6 +132,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 229
+#define __NR_getxattrat 464
#define __NR_init_module 128
#define __NR_inotify_add_watch 317
#define __NR_inotify_init 316
@@ -166,6 +167,7 @@
#define __NR_listen 284
#define __NR_listmount 458
#define __NR_listxattr 232
+#define __NR_listxattrat 465
#define __NR_llistxattr 233
#define __NR_lookup_dcookie 249
#define __NR_lremovexattr 236
@@ -221,6 +223,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 371
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 322
#define __NR_openat2 437
#define __NR_pause 29
@@ -271,6 +274,7 @@
#define __NR_recvmsg 297
#define __NR_remap_file_pages 253
#define __NR_removexattr 235
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 329
#define __NR_renameat2 382
@@ -346,6 +350,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 226
+#define __NR_setxattrat 463
#define __NR_shmat 305
#define __NR_shmctl 308
#define __NR_shmdt 306
diff --git a/sysdeps/unix/sysv/linux/arm/arm-features.h b/sysdeps/unix/sysv/linux/arm/arm-features.h
index ce69bd1..14a2ca5 100644
--- a/sysdeps/unix/sysv/linux/arm/arm-features.h
+++ b/sysdeps/unix/sysv/linux/arm/arm-features.h
@@ -1,5 +1,5 @@
/* Macros to test for CPU features on ARM. Linux version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/atomic-machine.h b/sysdeps/unix/sysv/linux/arm/atomic-machine.h
index 936fd71..1734bcd 100644
--- a/sysdeps/unix/sysv/linux/arm/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/arm/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations. ARM/Linux version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index ea95de2..959e446 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -2801,6 +2801,25 @@ GLIBC_2.4 xdrstdio_create F
GLIBC_2.4 xencrypt F
GLIBC_2.4 xprt_register F
GLIBC_2.4 xprt_unregister F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 78540e9..63bad09 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/arm/bits/fcntl.h b/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
index 13ae5e8..13d94ba 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/bits/hwcap.h b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
index b104de4..a5106cf 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP. ARM Linux version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -49,3 +49,11 @@
#define HWCAP_ASIMDFHM 33554432
#define HWCAP_ASIMDBF16 67108864
#define HWCAP_I8MM 134217728
+
+#define HWCAP2_AES 1
+#define HWCAP2_PMULL 2
+#define HWCAP2_SHA1 4
+#define HWCAP2_SHA2 8
+#define HWCAP2_CRC32 16
+#define HWCAP2_SB 32
+#define HWCAP2_SSBS 64
diff --git a/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h b/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h
index fdecf8f..bc2777d 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. Arm version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/arm/bits/procfs.h b/sysdeps/unix/sysv/linux/arm/bits/procfs.h
index 52edf75..8427b00 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. Arm version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/bits/rseq.h b/sysdeps/unix/sysv/linux/arm/bits/rseq.h
index 5126278..4a92a19 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux arm architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/arm/bits/shmlba.h b/sysdeps/unix/sysv/linux/arm/bits/shmlba.h
index c348e97..bdb3637 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. ARM version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h b/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h
index 89534fe..9b37fc9 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat. Linux/arm version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/bits/timesize.h b/sysdeps/unix/sysv/linux/arm/bits/timesize.h
index cbcab7c..52ed28a 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/ARM.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/bits/typesizes.h b/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
index 122813d..e4c7ae1 100644
--- a/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/arm/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. ARM version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/clone.S b/sysdeps/unix/sysv/linux/arm/clone.S
index 115c532..c798123 100644
--- a/sysdeps/unix/sysv/linux/arm/clone.S
+++ b/sysdeps/unix/sysv/linux/arm/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/clone3.S b/sysdeps/unix/sysv/linux/arm/clone3.S
index 094efc2..2a03c18 100644
--- a/sysdeps/unix/sysv/linux/arm/clone3.S
+++ b/sysdeps/unix/sysv/linux/arm/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/arm version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/arm/dl-cache.h b/sysdeps/unix/sysv/linux/arm/dl-cache.h
index b157f3a..94d81e2 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/arm/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/dl-machine.h b/sysdeps/unix/sysv/linux/arm/dl-machine.h
index b830ee7..bc81862 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-machine.h
+++ b/sysdeps/unix/sysv/linux/arm/dl-machine.h
@@ -1,5 +1,5 @@
/* Machine-dependent ELF dynamic relocation inline functions. ARM/Linux version
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.c b/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
deleted file mode 100644
index ad18a8c..0000000
--- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Data for Linux/ARM version of processor capability information.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-/* This information must be kept in sync with the _DL_HWCAP_COUNT and
- _DL_PLATFORM_COUNT definitions in procinfo.h.
-
- If anything should be added here check whether the size of each string
- is still ok with the given array size.
-
- All the #ifdefs in the definitions are quite irritating but
- necessary if we want to avoid duplicating the information. There
- are three different modes:
-
- - PROCINFO_DECL is defined. This means we are only interested in
- declarations.
-
- - PROCINFO_DECL is not defined:
-
- + if SHARED is defined the file is included in an array
- initializer. The .element = { ... } syntax is needed.
-
- + if SHARED is not defined a normal array initialization is
- needed.
- */
-
-#ifndef PROCINFO_CLASS
-#define PROCINFO_CLASS
-#endif
-
-#if !defined PROCINFO_DECL && defined SHARED
- ._dl_arm_cap_flags
-#else
-PROCINFO_CLASS const char _dl_arm_cap_flags[35][10]
-#endif
-#ifndef PROCINFO_DECL
-= {
- "swp", "half", "thumb", "26bit", "fastmult", "fpa", "vfp", "edsp",
- "java", "iwmmxt", "crunch", "thumbee", "neon", "vfpv3", "vfpv3d16",
- "tls", "vfpv4", "idiva", "idivt", "vfpd32", "lpae", "evtstrm",
- "fphp", "asimdhp", "asimddp", "asimdfhm", "asimdbf16", "i8mm",
- "aes", "pmull", "sha1", "sha2", "crc32", "sb", "ssbs",
- }
-#endif
-#if !defined SHARED || defined PROCINFO_DECL
-;
-#else
-,
-#endif
-
-#undef PROCINFO_DECL
-#undef PROCINFO_CLASS
diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
deleted file mode 100644
index 7d26216..0000000
--- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Linux/ARM version of processor capability information handling macros.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
-
-#include <ldsodefs.h>
-#include <sysdep.h>
-
-#define _DL_HWCAP_COUNT 27
-
-/* Low 28 bits are allocated in HWCAP. */
-#define _DL_HWCAP_LAST 27
-
-/* Low 7 bits are allocated in HWCAP2. */
-#define _DL_HWCAP2_LAST 6
-
-
-static inline const char *
-__attribute__ ((unused))
-_dl_hwcap_string (int idx)
-{
- return GLRO(dl_arm_cap_flags)[idx];
-};
-
-static inline int
-__attribute__ ((unused))
-_dl_procinfo (unsigned int type, unsigned long int word)
-{
- switch(type)
- {
- case AT_HWCAP:
- _dl_printf ("AT_HWCAP: ");
-
- for (int i = 0; i <= _DL_HWCAP_LAST; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", _dl_hwcap_string (i));
- break;
- case AT_HWCAP2:
- {
- unsigned int offset = _DL_HWCAP_LAST + 1;
-
- _dl_printf ("AT_HWCAP2: ");
-
- for (int i = 0; i <= _DL_HWCAP2_LAST; ++i)
- if (word & (1 << i))
- _dl_printf (" %s", _dl_hwcap_string (offset + i));
- break;
- }
- default:
- /* Fallback to generic output mechanism. */
- return -1;
- }
- _dl_printf ("\n");
- return 0;
-}
-
-#endif /* dl-procinfo.h */
diff --git a/sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h
index 9ad2c65..eacc7f7 100644
--- a/sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h
+++ b/sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h
@@ -1,5 +1,5 @@
/* Regularize <asm/unistd.h> definitions. Arm version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/arm/getcontext.S b/sysdeps/unix/sysv/linux/arm/getcontext.S
index 4dacd93..821e553 100644
--- a/sysdeps/unix/sysv/linux/arm/getcontext.S
+++ b/sysdeps/unix/sysv/linux/arm/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/ioperm.c b/sysdeps/unix/sysv/linux/arm/ioperm.c
index 987af91..a92365f 100644
--- a/sysdeps/unix/sysv/linux/arm/ioperm.c
+++ b/sysdeps/unix/sysv/linux/arm/ioperm.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h
index f17c2f9..10caae8 100644
--- a/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/ldsodefs.h b/sysdeps/unix/sysv/linux/arm/ldsodefs.h
index 67c1e81..2d8c0c4 100644
--- a/sysdeps/unix/sysv/linux/arm/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/arm/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 1cdbc98..a930d1a 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -2798,6 +2798,25 @@ GLIBC_2.4 xdrstdio_create F
GLIBC_2.4 xencrypt F
GLIBC_2.4 xprt_register F
GLIBC_2.4 xprt_unregister F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 78540e9..63bad09 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
index 1eaff90..033a56b 100644
--- a/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
+++ b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/libc_sigaction.c b/sysdeps/unix/sysv/linux/arm/libc_sigaction.c
index 9700231..8cd5c98 100644
--- a/sysdeps/unix/sysv/linux/arm/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/arm/libc_sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/makecontext.c b/sysdeps/unix/sysv/linux/arm/makecontext.c
index 7065c59..68feaec 100644
--- a/sysdeps/unix/sysv/linux/arm/makecontext.c
+++ b/sysdeps/unix/sysv/linux/arm/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/profil-counter.h b/sysdeps/unix/sysv/linux/arm/profil-counter.h
index ee11a62..b4cbc74 100644
--- a/sysdeps/unix/sysv/linux/arm/profil-counter.h
+++ b/sysdeps/unix/sysv/linux/arm/profil-counter.h
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Linux/ARM version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/readelflib.c b/sysdeps/unix/sysv/linux/arm/readelflib.c
index 28a1e63..edf6984 100644
--- a/sysdeps/unix/sysv/linux/arm/readelflib.c
+++ b/sysdeps/unix/sysv/linux/arm/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S
index 38b9797..4c69a06 100644
--- a/sysdeps/unix/sysv/linux/arm/setcontext.S
+++ b/sysdeps/unix/sysv/linux/arm/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
index 39419bb..7b316d5 100644
--- a/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sigrestorer.S b/sysdeps/unix/sysv/linux/arm/sigrestorer.S
index 6eacc3f..d1d9fe5 100644
--- a/sysdeps/unix/sysv/linux/arm/sigrestorer.S
+++ b/sysdeps/unix/sysv/linux/arm/sigrestorer.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/swapcontext.S b/sysdeps/unix/sysv/linux/arm/swapcontext.S
index 407db3c..dfe38d8 100644
--- a/sysdeps/unix/sysv/linux/arm/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/arm/swapcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sys/elf.h b/sysdeps/unix/sysv/linux/arm/sys/elf.h
index 82ec0fe..9acb39e 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
index f74d7cb..476c0ed 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/ARM version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
index 748c864..8201010 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sys/user.h b/sysdeps/unix/sysv/linux/arm/sys/user.h
index 31f37f3..3376f34 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/user.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/syscall.S b/sysdeps/unix/sysv/linux/arm/syscall.S
index 799c451..f5a47de 100644
--- a/sysdeps/unix/sysv/linux/arm/syscall.S
+++ b/sysdeps/unix/sysv/linux/arm/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/syscall_cancel.S b/sysdeps/unix/sysv/linux/arm/syscall_cancel.S
new file mode 100644
index 0000000..00167fc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/arm/syscall_cancel.S
@@ -0,0 +1,78 @@
+/* Cancellable syscall wrapper. Linux/arm version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int [r0] __syscall_cancel_arch (int *cancelhandling [r0],
+ long int nr [r1],
+ long int arg1 [r2],
+ long int arg2 [r3],
+ long int arg3 [SP],
+ long int arg4 [SP+4],
+ long int arg5 [SP+8],
+ long int arg6 [SP+12]) */
+
+ .syntax unified
+
+ENTRY (__syscall_cancel_arch)
+ .fnstart
+ mov ip, sp
+ stmfd sp!, {r4, r5, r6, r7, lr}
+ .save {r4, r5, r6, r7, lr}
+
+ cfi_adjust_cfa_offset (20)
+ cfi_rel_offset (r4, 0)
+ cfi_rel_offset (r5, 4)
+ cfi_rel_offset (r6, 8)
+ cfi_rel_offset (r7, 12)
+ cfi_rel_offset (lr, 16)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ ldr r0, [r0]
+ tst r0, #TCB_CANCELED_BITMASK
+ bne 1f
+
+ /* Issue a 6 argument syscall, the nr [r1] being the syscall
+ number. */
+ mov r7, r1
+ mov r0, r2
+ mov r1, r3
+ ldmfd ip, {r2, r3, r4, r5, r6}
+ svc 0x0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ ldmfd sp!, {r4, r5, r6, r7, lr}
+ cfi_adjust_cfa_offset (-20)
+ cfi_restore (r4)
+ cfi_restore (r5)
+ cfi_restore (r6)
+ cfi_restore (r7)
+ cfi_restore (lr)
+ BX (lr)
+
+1:
+ ldmfd sp!, {r4, r5, r6, r7, lr}
+ b __syscall_do_cancel
+ .fnend
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.S b/sysdeps/unix/sysv/linux/arm/sysdep.S
index bfea480..0467a5e 100644
--- a/sysdeps/unix/sysv/linux/arm/sysdep.S
+++ b/sysdeps/unix/sysv/linux/arm/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.h b/sysdeps/unix/sysv/linux/arm/sysdep.h
index 7110e12..6a47706 100644
--- a/sysdeps/unix/sysv/linux/arm/sysdep.h
+++ b/sysdeps/unix/sysv/linux/arm/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/tls.h b/sysdeps/unix/sysv/linux/arm/tls.h
index 258307a..ea2fb7f 100644
--- a/sysdeps/unix/sysv/linux/arm/tls.h
+++ b/sysdeps/unix/sysv/linux/arm/tls.h
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. ARM/Linux version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/arm/vfork.S b/sysdeps/unix/sysv/linux/arm/vfork.S
index 63ca79d..35e10fb 100644
--- a/sysdeps/unix/sysv/linux/arm/vfork.S
+++ b/sysdeps/unix/sysv/linux/arm/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bind.c b/sysdeps/unix/sysv/linux/bind.c
index 630b452..20b17ea 100644
--- a/sysdeps/unix/sysv/linux/bind.c
+++ b/sysdeps/unix/sysv/linux/bind.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/dirent.h b/sysdeps/unix/sysv/linux/bits/dirent.h
index 8bf38f8..cd5e93c 100644
--- a/sysdeps/unix/sysv/linux/bits/dirent.h
+++ b/sysdeps/unix/sysv/linux/bits/dirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/dirent_ext.h b/sysdeps/unix/sysv/linux/bits/dirent_ext.h
index c0a9fc2..81c0563 100644
--- a/sysdeps/unix/sysv/linux/bits/dirent_ext.h
+++ b/sysdeps/unix/sysv/linux/bits/dirent_ext.h
@@ -1,5 +1,5 @@
/* System-specific extensions of <dirent.h>. Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/epoll.h b/sysdeps/unix/sysv/linux/bits/epoll.h
index 7a9e6f0..e417cbe 100644
--- a/sysdeps/unix/sysv/linux/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/errno.h b/sysdeps/unix/sysv/linux/bits/errno.h
index 1151786..9564034 100644
--- a/sysdeps/unix/sysv/linux/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux specific version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/eventfd.h b/sysdeps/unix/sysv/linux/bits/eventfd.h
index cdaf3a3..97a000a 100644
--- a/sysdeps/unix/sysv/linux/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
index 61c100d..f425a4b 100644
--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -201,6 +201,7 @@
# define F_GETLEASE 1025 /* Enquire what lease is active. */
# define F_NOTIFY 1026 /* Request notifications on a directory. */
# define F_DUPFD_QUERY 1027 /* Compare two file descriptors for sameness. */
+# define F_CREATED_QUERY 1028 /* Was the file just created? */
# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */
# define F_GETPIPE_SZ 1032 /* Set pipe page size array. */
# define F_ADD_SEALS 1033 /* Add seals to file. */
@@ -378,6 +379,8 @@ struct file_handle
identity and may not
be usable to
open_by_handle_at. */
+# define AT_HANDLE_MNT_ID_UNIQUE 1 /* Return the 64-bit unique mount
+ ID. */
#endif
__BEGIN_DECLS
diff --git a/sysdeps/unix/sysv/linux/bits/fcntl.h b/sysdeps/unix/sysv/linux/bits/fcntl.h
index 4712bc6..742f558 100644
--- a/sysdeps/unix/sysv/linux/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for the generic Linux ABI.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/in.h b/sysdeps/unix/sysv/linux/bits/in.h
index ae0103c..6c7beb8 100644
--- a/sysdeps/unix/sysv/linux/bits/in.h
+++ b/sysdeps/unix/sysv/linux/bits/in.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/inotify.h b/sysdeps/unix/sysv/linux/bits/inotify.h
index f4750f7..89e37da 100644
--- a/sysdeps/unix/sysv/linux/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/bits/ioctl-types.h
index ca23dc2..e8e5084 100644
--- a/sysdeps/unix/sysv/linux/bits/ioctl-types.h
+++ b/sysdeps/unix/sysv/linux/bits/ioctl-types.h
@@ -1,5 +1,5 @@
/* Structure types for pre-termios terminal ioctls. Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,17 +32,6 @@ struct winsize
unsigned short int ws_ypixel;
};
-#define NCC 8
-struct termio
- {
- unsigned short int c_iflag; /* input mode flags */
- unsigned short int c_oflag; /* output mode flags */
- unsigned short int c_cflag; /* control mode flags */
- unsigned short int c_lflag; /* local mode flags */
- unsigned char c_line; /* line discipline */
- unsigned char c_cc[NCC]; /* control characters */
-};
-
/* modem lines */
#define TIOCM_LE 0x001
#define TIOCM_DTR 0x002
diff --git a/sysdeps/unix/sysv/linux/bits/ioctls.h b/sysdeps/unix/sysv/linux/bits/ioctls.h
index 2df44f3..1ddcd4f 100644
--- a/sysdeps/unix/sysv/linux/bits/ioctls.h
+++ b/sysdeps/unix/sysv/linux/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,87 +22,4 @@
/* Use the definitions from the kernel header files. */
#include <asm/ioctls.h>
-/* Routing table calls. */
-#define SIOCADDRT 0x890B /* add routing table entry */
-#define SIOCDELRT 0x890C /* delete routing table entry */
-#define SIOCRTMSG 0x890D /* call to routing system */
-
-/* Socket configuration controls. */
-#define SIOCGIFNAME 0x8910 /* get iface name */
-#define SIOCSIFLINK 0x8911 /* set iface channel */
-#define SIOCGIFCONF 0x8912 /* get iface list */
-#define SIOCGIFFLAGS 0x8913 /* get flags */
-#define SIOCSIFFLAGS 0x8914 /* set flags */
-#define SIOCGIFADDR 0x8915 /* get PA address */
-#define SIOCSIFADDR 0x8916 /* set PA address */
-#define SIOCGIFDSTADDR 0x8917 /* get remote PA address */
-#define SIOCSIFDSTADDR 0x8918 /* set remote PA address */
-#define SIOCGIFBRDADDR 0x8919 /* get broadcast PA address */
-#define SIOCSIFBRDADDR 0x891a /* set broadcast PA address */
-#define SIOCGIFNETMASK 0x891b /* get network PA mask */
-#define SIOCSIFNETMASK 0x891c /* set network PA mask */
-#define SIOCGIFMETRIC 0x891d /* get metric */
-#define SIOCSIFMETRIC 0x891e /* set metric */
-#define SIOCGIFMEM 0x891f /* get memory address (BSD) */
-#define SIOCSIFMEM 0x8920 /* set memory address (BSD) */
-#define SIOCGIFMTU 0x8921 /* get MTU size */
-#define SIOCSIFMTU 0x8922 /* set MTU size */
-#define SIOCSIFNAME 0x8923 /* set interface name */
-#define SIOCSIFHWADDR 0x8924 /* set hardware address */
-#define SIOCGIFENCAP 0x8925 /* get/set encapsulations */
-#define SIOCSIFENCAP 0x8926
-#define SIOCGIFHWADDR 0x8927 /* Get hardware address */
-#define SIOCGIFSLAVE 0x8929 /* Driver slaving support */
-#define SIOCSIFSLAVE 0x8930
-#define SIOCADDMULTI 0x8931 /* Multicast address lists */
-#define SIOCDELMULTI 0x8932
-#define SIOCGIFINDEX 0x8933 /* name -> if_index mapping */
-#define SIOGIFINDEX SIOCGIFINDEX /* misprint compatibility :-) */
-#define SIOCSIFPFLAGS 0x8934 /* set/get extended flags set */
-#define SIOCGIFPFLAGS 0x8935
-#define SIOCDIFADDR 0x8936 /* delete PA address */
-#define SIOCSIFHWBROADCAST 0x8937 /* set hardware broadcast addr */
-#define SIOCGIFCOUNT 0x8938 /* get number of devices */
-
-#define SIOCGIFBR 0x8940 /* Bridging support */
-#define SIOCSIFBR 0x8941 /* Set bridging options */
-
-#define SIOCGIFTXQLEN 0x8942 /* Get the tx queue length */
-#define SIOCSIFTXQLEN 0x8943 /* Set the tx queue length */
-
-
-/* ARP cache control calls. */
- /* 0x8950 - 0x8952 * obsolete calls, don't re-use */
-#define SIOCDARP 0x8953 /* delete ARP table entry */
-#define SIOCGARP 0x8954 /* get ARP table entry */
-#define SIOCSARP 0x8955 /* set ARP table entry */
-
-/* RARP cache control calls. */
-#define SIOCDRARP 0x8960 /* delete RARP table entry */
-#define SIOCGRARP 0x8961 /* get RARP table entry */
-#define SIOCSRARP 0x8962 /* set RARP table entry */
-
-/* Driver configuration calls */
-
-#define SIOCGIFMAP 0x8970 /* Get device parameters */
-#define SIOCSIFMAP 0x8971 /* Set device parameters */
-
-/* DLCI configuration calls */
-
-#define SIOCADDDLCI 0x8980 /* Create new DLCI device */
-#define SIOCDELDLCI 0x8981 /* Delete DLCI device */
-
-/* Device private ioctl calls. */
-
-/* These 16 ioctls are available to devices via the do_ioctl() device
- vector. Each device should include this file and redefine these
- names as their own. Because these are device dependent it is a good
- idea _NOT_ to issue them to random objects and hope. */
-
-#define SIOCDEVPRIVATE 0x89F0 /* to 89FF */
-
-/*
- * These 16 ioctl calls are protocol private
- */
-
-#define SIOCPROTOPRIVATE 0x89E0 /* to 89EF */
+#include <linux/sockios.h>
diff --git a/sysdeps/unix/sysv/linux/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/bits/ipc-perm.h
index 14adb89..616a680 100644
--- a/sysdeps/unix/sysv/linux/bits/ipc-perm.h
+++ b/sysdeps/unix/sysv/linux/bits/ipc-perm.h
@@ -1,5 +1,5 @@
/* struct ipc_perm definition.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/local_lim.h b/sysdeps/unix/sysv/linux/bits/local_lim.h
index 2c76f73..c0ae97f 100644
--- a/sysdeps/unix/sysv/linux/bits/local_lim.h
+++ b/sysdeps/unix/sysv/linux/bits/local_lim.h
@@ -1,5 +1,5 @@
/* Minimum guaranteed maximum values for system limits. Linux version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/mman-linux.h b/sysdeps/unix/sysv/linux/bits/mman-linux.h
index 522333c..fe0496d 100644
--- a/sysdeps/unix/sysv/linux/bits/mman-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/mman-linux.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux generic version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -43,6 +43,7 @@
#define MAP_PRIVATE 0x02 /* Changes are private. */
#define MAP_SHARED_VALIDATE 0x03 /* Share changes and validate
extension flags. */
+#define MAP_DROPPABLE 0x08 /* Zero memory under memory pressure. */
#define MAP_TYPE 0x0f /* Mask for type of mapping. */
/* Other flags. */
@@ -112,6 +113,8 @@
locked pages too. */
# define MADV_COLLAPSE 25 /* Synchronous hugepage collapse. */
# define MADV_HWPOISON 100 /* Poison a page for testing. */
+# define MADV_GUARD_INSTALL 102 /* Fatal signal on access to range */
+# define MADV_GUARD_REMOVE 103 /* Unguard range */
#endif
/* The POSIX people had to invent similar names for the same things. */
diff --git a/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h b/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h
index 97f654a..6199a81 100644
--- a/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h
+++ b/sysdeps/unix/sysv/linux/bits/mman-map-flags-generic.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/generic version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h
index d8ed443..0be4b47 100644
--- a/sysdeps/unix/sysv/linux/bits/mman-shared.h
+++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h
@@ -1,5 +1,5 @@
/* Memory-mapping-related declarations/definitions, not architecture-specific.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -42,11 +42,10 @@
# define MLOCK_ONFAULT 1U
# endif
-/* Access rights for pkey_alloc. */
-# ifndef PKEY_DISABLE_ACCESS
-# define PKEY_DISABLE_ACCESS 0x1
-# define PKEY_DISABLE_WRITE 0x2
-# endif
+/* Access restrictions for pkey_alloc. */
+# define PKEY_UNRESTRICTED 0x0
+# define PKEY_DISABLE_ACCESS 0x1
+# define PKEY_DISABLE_WRITE 0x2
__BEGIN_DECLS
@@ -56,19 +55,20 @@ int memfd_create (const char *__name, unsigned int __flags) __THROW;
/* Lock pages from ADDR (inclusive) to ADDR + LENGTH (exclusive) into
memory. FLAGS is a combination of the MLOCK_* flags above. */
-int mlock2 (const void *__addr, size_t __length, unsigned int __flags) __THROW;
+int mlock2 (const void *__addr, size_t __length, unsigned int __flags) __THROW
+ __attr_access_none (1);
/* Allocate a new protection key, with the PKEY_DISABLE_* bits
- specified in ACCESS_RIGHTS. The protection key mask for the
+ specified in ACCESS_RESTRICTIONS. The protection key mask for the
current thread is updated to match the access privilege for the new
key. */
-int pkey_alloc (unsigned int __flags, unsigned int __access_rights) __THROW;
+int pkey_alloc (unsigned int __flags, unsigned int __access_restrictions) __THROW;
-/* Update the access rights for the current thread for KEY, which must
+/* Update the access restrictions for the current thread for KEY, which must
have been allocated using pkey_alloc. */
-int pkey_set (int __key, unsigned int __access_rights) __THROW;
+int pkey_set (int __key, unsigned int __access_restrictions) __THROW;
-/* Return the access rights for the current thread for KEY, which must
+/* Return the access restrictions for the current thread for KEY, which must
have been allocated using pkey_alloc. */
int pkey_get (int __key) __THROW;
diff --git a/sysdeps/unix/sysv/linux/bits/mman.h b/sysdeps/unix/sysv/linux/bits/mman.h
index 576be1a..94c8435 100644
--- a/sysdeps/unix/sysv/linux/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/generic version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/mman_ext.h b/sysdeps/unix/sysv/linux/bits/mman_ext.h
index b911266..4a5de8c 100644
--- a/sysdeps/unix/sysv/linux/bits/mman_ext.h
+++ b/sysdeps/unix/sysv/linux/bits/mman_ext.h
@@ -1,5 +1,5 @@
/* System-specific extensions of <sys/mman.h>, Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/mqueue.h b/sysdeps/unix/sysv/linux/bits/mqueue.h
index 3309d71..e36cade 100644
--- a/sysdeps/unix/sysv/linux/bits/mqueue.h
+++ b/sysdeps/unix/sysv/linux/bits/mqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/msq.h b/sysdeps/unix/sysv/linux/bits/msq.h
index f3a0c5e..0ac52ac 100644
--- a/sysdeps/unix/sysv/linux/bits/msq.h
+++ b/sysdeps/unix/sysv/linux/bits/msq.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/param.h b/sysdeps/unix/sysv/linux/bits/param.h
index aa2d721..1fb9c1a 100644
--- a/sysdeps/unix/sysv/linux/bits/param.h
+++ b/sysdeps/unix/sysv/linux/bits/param.h
@@ -1,5 +1,5 @@
/* Old-style Unix parameters and limits. Linux version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/poll.h b/sysdeps/unix/sysv/linux/bits/poll.h
index 6bac5a4..9e4e8c8 100644
--- a/sysdeps/unix/sysv/linux/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/posix_opt.h b/sysdeps/unix/sysv/linux/bits/posix_opt.h
index a388d59..60ab46a 100644
--- a/sysdeps/unix/sysv/linux/bits/posix_opt.h
+++ b/sysdeps/unix/sysv/linux/bits/posix_opt.h
@@ -1,5 +1,5 @@
/* Define POSIX options for Linux.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/procfs-extra.h b/sysdeps/unix/sysv/linux/bits/procfs-extra.h
index bd37f68..94f4297 100644
--- a/sysdeps/unix/sysv/linux/bits/procfs-extra.h
+++ b/sysdeps/unix/sysv/linux/bits/procfs-extra.h
@@ -1,5 +1,5 @@
/* Extra sys/procfs.h definitions. Generic Linux version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/bits/procfs-id.h b/sysdeps/unix/sysv/linux/bits/procfs-id.h
index b92f7a3..5b6724a 100644
--- a/sysdeps/unix/sysv/linux/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. Generic Linux version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/bits/procfs-prregset.h b/sysdeps/unix/sysv/linux/bits/procfs-prregset.h
index e24601e..467c9dc 100644
--- a/sysdeps/unix/sysv/linux/bits/procfs-prregset.h
+++ b/sysdeps/unix/sysv/linux/bits/procfs-prregset.h
@@ -1,5 +1,5 @@
/* Types of prgregset_t and prfpregset_t. Generic Linux version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h b/sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h
index 09e534f..ed7a037 100644
--- a/sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h
+++ b/sysdeps/unix/sysv/linux/bits/pthread_stack_min-dynamic.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN, possibly dynamic.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h
index 8bcfa6a..23a8c7c 100644
--- a/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
index 30ba017..9822274 100644
--- a/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
+++ b/sysdeps/unix/sysv/linux/bits/ptrace-shared.h
@@ -1,6 +1,6 @@
/* `ptrace' debugger support interface. Linux version,
not architecture-specific.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/bits/resource.h b/sysdeps/unix/sysv/linux/bits/resource.h
index 148b6a9..51c07da 100644
--- a/sysdeps/unix/sysv/linux/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Linux version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/rseq.h b/sysdeps/unix/sysv/linux/bits/rseq.h
index faf5a9c..cd7bf99 100644
--- a/sysdeps/unix/sysv/linux/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences architecture header. Stub version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h
index a53e136..39b0b3d 100644
--- a/sysdeps/unix/sysv/linux/bits/sched.h
+++ b/sysdeps/unix/sysv/linux/bits/sched.h
@@ -1,6 +1,6 @@
/* Definitions of constants and data structure for POSIX 1003.1b-1993
scheduling interface.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,15 +29,61 @@
#define SCHED_FIFO 1
#define SCHED_RR 2
#ifdef __USE_GNU
+# define SCHED_NORMAL 0
# define SCHED_BATCH 3
# define SCHED_ISO 4
# define SCHED_IDLE 5
# define SCHED_DEADLINE 6
+# define SCHED_EXT 7
+/* Flags that can be used in policy values. */
# define SCHED_RESET_ON_FORK 0x40000000
-#endif
-#ifdef __USE_GNU
+/* Flags for the sched_flags field in struct sched_attr. */
+#define SCHED_FLAG_RESET_ON_FORK 0x01
+#define SCHED_FLAG_RECLAIM 0x02
+#define SCHED_FLAG_DL_OVERRUN 0x04
+#define SCHED_FLAG_KEEP_POLICY 0x08
+#define SCHED_FLAG_KEEP_PARAMS 0x10
+#define SCHED_FLAG_UTIL_CLAMP_MIN 0x20
+#define SCHED_FLAG_UTIL_CLAMP_MAX 0x40
+
+/* Combinations of sched_flags fields. */
+#define SCHED_FLAG_KEEP_ALL \
+ (SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS)
+#define SCHED_FLAG_UTIL_CLAMP \
+ (SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX)
+
+/* Use "" to work around incorrect macro expansion of the
+ __has_include argument (GCC PR 80005). */
+# ifdef __has_include
+# if __has_include ("linux/sched/types.h")
+/* Some older Linux versions defined sched_param in <linux/sched/types.h>. */
+# define sched_param __glibc_mask_sched_param
+# include <linux/sched/types.h>
+# undef sched_param
+# endif
+# endif
+# ifndef SCHED_ATTR_SIZE_VER0
+# include <linux/types.h>
+# define SCHED_ATTR_SIZE_VER0 48
+# define SCHED_ATTR_SIZE_VER1 56
+struct sched_attr
+{
+ __u32 size;
+ __u32 sched_policy;
+ __u64 sched_flags;
+ __s32 sched_nice;
+ __u32 sched_priority;
+ __u64 sched_runtime;
+ __u64 sched_deadline;
+ __u64 sched_period;
+ __u32 sched_util_min;
+ __u32 sched_util_max;
+ /* Additional fields may be added at the end. */
+};
+# endif /* !SCHED_ATTR_SIZE_VER0 */
+
/* Cloning flags. */
# define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */
# define CLONE_VM 0x00000100 /* Set if VM shared between processes. */
@@ -97,6 +143,17 @@ extern int getcpu (unsigned int *, unsigned int *) __THROW;
/* Switch process to namespace of type NSTYPE indicated by FD. */
extern int setns (int __fd, int __nstype) __THROW;
+
+/* Apply the scheduling attributes from *ATTR to the process or thread TID. */
+int sched_setattr (pid_t tid, struct sched_attr *attr, unsigned int flags)
+ __THROW __nonnull ((2));
+
+/* Obtain the scheduling attributes of the process or thread TID and
+ store it in *ATTR. */
+int sched_getattr (pid_t tid, struct sched_attr *attr, unsigned int size,
+ unsigned int flags)
+ __THROW __nonnull ((2));
+
#endif
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/bits/sem.h b/sysdeps/unix/sysv/linux/bits/sem.h
index 012ff15..bb92285 100644
--- a/sysdeps/unix/sysv/linux/bits/sem.h
+++ b/sysdeps/unix/sysv/linux/bits/sem.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/semaphore.h b/sysdeps/unix/sysv/linux/bits/semaphore.h
index 6296ea8..9a57483 100644
--- a/sysdeps/unix/sysv/linux/bits/semaphore.h
+++ b/sysdeps/unix/sysv/linux/bits/semaphore.h
@@ -1,5 +1,5 @@
/* Generic POSIX semaphore type layout
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/shm.h b/sysdeps/unix/sysv/linux/bits/shm.h
index 76144f5..a8f321c 100644
--- a/sysdeps/unix/sysv/linux/bits/shm.h
+++ b/sysdeps/unix/sysv/linux/bits/shm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/shmlba.h b/sysdeps/unix/sysv/linux/bits/shmlba.h
index 0606491..f508d32 100644
--- a/sysdeps/unix/sysv/linux/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. Generic version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/sigaction.h b/sysdeps/unix/sysv/linux/bits/sigaction.h
index af9d457..ffa809f 100644
--- a/sysdeps/unix/sysv/linux/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux's sigaction.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/sigcontext.h b/sysdeps/unix/sysv/linux/bits/sigcontext.h
index b939bf0..f4abb75 100644
--- a/sysdeps/unix/sysv/linux/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/sigevent-consts.h b/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
index c0cece9..52e715f 100644
--- a/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
+++ b/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
@@ -1,5 +1,5 @@
/* sigevent constants. Linux version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
index 5265c8d..fd38bb3 100644
--- a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
+++ b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
@@ -1,5 +1,5 @@
/* siginfo constants. Linux version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/signal_ext.h b/sysdeps/unix/sysv/linux/bits/signal_ext.h
index 304a7eb..5429ea9 100644
--- a/sysdeps/unix/sysv/linux/bits/signal_ext.h
+++ b/sysdeps/unix/sysv/linux/bits/signal_ext.h
@@ -1,5 +1,5 @@
/* System-specific extensions of <signal.h>, Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/signalfd.h b/sysdeps/unix/sysv/linux/bits/signalfd.h
index 876e09c..2325e77 100644
--- a/sysdeps/unix/sysv/linux/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/signum-arch.h b/sysdeps/unix/sysv/linux/bits/signum-arch.h
index 4627134..5988b75 100644
--- a/sysdeps/unix/sysv/linux/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/sigstack.h b/sysdeps/unix/sysv/linux/bits/sigstack.h
index 3250e10..9563325 100644
--- a/sysdeps/unix/sysv/linux/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/sigstksz.h b/sysdeps/unix/sysv/linux/bits/sigstksz.h
index c82fe3e..9e7fdbb 100644
--- a/sysdeps/unix/sysv/linux/bits/sigstksz.h
+++ b/sysdeps/unix/sysv/linux/bits/sigstksz.h
@@ -1,5 +1,5 @@
/* Definition of MINSIGSTKSZ and SIGSTKSZ. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/socket-constants.h b/sysdeps/unix/sysv/linux/bits/socket-constants.h
index b2102d3..b12edcb 100644
--- a/sysdeps/unix/sysv/linux/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index 5ab19a8..f6eb297 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -1,5 +1,5 @@
/* System-specific socket constants and types. Linux version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -246,6 +246,8 @@ enum
#define MSG_WAITFORONE MSG_WAITFORONE
MSG_BATCH = 0x40000, /* sendmmsg: more messages coming. */
#define MSG_BATCH MSG_BATCH
+ MSG_SOCK_DEVMEM = 0x2000000, /* Receive devmem skbs as cmsg. */
+#define MSG_SOCK_DEVMEM MSG_SOCK_DEVMEM
MSG_ZEROCOPY = 0x4000000, /* Use user data in kernel path. */
#define MSG_ZEROCOPY MSG_ZEROCOPY
MSG_FASTOPEN = 0x20000000, /* Send data in TCP SYN. */
diff --git a/sysdeps/unix/sysv/linux/bits/socket_type.h b/sysdeps/unix/sysv/linux/bits/socket_type.h
index 13aa922..9584e81 100644
--- a/sysdeps/unix/sysv/linux/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for generic Linux.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/spawn_ext.h b/sysdeps/unix/sysv/linux/bits/spawn_ext.h
index 667bc0b..997c53a 100644
--- a/sysdeps/unix/sysv/linux/bits/spawn_ext.h
+++ b/sysdeps/unix/sysv/linux/bits/spawn_ext.h
@@ -1,5 +1,5 @@
/* POSIX spawn extensions. Linux version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/ss_flags.h b/sysdeps/unix/sysv/linux/bits/ss_flags.h
index c715148..933e995 100644
--- a/sysdeps/unix/sysv/linux/bits/ss_flags.h
+++ b/sysdeps/unix/sysv/linux/bits/ss_flags.h
@@ -1,5 +1,5 @@
/* ss_flags values for stack_t. Linux version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/stat.h b/sysdeps/unix/sysv/linux/bits/stat.h
index fad5f43..e42a305 100644
--- a/sysdeps/unix/sysv/linux/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/statfs.h b/sysdeps/unix/sysv/linux/bits/statfs.h
index 22780a1..b8578ad 100644
--- a/sysdeps/unix/sysv/linux/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/statvfs.h b/sysdeps/unix/sysv/linux/bits/statvfs.h
index 64f0dcb..1aed2f5 100644
--- a/sysdeps/unix/sysv/linux/bits/statvfs.h
+++ b/sysdeps/unix/sysv/linux/bits/statvfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/statx.h b/sysdeps/unix/sysv/linux/bits/statx.h
index 6a25f8f..5d8d156 100644
--- a/sysdeps/unix/sysv/linux/bits/statx.h
+++ b/sysdeps/unix/sysv/linux/bits/statx.h
@@ -1,5 +1,5 @@
/* statx-related definitions and declarations. Linux version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/stdio_lim.h b/sysdeps/unix/sysv/linux/bits/stdio_lim.h
index 46b49fc..d299a9a 100644
--- a/sysdeps/unix/sysv/linux/bits/stdio_lim.h
+++ b/sysdeps/unix/sysv/linux/bits/stdio_lim.h
@@ -1,5 +1,5 @@
/* System specific stdio.h definitions. Linux version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/struct_stat.h b/sysdeps/unix/sysv/linux/bits/struct_stat.h
index 35dec3d..11d1777 100644
--- a/sysdeps/unix/sysv/linux/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h b/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h
index 9ded57a..4d68131 100644
--- a/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h
+++ b/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h
@@ -1,5 +1,5 @@
/* Definition for helper to define struct stat with 64-bit time.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/bits/termios-c_cc.h
index 5383a65..89a5bda 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-c_cc.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_cc.h
@@ -1,5 +1,5 @@
/* termios c_cc symbolic constant definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h
index 7260883..befd25a 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_cflag.h
@@ -1,5 +1,5 @@
/* termios control mode definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -34,5 +34,7 @@
#define CLOCAL 0004000
#ifdef __USE_MISC
-# define ADDRB 04000000000
+# define ADDRB 04000000000
+# define CMSPAR 010000000000 /* Mark or space (stick) parity. */
+# define CRTSCTS 020000000000 /* Flow control. */
#endif
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
index 57aae5f..ff8289f 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
@@ -1,5 +1,5 @@
/* termios input mode definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h
index 725af59..f4cd8dd 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h
@@ -1,5 +1,5 @@
/* termios local mode definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h
index 436c9d1..12727f9 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-c_oflag.h
@@ -1,5 +1,5 @@
/* termios output mode definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-baud.h b/sysdeps/unix/sysv/linux/bits/termios-cbaud.h
index e742313..b9aadff 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-baud.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-cbaud.h
@@ -1,5 +1,5 @@
/* termios baud rate selection definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,32 +17,31 @@
<https://www.gnu.org/licenses/>. */
#ifndef _TERMIOS_H
-# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+# error "Never include <bits/termios-cbaud.h> directly; use <termios.h> instead."
#endif
#ifdef __USE_MISC
# define CBAUD 000000010017 /* Baud speed mask (not in POSIX). */
# define CBAUDEX 000000010000 /* Extra baud speed mask, included in CBAUD.
(not in POSIX). */
-# define CIBAUD 002003600000 /* Input baud rate (not used). */
-# define CMSPAR 010000000000 /* Mark or space (stick) parity. */
-# define CRTSCTS 020000000000 /* Flow control. */
+# define CIBAUD 002003600000 /* Input baud rate. */
+# define IBSHIFT 16
#endif
/* Extra output baud rates (not in POSIX). */
-#define B57600 0010001
-#define B115200 0010002
-#define B230400 0010003
-#define B460800 0010004
-#define B500000 0010005
-#define B576000 0010006
-#define B921600 0010007
-#define B1000000 0010010
-#define B1152000 0010011
-#define B1500000 0010012
-#define B2000000 0010013
-#define B2500000 0010014
-#define B3000000 0010015
-#define B3500000 0010016
-#define B4000000 0010017
-#define __MAX_BAUD B4000000
+#define __BOTHER 0010000
+#define __B57600 0010001
+#define __B115200 0010002
+#define __B230400 0010003
+#define __B460800 0010004
+#define __B500000 0010005
+#define __B576000 0010006
+#define __B921600 0010007
+#define __B1000000 0010010
+#define __B1152000 0010011
+#define __B1500000 0010012
+#define __B2000000 0010013
+#define __B2500000 0010014
+#define __B3000000 0010015
+#define __B3500000 0010016
+#define __B4000000 0010017
diff --git a/sysdeps/unix/sysv/linux/bits/termios-misc.h b/sysdeps/unix/sysv/linux/bits/termios-misc.h
index b009d76..ca6d6f1 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-misc.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-misc.h
@@ -1,5 +1,5 @@
/* termios baud platform specific definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios-struct.h b/sysdeps/unix/sysv/linux/bits/termios-struct.h
index 5397961..0aba1a4 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-struct.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-struct.h
@@ -1,5 +1,5 @@
/* struct termios definition. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,8 +29,15 @@ struct termios
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
+ /* Input and output baud rates. */
+ __extension__ union {
+ speed_t __ispeed;
+ speed_t c_ispeed;
+ };
#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+ __extension__ union {
+ speed_t __ospeed;
+ speed_t c_ospeed;
+ };
#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
};
diff --git a/sysdeps/unix/sysv/linux/bits/termios-tcflow.h b/sysdeps/unix/sysv/linux/bits/termios-tcflow.h
index a3d032b..f465714 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-tcflow.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-tcflow.h
@@ -1,5 +1,5 @@
/* termios tcflag symbolic constant definitions. Linux/generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/termios.h b/sysdeps/unix/sysv/linux/bits/termios.h
index f190af7..20746a0 100644
--- a/sysdeps/unix/sysv/linux/bits/termios.h
+++ b/sysdeps/unix/sysv/linux/bits/termios.h
@@ -1,5 +1,5 @@
/* termios type and macro definitions. Linux version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -24,35 +24,41 @@ typedef unsigned char cc_t;
typedef unsigned int speed_t;
typedef unsigned int tcflag_t;
-#include <bits/termios-struct.h>
+#ifdef _TERMIOS_H
+# include <bits/termios-struct.h>
+#endif
+
#include <bits/termios-c_cc.h>
#include <bits/termios-c_iflag.h>
#include <bits/termios-c_oflag.h>
/* c_cflag bit meaning */
-#define B0 0000000 /* hang up */
-#define B50 0000001
-#define B75 0000002
-#define B110 0000003
-#define B134 0000004
-#define B150 0000005
-#define B200 0000006
-#define B300 0000007
-#define B600 0000010
-#define B1200 0000011
-#define B1800 0000012
-#define B2400 0000013
-#define B4800 0000014
-#define B9600 0000015
-#define B19200 0000016
-#define B38400 0000017
+#include <bits/termios-c_cflag.h>
+
#ifdef __USE_MISC
-# define EXTA B19200
-# define EXTB B38400
+#define __B0 0000000 /* hang up */
+#define __B50 0000001
+#define __B75 0000002
+#define __B110 0000003
+#define __B134 0000004
+#define __B150 0000005
+#define __B200 0000006
+#define __B300 0000007
+#define __B600 0000010
+#define __B1200 0000011
+#define __B1800 0000012
+#define __B2400 0000013
+#define __B4800 0000014
+#define __B9600 0000015
+#define __B19200 0000016
+#define __B38400 0000017
+#include <bits/termios-cbaud.h>
+
+# define __EXTA __B19200
+# define __EXTB __B38400
+# define BOTHER __BOTHER
#endif
-#include <bits/termios-baud.h>
-#include <bits/termios-c_cflag.h>
#include <bits/termios-c_lflag.h>
#ifdef __USE_MISC
@@ -74,3 +80,5 @@ typedef unsigned int tcflag_t;
#include <bits/termios-tcflow.h>
#include <bits/termios-misc.h>
+
+#include <bits/termios-baud.h>
diff --git a/sysdeps/unix/sysv/linux/bits/time.h b/sysdeps/unix/sysv/linux/bits/time.h
index cab4057..9f311d7 100644
--- a/sysdeps/unix/sysv/linux/bits/time.h
+++ b/sysdeps/unix/sysv/linux/bits/time.h
@@ -1,5 +1,5 @@
/* System-dependent timing definitions. Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/timerfd.h b/sysdeps/unix/sysv/linux/bits/timerfd.h
index d34fdf3..acee347 100644
--- a/sysdeps/unix/sysv/linux/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/timex.h b/sysdeps/unix/sysv/linux/bits/timex.h
index 03ccde6..56ba6c2 100644
--- a/sysdeps/unix/sysv/linux/bits/timex.h
+++ b/sysdeps/unix/sysv/linux/bits/timex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/stack_t.h b/sysdeps/unix/sysv/linux/bits/types/stack_t.h
index 82cd81a..2bc894e 100644
--- a/sysdeps/unix/sysv/linux/bits/types/stack_t.h
+++ b/sysdeps/unix/sysv/linux/bits/types/stack_t.h
@@ -1,5 +1,5 @@
/* Define stack_t. Linux version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h
index 67708df..c2cb3e5 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the SysV message struct msqid64_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h
index f315448..03e7465 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h
@@ -1,5 +1,5 @@
/* Common definitions for struct msqid_ds with 64-bit time.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
index 86296ca..1e3a0a7 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the SysV message struct msqid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds.h
index 87cbe64..2fc51a0 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the semaphore struct semid64_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h b/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h
index 04717df..193a5b9 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_semid64_ds_helper.h
@@ -1,5 +1,5 @@
/* Common definitions for struct semid_ds with 64-bit time.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h
index 2ac89b3..3e070c1 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the semaphore struct semid_ds.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h
index f94e947..a6fff3e 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h
index 48b77ec..fb9ca04 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_shmid64_ds_helper.h
@@ -1,5 +1,5 @@
/* Common definitions for struct semid_ds with 64-bit time.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h
index 1012ed0..12cb89a 100644
--- a/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h
+++ b/sysdeps/unix/sysv/linux/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Generic implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/typesizes.h b/sysdeps/unix/sysv/linux/bits/typesizes.h
index 87734ee..40c7dd3 100644
--- a/sysdeps/unix/sysv/linux/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/uio-ext.h b/sysdeps/unix/sysv/linux/bits/uio-ext.h
index ead7a09..040cb8d 100644
--- a/sysdeps/unix/sysv/linux/bits/uio-ext.h
+++ b/sysdeps/unix/sysv/linux/bits/uio-ext.h
@@ -1,5 +1,5 @@
/* Operating system-specific extensions to sys/uio.h - Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -48,6 +48,8 @@ extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec,
#define RWF_NOWAIT 0x00000008 /* per-IO nonblocking mode. */
#define RWF_APPEND 0x00000010 /* per-IO O_APPEND. */
#define RWF_NOAPPEND 0x00000020 /* per-IO negation of O_APPEND */
+#define RWF_ATOMIC 0x00000040 /* Write is to be issued with torn-write
+ prevention. */
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/bits/uio_lim.h b/sysdeps/unix/sysv/linux/bits/uio_lim.h
index d8a5741..2cf9be8 100644
--- a/sysdeps/unix/sysv/linux/bits/uio_lim.h
+++ b/sysdeps/unix/sysv/linux/bits/uio_lim.h
@@ -1,5 +1,5 @@
/* Implementation limits related to sys/uio.h - Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/unistd_ext.h b/sysdeps/unix/sysv/linux/bits/unistd_ext.h
index 2ce1d45..86bb4e7 100644
--- a/sysdeps/unix/sysv/linux/bits/unistd_ext.h
+++ b/sysdeps/unix/sysv/linux/bits/unistd_ext.h
@@ -1,5 +1,5 @@
/* System-specific extensions of <unistd.h>, Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/utsname.h b/sysdeps/unix/sysv/linux/bits/utsname.h
index aa8e219..3f6fe95 100644
--- a/sysdeps/unix/sysv/linux/bits/utsname.h
+++ b/sysdeps/unix/sysv/linux/bits/utsname.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/bits/waitflags.h b/sysdeps/unix/sysv/linux/bits/waitflags.h
index 87dc43e..acaab1a 100644
--- a/sysdeps/unix/sysv/linux/bits/waitflags.h
+++ b/sysdeps/unix/sysv/linux/bits/waitflags.h
@@ -1,5 +1,5 @@
/* Definitions of flag bits for `waitpid' et al.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/brk.c b/sysdeps/unix/sysv/linux/brk.c
index a0be43e..d788a68 100644
--- a/sysdeps/unix/sysv/linux/brk.c
+++ b/sysdeps/unix/sysv/linux/brk.c
@@ -1,5 +1,5 @@
/* Change data segment. Linux generic version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
#include <brk_call.h>
/* This must be initialized data because commons can't have aliases. */
-void *__curbrk = 0;
+void *__curbrk = NULL;
#if HAVE_INTERNAL_BRK_ADDR_SYMBOL
/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
diff --git a/sysdeps/unix/sysv/linux/brk_call.h b/sysdeps/unix/sysv/linux/brk_call.h
index 1353042..c906ab4 100644
--- a/sysdeps/unix/sysv/linux/brk_call.h
+++ b/sysdeps/unix/sysv/linux/brk_call.h
@@ -1,5 +1,5 @@
/* Invoke the brk system call. Generic Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/cfsetspeed.c b/sysdeps/unix/sysv/linux/cfsetspeed.c
new file mode 100644
index 0000000..8ce46f8
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/cfsetspeed.c
@@ -0,0 +1,59 @@
+/* cfsetspeed(), Linux version.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <termios_internals.h>
+
+/* Set both the input and output baud rates stored in *TERMIOS_P to SPEED. */
+int
+__cfsetspeed (struct termios *termios_p, speed_t speed)
+{
+ tcflag_t cbaud = ___speed_to_cbaud (speed);
+
+ termios_p->c_ospeed = speed;
+ termios_p->c_ispeed = speed;
+ termios_p->c_cflag &= ~(CBAUD | CIBAUD);
+ termios_p->c_cflag |= cbaud | (cbaud << IBSHIFT);
+
+ return 0;
+}
+libc_hidden_def (__cfsetspeed)
+versioned_symbol (libc, __cfsetspeed, cfsetspeed, GLIBC_2_42);
+
+#if _TERMIOS_OLD_COMPAT
+
+int
+attribute_compat_text_section
+__old_cfsetspeed (old_termios_t *termios_p, speed_t speed)
+{
+ speed_t real_speed = ___cbaud_to_speed (speed, -1);
+ if (real_speed == (speed_t)-1)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+#if !_HAVE_STRUCT_OLD_TERMIOS
+ /* Otherwise these fields don't exist in old_termios_t */
+ termios_p->c_ospeed = real_speed;
+ termios_p->c_ispeed = real_speed;
+#endif
+ termios_p->c_cflag &= ~(CBAUD | CIBAUD);
+ termios_p->c_cflag |= speed | (speed << IBSHIFT);
+
+ return 0;
+}
+compat_symbol (libc, __old_cfsetspeed, cfsetspeed, GLIBC_2_0);
+
+#endif /* _TERMIOS_OLD_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/check_native.c b/sysdeps/unix/sysv/linux/check_native.c
index 94e676d..b8042da 100644
--- a/sysdeps/unix/sysv/linux/check_native.c
+++ b/sysdeps/unix/sysv/linux/check_native.c
@@ -1,5 +1,5 @@
/* Determine whether interfaces use native transport. Linux version.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
index 5d9240e..c3532b6 100644
--- a/sysdeps/unix/sysv/linux/check_pf.c
+++ b/sysdeps/unix/sysv/linux/check_pf.c
@@ -1,5 +1,5 @@
/* Determine protocol families for which interfaces exist. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/chmod.c b/sysdeps/unix/sysv/linux/chmod.c
index 2743fb5..b15fd3e 100644
--- a/sysdeps/unix/sysv/linux/chmod.c
+++ b/sysdeps/unix/sysv/linux/chmod.c
@@ -1,5 +1,5 @@
/* Change permissions of a file. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/chown.c b/sysdeps/unix/sysv/linux/chown.c
index f1c7b8a..bac53aa 100644
--- a/sysdeps/unix/sysv/linux/chown.c
+++ b/sysdeps/unix/sysv/linux/chown.c
@@ -1,5 +1,5 @@
/* Change ownership of a file. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock.c b/sysdeps/unix/sysv/linux/clock.c
index b0b42a3..e68fafa 100644
--- a/sysdeps/unix/sysv/linux/clock.c
+++ b/sysdeps/unix/sysv/linux/clock.c
@@ -1,5 +1,5 @@
/* Return the time used by the program so far (user time + system time).
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_adjtime.c b/sysdeps/unix/sysv/linux/clock_adjtime.c
index 8c8d2aa..5a55e97 100644
--- a/sysdeps/unix/sysv/linux/clock_adjtime.c
+++ b/sysdeps/unix/sysv/linux/clock_adjtime.c
@@ -1,5 +1,5 @@
/* clock_adjtime -- tune kernel clock.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
index 736ffcc..d061c9a 100644
--- a/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
+++ b/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
@@ -1,5 +1,5 @@
/* clock_getcpuclockid -- Get a clockid_t for process CPU time. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_getres.c b/sysdeps/unix/sysv/linux/clock_getres.c
index 89119ed..54b60b9 100644
--- a/sysdeps/unix/sysv/linux/clock_getres.c
+++ b/sysdeps/unix/sysv/linux/clock_getres.c
@@ -1,5 +1,5 @@
/* clock_getres -- Get the resolution of a POSIX clockid_t. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_gettime.c b/sysdeps/unix/sysv/linux/clock_gettime.c
index f10a289..e5ae1d9 100644
--- a/sysdeps/unix/sysv/linux/clock_gettime.c
+++ b/sysdeps/unix/sysv/linux/clock_gettime.c
@@ -1,5 +1,5 @@
/* clock_gettime -- Get current time from a POSIX clockid_t. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_nanosleep.c b/sysdeps/unix/sysv/linux/clock_nanosleep.c
index 7f9d4e1..6b7f9d3 100644
--- a/sysdeps/unix/sysv/linux/clock_nanosleep.c
+++ b/sysdeps/unix/sysv/linux/clock_nanosleep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clock_settime.c b/sysdeps/unix/sysv/linux/clock_settime.c
index f1f4f36..21f1e0c 100644
--- a/sysdeps/unix/sysv/linux/clock_settime.c
+++ b/sysdeps/unix/sysv/linux/clock_settime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clone-internal.c b/sysdeps/unix/sysv/linux/clone-internal.c
index 40ef303..9a1f27d0 100644
--- a/sysdeps/unix/sysv/linux/clone-internal.c
+++ b/sysdeps/unix/sysv/linux/clone-internal.c
@@ -1,5 +1,5 @@
/* The internal wrapper of clone and clone3.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clone-pidfd-support.c b/sysdeps/unix/sysv/linux/clone-pidfd-support.c
index 0ca1958..6d52741 100644
--- a/sysdeps/unix/sysv/linux/clone-pidfd-support.c
+++ b/sysdeps/unix/sysv/linux/clone-pidfd-support.c
@@ -1,5 +1,5 @@
/* Check if kernel supports PID file descriptors.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/clone3.h b/sysdeps/unix/sysv/linux/clone3.h
index deff63d..847ca96 100644
--- a/sysdeps/unix/sysv/linux/clone3.h
+++ b/sysdeps/unix/sysv/linux/clone3.h
@@ -1,5 +1,5 @@
/* The clone3 kernel interface definitions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/close.c b/sysdeps/unix/sysv/linux/close.c
index 00a0aba..85456e4 100644
--- a/sysdeps/unix/sysv/linux/close.c
+++ b/sysdeps/unix/sysv/linux/close.c
@@ -1,5 +1,5 @@
/* Linux close syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/close_nocancel.c b/sysdeps/unix/sysv/linux/close_nocancel.c
index 509cc89..c6aff60 100644
--- a/sysdeps/unix/sysv/linux/close_nocancel.c
+++ b/sysdeps/unix/sysv/linux/close_nocancel.c
@@ -1,5 +1,5 @@
/* Linux close syscall implementation -- non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/cacheflush.c b/sysdeps/unix/sysv/linux/close_nocancel_nostatus.c
index 9c426aa..b1df5ed 100644
--- a/sysdeps/unix/sysv/linux/nios2/cacheflush.c
+++ b/sysdeps/unix/sysv/linux/close_nocancel_nostatus.c
@@ -1,5 +1,5 @@
-/* cacheflush system call for Nios II Linux.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Linux close syscall implementation -- non-cancellable, no errno update.
+ Copyright (C) 2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -13,17 +13,16 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
+ License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <sysdep.h>
-#include <stddef.h>
#include <unistd.h>
+#include <sysdep-cancel.h>
+#include <not-cancel.h>
-/* Flush cache(s). */
-int
-_flush_cache (char *addr, const int nbytes, const int op)
+void
+__close_nocancel_nostatus (int fd)
{
- return INLINE_SYSCALL (cacheflush, 3, addr, nbytes, op);
+ INTERNAL_SYSCALL_CALL (close, fd);
}
-weak_alias (_flush_cache, cacheflush)
+libc_hidden_def (__close_nocancel_nostatus)
diff --git a/sysdeps/unix/sysv/linux/closedir.c b/sysdeps/unix/sysv/linux/closedir.c
index b86f79f..36f1968 100644
--- a/sysdeps/unix/sysv/linux/closedir.c
+++ b/sysdeps/unix/sysv/linux/closedir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/closefrom_fallback.c b/sysdeps/unix/sysv/linux/closefrom_fallback.c
index 3ac22d1..b34f823 100644
--- a/sysdeps/unix/sysv/linux/closefrom_fallback.c
+++ b/sysdeps/unix/sysv/linux/closefrom_fallback.c
@@ -1,5 +1,5 @@
/* Close a range of file descriptors. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/cmsg_nxthdr.c b/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
index 9619937..0e602a1 100644
--- a/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
+++ b/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
@@ -1,5 +1,5 @@
/* Return point to next ancillary data entry in message header.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/cnd_timedwait.c b/sysdeps/unix/sysv/linux/cnd_timedwait.c
index 1b5ca5c..04c9ef5 100644
--- a/sysdeps/unix/sysv/linux/cnd_timedwait.c
+++ b/sysdeps/unix/sysv/linux/cnd_timedwait.c
@@ -1,5 +1,5 @@
/* C11 threads conditional timed wait implementation - Linux variant.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/connect.c b/sysdeps/unix/sysv/linux/connect.c
index 109cfc4..d60dc2e 100644
--- a/sysdeps/unix/sysv/linux/connect.c
+++ b/sysdeps/unix/sysv/linux/connect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
index 3720bd9..c87febc 100644
--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
+++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
@@ -1,5 +1,5 @@
/* Socket timestamp conversion routines.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/copy_file_range.c b/sysdeps/unix/sysv/linux/copy_file_range.c
index ac32e7e..4bb27a5 100644
--- a/sysdeps/unix/sysv/linux/copy_file_range.c
+++ b/sysdeps/unix/sysv/linux/copy_file_range.c
@@ -1,5 +1,5 @@
/* Linux implementation of copy_file_range.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/creat.c b/sysdeps/unix/sysv/linux/creat.c
index 6357617..4b12087 100644
--- a/sysdeps/unix/sysv/linux/creat.c
+++ b/sysdeps/unix/sysv/linux/creat.c
@@ -1,5 +1,5 @@
/* Linux default implementation for creat.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/creat64.c b/sysdeps/unix/sysv/linux/creat64.c
index 2f65ec3..e3d6ed8 100644
--- a/sysdeps/unix/sysv/linux/creat64.c
+++ b/sysdeps/unix/sysv/linux/creat64.c
@@ -1,5 +1,5 @@
/* Linux default implementation for LFS creat.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S b/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S
index 17c35f5..739353e 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/____longjmp_chk.S
@@ -1,5 +1,5 @@
/* longjmp with sp check for C-SKY ABIV2.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/clone.S b/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
index 1675107..dc36f07 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S b/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S
index 12ca945..9aa5be1 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S b/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
index 588e4b4..41c2fa0 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/setcontext.S
@@ -1,5 +1,5 @@
/* Set saved user context to current context. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S b/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S
index 59a89d7..5dde2fd 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S b/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S
index 17c4fee..19e7923 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/syscall.S
@@ -1,5 +1,5 @@
/* System call interface. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S b/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S
index 5354d77..46b2b47 100644
--- a/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S
+++ b/sysdeps/unix/sysv/linux/csky/abiv2/sysdep.S
@@ -1,5 +1,5 @@
/* syscall error handlers. C-SKY ABIV2 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/arch-syscall.h b/sysdeps/unix/sysv/linux/csky/arch-syscall.h
index ede3551..73fdba1 100644
--- a/sysdeps/unix/sysv/linux/csky/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/csky/arch-syscall.h
@@ -103,6 +103,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -133,6 +134,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_llseek 62
#define __NR_lookup_dcookie 18
@@ -182,6 +184,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -224,6 +227,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat2 276
#define __NR_request_key 218
#define __NR_restart_syscall 128
@@ -285,6 +289,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/csky/bits/procfs.h b/sysdeps/unix/sysv/linux/csky/bits/procfs.h
index 808daaa..de50492 100644
--- a/sysdeps/unix/sysv/linux/csky/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/csky/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/bits/shmlba.h b/sysdeps/unix/sysv/linux/csky/bits/shmlba.h
index 595d063..e50dd2c 100644
--- a/sysdeps/unix/sysv/linux/csky/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/csky/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/bits/statfs.h b/sysdeps/unix/sysv/linux/csky/bits/statfs.h
index f9f3c64..c2df5ea 100644
--- a/sysdeps/unix/sysv/linux/csky/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/csky/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h b/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h
index 47a9f0a..daab371 100644
--- a/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/csky/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat. Linux/csky version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/bits/timesize.h b/sysdeps/unix/sysv/linux/csky/bits/timesize.h
index 59d5faa..4887c20 100644
--- a/sysdeps/unix/sysv/linux/csky/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/csky/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/csky.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/kernel-features.h b/sysdeps/unix/sysv/linux/csky/kernel-features.h
index bb0a197..bddd109 100644
--- a/sysdeps/unix/sysv/linux/csky/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/csky/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/kernel_stat.h b/sysdeps/unix/sysv/linux/csky/kernel_stat.h
index d987a25..f39c7c1 100644
--- a/sysdeps/unix/sysv/linux/csky/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/csky/kernel_stat.h
@@ -1,5 +1,5 @@
/* Internal definitions for stat functions. Linux/csky.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 96d4596..6325fc1 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2785,3 +2785,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/csky/libm.abilist b/sysdeps/unix/sysv/linux/csky/libm.abilist
index 7a68784..4ed463c 100644
--- a/sysdeps/unix/sysv/linux/csky/libm.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libm.abilist
@@ -853,3 +853,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/csky/makecontext.c b/sysdeps/unix/sysv/linux/csky/makecontext.c
index 5a8ae8b..8c2c082 100644
--- a/sysdeps/unix/sysv/linux/csky/makecontext.c
+++ b/sysdeps/unix/sysv/linux/csky/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context. C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/pointer_guard.h b/sysdeps/unix/sysv/linux/csky/pointer_guard.h
index 0b79684..281f845 100644
--- a/sysdeps/unix/sysv/linux/csky/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/csky/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. C-SKY version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h b/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h
index 541b1a2..4c93743 100644
--- a/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/csky/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* C-SKY definitions for signal handling calling conventions.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/sys/cachectl.h b/sysdeps/unix/sysv/linux/csky/sys/cachectl.h
index 6d7cf3e..5144481 100644
--- a/sysdeps/unix/sysv/linux/csky/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/csky/sys/cachectl.h
@@ -1,5 +1,5 @@
/* C-SKY cache flushing interface.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/sys/ucontext.h b/sysdeps/unix/sysv/linux/csky/sys/ucontext.h
index 77fd66d..99e0598 100644
--- a/sysdeps/unix/sysv/linux/csky/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/csky/sys/ucontext.h
@@ -1,5 +1,5 @@
/* struct ucontext definition, C-SKY version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/sys/user.h b/sysdeps/unix/sysv/linux/csky/sys/user.h
index eab3820..a3d5c62 100644
--- a/sysdeps/unix/sysv/linux/csky/sys/user.h
+++ b/sysdeps/unix/sysv/linux/csky/sys/user.h
@@ -1,6 +1,6 @@
/* This file is not used by C-SKY GDB. ptrace can use pt_regs definition
from linux kernel directly.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/csky/syscall_cancel.S b/sysdeps/unix/sysv/linux/csky/syscall_cancel.S
new file mode 100644
index 0000000..191be62
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/csky/syscall_cancel.S
@@ -0,0 +1,114 @@
+/* Cancellable syscall wrapper. Linux/csky version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+#ifdef SHARED
+# define STACK_ADJ 4
+#else
+# define STACK_ADJ 0
+#endif
+
+ENTRY (__syscall_cancel_arch)
+ subi sp, sp, 16 + STACK_ADJ
+ cfi_def_cfa_offset (16 + STACK_ADJ)
+#ifdef SHARED
+ st.w gb, (sp, 16)
+ lrw t1, 1f@GOTPC
+ cfi_offset (gb, -4)
+ grs gb, 1f
+1:
+#endif
+ st.w lr, (sp, 12)
+ st.w l3, (sp, 8)
+ st.w l1, (sp, 4)
+ st.w l0, (sp, 0)
+#ifdef SHARED
+ addu gb, gb, t1
+#endif
+ subi sp, sp, 16
+ cfi_def_cfa_offset (32 + STACK_ADJ)
+ cfi_offset (lr, -( 4 + STACK_ADJ))
+ cfi_offset (l3, -( 8 + STACK_ADJ))
+ cfi_offset (l1, -(12 + STACK_ADJ))
+ cfi_offset (l0, -(16 + STACK_ADJ))
+
+ mov l3, a1
+ mov a1, a3
+ ld.w a3, (sp, 32 + STACK_ADJ)
+ st.w a3, (sp, 0)
+ ld.w a3, (sp, 36 + STACK_ADJ)
+ st.w a3, (sp, 4)
+ ld.w a3, (sp, 40 + STACK_ADJ)
+ st.w a3, (sp, 8)
+ ld.w a3, (sp, 44 + STACK_ADJ)
+ st.w a3, (sp, 12)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ ld.w t0, (a0, 0)
+ andi t0, t0, TCB_CANCELED_BITMASK
+ jbnez t0, 2f
+ mov a0, a2
+ ld.w a3, (sp, 4)
+ ld.w a2, (sp, 0)
+ ld.w l0, (sp, 8)
+ ld.w l1, (sp, 12)
+ trap 0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ addi sp, sp, 16
+ cfi_remember_state
+ cfi_def_cfa_offset (16 + STACK_ADJ)
+#ifdef SHARED
+ ld.w gb, (sp, 16)
+ cfi_restore (gb)
+#endif
+ ld.w lr, (sp, 12)
+ cfi_restore (lr)
+ ld.w l3, (sp, 8)
+ cfi_restore (l3)
+ ld.w l1, (sp, 4)
+ cfi_restore (l1)
+ ld.w l0, (sp, 0)
+ cfi_restore (l0)
+ addi sp, sp, 16
+ cfi_def_cfa_offset (0)
+ rts
+
+2:
+ cfi_restore_state
+#ifdef SHARED
+ lrw a3, __syscall_do_cancel@GOTOFF
+ addu a3, a3, gb
+ jsr a3
+#else
+ jbsr __syscall_do_cancel
+#endif
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/csky/sysdep.h b/sysdeps/unix/sysv/linux/csky/sysdep.h
index e632f3e..6ef105d 100644
--- a/sysdeps/unix/sysv/linux/csky/sysdep.h
+++ b/sysdeps/unix/sysv/linux/csky/sysdep.h
@@ -1,5 +1,5 @@
/* Assembly macros for C-SKY.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/default-sched.h b/sysdeps/unix/sysv/linux/default-sched.h
index ce2591b..354db3d 100644
--- a/sysdeps/unix/sysv/linux/default-sched.h
+++ b/sysdeps/unix/sysv/linux/default-sched.h
@@ -1,5 +1,5 @@
/* Determine calling thread's scheduling parameters. Linux version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/device-nrs.h b/sysdeps/unix/sysv/linux/device-nrs.h
index 427e999..0ba287a 100644
--- a/sysdeps/unix/sysv/linux/device-nrs.h
+++ b/sysdeps/unix/sysv/linux/device-nrs.h
@@ -1,5 +1,5 @@
/* Device numbers of devices used in the implementation. Linux version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dirfd.c b/sysdeps/unix/sysv/linux/dirfd.c
index 4165ecc..1c637c6 100644
--- a/sysdeps/unix/sysv/linux/dirfd.c
+++ b/sysdeps/unix/sysv/linux/dirfd.c
@@ -1,5 +1,5 @@
/* Return the file descriptor used by a DIR stream. Unix version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dirstream.h b/sysdeps/unix/sysv/linux/dirstream.h
index 3d36437..8649f85 100644
--- a/sysdeps/unix/sysv/linux/dirstream.h
+++ b/sysdeps/unix/sysv/linux/dirstream.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-affinity.h b/sysdeps/unix/sysv/linux/dl-affinity.h
index bbfede7..53ef114 100644
--- a/sysdeps/unix/sysv/linux/dl-affinity.h
+++ b/sysdeps/unix/sysv/linux/dl-affinity.h
@@ -1,5 +1,5 @@
/* CPU affinity handling for the dynamic linker. Linux version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c b/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c
index af9acfc..164a233 100644
--- a/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c
+++ b/sysdeps/unix/sysv/linux/dl-diagnostics-kernel.c
@@ -1,5 +1,5 @@
/* Print kernel diagnostics data in ld.so. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-early_allocate.c b/sysdeps/unix/sysv/linux/dl-early_allocate.c
index 4d98076..257519b 100644
--- a/sysdeps/unix/sysv/linux/dl-early_allocate.c
+++ b/sysdeps/unix/sysv/linux/dl-early_allocate.c
@@ -1,5 +1,5 @@
/* Early memory allocation for the dynamic loader. Generic version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -51,7 +51,7 @@ _dl_early_allocate (size_t size)
{
/* If brk has not been invoked, there is no need to update
__curbrk. The first call to brk will take care of that. */
- void *previous = __brk_call (0);
+ void *previous = __brk_call (NULL);
result = __brk_call (previous + size);
if (result == previous)
result = NULL;
diff --git a/sysdeps/unix/sysv/linux/dl-execstack.c b/sysdeps/unix/sysv/linux/dl-execstack.c
index b986898..6db9601 100644
--- a/sysdeps/unix/sysv/linux/dl-execstack.c
+++ b/sysdeps/unix/sysv/linux/dl-execstack.c
@@ -1,5 +1,5 @@
/* Stack executability handling for GNU dynamic linker. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,22 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <errno.h>
#include <ldsodefs.h>
-#include <libintl.h>
-#include <list.h>
-#include <pthreadP.h>
-#include <stackinfo.h>
-#include <stdbool.h>
-#include <sys/mman.h>
-#include <sysdep.h>
-#include <unistd.h>
-static int
-make_main_stack_executable (void **stack_endp)
+int
+_dl_make_stack_executable (const void *stack_endp)
{
/* This gives us the highest/lowest page that needs to be changed. */
- uintptr_t page = ((uintptr_t) *stack_endp
+ uintptr_t page = ((uintptr_t) stack_endp
& -(intptr_t) GLRO(dl_pagesize));
if (__mprotect ((void *) page, GLRO(dl_pagesize),
@@ -44,65 +35,8 @@ make_main_stack_executable (void **stack_endp)
) != 0)
return errno;
- /* Clear the address. */
- *stack_endp = NULL;
-
/* Remember that we changed the permission. */
GL(dl_stack_flags) |= PF_X;
return 0;
}
-
-int
-_dl_make_stacks_executable (void **stack_endp)
-{
- /* First the main thread's stack. */
- int err = make_main_stack_executable (stack_endp);
- if (err != 0)
- return err;
-
- lll_lock (GL (dl_stack_cache_lock), LLL_PRIVATE);
-
- list_t *runp;
- list_for_each (runp, &GL (dl_stack_used))
- {
- err = __nptl_change_stack_perm (list_entry (runp, struct pthread, list));
- if (err != 0)
- break;
- }
-
- /* Also change the permission for the currently unused stacks. This
- might be wasted time but better spend it here than adding a check
- in the fast path. */
- if (err == 0)
- list_for_each (runp, &GL (dl_stack_cache))
- {
- err = __nptl_change_stack_perm (list_entry (runp, struct pthread,
- list));
- if (err != 0)
- break;
- }
-
- lll_unlock (GL (dl_stack_cache_lock), LLL_PRIVATE);
-
- return err;
-}
-
-int
-__nptl_change_stack_perm (struct pthread *pd)
-{
-#if _STACK_GROWS_DOWN
- void *stack = pd->stackblock + pd->guardsize;
- size_t len = pd->stackblock_size - pd->guardsize;
-#elif _STACK_GROWS_UP
- void *stack = pd->stackblock;
- size_t len = (uintptr_t) pd - pd->guardsize - (uintptr_t) pd->stackblock;
-#else
-# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
-#endif
- if (__mprotect (stack, len, PROT_READ | PROT_WRITE | PROT_EXEC) != 0)
- return errno;
-
- return 0;
-}
-rtld_hidden_def (__nptl_change_stack_perm)
diff --git a/sysdeps/unix/sysv/linux/dl-execve.h b/sysdeps/unix/sysv/linux/dl-execve.h
index 598aa6f..f843262 100644
--- a/sysdeps/unix/sysv/linux/dl-execve.h
+++ b/sysdeps/unix/sysv/linux/dl-execve.h
@@ -1,5 +1,5 @@
/* execve for the dynamic linker. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-extra_tls.h b/sysdeps/unix/sysv/linux/dl-extra_tls.h
new file mode 100644
index 0000000..d48a5e9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/dl-extra_tls.h
@@ -0,0 +1,71 @@
+/* extra tls block utils for the dynamic linker. Linux version.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _DL_EXTRA_TLS_H
+#define _DL_EXTRA_TLS_H 1
+
+#include <stddef.h>
+#include <sys/rseq.h>
+#include <rseq-internal.h>
+#include <elf/dl-tunables.h>
+
+/* Returns the size of the extra TLS block, it must always be a multiple of the
+ alignment. */
+static inline size_t
+_dl_extra_tls_get_size (void)
+{
+ bool do_rseq = TUNABLE_GET_FULL (glibc, pthread, rseq, int, NULL);
+ if (do_rseq)
+ {
+ /* Make sure the rseq area size is at least the minimum ABI size and a
+ multiple of the requested aligment. */
+ return roundup (MAX (_rseq_size, RSEQ_AREA_SIZE_INITIAL), _rseq_align);
+ }
+
+ /* Even when disabled by tunable, an rseq area will be allocated to allow
+ application code to test the registration status with 'rseq->cpu_id >= 0'.
+ Default to the rseq ABI minimum size, this will ensure we don't use more
+ TLS than necessary. */
+ return RSEQ_AREA_SIZE_INITIAL;
+}
+
+/* Returns the alignment requirements of the extra TLS block. */
+static inline size_t
+_dl_extra_tls_get_align (void)
+{
+ bool do_rseq = TUNABLE_GET_FULL (glibc, pthread, rseq, int, NULL);
+ if (do_rseq)
+ {
+ return _rseq_align;
+ }
+
+ /* Even when disabled by tunable, an rseq area will be allocated to allow
+ application code to test the registration status with 'rseq->cpu_id >= 0'.
+ Default to the rseq ABI minimum alignment, this will ensure we don't use
+ more TLS than necessary. */
+ return RSEQ_MIN_ALIGN;
+}
+
+/* Record the offset of the extra TLS block from the thread pointer. */
+static inline void
+_dl_extra_tls_set_offset (ptrdiff_t tls_offset)
+{
+ _rseq_offset = tls_offset;
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/dl-openat64.c b/sysdeps/unix/sysv/linux/dl-openat64.c
index 3137e86..3d0fae2 100644
--- a/sysdeps/unix/sysv/linux/dl-openat64.c
+++ b/sysdeps/unix/sysv/linux/dl-openat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-origin.c b/sysdeps/unix/sysv/linux/dl-origin.c
index f2df067..3c52ba5 100644
--- a/sysdeps/unix/sysv/linux/dl-origin.c
+++ b/sysdeps/unix/sysv/linux/dl-origin.c
@@ -1,5 +1,5 @@
/* Find path of executable.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@
#include <fcntl.h>
#include <ldsodefs.h>
#include <sysdep.h>
+#include <fd_to_filename.h>
/* On Linux >= 2.1 systems which have the dcache implementation we can get
the path of the application from the /proc/self/exe symlink. Try this
@@ -72,3 +73,25 @@ _dl_get_origin (void)
return result;
}
+
+/* On Linux, readlink on the magic symlinks in /proc/self/fd also has
+ the same behavior of returning the canonical path from the dcache.
+ If it does not work, we do not bother to canonicalize. */
+
+char *
+_dl_canonicalize (int fd)
+{
+ struct fd_to_filename fdfilename;
+ char canonical[PATH_MAX];
+ char *path = __fd_to_filename (fd, &fdfilename);
+ int size = INTERNAL_SYSCALL_CALL (readlinkat, AT_FDCWD, path,
+ canonical, PATH_MAX - 1);
+
+ /* Check if the path was truncated. */
+ if (size >= 0 && size < PATH_MAX - 1)
+ {
+ canonical[size] = '\0';
+ return __strdup (canonical);
+ }
+ return NULL;
+}
diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h
index 2ec4c5a..bf08951 100644
--- a/sysdeps/unix/sysv/linux/dl-osinfo.h
+++ b/sysdeps/unix/sysv/linux/dl-osinfo.h
@@ -1,5 +1,5 @@
/* Operating system specific code for generic dynamic loader functions. Linux.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-parse_auxv.h b/sysdeps/unix/sysv/linux/dl-parse_auxv.h
index ea2a58e..41250c9 100644
--- a/sysdeps/unix/sysv/linux/dl-parse_auxv.h
+++ b/sysdeps/unix/sysv/linux/dl-parse_auxv.h
@@ -1,5 +1,5 @@
/* Parse the Linux auxiliary vector.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,7 @@
#include <fpu_control.h>
#include <ldsodefs.h>
#include <link.h>
+#include <rseq-internal.h>
typedef ElfW(Addr) dl_parse_auxv_t[AT_MINSIGSTKSZ + 1];
@@ -59,5 +60,11 @@ void _dl_parse_auxv (ElfW(auxv_t) *av, dl_parse_auxv_t auxv_values)
GLRO(dl_sysinfo) = auxv_values[AT_SYSINFO];
#endif
+ /* Get the rseq feature size, with a minimum of RSEQ_AREA_SIZE_INITIAL_USED
+ (20) for kernels that don't have AT_RSEQ_FEATURE_SIZE. */
+ _rseq_size = MAX (auxv_values[AT_RSEQ_FEATURE_SIZE],
+ RSEQ_AREA_SIZE_INITIAL_USED);
+ _rseq_align = MAX (auxv_values[AT_RSEQ_ALIGN], RSEQ_MIN_ALIGN);
+
DL_PLATFORM_AUXV
}
diff --git a/sysdeps/unix/sysv/linux/dl-rseq-symbols.S b/sysdeps/unix/sysv/linux/dl-rseq-symbols.S
index b4bba06..2502a76 100644
--- a/sysdeps/unix/sysv/linux/dl-rseq-symbols.S
+++ b/sysdeps/unix/sysv/linux/dl-rseq-symbols.S
@@ -1,5 +1,5 @@
/* Define symbols used by rseq.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,14 +27,18 @@
/* Some targets define a macro to denote the zero register. */
#undef zero
-/* Define 2 symbols: '__rseq_size' is public const and '_rseq_size' (an
- alias of '__rseq_size') is hidden and writable for internal use by the
- dynamic linker which will initialize the value both symbols point to
- before copy relocations take place. */
+/* Define 3 symbols: '__rseq_size' is public const and then '_rseq_size' and
+ '__GI___rseq_size' (both aliases of '__rseq_size') are hidden, '_rseq_size'
+ is writable for internal use by the dynamic linker which will initialize
+ the value the symbols point to before copy relocations take place. */
.globl __rseq_size
.type __rseq_size, %object
.size __rseq_size, 4
+ .hidden __GI___rseq_size
+ .globl __GI___rseq_size
+ .type __GI___rseq_size, %object
+ .size __GI___rseq_size, 4
.hidden _rseq_size
.globl _rseq_size
.type _rseq_size, %object
@@ -42,17 +46,23 @@
.section .data.rel.ro
.balign 4
__rseq_size:
+__GI___rseq_size:
_rseq_size:
.zero 4
-/* Define 2 symbols: '__rseq_offset' is public const and '_rseq_offset' (an
- alias of '__rseq_offset') is hidden and writable for internal use by the
- dynamic linker which will initialize the value both symbols point to
- before copy relocations take place. */
+/* Define 3 symbols: '__rseq_offset' is public const and then '_rseq_offset'
+ and '__GI___rseq_offset' (both aliases of '__rseq_offset') are hidden,
+ '_rseq_offset' is writable for internal use by the dynamic linker which will
+ initialize the value the symbols point to before copy relocations take
+ place. */
.globl __rseq_offset
.type __rseq_offset, %object
.size __rseq_offset, RSEQ_OFFSET_SIZE
+ .hidden __GI___rseq_offset
+ .globl __GI___rseq_offset
+ .type __GI___rseq_offset, %object
+ .size __GI___rseq_offset, RSEQ_OFFSET_SIZE
.hidden _rseq_offset
.globl _rseq_offset
.type _rseq_offset, %object
@@ -60,5 +70,6 @@ _rseq_size:
.section .data.rel.ro
.balign RSEQ_OFFSET_SIZE
__rseq_offset:
+__GI___rseq_offset:
_rseq_offset:
.zero RSEQ_OFFSET_SIZE
diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.c b/sysdeps/unix/sysv/linux/dl-sysdep.c
index a8ec2d7..f17a3e1 100644
--- a/sysdeps/unix/sysv/linux/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Dynamic linker system dependencies for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,6 @@
#include <dl-auxv.h>
#include <dl-osinfo.h>
#include <dl-parse_auxv.h>
-#include <dl-procinfo.h>
#include <dl-tunables.h>
#include <elf.h>
#include <errno.h>
@@ -113,7 +112,7 @@ _dl_sysdep_start (void **start_argptr,
/* Initialize DSO sorting algorithm after tunables. */
_dl_sort_maps_init ();
- __brk (0); /* Initialize the break. */
+ __brk (NULL); /* Initialize the break. */
#ifdef DL_PLATFORM_INIT
DL_PLATFORM_INIT;
@@ -185,7 +184,10 @@ _dl_show_auxv (void)
[AT_GID - 2] = { "GID: ", dec },
[AT_EGID - 2] = { "EGID: ", dec },
[AT_PLATFORM - 2] = { "PLATFORM: ", str },
- [AT_HWCAP - 2] = { "HWCAP: ", hex },
+ [AT_HWCAP - 2] = { "HWCAP: 0x", hex },
+ [AT_HWCAP2 - 2] = { "HWCAP2: 0x", hex },
+ [AT_HWCAP3 - 2] = { "HWCAP3: 0x", hex },
+ [AT_HWCAP4 - 2] = { "HWCAP4: 0x", hex },
[AT_CLKTCK - 2] = { "CLKTCK: ", dec },
[AT_FPUCW - 2] = { "FPUCW: ", hex },
[AT_DCACHEBSIZE - 2] = { "DCACHEBSIZE: 0x", hex },
@@ -197,9 +199,8 @@ _dl_show_auxv (void)
[AT_SYSINFO - 2] = { "SYSINFO: 0x", hex },
[AT_SYSINFO_EHDR - 2] = { "SYSINFO_EHDR: 0x", hex },
[AT_RANDOM - 2] = { "RANDOM: 0x", hex },
- [AT_HWCAP2 - 2] = { "HWCAP2: 0x", hex },
- [AT_HWCAP3 - 2] = { "HWCAP3: 0x", hex },
- [AT_HWCAP4 - 2] = { "HWCAP4: 0x", hex },
+ [AT_RSEQ_FEATURE_SIZE - 2] = { "RSEQ_FEATURE_SIZE: ", dec },
+ [AT_RSEQ_ALIGN - 2] = { "RSEQ_ALIGN: ", dec },
[AT_MINSIGSTKSZ - 2] = { "MINSIGSTKSZ: ", dec },
[AT_L1I_CACHESIZE - 2] = { "L1I_CACHESIZE: ", dec },
[AT_L1I_CACHEGEOMETRY - 2] = { "L1I_CACHEGEOMETRY: 0x", hex },
@@ -220,10 +221,6 @@ _dl_show_auxv (void)
assert (AT_NULL == 0);
assert (AT_IGNORE == 1);
- /* Some entries are handled in a special way per platform. */
- if (_dl_procinfo (av->a_type, av->a_un.a_val) == 0)
- continue;
-
if (idx < sizeof (auxvars) / sizeof (auxvars[0])
&& auxvars[idx].form != unknown)
{
diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.h b/sysdeps/unix/sysv/linux/dl-sysdep.h
index 36c09bb..6381243 100644
--- a/sysdeps/unix/sysv/linux/dl-sysdep.h
+++ b/sysdeps/unix/sysv/linux/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. Linux version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-vdso-setup.c b/sysdeps/unix/sysv/linux/dl-vdso-setup.c
index 3a44944..cd9cada 100644
--- a/sysdeps/unix/sysv/linux/dl-vdso-setup.c
+++ b/sysdeps/unix/sysv/linux/dl-vdso-setup.c
@@ -1,5 +1,5 @@
/* Data for vDSO support. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -66,6 +66,11 @@ PROCINFO_CLASS int (*_dl_vdso_clock_getres) (clockid_t,
PROCINFO_CLASS int (*_dl_vdso_clock_getres_time64) (clockid_t,
struct __timespec64 *) RELRO;
# endif
+# ifdef HAVE_GETRANDOM_VSYSCALL
+PROCINFO_CLASS ssize_t (*_dl_vdso_getrandom) (void *buffer, size_t len,
+ unsigned int flags, void *state,
+ size_t state_len) RELRO;
+# endif
/* PowerPC specific ones. */
# ifdef HAVE_GET_TBFREQ
diff --git a/sysdeps/unix/sysv/linux/dl-vdso-setup.h b/sysdeps/unix/sysv/linux/dl-vdso-setup.h
index 8aee5a8..6962bf8 100644
--- a/sysdeps/unix/sysv/linux/dl-vdso-setup.h
+++ b/sysdeps/unix/sysv/linux/dl-vdso-setup.h
@@ -1,5 +1,5 @@
/* ELF symbol initialization functions for VDSO objects. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -50,6 +50,9 @@ setup_vdso_pointers (void)
#ifdef HAVE_RISCV_HWPROBE
GLRO(dl_vdso_riscv_hwprobe) = dl_vdso_vsym (HAVE_RISCV_HWPROBE);
#endif
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ GLRO(dl_vdso_getrandom) = dl_vdso_vsym (HAVE_GETRANDOM_VSYSCALL);
+#endif
}
#endif
diff --git a/sysdeps/unix/sysv/linux/dl-vdso.h b/sysdeps/unix/sysv/linux/dl-vdso.h
index b643cf5..da6eca8 100644
--- a/sysdeps/unix/sysv/linux/dl-vdso.h
+++ b/sysdeps/unix/sysv/linux/dl-vdso.h
@@ -1,5 +1,5 @@
/* ELF symbol resolve functions for VDSO objects.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-write.c b/sysdeps/unix/sysv/linux/dl-write.c
index de6a063..2c7f217 100644
--- a/sysdeps/unix/sysv/linux/dl-write.c
+++ b/sysdeps/unix/sysv/linux/dl-write.c
@@ -1,5 +1,5 @@
/* Implementation of the _dl_write function. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dl-writev.h b/sysdeps/unix/sysv/linux/dl-writev.h
index f394d1b..f3fa5c7 100644
--- a/sysdeps/unix/sysv/linux/dl-writev.h
+++ b/sysdeps/unix/sysv/linux/dl-writev.h
@@ -1,5 +1,5 @@
/* Message-writing for the dynamic linker. Linux version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/dup2.c b/sysdeps/unix/sysv/linux/dup2.c
index 8c3e8b0..0075773 100644
--- a/sysdeps/unix/sysv/linux/dup2.c
+++ b/sysdeps/unix/sysv/linux/dup2.c
@@ -1,5 +1,5 @@
/* Duplicate a file descriptor. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/epoll_create.c b/sysdeps/unix/sysv/linux/epoll_create.c
index 5417bd8..8960790 100644
--- a/sysdeps/unix/sysv/linux/epoll_create.c
+++ b/sysdeps/unix/sysv/linux/epoll_create.c
@@ -1,5 +1,5 @@
/* Open an epoll file descriptor. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/epoll_pwait.c b/sysdeps/unix/sysv/linux/epoll_pwait.c
index d0bd3d0..47a5346 100644
--- a/sysdeps/unix/sysv/linux/epoll_pwait.c
+++ b/sysdeps/unix/sysv/linux/epoll_pwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/epoll_pwait2.c b/sysdeps/unix/sysv/linux/epoll_pwait2.c
index 0f6ac3e..bbb5f04 100644
--- a/sysdeps/unix/sysv/linux/epoll_pwait2.c
+++ b/sysdeps/unix/sysv/linux/epoll_pwait2.c
@@ -1,5 +1,5 @@
/* Implementation of epoll_pwait2 syscall wrapper.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/epoll_wait.c b/sysdeps/unix/sysv/linux/epoll_wait.c
index be77ad5..b2d9b45 100644
--- a/sysdeps/unix/sysv/linux/epoll_wait.c
+++ b/sysdeps/unix/sysv/linux/epoll_wait.c
@@ -1,5 +1,5 @@
/* Linux epoll_wait syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/errlist-compat-data.h b/sysdeps/unix/sysv/linux/errlist-compat-data.h
index 55108de..0f0885b 100644
--- a/sysdeps/unix/sysv/linux/errlist-compat-data.h
+++ b/sysdeps/unix/sysv/linux/errlist-compat-data.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compat symbol definitions. Generic version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/errlist-compat.h b/sysdeps/unix/sysv/linux/errlist-compat.h
index ae43bf8..341f13d 100644
--- a/sysdeps/unix/sysv/linux/errlist-compat.h
+++ b/sysdeps/unix/sysv/linux/errlist-compat.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compatibility macro definitions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/errqueue.h b/sysdeps/unix/sysv/linux/errqueue.h
index 52c5735..650cf7f 100644
--- a/sysdeps/unix/sysv/linux/errqueue.h
+++ b/sysdeps/unix/sysv/linux/errqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/eventfd_read.c b/sysdeps/unix/sysv/linux/eventfd_read.c
index 21b60a8..ccb0216 100644
--- a/sysdeps/unix/sysv/linux/eventfd_read.c
+++ b/sysdeps/unix/sysv/linux/eventfd_read.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/eventfd_write.c b/sysdeps/unix/sysv/linux/eventfd_write.c
index 72d95b3..88cecec 100644
--- a/sysdeps/unix/sysv/linux/eventfd_write.c
+++ b/sysdeps/unix/sysv/linux/eventfd_write.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/execveat.c b/sysdeps/unix/sysv/linux/execveat.c
index e1d68b9..633fbc8 100644
--- a/sysdeps/unix/sysv/linux/execveat.c
+++ b/sysdeps/unix/sysv/linux/execveat.c
@@ -1,5 +1,5 @@
/* Execute program relative to a directory file descriptor.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/faccessat.c b/sysdeps/unix/sysv/linux/faccessat.c
index 2fa57fd..edb22eb 100644
--- a/sysdeps/unix/sysv/linux/faccessat.c
+++ b/sysdeps/unix/sysv/linux/faccessat.c
@@ -1,5 +1,5 @@
/* Test for access to file, relative to open directory. Linux version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fallocate.c b/sysdeps/unix/sysv/linux/fallocate.c
index 77cedad..b03b04d 100644
--- a/sysdeps/unix/sysv/linux/fallocate.c
+++ b/sysdeps/unix/sysv/linux/fallocate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fallocate64.c b/sysdeps/unix/sysv/linux/fallocate64.c
index 3c5436f..9033391 100644
--- a/sysdeps/unix/sysv/linux/fallocate64.c
+++ b/sysdeps/unix/sysv/linux/fallocate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fanotify_mark.c b/sysdeps/unix/sysv/linux/fanotify_mark.c
index 4f50b30..07e365a 100644
--- a/sysdeps/unix/sysv/linux/fanotify_mark.c
+++ b/sysdeps/unix/sysv/linux/fanotify_mark.c
@@ -1,6 +1,6 @@
/* Add, remove, or modify an fanotify mark on a filesystem object.
Linux specific syscall.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fatal-prepare.h b/sysdeps/unix/sysv/linux/fatal-prepare.h
index 65fb38a..1475e28 100644
--- a/sysdeps/unix/sysv/linux/fatal-prepare.h
+++ b/sysdeps/unix/sysv/linux/fatal-prepare.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fchmodat.c b/sysdeps/unix/sysv/linux/fchmodat.c
index dad2e12..dd1fa5d 100644
--- a/sysdeps/unix/sysv/linux/fchmodat.c
+++ b/sysdeps/unix/sysv/linux/fchmodat.c
@@ -1,5 +1,5 @@
/* Change the protections of file relative to open directory. Linux version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fcntl.c b/sysdeps/unix/sysv/linux/fcntl.c
index 3a010ff..f7e3581 100644
--- a/sysdeps/unix/sysv/linux/fcntl.c
+++ b/sysdeps/unix/sysv/linux/fcntl.c
@@ -1,5 +1,5 @@
/* Linux fcntl syscall implementation.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fcntl64.c b/sysdeps/unix/sysv/linux/fcntl64.c
index 9c7b0dd..1861b18 100644
--- a/sysdeps/unix/sysv/linux/fcntl64.c
+++ b/sysdeps/unix/sysv/linux/fcntl64.c
@@ -1,5 +1,5 @@
/* Manipulate file descriptor. Linux LFS version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fcntl_nocancel.c b/sysdeps/unix/sysv/linux/fcntl_nocancel.c
index 68483d8..7349dcf 100644
--- a/sysdeps/unix/sysv/linux/fcntl_nocancel.c
+++ b/sysdeps/unix/sysv/linux/fcntl_nocancel.c
@@ -1,5 +1,5 @@
/* Linux fcntl syscall implementation -- non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fdatasync.c b/sysdeps/unix/sysv/linux/fdatasync.c
index b4b009f..67f18d9 100644
--- a/sysdeps/unix/sysv/linux/fdatasync.c
+++ b/sysdeps/unix/sysv/linux/fdatasync.c
@@ -1,6 +1,6 @@
/* Synchronize a file's in-core state with storage device Linux
implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fdopendir.c b/sysdeps/unix/sysv/linux/fdopendir.c
index 26f00bb..7f8d935 100644
--- a/sysdeps/unix/sysv/linux/fdopendir.c
+++ b/sysdeps/unix/sysv/linux/fdopendir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/features-time64.h b/sysdeps/unix/sysv/linux/features-time64.h
index 8d573cd..d85241d 100644
--- a/sysdeps/unix/sysv/linux/features-time64.h
+++ b/sysdeps/unix/sysv/linux/features-time64.h
@@ -1,5 +1,5 @@
/* Features part to handle 64-bit time_t support.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fexecve.c b/sysdeps/unix/sysv/linux/fexecve.c
index a62a757..a945813 100644
--- a/sysdeps/unix/sysv/linux/fexecve.c
+++ b/sysdeps/unix/sysv/linux/fexecve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk b/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
index 24e068e..ab4c654 100644
--- a/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
+++ b/sysdeps/unix/sysv/linux/filter-nr-syscalls.awk
@@ -1,5 +1,5 @@
# Filter preprocessor __NR_* macros and extract system call names.
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/fixup-asm-unistd.h
index 92d7638..52a4915 100644
--- a/sysdeps/unix/sysv/linux/fixup-asm-unistd.h
+++ b/sysdeps/unix/sysv/linux/fixup-asm-unistd.h
@@ -1,5 +1,5 @@
/* Regularize <asm/unistd.h> definitions. Default version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/fpathconf.c b/sysdeps/unix/sysv/linux/fpathconf.c
index d5ce59b..f0f8bee 100644
--- a/sysdeps/unix/sysv/linux/fpathconf.c
+++ b/sysdeps/unix/sysv/linux/fpathconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about descriptor FD. Linux version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstat.c b/sysdeps/unix/sysv/linux/fstat.c
index fab87e7..0df9da3 100644
--- a/sysdeps/unix/sysv/linux/fstat.c
+++ b/sysdeps/unix/sysv/linux/fstat.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstat64.c b/sysdeps/unix/sysv/linux/fstat64.c
index cc9f695..8da9be3 100644
--- a/sysdeps/unix/sysv/linux/fstat64.c
+++ b/sysdeps/unix/sysv/linux/fstat64.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,7 +30,7 @@ __fstat64_time64 (int fd, struct __stat64_t64 *buf)
{
#if !FSTATAT_USE_STATX
# if XSTAT_IS_XSTAT64
- /* The __NR_stat macro is defined for all ABIs that also define
+ /* The __NR_stat macro is defined for all ABIs that also define
XSTAT_IS_STAT64, so to correctly identify alpha and sparc check
__NR_newfstatat (similar to what fstatat64 does). */
# ifdef __NR_newfstatat
@@ -60,7 +60,7 @@ __fstat64_time64 (int fd, struct __stat64_t64 *buf)
# endif
#else /* !FSTATAT_USE_STATX */
/* All kABIs with non-LFS support and with old 32-bit time_t support
- e.g. arm, csky, i386, hppa, m68k, microblaze, nios2, sh, powerpc32,
+ e.g. arm, csky, i386, hppa, m68k, microblaze, sh, powerpc32,
and sparc32. */
if (fd < 0)
{
diff --git a/sysdeps/unix/sysv/linux/fstatat.c b/sysdeps/unix/sysv/linux/fstatat.c
index f587f6e..32e67c9 100644
--- a/sysdeps/unix/sysv/linux/fstatat.c
+++ b/sysdeps/unix/sysv/linux/fstatat.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstatat64.c b/sysdeps/unix/sysv/linux/fstatat64.c
index da49617..931a593 100644
--- a/sysdeps/unix/sysv/linux/fstatat64.c
+++ b/sysdeps/unix/sysv/linux/fstatat64.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -104,7 +104,7 @@ fstatat64_time64_stat (int fd, const char *file, struct __stat64_t64 *buf,
#else
# ifdef __NR_fstatat64
/* All kABIs with non-LFS support and with old 32-bit time_t support
- e.g. arm, csky, i386, hppa, m68k, microblaze, nios2, sh, powerpc32,
+ e.g. arm, csky, i386, hppa, m68k, microblaze, sh, powerpc32,
and sparc32. */
struct stat64 st64;
r = INTERNAL_SYSCALL_CALL (fstatat64, fd, file, &st64, flag);
diff --git a/sysdeps/unix/sysv/linux/fstatfs.c b/sysdeps/unix/sysv/linux/fstatfs.c
index 5824089..48ca390 100644
--- a/sysdeps/unix/sysv/linux/fstatfs.c
+++ b/sysdeps/unix/sysv/linux/fstatfs.c
@@ -1,5 +1,5 @@
/* Get filesystem statistics. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstatfs64.c b/sysdeps/unix/sysv/linux/fstatfs64.c
index fa5c1ff..65d09f7 100644
--- a/sysdeps/unix/sysv/linux/fstatfs64.c
+++ b/sysdeps/unix/sysv/linux/fstatfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FD resides.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstatvfs.c b/sysdeps/unix/sysv/linux/fstatvfs.c
index 599f950..7da2b03 100644
--- a/sysdeps/unix/sysv/linux/fstatvfs.c
+++ b/sysdeps/unix/sysv/linux/fstatvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fstatvfs64.c b/sysdeps/unix/sysv/linux/fstatvfs64.c
index 0a88d34..a626c9b 100644
--- a/sysdeps/unix/sysv/linux/fstatvfs64.c
+++ b/sysdeps/unix/sysv/linux/fstatvfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FD resides.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fsync.c b/sysdeps/unix/sysv/linux/fsync.c
index 20addf6..4660488 100644
--- a/sysdeps/unix/sysv/linux/fsync.c
+++ b/sysdeps/unix/sysv/linux/fsync.c
@@ -1,6 +1,6 @@
/* Synchronize a file's in-core state with storage device Linux
implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ftime.c b/sysdeps/unix/sysv/linux/ftime.c
index 06b0f3d..53fbcac 100644
--- a/sysdeps/unix/sysv/linux/ftime.c
+++ b/sysdeps/unix/sysv/linux/ftime.c
@@ -1,5 +1,5 @@
/* Deprecated return date and time. Linux version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ftruncate.c b/sysdeps/unix/sysv/linux/ftruncate.c
index 38737a5..0c9e096 100644
--- a/sysdeps/unix/sysv/linux/ftruncate.c
+++ b/sysdeps/unix/sysv/linux/ftruncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ftruncate64.c b/sysdeps/unix/sysv/linux/ftruncate64.c
index 65deb26..e1d71e7 100644
--- a/sysdeps/unix/sysv/linux/ftruncate64.c
+++ b/sysdeps/unix/sysv/linux/ftruncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/futimens.c b/sysdeps/unix/sysv/linux/futimens.c
index 040aee9..d9ba0ee 100644
--- a/sysdeps/unix/sysv/linux/futimens.c
+++ b/sysdeps/unix/sysv/linux/futimens.c
@@ -1,5 +1,5 @@
/* Change access and modification times of open file. Linux version.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/futimes.c b/sysdeps/unix/sysv/linux/futimes.c
index 87e31f2..57e0531 100644
--- a/sysdeps/unix/sysv/linux/futimes.c
+++ b/sysdeps/unix/sysv/linux/futimes.c
@@ -1,5 +1,5 @@
/* futimes -- change access and modification times of open file. Linux version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futimesat.c
index e5f3e46..b9e01ad 100644
--- a/sysdeps/unix/sysv/linux/futimesat.c
+++ b/sysdeps/unix/sysv/linux/futimesat.c
@@ -1,5 +1,5 @@
/* futimesat -- Change access and modification times of file. Linux version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/fxstat.c b/sysdeps/unix/sysv/linux/fxstat.c
index 5254cce..859fa01 100644
--- a/sysdeps/unix/sysv/linux/fxstat.c
+++ b/sysdeps/unix/sysv/linux/fxstat.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix fstat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,7 +38,7 @@ __fxstat (int vers, int fd, struct stat *buf)
{
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky */
int r = INLINE_SYSCALL_CALL (fstat64, fd, buf);
return r ?: stat_overflow (buf);
# else
diff --git a/sysdeps/unix/sysv/linux/fxstat64.c b/sysdeps/unix/sysv/linux/fxstat64.c
index 230374c..5e8cbb9 100644
--- a/sysdeps/unix/sysv/linux/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/fxstat64.c
@@ -1,5 +1,5 @@
/* fxstat64 using Linux fstat64/statx system call.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -61,7 +61,7 @@ ___fxstat64 (int vers, int fd, struct stat64 *buf)
# endif
#else
/* All kABIs with non-LFS support, e.g. arm, csky, i386, hppa, m68k,
- microblaze, mips32, nios2, sh, powerpc32, and sparc32. */
+ microblaze, mips32, sh, powerpc32, and sparc32. */
return INLINE_SYSCALL_CALL (fstat64, fd, buf);
#endif /* XSTAT_IS_XSTAT64 */
}
diff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c
index 5cb92a1..e729f9f 100644
--- a/sysdeps/unix/sysv/linux/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/fxstatat.c
@@ -1,5 +1,5 @@
/* fxstatat used on fstatat, Linux implementation.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -34,7 +34,7 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
{
#if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI, e.g.
- csky, nios2 */
+ csky. */
if (vers == _STAT_VER_KERNEL)
{
int r = INLINE_SYSCALL_CALL (fstatat64, fd, file, st, flag);
diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c b/sysdeps/unix/sysv/linux/fxstatat64.c
index 5255ca0..8645092 100644
--- a/sysdeps/unix/sysv/linux/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/fxstatat64.c
@@ -1,5 +1,5 @@
/* fxstatat64 used on fstatat64, Linux implementation.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -58,7 +58,7 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
# endif
#else
/* All kABIs with non-LFS support, e.g. arm, csky, i386, hppa, m68k,
- microblaze, mips32, nios2, sh, powerpc32, and sparc32. */
+ microblaze, mips32, sh, powerpc32, and sparc32. */
if (vers == _STAT_VER_LINUX)
return INLINE_SYSCALL_CALL (fstatat64, fd, file, st, flag);
#endif
diff --git a/sysdeps/unix/sysv/linux/gai_sigqueue.c b/sysdeps/unix/sysv/linux/gai_sigqueue.c
index 3610158..9d3bedf 100644
--- a/sysdeps/unix/sysv/linux/gai_sigqueue.c
+++ b/sysdeps/unix/sysv/linux/gai_sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/gen-syscall-h.awk b/sysdeps/unix/sysv/linux/gen-syscall-h.awk
index a54a7bf..ebd06d8 100644
--- a/sysdeps/unix/sysv/linux/gen-syscall-h.awk
+++ b/sysdeps/unix/sysv/linux/gen-syscall-h.awk
@@ -1,5 +1,5 @@
# Generate SYS_* macros from a list in a text file.
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/gentempfd.c b/sysdeps/unix/sysv/linux/gentempfd.c
index 963e9d7..1cdadc1 100644
--- a/sysdeps/unix/sysv/linux/gentempfd.c
+++ b/sysdeps/unix/sysv/linux/gentempfd.c
@@ -1,5 +1,5 @@
/* Generate a temporary file descriptor. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getclktck.c b/sysdeps/unix/sysv/linux/getclktck.c
index 5fe525b..5027a39 100644
--- a/sysdeps/unix/sysv/linux/getclktck.c
+++ b/sysdeps/unix/sysv/linux/getclktck.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getcpu.c b/sysdeps/unix/sysv/linux/getcpu.c
index 0e7c323..ad15f14 100644
--- a/sysdeps/unix/sysv/linux/getcpu.c
+++ b/sysdeps/unix/sysv/linux/getcpu.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getcwd.c b/sysdeps/unix/sysv/linux/getcwd.c
index d05b83a..2e40a28 100644
--- a/sysdeps/unix/sysv/linux/getcwd.c
+++ b/sysdeps/unix/sysv/linux/getcwd.c
@@ -1,5 +1,5 @@
/* Determine current working directory. Linux version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getdents.c b/sysdeps/unix/sysv/linux/getdents.c
index 9ac6a4d..41f4535 100644
--- a/sysdeps/unix/sysv/linux/getdents.c
+++ b/sysdeps/unix/sysv/linux/getdents.c
@@ -1,5 +1,5 @@
/* Get directory entries. Linux non-LFS version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getdents64.c b/sysdeps/unix/sysv/linux/getdents64.c
index 227fbf2..152b4f8 100644
--- a/sysdeps/unix/sysv/linux/getdents64.c
+++ b/sysdeps/unix/sysv/linux/getdents64.c
@@ -1,5 +1,5 @@
/* Get directory entries. Linux LFS version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -33,100 +33,3 @@ __getdents64 (int fd, void *buf, size_t nbytes)
}
libc_hidden_def (__getdents64)
weak_alias (__getdents64, getdents64)
-
-#if _DIRENT_MATCHES_DIRENT64
-strong_alias (__getdents64, __getdents)
-#else
-# include <shlib-compat.h>
-
-# if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
-# include <olddirent.h>
-# include <unistd.h>
-
-static ssize_t
-handle_overflow (int fd, __off64_t offset, ssize_t count)
-{
- /* If this is the first entry in the buffer, we can report the
- error. */
- if (offset == 0)
- {
- __set_errno (EOVERFLOW);
- return -1;
- }
-
- /* Otherwise, seek to the overflowing entry, so that the next call
- will report the error, and return the data read so far. */
- if (__lseek64 (fd, offset, SEEK_SET) != 0)
- return -1;
- return count;
-}
-
-ssize_t
-__old_getdents64 (int fd, char *buf, size_t nbytes)
-{
- /* We do not move the individual directory entries. This is only
- possible if the target type (struct __old_dirent64) is smaller
- than the source type. */
- _Static_assert (offsetof (struct __old_dirent64, d_name)
- <= offsetof (struct dirent64, d_name),
- "__old_dirent64 is larger than dirent64");
- _Static_assert (__alignof__ (struct __old_dirent64)
- <= __alignof__ (struct dirent64),
- "alignment of __old_dirent64 is larger than dirent64");
-
- ssize_t retval = INLINE_SYSCALL_CALL (getdents64, fd, buf, nbytes);
- if (retval > 0)
- {
- /* This is the marker for the first entry. Offset 0 is reserved
- for the first entry (see rewinddir). Here, we use it as a
- marker for the first entry in the buffer. We never actually
- seek to offset 0 because handle_overflow reports the error
- directly, so it does not matter that the offset is incorrect
- if entries have been read from the descriptor before (so that
- the descriptor is not actually at offset 0). */
- __off64_t previous_offset = 0;
-
- char *p = buf;
- char *end = buf + retval;
- while (p < end)
- {
- struct dirent64 *source = (struct dirent64 *) p;
-
- /* Copy out the fixed-size data. */
- __ino_t ino = source->d_ino;
- __off64_t offset = source->d_off;
- unsigned int reclen = source->d_reclen;
- unsigned char type = source->d_type;
-
- /* Check for ino_t overflow. */
- if (__glibc_unlikely (ino != source->d_ino))
- return handle_overflow (fd, previous_offset, p - buf);
-
- /* Convert to the target layout. Use a separate struct and
- memcpy to side-step aliasing issues. */
- struct __old_dirent64 result;
- result.d_ino = ino;
- result.d_off = offset;
- result.d_reclen = reclen;
- result.d_type = type;
-
- /* Write the fixed-sized part of the result to the
- buffer. */
- size_t result_name_offset = offsetof (struct __old_dirent64, d_name);
- memcpy (p, &result, result_name_offset);
-
- /* Adjust the position of the name if necessary. Copy
- everything until the end of the record, including the
- terminating NUL byte. */
- if (result_name_offset != offsetof (struct dirent64, d_name))
- memmove (p + result_name_offset, source->d_name,
- reclen - offsetof (struct dirent64, d_name));
-
- p += reclen;
- previous_offset = offset;
- }
- }
- return retval;
-}
-# endif /* SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2) */
-#endif /* _DIRENT_MATCHES_DIRENT64 */
diff --git a/sysdeps/unix/sysv/linux/getdirentries.c b/sysdeps/unix/sysv/linux/getdirentries.c
index fcd5d32..0d9ee3d 100644
--- a/sysdeps/unix/sysv/linux/getdirentries.c
+++ b/sysdeps/unix/sysv/linux/getdirentries.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getdirentries64.c b/sysdeps/unix/sysv/linux/getdirentries64.c
index 3bcc414..7edc373 100644
--- a/sysdeps/unix/sysv/linux/getdirentries64.c
+++ b/sysdeps/unix/sysv/linux/getdirentries64.c
@@ -1,5 +1,5 @@
/* Get directory entries in a filesystem-independent format. LFS version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getdtsz.c b/sysdeps/unix/sysv/linux/getdtsz.c
index 68d1176..32fd6df 100644
--- a/sysdeps/unix/sysv/linux/getdtsz.c
+++ b/sysdeps/unix/sysv/linux/getdtsz.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getentropy.c b/sysdeps/unix/sysv/linux/getentropy.c
index 2d8030a..a62c9fb 100644
--- a/sysdeps/unix/sysv/linux/getentropy.c
+++ b/sysdeps/unix/sysv/linux/getentropy.c
@@ -1,5 +1,5 @@
/* Implementation of getentropy based on the getrandom system call.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/gethostid.c b/sysdeps/unix/sysv/linux/gethostid.c
index a4be8a7..b0869e2 100644
--- a/sysdeps/unix/sysv/linux/gethostid.c
+++ b/sysdeps/unix/sysv/linux/gethostid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getipv4sourcefilter.c b/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
index 271eaa7..877c037 100644
--- a/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
+++ b/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
@@ -1,5 +1,5 @@
/* Get IPv4 source filter. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getitimer.c b/sysdeps/unix/sysv/linux/getitimer.c
index dd1a4b5..efd60da 100644
--- a/sysdeps/unix/sysv/linux/getitimer.c
+++ b/sysdeps/unix/sysv/linux/getitimer.c
@@ -1,5 +1,5 @@
/* getitimer -- Get the state of an interval timer. Linux/32 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getloadavg.c b/sysdeps/unix/sysv/linux/getloadavg.c
index 6a9c958..2ab47e2 100644
--- a/sysdeps/unix/sysv/linux/getloadavg.c
+++ b/sysdeps/unix/sysv/linux/getloadavg.c
@@ -1,5 +1,5 @@
/* Get system load averages. Linux version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getlogin.c b/sysdeps/unix/sysv/linux/getlogin.c
index 5019062..b439381 100644
--- a/sysdeps/unix/sysv/linux/getlogin.c
+++ b/sysdeps/unix/sysv/linux/getlogin.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c
index 8f8decc..f03ecd4 100644
--- a/sysdeps/unix/sysv/linux/getlogin_r.c
+++ b/sysdeps/unix/sysv/linux/getlogin_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getpagesize.c b/sysdeps/unix/sysv/linux/getpagesize.c
index dd5e6fc..3de5c4e 100644
--- a/sysdeps/unix/sysv/linux/getpagesize.c
+++ b/sysdeps/unix/sysv/linux/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getpeername.c b/sysdeps/unix/sysv/linux/getpeername.c
index 86f9b73..a8da0aa 100644
--- a/sysdeps/unix/sysv/linux/getpeername.c
+++ b/sysdeps/unix/sysv/linux/getpeername.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getpriority.c b/sysdeps/unix/sysv/linux/getpriority.c
index 89d0ee9..a9b84d5 100644
--- a/sysdeps/unix/sysv/linux/getpriority.c
+++ b/sysdeps/unix/sysv/linux/getpriority.c
@@ -1,5 +1,5 @@
/* getpriority for Linux.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getpt.c b/sysdeps/unix/sysv/linux/getpt.c
index 6b9eb7d..6748f6f 100644
--- a/sysdeps/unix/sysv/linux/getpt.c
+++ b/sysdeps/unix/sysv/linux/getpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getrandom-internal.h b/sysdeps/unix/sysv/linux/getrandom-internal.h
new file mode 100644
index 0000000..67e6e56
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/getrandom-internal.h
@@ -0,0 +1,29 @@
+/* Internal definitions for Linux getrandom implementation.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _GETRANDOM_INTERNAL_H
+#define _GETRANDOM_INTERNAL_H
+
+#include <pthreadP.h>
+
+extern void __getrandom_early_init (_Bool) attribute_hidden;
+
+extern void __getrandom_fork_subprocess (void) attribute_hidden;
+extern void __getrandom_vdso_release (struct pthread *curp) attribute_hidden;
+extern void __getrandom_reset_state (struct pthread *curp) attribute_hidden;
+#endif
diff --git a/sysdeps/unix/sysv/linux/getrandom.c b/sysdeps/unix/sysv/linux/getrandom.c
index 777d1de..6b7be5e 100644
--- a/sysdeps/unix/sysv/linux/getrandom.c
+++ b/sysdeps/unix/sysv/linux/getrandom.c
@@ -1,5 +1,5 @@
/* Implementation of the getrandom system call.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,13 +20,340 @@
#include <errno.h>
#include <unistd.h>
#include <sysdep-cancel.h>
+#include <sysdep.h>
+#include <sysdep-vdso.h>
+
+static inline ssize_t
+getrandom_syscall (void *buffer, size_t length, unsigned int flags,
+ bool cancel)
+{
+ return cancel
+ ? SYSCALL_CANCEL (getrandom, buffer, length, flags)
+ : INLINE_SYSCALL_CALL (getrandom, buffer, length, flags);
+}
+
+#ifdef HAVE_GETRANDOM_VSYSCALL
+# include <assert.h>
+# include <ldsodefs.h>
+# include <libc-lock.h>
+# include <list.h>
+# include <setvmaname.h>
+# include <sys/mman.h>
+# include <sys/sysinfo.h>
+# include <tls-internal.h>
+
+/* These values will be initialized at loading time by calling the
+ _dl_vdso_getrandom with a special value. The 'state_size' is the opaque
+ state size per-thread allocated with a mmap using 'mmap_prot' and
+ 'mmap_flags' argument. */
+static uint32_t state_size;
+static uint32_t state_size_cache_aligned;
+static uint32_t mmap_prot;
+static uint32_t mmap_flags;
+
+/* The function below are used on reentracy handling with (i.e. SA_NODEFER).
+ Before allocating a new state or issue the vDSO, atomically read the
+ current thread buffer, and if this is already reserved (is_reserved_ptr)
+ fallback to the syscall. Otherwise, reserve the buffer by atomically
+ setting the LSB of the opaque state pointer. The bit is cleared after the
+ vDSO is called, or before issuing the fallback syscall. */
+
+static inline void *reserve_ptr (void *p)
+{
+ return (void *) ((uintptr_t) (p) | 1UL);
+}
+
+static inline void *release_ptr (void *p)
+{
+ return (void *) ((uintptr_t) (p) & ~1UL);
+}
+
+static inline bool is_reserved_ptr (void *p)
+{
+ return (uintptr_t) (p) & 1UL;
+}
+
+static struct
+{
+ __libc_lock_define (, lock);
+
+ void **states; /* Queue of opaque states allocated with the kernel
+ provided flags and used on getrandom vDSO call. */
+ size_t len; /* Number of available free states in the queue. */
+ size_t total; /* Number of states allocated from the kernel. */
+ size_t cap; /* Total number of states that 'states' can hold before
+ needed to be resized. */
+} grnd_alloc = {
+ .lock = LLL_LOCK_INITIALIZER
+};
+
+static bool
+vgetrandom_get_state_alloc (void)
+{
+ /* Start by allocating one page for the opaque states. */
+ size_t block_size = ALIGN_UP (state_size_cache_aligned, GLRO(dl_pagesize));
+ size_t states_per_page = GLRO (dl_pagesize) / state_size_cache_aligned;
+ void *block = __mmap (NULL, GLRO(dl_pagesize), mmap_prot, mmap_flags, -1, 0);
+ if (block == MAP_FAILED)
+ return false;
+ __set_vma_name (block, block_size, " glibc: getrandom");
+
+ if (grnd_alloc.total + states_per_page > grnd_alloc.cap)
+ {
+ /* Use a new mmap instead of trying to mremap. It avoids a
+ potential multithread fork issue where fork is called just after
+ mremap returns but before assigning to the grnd_alloc.states,
+ thus making the its value invalid in the child. */
+ void *old_states = grnd_alloc.states;
+ size_t new_states_size = ALIGN_UP ((grnd_alloc.total + states_per_page)
+ * sizeof (*grnd_alloc.states),
+ GLRO(dl_pagesize));
+
+ /* There is no need to memcpy any opaque state information because
+ all the allocated opaque states are assigned to running threads
+ (meaning that if we iterate over them we can reconstruct the state
+ list). */
+ void **states = __mmap (NULL, new_states_size, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+ if (states == MAP_FAILED)
+ {
+ __munmap (block, block_size);
+ return false;
+ }
+
+ /* Atomically replace the old state, so if a fork happens the child
+ process will see a consistent free state buffer. The size might
+ not be updated, but it does not really matter since the buffer is
+ always increased. */
+ grnd_alloc.states = states;
+ atomic_thread_fence_seq_cst ();
+ if (old_states != NULL)
+ __munmap (old_states, grnd_alloc.cap * sizeof (*grnd_alloc.states));
+
+ __set_vma_name (states, new_states_size, " glibc: getrandom states");
+ grnd_alloc.cap = new_states_size / sizeof (*grnd_alloc.states);
+ atomic_thread_fence_seq_cst ();
+ }
+
+ for (size_t i = 0; i < states_per_page; ++i)
+ {
+ /* There is no need to handle states that straddle a page because
+ we allocate only one page. */
+ grnd_alloc.states[i] = block;
+ block += state_size_cache_aligned;
+ }
+ /* Concurrent fork should not observe the previous pointer value. */
+ grnd_alloc.len = states_per_page;
+ grnd_alloc.total += states_per_page;
+ atomic_thread_fence_seq_cst ();
+
+ return true;
+}
+
+/* Allocate an opaque state for vgetrandom. If the grnd_alloc does not have
+ any, mmap() another page of them using the vgetrandom parameters. */
+static void *
+vgetrandom_get_state (void)
+{
+ void *state = NULL;
+
+ /* The signal blocking avoid the potential issue where _Fork() (which is
+ async-signal-safe) is called with the lock taken. The function is
+ called only once during thread lifetime, so the overhead should be
+ minimal. */
+ internal_sigset_t set;
+ internal_signal_block_all (&set);
+ __libc_lock_lock (grnd_alloc.lock);
+
+ if (grnd_alloc.len > 0 || vgetrandom_get_state_alloc ())
+ state = grnd_alloc.states[--grnd_alloc.len];
+
+ /* Barrier needed by fork: The state must be gone from the array
+ through len update before it becomes visible in the TCB. (There
+ is also a release barrier implied by the unlock, but issue a
+ stronger barrier to help fork.) */
+ atomic_thread_fence_seq_cst ();
+ __libc_lock_unlock (grnd_alloc.lock);
+ internal_signal_restore_set (&set);
+
+ return state;
+}
+
+/* Returns true when vgetrandom is used successfully. Returns false if the
+ syscall fallback should be issued in the case the vDSO is not present, in
+ the case of reentrancy, or if any memory allocation fails. */
+static ssize_t
+getrandom_vdso (void *buffer, size_t length, unsigned int flags, bool cancel)
+{
+ if (__glibc_unlikely (state_size == 0))
+ return getrandom_syscall (buffer, length, flags, cancel);
+
+ struct pthread *self = THREAD_SELF;
+
+ void *state = atomic_load_relaxed (&self->getrandom_buf);
+ if (is_reserved_ptr (state))
+ return getrandom_syscall (buffer, length, flags, cancel);
+ atomic_store_relaxed (&self->getrandom_buf, reserve_ptr (state));
+ __atomic_signal_fence (__ATOMIC_ACQ_REL);
+
+ bool r = false;
+ if (state == NULL)
+ {
+ state = vgetrandom_get_state ();
+ if (state == NULL)
+ goto out;
+ }
+
+ /* Since the vDSO implementation does not issue the syscall with the
+ cancellation bridge (__syscall_cancel_arch), use GRND_NONBLOCK so there
+ is no potential unbounded blocking in the kernel. It should be a rare
+ situation, only at system startup when RNG is not initialized. */
+ long int ret = INTERNAL_VSYSCALL_CALL (GLRO (dl_vdso_getrandom), 5,
+ buffer,
+ length,
+ flags | GRND_NONBLOCK,
+ state,
+ state_size);
+ if (INTERNAL_SYSCALL_ERROR_P (ret))
+ {
+ /* Fallback to the syscall if the kernel would block. */
+ int err = INTERNAL_SYSCALL_ERRNO (ret);
+ if (err == EAGAIN && !(flags & GRND_NONBLOCK))
+ goto out;
+
+ __set_errno (err);
+ ret = -1;
+ }
+ r = true;
+
+out:
+ __atomic_signal_fence (__ATOMIC_ACQ_REL);
+ atomic_store_relaxed (&self->getrandom_buf, state);
+ return r ? ret : getrandom_syscall (buffer, length, flags, cancel);
+}
+#endif
+
+void
+__getrandom_early_init (_Bool initial)
+{
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ /* libcs loaded for audit modules, dlmopen, etc. fallback to syscall. */
+ if (initial && (GLRO (dl_vdso_getrandom) != NULL))
+ {
+ /* Used to query the vDSO for the required mmap flags and the opaque
+ per-thread state size. Defined by linux/random.h. */
+ struct vgetrandom_opaque_params
+ {
+ uint32_t size_of_opaque_state;
+ uint32_t mmap_prot;
+ uint32_t mmap_flags;
+ uint32_t reserved[13];
+ } params;
+ long int ret = INTERNAL_VSYSCALL_CALL (GLRO(dl_vdso_getrandom),
+ 5, NULL, 0, 0, &params, ~0UL);
+ if (ret == 0)
+ {
+ /* Align each opaque state to L1 data cache size to avoid false
+ sharing. If the size can not be obtained, use the kernel
+ provided one. */
+ state_size = params.size_of_opaque_state;
+
+ long int ld1sz = __sysconf (_SC_LEVEL1_DCACHE_LINESIZE);
+ if (ld1sz <= 0)
+ ld1sz = 1;
+ state_size_cache_aligned = ALIGN_UP (state_size, ld1sz);
+ /* Do not enable vDSO if the required opaque state size is larger
+ than a page because we only allocate one page per time to hold
+ the states. */
+ if (state_size_cache_aligned > GLRO(dl_pagesize))
+ {
+ state_size = 0;
+ return;
+ }
+ mmap_prot = params.mmap_prot;
+ mmap_flags = params.mmap_flags;
+ }
+ }
+#endif
+}
+
+/* Re-add the state state from CURP on the free list. This function is
+ called after fork returns in the child, so no locking is required. */
+void
+__getrandom_reset_state (struct pthread *curp)
+{
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ /* The pointer can be reserved if the fork happened during a
+ getrandom call. */
+ void *buf = release_ptr (curp->getrandom_buf);
+ if (grnd_alloc.states == NULL || buf == NULL)
+ return;
+ assert (grnd_alloc.len < grnd_alloc.cap);
+ grnd_alloc.states[grnd_alloc.len++] = release_ptr (curp->getrandom_buf);
+ curp->getrandom_buf = NULL;
+#endif
+}
+
+/* Called when a thread terminates, and adds its random buffer back into the
+ allocator pool for use in a future thread. This is called by
+ pthread_create during thread termination, and after signal has been
+ blocked. */
+void
+__getrandom_vdso_release (struct pthread *curp)
+{
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ /* The pointer can be reserved if the thread was canceled in a
+ signal handler. */
+ void *buf = release_ptr (curp->getrandom_buf);
+ if (buf == NULL)
+ return;
+
+ __libc_lock_lock (grnd_alloc.lock);
+
+ size_t len = grnd_alloc.len;
+ grnd_alloc.states[len] = curp->getrandom_buf;
+ curp->getrandom_buf = NULL;
+ /* Barrier needed by fork: The state must vanish from the TCB before
+ it becomes visible in the states array. Also avoid exposing the
+ previous entry value at the same index in the states array (which
+ may be in use by another thread). */
+ atomic_thread_fence_seq_cst ();
+ grnd_alloc.len = len + 1;
+ __libc_lock_unlock (grnd_alloc.lock);
+#endif
+}
+
+/* Reset the internal lock state in case another thread has locked while
+ this thread calls fork. The stale thread states will be handled by
+ reclaim_stacks which calls __getrandom_reset_state on each thread. */
+void
+__getrandom_fork_subprocess (void)
+{
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ grnd_alloc.lock = LLL_LOCK_INITIALIZER;
+#endif
+}
+
+ssize_t
+__getrandom_nocancel (void *buffer, size_t length, unsigned int flags)
+{
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ return getrandom_vdso (buffer, length, flags, false);
+#else
+ return getrandom_syscall (buffer, length, flags, false);
+#endif
+}
/* Write up to LENGTH bytes of randomness starting at BUFFER.
Return the number of bytes written, or -1 on error. */
ssize_t
__getrandom (void *buffer, size_t length, unsigned int flags)
{
- return SYSCALL_CANCEL (getrandom, buffer, length, flags);
+#ifdef HAVE_GETRANDOM_VSYSCALL
+ return getrandom_vdso (buffer, length, flags, true);
+#else
+ return getrandom_syscall (buffer, length, flags, true);
+#endif
}
libc_hidden_def (__getrandom)
weak_alias (__getrandom, getrandom)
diff --git a/sysdeps/unix/sysv/linux/getrlimit.c b/sysdeps/unix/sysv/linux/getrlimit.c
index 2519d0c..642eb2c 100644
--- a/sysdeps/unix/sysv/linux/getrlimit.c
+++ b/sysdeps/unix/sysv/linux/getrlimit.c
@@ -1,5 +1,5 @@
/* Linux getrlimit implementation (32 bits rlim_t).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getrlimit64.c b/sysdeps/unix/sysv/linux/getrlimit64.c
index 451cef4..8500fe3 100644
--- a/sysdeps/unix/sysv/linux/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/getrlimit64.c
@@ -1,5 +1,5 @@
/* Linux getrlimit64 implementation (64 bits rlim_t).
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getrusage.c b/sysdeps/unix/sysv/linux/getrusage.c
index 9126e1f..0501b7d 100644
--- a/sysdeps/unix/sysv/linux/getrusage.c
+++ b/sysdeps/unix/sysv/linux/getrusage.c
@@ -1,5 +1,5 @@
/* getrusage -- get the rusage struct. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getsockname.c b/sysdeps/unix/sysv/linux/getsockname.c
index 6c04bee..e6fe14d 100644
--- a/sysdeps/unix/sysv/linux/getsockname.c
+++ b/sysdeps/unix/sysv/linux/getsockname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getsockopt.c b/sysdeps/unix/sysv/linux/getsockopt.c
index e6aa5e4..fcce4ff 100644
--- a/sysdeps/unix/sysv/linux/getsockopt.c
+++ b/sysdeps/unix/sysv/linux/getsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getsourcefilter.c b/sysdeps/unix/sysv/linux/getsourcefilter.c
index a5124d5..745b2f6 100644
--- a/sysdeps/unix/sysv/linux/getsourcefilter.c
+++ b/sysdeps/unix/sysv/linux/getsourcefilter.c
@@ -1,5 +1,5 @@
/* Get source filter. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getsourcefilter.h b/sysdeps/unix/sysv/linux/getsourcefilter.h
index 544b5d6..ed884f3 100644
--- a/sysdeps/unix/sysv/linux/getsourcefilter.h
+++ b/sysdeps/unix/sysv/linux/getsourcefilter.h
@@ -1,5 +1,5 @@
/* __get_sol function prototype.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c
index 1c041b7..c3bc83f 100644
--- a/sysdeps/unix/sysv/linux/getsysstats.c
+++ b/sysdeps/unix/sysv/linux/getsysstats.c
@@ -1,5 +1,5 @@
/* Determine various system internal values, Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/gettimeofday.c b/sysdeps/unix/sysv/linux/gettimeofday.c
index 7ab147c..e2a2155 100644
--- a/sysdeps/unix/sysv/linux/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday - set time. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -31,23 +31,23 @@
static int
__gettimeofday_syscall (struct timeval *restrict tv, void *restrict tz)
{
- if (__glibc_unlikely (tz != 0))
+ if (__glibc_unlikely (tz != NULL))
memset (tz, 0, sizeof *tz);
return INLINE_SYSCALL_CALL (gettimeofday, tv, tz);
}
# undef INIT_ARCH
-# define INIT_ARCH() \
- void *vdso_gettimeofday = dl_vdso_vsym (HAVE_GETTIMEOFDAY_VSYSCALL)
+# define INIT_ARCH()
libc_ifunc (__gettimeofday,
- vdso_gettimeofday ? VDSO_IFUNC_RET (vdso_gettimeofday)
- : (void *) __gettimeofday_syscall)
+ GLRO(dl_vdso_gettimeofday) != NULL
+ ? VDSO_IFUNC_RET (GLRO(dl_vdso_gettimeofday))
+ : (void *) __gettimeofday_syscall)
# else
int
__gettimeofday (struct timeval *restrict tv, void *restrict tz)
{
- if (__glibc_unlikely (tz != 0))
+ if (__glibc_unlikely (tz != NULL))
memset (tz, 0, sizeof *tz);
return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
diff --git a/sysdeps/unix/sysv/linux/glibcsyscalls.py b/sysdeps/unix/sysv/linux/glibcsyscalls.py
index 1cf2fb9..8604d10 100644
--- a/sysdeps/unix/sysv/linux/glibcsyscalls.py
+++ b/sysdeps/unix/sysv/linux/glibcsyscalls.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Helpers for glibc system call list processing.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/glob-lstat-compat.c b/sysdeps/unix/sysv/linux/glob-lstat-compat.c
index 07bdec0..0162bab 100644
--- a/sysdeps/unix/sysv/linux/glob-lstat-compat.c
+++ b/sysdeps/unix/sysv/linux/glob-lstat-compat.c
@@ -1,6 +1,6 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
Linux version which handles LFS when required.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/glob.c b/sysdeps/unix/sysv/linux/glob.c
index 63057fd..e08c356 100644
--- a/sysdeps/unix/sysv/linux/glob.c
+++ b/sysdeps/unix/sysv/linux/glob.c
@@ -1,5 +1,5 @@
/* Find pathnames matching a pattern. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/glob64-lstat-compat.c b/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
index cc91180..02545b5 100644
--- a/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
+++ b/sysdeps/unix/sysv/linux/glob64-lstat-compat.c
@@ -1,6 +1,6 @@
/* Compat glob which does not use gl_lstat for GLOB_ALTDIRFUNC.
Linux version which handles LFS when required.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/glob64-time64.c b/sysdeps/unix/sysv/linux/glob64-time64.c
index 36c2df3..9575ce6 100644
--- a/sysdeps/unix/sysv/linux/glob64-time64.c
+++ b/sysdeps/unix/sysv/linux/glob64-time64.c
@@ -1,5 +1,5 @@
/* Find pathnames matching a pattern. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/glob64.c b/sysdeps/unix/sysv/linux/glob64.c
index d0e8daf..c0686e2 100644
--- a/sysdeps/unix/sysv/linux/glob64.c
+++ b/sysdeps/unix/sysv/linux/glob64.c
@@ -1,5 +1,5 @@
/* Find pathnames matching a pattern. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/globfree.c b/sysdeps/unix/sysv/linux/globfree.c
index 536eb0e..5f169ed 100644
--- a/sysdeps/unix/sysv/linux/globfree.c
+++ b/sysdeps/unix/sysv/linux/globfree.c
@@ -1,6 +1,6 @@
/* Frees the dynamically allocated storage from an earlier call to glob.
Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/globfree64-time64.c b/sysdeps/unix/sysv/linux/globfree64-time64.c
index 0fa87b2..05adcf8 100644
--- a/sysdeps/unix/sysv/linux/globfree64-time64.c
+++ b/sysdeps/unix/sysv/linux/globfree64-time64.c
@@ -1,6 +1,6 @@
/* Frees the dynamically allocated storage from an earlier call to glob.
Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/globfree64.c b/sysdeps/unix/sysv/linux/globfree64.c
index 48d7de4..e39a5ab 100644
--- a/sysdeps/unix/sysv/linux/globfree64.c
+++ b/sysdeps/unix/sysv/linux/globfree64.c
@@ -1,6 +1,6 @@
/* Frees the dynamically allocated storage from an earlier call to glob.
Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/grantpt.c b/sysdeps/unix/sysv/linux/grantpt.c
index 5e29c9e..83f9ba5 100644
--- a/sysdeps/unix/sysv/linux/grantpt.c
+++ b/sysdeps/unix/sysv/linux/grantpt.c
@@ -1,5 +1,5 @@
/* grantpt implementation for Linux.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/Makefile b/sysdeps/unix/sysv/linux/hppa/Makefile
index 2e031e2..9eebe8e 100644
--- a/sysdeps/unix/sysv/linux/hppa/Makefile
+++ b/sysdeps/unix/sysv/linux/hppa/Makefile
@@ -15,6 +15,11 @@ test-xfail-check-wx-segment = *
endif # $(subdir) == elf
+ifeq ($(subdir),misc)
+sysdep_routines += cacheflush
+sysdep_headers += sys/cachectl.h
+endif
+
ifeq ($(subdir),debug)
test-xfail-tst-ssp-1 = $(have-ssp)
endif # $(subdir) == debug
diff --git a/sysdeps/unix/sysv/linux/hppa/Versions b/sysdeps/unix/sysv/linux/hppa/Versions
index 78528e5..1f83840 100644
--- a/sysdeps/unix/sysv/linux/hppa/Versions
+++ b/sysdeps/unix/sysv/linux/hppa/Versions
@@ -23,4 +23,7 @@ libc {
GLIBC_2.19 {
fanotify_mark;
}
+ GLIBC_2.41 {
+ cacheflush;
+ }
}
diff --git a/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c b/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
index 9eb893d..845507b 100644
--- a/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/arch-syscall.h b/sysdeps/unix/sysv/linux/hppa/arch-syscall.h
index 08b153f..d8ffab9 100644
--- a/sysdeps/unix/sysv/linux/hppa/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/hppa/arch-syscall.h
@@ -124,6 +124,7 @@
#define __NR_gettimeofday 78
#define __NR_getuid 24
#define __NR_getxattr 241
+#define __NR_getxattrat 464
#define __NR_init_module 128
#define __NR_inotify_add_watch 270
#define __NR_inotify_init 269
@@ -157,6 +158,7 @@
#define __NR_listen 32
#define __NR_listmount 458
#define __NR_listxattr 244
+#define __NR_listxattrat 465
#define __NR_llistxattr 245
#define __NR_lookup_dcookie 223
#define __NR_lremovexattr 248
@@ -212,6 +214,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 326
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 275
#define __NR_openat2 437
#define __NR_pause 29
@@ -259,6 +262,7 @@
#define __NR_recvmsg 184
#define __NR_remap_file_pages 227
#define __NR_removexattr 247
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 282
#define __NR_renameat2 337
@@ -324,6 +328,7 @@
#define __NR_settimeofday 79
#define __NR_setuid 23
#define __NR_setxattr 238
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 192
#define __NR_shmctl 195
diff --git a/sysdeps/unix/sysv/linux/hppa/atomic-machine.h b/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
index f1c9573..85b820d 100644
--- a/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/epoll.h b/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
index e91fddd..8a4b507 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/errno.h b/sysdeps/unix/sysv/linux/hppa/bits/errno.h
index 84052e8..cca71b0 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux/HPPA specific version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h b/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
index d825ee2..c86e421 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h b/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
index 096e341..009737e 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/inotify.h b/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
index 31354ed..9d35862 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h b/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
index f0b0ffa..6563be8 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h
index 4dab95c..07cda67 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h
@@ -1,5 +1,5 @@
/* struct ipc_perm definition.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/mman.h b/sysdeps/unix/sysv/linux/hppa/bits/mman.h
index 111e9e9..b73ae2e 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/HPPA version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/procfs.h b/sysdeps/unix/sysv/linux/hppa/bits/procfs.h
index cc7d33a..ad169c3 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. HPPA version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h b/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h
index 772f3e6..6dabe4b 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. HPPA version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h b/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
index 17d1843..0ef9742 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
@@ -1,5 +1,5 @@
/* Definitions for Linux/HPPA sigaction.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h b/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
index 3bc8889..9ea2c46 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h b/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
index 10a9405..d959131 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/HPPA version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h b/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h
index 80a76a1..4a4ba8e 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures. Version for hppa.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h b/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
index ce42be8..93d7f9a 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/HP-PARISC.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h b/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h
index 09ea400..13e0b9f 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat. Linux/hppa version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h b/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
index bbac12c..47782dd 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/timesize.h b/sysdeps/unix/sysv/linux/hppa/bits/timesize.h
index 7c6f2ef..fe83909 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/HPPA.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
index 4995e0a..31dd5a5 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Linux/HPPA implementation of the SysV message struct msqid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h
index df88949..adf43a6 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* HPPA implementation of the semaphore struct semid_ds
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h
index cb3b030..9e332eb 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Linux/HPPA implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/typesizes.h b/sysdeps/unix/sysv/linux/hppa/bits/typesizes.h
index 18498e3..f4cfb48 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. HPPA version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h b/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h
index 6ecbfe7..be457d8 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/clone.S b/sysdeps/unix/sysv/linux/hppa/clone.S
index a31afea..a4dc6eb 100644
--- a/sysdeps/unix/sysv/linux/hppa/clone.S
+++ b/sysdeps/unix/sysv/linux/hppa/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -59,16 +59,6 @@
.text
ENTRY(__clone)
- /* Prologue */
- stwm %r4, 64(%sp)
- .cfi_def_cfa_offset -64
- .cfi_offset 4, 0
- stw %sp, -4(%sp)
-#ifdef PIC
- stw %r19, -32(%sp)
- .cfi_offset 19, 32
-#endif
-
/* Sanity check arguments. */
comib,=,n 0,%arg0,.LerrorSanity /* no NULL function pointers */
comib,=,n 0,%arg1,.LerrorSanity /* no NULL stack pointers */
@@ -87,54 +77,33 @@ ENTRY(__clone)
/* User stack pointer is in the correct register already */
/* Load args from stack... */
- ldw -116(%sp), %r24 /* Load parent_tidptr */
- ldw -120(%sp), %r23 /* Load newtls */
- ldw -124(%sp), %r22 /* Load child_tidptr */
-
- /* Save the PIC register. */
-#ifdef PIC
- copy %r19, %r4 /* parent */
-#endif
+ ldw -52(%sp), %r24 /* Load parent_tidptr */
+ ldw -56(%sp), %r23 /* Load newtls */
+ ldw -60(%sp), %r22 /* Load child_tidptr */
/* Do the system call */
ble 0x100(%sr2, %r0)
ldi __NR_clone, %r20
ldi -4096, %r1
- comclr,>>= %r1, %ret0, %r0 /* Note: unsigned compare. */
- b,n .LerrorRest
-
- /* Restore the PIC register. */
-#ifdef PIC
- copy %r4, %r19 /* parent */
-#endif
-
+ comb,<<,n %r1, %ret0, .LerrorRest /* Note: unsigned compare. */
comib,=,n 0, %ret0, .LthreadStart
+ bv,n %r0(%rp)
- /* Successful return from the parent
- No need to restore the PIC register,
- since we return immediately. */
-
- ldw -84(%sp), %rp
- bv %r0(%rp)
- ldwm -64(%sp), %r4
+.LerrorSanity:
+ /* Sanity checks failed, set errno to EINVAL. */
+ ldi -EINVAL, %ret0
.LerrorRest:
- /* Something bad happened -- no child created */
+ /* Something bad happened -- no child created -- need a frame */
+ ldo 64(%sp),%sp
+ .cfi_def_cfa_offset -64
bl __syscall_error, %rp
sub %r0, %ret0, %arg0
ldw -84(%sp), %rp
/* Return after setting errno, ret0 is set to -1 by __syscall_error. */
bv %r0(%rp)
- ldwm -64(%sp), %r4
-
-.LerrorSanity:
- /* Sanity checks failed, return -1, and set errno to EINVAL. */
- bl __syscall_error, %rp
- ldi EINVAL, %arg0
- ldw -84(%sp), %rp
- bv %r0(%rp)
- ldwm -64(%sp), %r4
+ ldo -64(%sp), %sp
.LthreadStart:
/* Load up the arguments. */
@@ -144,20 +113,14 @@ ENTRY(__clone)
/* $$dyncall fixes child's PIC register */
/* Call the user's function */
-#ifdef PIC
- copy %r19, %r4
-#endif
bl $$dyncall, %r31
copy %r31, %rp
-#ifdef PIC
- copy %r4, %r19
-#endif
copy %r28, %r26
ble 0x100(%sr2, %r0)
ldi __NR_exit, %r20
/* We should not return from exit.
- We do not restore r4, or the stack state. */
+ We do not restore the stack state. */
iitlbp %r0, (%sr0, %r0)
PSEUDO_END(__clone)
diff --git a/sysdeps/unix/sysv/linux/hppa/errlist-compat-data.h b/sysdeps/unix/sysv/linux/hppa/errlist-compat-data.h
index fc626c9..97fd597 100644
--- a/sysdeps/unix/sysv/linux/hppa/errlist-compat-data.h
+++ b/sysdeps/unix/sysv/linux/hppa/errlist-compat-data.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compat symbol definitions. HPPA version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/getcontext.S b/sysdeps/unix/sysv/linux/hppa/getcontext.S
index e4ef57e..ac0f610 100644
--- a/sysdeps/unix/sysv/linux/hppa/getcontext.S
+++ b/sysdeps/unix/sysv/linux/hppa/getcontext.S
@@ -1,5 +1,5 @@
/* Get current user context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
index c4f09a2..1027141 100644
--- a/sysdeps/unix/sysv/linux/hppa/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index fbcd60c..86b3fbd 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2821,6 +2821,26 @@ GLIBC_2.4 sys_errlist D 0x400
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 cacheflush F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index d29139e..d681d6e 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/hppa/makecontext.c b/sysdeps/unix/sysv/linux/hppa/makecontext.c
index 168f00e..4d35457 100644
--- a/sysdeps/unix/sysv/linux/hppa/makecontext.c
+++ b/sysdeps/unix/sysv/linux/hppa/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/setcontext.S b/sysdeps/unix/sysv/linux/hppa/setcontext.S
index 7816c00..979f989 100644
--- a/sysdeps/unix/sysv/linux/hppa/setcontext.S
+++ b/sysdeps/unix/sysv/linux/hppa/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h b/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h
index bc815f1..d1f4f3a 100644
--- a/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* Machine-dependent SIGPROF signal handler. PA-RISC version
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h b/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h
index ca07f3f..42deec5 100644
--- a/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h
+++ b/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h
@@ -1,5 +1,5 @@
/* Compat socket constants used in 64-bit compat code.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/swapcontext.S b/sysdeps/unix/sysv/linux/hppa/swapcontext.S
index e2fdb77..13e7f83 100644
--- a/sysdeps/unix/sysv/linux/hppa/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/hppa/swapcontext.S
@@ -1,5 +1,5 @@
/* Swap to new context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h b/sysdeps/unix/sysv/linux/hppa/sys/cachectl.h
index c39afca..5bcbfd5 100644
--- a/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/hppa/sys/cachectl.h
@@ -1,5 +1,5 @@
-/* cacheflush - flush contents of instruction and/or data cache.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* HPPA cache flushing interface.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,12 +21,15 @@
#include <features.h>
+/* Get the kernel definition for the op bits. */
+#include <asm/cachectl.h>
+
__BEGIN_DECLS
#ifdef __USE_MISC
-extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW;
+extern int cacheflush (void *__addr, const int __nbytes,
+ const int __op) __THROW;
#endif
-extern int _flush_cache (char *__addr, const int __nbytes, const int __op) __THROW;
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
index 7c6ddb8..9823577 100644
--- a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/syscall_cancel.S b/sysdeps/unix/sysv/linux/hppa/syscall_cancel.S
new file mode 100644
index 0000000..19f95c9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/syscall_cancel.S
@@ -0,0 +1,81 @@
+/* Cancellable syscall wrapper. Linux/hppa version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ long int nr,
+ long int arg1,
+ long int arg2,
+ long int arg3,
+ long int arg4,
+ long int arg5,
+ long int arg6) */
+
+ .text
+ENTRY(__syscall_cancel_arch)
+ stw %r2,-20(%r30)
+ ldo 128(%r30),%r30
+ cfi_def_cfa_offset (-128)
+ cfi_offset (2, -20)
+ ldw -180(%r30),%r28
+ copy %r26,%r20
+ stw %r28,-108(%r30)
+ ldw -184(%r30),%r28
+ copy %r24,%r26
+ stw %r28,-112(%r30)
+ ldw -188(%r30),%r28
+ stw %r28,-116(%r30)
+ ldw -192(%r30),%r28
+ stw %r4,-104(%r30)
+ stw %r28,-120(%r30)
+ copy %r25,%r28
+ copy %r23,%r25
+#ifdef __PIC__
+ stw %r19,-32(%r30)
+#endif
+ cfi_offset (4, 24)
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ ldw 0(%r20),%r20
+ bb,< %r20,31-TCB_CANCELED_BIT,1f
+ ldw -120(%r30),%r21
+ ldw -116(%r30),%r22
+ ldw -112(%r30),%r23
+ ldw -108(%r30),%r24
+ copy %r19, %r4
+ ble 0x100(%sr2, %r0)
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ copy %r28,%r20
+ copy %r4,%r19
+
+ ldw -148(%r30),%r2
+ ldw -104(%r30),%r4
+ bv %r0(%r2)
+ ldo -128(%r30),%r30
+1:
+ bl __syscall_do_cancel,%r2
+ nop
+ nop
+
+END(__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/hppa/syscalls.list b/sysdeps/unix/sysv/linux/hppa/syscalls.list
index 12e4ade..b302011 100644
--- a/sysdeps/unix/sysv/linux/hppa/syscalls.list
+++ b/sysdeps/unix/sysv/linux/hppa/syscalls.list
@@ -8,5 +8,6 @@ listen - listen i:ii __listen listen
shutdown - shutdown i:ii __shutdown shutdown
socket - socket i:iii __socket socket
socketpair - socketpair i:iiif __socketpair socketpair
+cacheflush - cacheflush i:pii _flush_cache cacheflush
personality EXTRA personality Ei:i __personality personality
diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep.c b/sysdeps/unix/sysv/linux/hppa/sysdep.c
index 20179c4..2c979aa 100644
--- a/sysdeps/unix/sysv/linux/hppa/sysdep.c
+++ b/sysdeps/unix/sysv/linux/hppa/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep.h b/sysdeps/unix/sysv/linux/hppa/sysdep.h
index e47975e..bba525b 100644
--- a/sysdeps/unix/sysv/linux/hppa/sysdep.h
+++ b/sysdeps/unix/sysv/linux/hppa/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for PA-RISC.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/hppa/vfork.S b/sysdeps/unix/sysv/linux/hppa/vfork.S
new file mode 100644
index 0000000..79dae15
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/hppa/vfork.S
@@ -0,0 +1,53 @@
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+ ble 0x100(%sr2, %r0)
+ ldi __NR_vfork, %r20
+
+ ldi -4096, %r1
+ comclr,<< %r1, %ret0, %r0 /* Note: unsigned compare. */
+ bv,n %r0(%rp)
+
+ /* Something bad happened -- no child created -- we need a frame */
+ ldo 64(%sp), %sp
+ .cfi_def_cfa_offset -64
+
+ /* Set errno */
+ bl __syscall_error, %rp
+ sub %r0, %ret0, %arg0
+
+ /* ret0 is set to -1 by __syscall_error */
+ ldw -84(%sp), %rp
+ bv %r0(%rp)
+ ldo -64(%sp), %sp
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
index 35538f6..e468d34 100644
--- a/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/arch-syscall.h b/sysdeps/unix/sysv/linux/i386/arch-syscall.h
index 500ca1e..196dfec 100644
--- a/sysdeps/unix/sysv/linux/i386/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/i386/arch-syscall.h
@@ -140,6 +140,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 229
+#define __NR_getxattrat 464
#define __NR_gtty 32
#define __NR_idle 112
#define __NR_init_module 128
@@ -178,6 +179,7 @@
#define __NR_listen 363
#define __NR_listmount 458
#define __NR_listxattr 232
+#define __NR_listxattrat 465
#define __NR_llistxattr 233
#define __NR_lock 53
#define __NR_lookup_dcookie 253
@@ -243,6 +245,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 342
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 295
#define __NR_openat2 437
#define __NR_pause 29
@@ -294,6 +297,7 @@
#define __NR_recvmsg 372
#define __NR_remap_file_pages 257
#define __NR_removexattr 235
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 302
#define __NR_renameat2 353
@@ -367,6 +371,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 226
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/i386/brk.c b/sysdeps/unix/sysv/linux/i386/brk.c
index db0bede..b9aa65f 100644
--- a/sysdeps/unix/sysv/linux/i386/brk.c
+++ b/sysdeps/unix/sysv/linux/i386/brk.c
@@ -1,5 +1,5 @@
/* brk system call for Linux/i386.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S
index 41b2049..5ed5a2e 100644
--- a/sysdeps/unix/sysv/linux/i386/clone.S
+++ b/sysdeps/unix/sysv/linux/i386/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/clone3.S b/sysdeps/unix/sysv/linux/i386/clone3.S
index 6803e59..139cc02 100644
--- a/sysdeps/unix/sysv/linux/i386/clone3.S
+++ b/sysdeps/unix/sysv/linux/i386/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/i386 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/dl-sysdep.h b/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
index 7c33130..60f6d4d 100644
--- a/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. i386 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/dl-writev.h b/sysdeps/unix/sysv/linux/i386/dl-writev.h
index b6e05ad..d0c03f9 100644
--- a/sysdeps/unix/sysv/linux/i386/dl-writev.h
+++ b/sysdeps/unix/sysv/linux/i386/dl-writev.h
@@ -1,5 +1,5 @@
/* Message-writing for the dynamic linker. Linux/i386 version.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/getcontext.S b/sysdeps/unix/sysv/linux/i386/getcontext.S
index 9c1ca3c..799cdd3 100644
--- a/sysdeps/unix/sysv/linux/i386/getcontext.S
+++ b/sysdeps/unix/sysv/linux/i386/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h b/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
index 203d7a2..0ecd9c5 100644
--- a/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific settings for dynamic linker code. IA-32 version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/kernel-features.h b/sysdeps/unix/sysv/linux/i386/kernel-features.h
index 446acfc..d21e3ba 100644
--- a/sysdeps/unix/sysv/linux/i386/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/i386/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. i386 version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/ldconfig.h b/sysdeps/unix/sysv/linux/i386/ldconfig.h
index 147ca09..c15c0ea 100644
--- a/sysdeps/unix/sysv/linux/i386/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/i386/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/libc-do-syscall-int80.S b/sysdeps/unix/sysv/linux/i386/libc-do-syscall-int80.S
index ee46ff9..96d05f0 100644
--- a/sysdeps/unix/sysv/linux/i386/libc-do-syscall-int80.S
+++ b/sysdeps/unix/sysv/linux/i386/libc-do-syscall-int80.S
@@ -1,5 +1,5 @@
/* Out-of-line syscall stub for six-argument syscalls from C. For static PIE.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S b/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
index e39fb2c..053353c 100644
--- a/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
+++ b/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
@@ -1,5 +1,5 @@
/* Out-of-line syscall stub for six-argument syscalls from C.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index c989b43..6555592 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -3005,6 +3005,25 @@ GLIBC_2.4 sys_errlist D 0x210
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/i386/libc_sigaction.c b/sysdeps/unix/sysv/linux/i386/libc_sigaction.c
index 9d225d5..4940435 100644
--- a/sysdeps/unix/sysv/linux/i386/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/i386/libc_sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 `sigaction' call for Linux/i386.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 0797f3f..de77b0f 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1228,3 +1228,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/i386/makecontext.S b/sysdeps/unix/sysv/linux/i386/makecontext.S
index 7ee5630..1ccd10c 100644
--- a/sysdeps/unix/sysv/linux/i386/makecontext.S
+++ b/sysdeps/unix/sysv/linux/i386/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/pointer_guard.h b/sysdeps/unix/sysv/linux/i386/pointer_guard.h
index 79373d5..ae27c82 100644
--- a/sysdeps/unix/sysv/linux/i386/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/i386/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. i386 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/setcontext.S b/sysdeps/unix/sysv/linux/i386/setcontext.S
index b6d827d..b9b5258 100644
--- a/sysdeps/unix/sysv/linux/i386/setcontext.S
+++ b/sysdeps/unix/sysv/linux/i386/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h b/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
index 6de0ff4..ec151b1 100644
--- a/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/startup.h b/sysdeps/unix/sysv/linux/i386/startup.h
index c329a1a..29083c2 100644
--- a/sysdeps/unix/sysv/linux/i386/startup.h
+++ b/sysdeps/unix/sysv/linux/i386/startup.h
@@ -1,5 +1,5 @@
/* Linux/i386 definitions of functions used by static libc main startup.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/swapcontext.S b/sysdeps/unix/sysv/linux/i386/swapcontext.S
index bb736ae..18446be 100644
--- a/sysdeps/unix/sysv/linux/i386/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/i386/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/syscall.S b/sysdeps/unix/sysv/linux/i386/syscall.S
index d5bd580..99d2f70 100644
--- a/sysdeps/unix/sysv/linux/i386/syscall.S
+++ b/sysdeps/unix/sysv/linux/i386/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/syscall_cancel.S b/sysdeps/unix/sysv/linux/i386/syscall_cancel.S
new file mode 100644
index 0000000..4a9247e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/i386/syscall_cancel.S
@@ -0,0 +1,104 @@
+/* Cancellable syscall wrapper. Linux/i686 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int [eax] __syscall_cancel_arch (int *cancelhandling [SP],
+ long int nr [SP+4],
+ long int arg1 [SP+8],
+ long int arg2 [SP+12],
+ long int arg3 [SP+16],
+ long int arg4 [SP+20],
+ long int arg5 [SP+24],
+ long int arg6 [SP+28]) */
+
+ENTRY (__syscall_cancel_arch)
+ pushl %ebp
+ cfi_def_cfa_offset (8)
+ cfi_offset (ebp, -8)
+ pushl %edi
+ cfi_def_cfa_offset (12)
+ cfi_offset (edi, -12)
+ pushl %esi
+ cfi_def_cfa_offset (16)
+ cfi_offset (esi, -16)
+ pushl %ebx
+ cfi_def_cfa_offset (20)
+ cfi_offset (ebx, -20)
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ movl 20(%esp), %eax
+ testb $TCB_CANCELED_BITMASK, (%eax)
+ jne 1f
+
+ /* Issue a 6 argument syscall, the nr [%eax] being the syscall
+ number. */
+ movl 24(%esp), %eax
+ movl 28(%esp), %ebx
+ movl 32(%esp), %ecx
+ movl 36(%esp), %edx
+ movl 40(%esp), %esi
+ movl 44(%esp), %edi
+ movl 48(%esp), %ebp
+
+ /* We can not use the vDSO helper for syscall (__kernel_vsyscall)
+ because the returned PC from kernel will point to the vDSO page
+ instead of the expected __syscall_cancel_arch_{start,end}
+ marks. */
+ int $0x80
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ popl %ebx
+ cfi_restore (ebx)
+ cfi_def_cfa_offset (16)
+ popl %esi
+ cfi_restore (esi)
+ cfi_def_cfa_offset (12)
+ popl %edi
+ cfi_restore (edi)
+ cfi_def_cfa_offset (8)
+ popl %ebp
+ cfi_restore (ebp)
+ cfi_def_cfa_offset (4)
+ ret
+
+1:
+ /* Although the __syscall_do_cancel do not return, we need to stack
+ being set correctly for unwind. */
+ popl %ebx
+ cfi_restore (ebx)
+ cfi_def_cfa_offset (16)
+ popl %esi
+ cfi_restore (esi)
+ cfi_def_cfa_offset (12)
+ popl %edi
+ cfi_restore (edi)
+ cfi_def_cfa_offset (8)
+ popl %ebp
+ cfi_restore (ebp)
+ cfi_def_cfa_offset (4)
+ jmp __syscall_do_cancel
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.c b/sysdeps/unix/sysv/linux/i386/sysdep.c
index 5cf58cb..5897ce2 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.c
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 25852f8..87806a7 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c
index 5ee644c..b40d8d7 100644
--- a/sysdeps/unix/sysv/linux/i386/tst-bz21269.c
+++ b/sysdeps/unix/sysv/linux/i386/tst-bz21269.c
@@ -1,5 +1,5 @@
/* Test for i386 sigaction sa_restorer handling (BZ#21269)
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/i386/vfork.S b/sysdeps/unix/sysv/linux/i386/vfork.S
index 8846b61..a37a553 100644
--- a/sysdeps/unix/sysv/linux/i386/vfork.S
+++ b/sysdeps/unix/sysv/linux/i386/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c
index 3b4de1d..5d13759 100644
--- a/sysdeps/unix/sysv/linux/if_index.c
+++ b/sysdeps/unix/sysv/linux/if_index.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,35 +32,23 @@
unsigned int
__if_nametoindex (const char *ifname)
{
-#ifndef SIOCGIFINDEX
- __set_errno (ENOSYS);
- return 0;
-#else
- struct ifreq ifr;
if (strlen (ifname) >= IFNAMSIZ)
{
__set_errno (ENODEV);
return 0;
}
- strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
-
int fd = __opensock ();
-
if (fd < 0)
return 0;
- if (__ioctl (fd, SIOCGIFINDEX, &ifr) < 0)
- {
- int saved_errno = errno;
- __close_nocancel_nostatus (fd);
- if (saved_errno == EINVAL)
- __set_errno (ENOSYS);
- return 0;
- }
+ struct ifreq ifr;
+ strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
+
+ int status = __ioctl (fd, SIOCGIFINDEX, &ifr);
__close_nocancel_nostatus (fd);
- return ifr.ifr_ifindex;
-#endif
+
+ return status < 0 ? 0 : ifr.ifr_ifindex;
}
libc_hidden_def (__if_nametoindex)
weak_alias (__if_nametoindex, if_nametoindex)
@@ -83,8 +71,8 @@ weak_alias (__if_freenameindex, if_freenameindex)
libc_hidden_weak (if_freenameindex)
-static struct if_nameindex *
-if_nameindex_netlink (void)
+struct if_nameindex *
+__if_nameindex (void)
{
struct netlink_handle nh = { 0, 0, 0, NULL, NULL };
struct if_nameindex *idx = NULL;
@@ -196,19 +184,6 @@ if_nameindex_netlink (void)
return idx;
}
-
-
-struct if_nameindex *
-__if_nameindex (void)
-{
-#ifndef SIOCGIFINDEX
- __set_errno (ENOSYS);
- return NULL;
-#else
- struct if_nameindex *result = if_nameindex_netlink ();
- return result;
-#endif
-}
weak_alias (__if_nameindex, if_nameindex)
libc_hidden_weak (if_nameindex)
diff --git a/sysdeps/unix/sysv/linux/ifaddrs.c b/sysdeps/unix/sysv/linux/ifaddrs.c
index 10b26d8..ddc4be7 100644
--- a/sysdeps/unix/sysv/linux/ifaddrs.c
+++ b/sysdeps/unix/sysv/linux/ifaddrs.c
@@ -1,5 +1,5 @@
/* getifaddrs -- get names and addresses of all network interfaces
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ifreq.c b/sysdeps/unix/sysv/linux/ifreq.c
index 035a53f..45f3b5b 100644
--- a/sysdeps/unix/sysv/linux/ifreq.c
+++ b/sysdeps/unix/sysv/linux/ifreq.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/include/bits/mman-shared.h b/sysdeps/unix/sysv/linux/include/bits/mman-shared.h
new file mode 100644
index 0000000..7c14b5d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/include/bits/mman-shared.h
@@ -0,0 +1,16 @@
+#include <sysdeps/unix/sysv/linux/bits/mman-shared.h>
+
+#ifndef _ISOMAC
+
+extern __typeof (pkey_alloc) __pkey_alloc;
+libc_hidden_proto (__pkey_alloc)
+extern __typeof (pkey_free) __pkey_free;
+libc_hidden_proto (__pkey_free)
+extern __typeof (pkey_mprotect) __pkey_mprotect;
+libc_hidden_proto (__pkey_mprotect)
+extern __typeof (pkey_get) __pkey_get;
+libc_hidden_proto (__pkey_get)
+extern __typeof (pkey_set) __pkey_set;
+libc_hidden_proto (__pkey_set)
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/include/sys/mount.h b/sysdeps/unix/sysv/linux/include/sys/mount.h
index 5850927..9c57692 100644
--- a/sysdeps/unix/sysv/linux/include/sys/mount.h
+++ b/sysdeps/unix/sysv/linux/include/sys/mount.h
@@ -1,5 +1,5 @@
/* Internal declarations for sys/mount.h.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/include/sys/syscall.h b/sysdeps/unix/sysv/linux/include/sys/syscall.h
index 07d7d71..5a2f42c 100644
--- a/sysdeps/unix/sysv/linux/include/sys/syscall.h
+++ b/sysdeps/unix/sysv/linux/include/sys/syscall.h
@@ -1,5 +1,5 @@
/* Wrapper header for <sys/syscall.h>. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/include/sys/sysinfo.h b/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
index 2317a26..62d95f2 100644
--- a/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
+++ b/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
@@ -1,5 +1,5 @@
/* Internal declarations for sys/sysinfo.h.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/include/sys/timex.h b/sysdeps/unix/sysv/linux/include/sys/timex.h
index c4a0af4..8af305d 100644
--- a/sysdeps/unix/sysv/linux/include/sys/timex.h
+++ b/sysdeps/unix/sysv/linux/include/sys/timex.h
@@ -1,5 +1,5 @@
/* Internal declarations for sys/timex.h.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/inotify_init.c b/sysdeps/unix/sysv/linux/inotify_init.c
index b5b36a8..9998e64 100644
--- a/sysdeps/unix/sysv/linux/inotify_init.c
+++ b/sysdeps/unix/sysv/linux/inotify_init.c
@@ -1,5 +1,5 @@
/* Initialize an inotify instance. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/internal-ioctl.h b/sysdeps/unix/sysv/linux/internal-ioctl.h
index 58ab209..841f2b2 100644
--- a/sysdeps/unix/sysv/linux/internal-ioctl.h
+++ b/sysdeps/unix/sysv/linux/internal-ioctl.h
@@ -1,5 +1,5 @@
/* Linux internal definitions for ioctl.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/internal-signals.h b/sysdeps/unix/sysv/linux/internal-signals.h
index a6fae59..ecb00f5 100644
--- a/sysdeps/unix/sysv/linux/internal-signals.h
+++ b/sysdeps/unix/sysv/linux/internal-signals.h
@@ -1,5 +1,5 @@
/* Special use of signals internally. Linux version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -90,6 +90,15 @@ internal_signal_restore_set (const internal_sigset_t *set)
__NSIG_BYTES);
}
+static inline void
+internal_signal_unblock_signal (int sig)
+{
+ internal_sigset_t set;
+ internal_sigemptyset (&set);
+ internal_sigaddset (&set, sig);
+ INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_UNBLOCK, &set, NULL,
+ __NSIG_BYTES);
+}
/* It is used on timer_create code directly on sigwaitinfo call, so it can not
use the internal_sigset_t definitions. */
diff --git a/sysdeps/unix/sysv/linux/internal-sigset.h b/sysdeps/unix/sysv/linux/internal-sigset.h
index 5d7020b..a1a6c32 100644
--- a/sysdeps/unix/sysv/linux/internal-sigset.h
+++ b/sysdeps/unix/sysv/linux/internal-sigset.h
@@ -1,5 +1,5 @@
/* Internal sigset_t definition.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
#include <sigsetops.h>
-typedef struct
+typedef struct _internal_sigset_t
{
unsigned long int __val[__NSIG_WORDS];
} internal_sigset_t;
diff --git a/sysdeps/unix/sysv/linux/internal-stat.h b/sysdeps/unix/sysv/linux/internal-stat.h
index 9334059..61fca97 100644
--- a/sysdeps/unix/sysv/linux/internal-stat.h
+++ b/sysdeps/unix/sysv/linux/internal-stat.h
@@ -1,5 +1,5 @@
/* Internal stat definitions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c
index e8c046e..fe6a433 100644
--- a/sysdeps/unix/sysv/linux/internal_statvfs.c
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.h b/sysdeps/unix/sysv/linux/internal_statvfs.h
index 6d23860..8c5f0a7 100644
--- a/sysdeps/unix/sysv/linux/internal_statvfs.h
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.h
@@ -1,5 +1,5 @@
/* Internal statvfs/statvfs64 function prototypes.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ioctl.c b/sysdeps/unix/sysv/linux/ioctl.c
index 230aeda..b0d3747 100644
--- a/sysdeps/unix/sysv/linux/ioctl.c
+++ b/sysdeps/unix/sysv/linux/ioctl.c
@@ -1,5 +1,5 @@
/* Control device. Linux generic implementation.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ipc_ops.h b/sysdeps/unix/sysv/linux/ipc_ops.h
index f9b9109..0b2270d 100644
--- a/sysdeps/unix/sysv/linux/ipc_ops.h
+++ b/sysdeps/unix/sysv/linux/ipc_ops.h
@@ -1,5 +1,5 @@
/* The codes for the functions to use the ipc syscall multiplexer.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ipc_priv.h b/sysdeps/unix/sysv/linux/ipc_priv.h
index 8b8341c..6ace4b7 100644
--- a/sysdeps/unix/sysv/linux/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. Default version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/isatty.c b/sysdeps/unix/sysv/linux/isatty.c
new file mode 100644
index 0000000..3faaec5
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/isatty.c
@@ -0,0 +1,29 @@
+/* Test whether a file descriptor refers to a terminal. Linux version.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <termios_internals.h>
+
+/* Return 1 if FD is a terminal, 0 if not. This simply does a
+ TCGETS2 ioctl into a dummy buffer without parsing the result. */
+int
+__isatty (int fd)
+{
+ struct termios2 k_termios;
+ return INLINE_SYSCALL_CALL (ioctl, fd, TCGETS2, &k_termios) == 0;
+}
+weak_alias (__isatty, isatty)
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel-features.h b/sysdeps/unix/sysv/linux/isatty_nostatus.c
index 9b16a95..406decb 100644
--- a/sysdeps/unix/sysv/linux/nios2/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/isatty_nostatus.c
@@ -1,6 +1,4 @@
-/* Set flags signalling availability of kernel features based on given
- kernel version number. NIOS2 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -14,11 +12,15 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
+ License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include_next <kernel-features.h>
+#include <termios_internals.h>
-/* nios2 does not provide clone3. */
-#undef __ASSUME_CLONE3
-#define __ASSUME_CLONE3 0
+/* Return 1 if FD is a terminal, 0 if not, without changing errno */
+int
+__isatty_nostatus (int fd)
+{
+ struct termios2 k_termios;
+ return INTERNAL_SYSCALL_CALL (ioctl, fd, TCGETS2, &k_termios) == 0;
+}
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index a25cf07..a49a915 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,6 +54,10 @@
configurations). */
#define __ASSUME_SET_ROBUST_LIST 1
+/* The termios2 interface was introduced across all architectures except
+ Alpha in kernel 2.6.22. */
+#define __ASSUME_TERMIOS2 1
+
/* Support for various CLOEXEC and NONBLOCK flags was added in
2.6.27. */
#define __ASSUME_IN_NONBLOCK 1
diff --git a/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
index d10b000..3000953 100644
--- a/sysdeps/unix/sysv/linux/kernel-posix-timers.h
+++ b/sysdeps/unix/sysv/linux/kernel-posix-timers.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/kernel_stat.h b/sysdeps/unix/sysv/linux/kernel_stat.h
index b6cfc4a..a861c94 100644
--- a/sysdeps/unix/sysv/linux/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/kernel_stat.h
@@ -1,5 +1,5 @@
/* Internal definitions for stat functions.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/kernel_termios.h b/sysdeps/unix/sysv/linux/kernel_termios.h
deleted file mode 100644
index 12d9b92..0000000
--- a/sysdeps/unix/sysv/linux/kernel_termios.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _KERNEL_TERMIOS_H
-#define _KERNEL_TERMIOS_H 1
-/* The following corresponds to the values from the Linux 2.1.20 kernel. */
-
-#define __KERNEL_NCCS 19
-
-struct __kernel_termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[__KERNEL_NCCS]; /* control characters */
- };
-
-#define _HAVE_C_ISPEED 0
-#define _HAVE_C_OSPEED 0
-
-#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/lchown.c b/sysdeps/unix/sysv/linux/lchown.c
index c4699ed..090df24 100644
--- a/sysdeps/unix/sysv/linux/lchown.c
+++ b/sysdeps/unix/sysv/linux/lchown.c
@@ -1,5 +1,5 @@
/* Change ownership of a file. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ldsodefs.h b/sysdeps/unix/sysv/linux/ldsodefs.h
index d847376..25a6058 100644
--- a/sysdeps/unix/sysv/linux/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/libc-vdso.h b/sysdeps/unix/sysv/linux/libc-vdso.h
index d854350..a0c2064 100644
--- a/sysdeps/unix/sysv/linux/libc-vdso.h
+++ b/sysdeps/unix/sysv/linux/libc-vdso.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/libc_fatal.c b/sysdeps/unix/sysv/linux/libc_fatal.c
index 4676757..72d7328 100644
--- a/sysdeps/unix/sysv/linux/libc_fatal.c
+++ b/sysdeps/unix/sysv/linux/libc_fatal.c
@@ -1,5 +1,5 @@
/* Catastrophic failure reports. Linux version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/libc_sigaction.c b/sysdeps/unix/sysv/linux/libc_sigaction.c
index 8b894d3..67dbc04 100644
--- a/sysdeps/unix/sysv/linux/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/libc_sigaction.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -49,7 +49,7 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
{
kact.k_sa_handler = act->sa_handler;
memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
- kact.sa_flags = act->sa_flags;
+ kact.sa_flags = (unsigned int) act->sa_flags;
SET_SA_RESTORER (&kact, act);
}
diff --git a/sysdeps/unix/sysv/linux/librt-compat.c b/sysdeps/unix/sysv/linux/librt-compat.c
index 973e518..b755bd4 100644
--- a/sysdeps/unix/sysv/linux/librt-compat.c
+++ b/sysdeps/unix/sysv/linux/librt-compat.c
@@ -1,5 +1,5 @@
/* Placeholder definitions to pull in removed symbol versions. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/link.c b/sysdeps/unix/sysv/linux/link.c
index 3dfc7c8..06bda8e 100644
--- a/sysdeps/unix/sysv/linux/link.c
+++ b/sysdeps/unix/sysv/linux/link.c
@@ -1,5 +1,5 @@
/* Make a new name for a file. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/linux_fsinfo.h b/sysdeps/unix/sysv/linux/linux_fsinfo.h
index 7beda01..9758942 100644
--- a/sysdeps/unix/sysv/linux/linux_fsinfo.h
+++ b/sysdeps/unix/sysv/linux/linux_fsinfo.h
@@ -1,5 +1,5 @@
/* Constants from kernel header for various FSes.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -251,6 +251,7 @@
#define XFS_SUPER_MAGIC 0x58465342
/* Maximum link counts. */
+#define BTRFS_LINK_MAX 65535
#define COH_LINK_MAX 10000
#define EXT2_LINK_MAX 32000
#define EXT4_LINK_MAX 65000
diff --git a/sysdeps/unix/sysv/linux/listen.c b/sysdeps/unix/sysv/linux/listen.c
index a27c6df..25dfedc 100644
--- a/sysdeps/unix/sysv/linux/listen.c
+++ b/sysdeps/unix/sysv/linux/listen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h b/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h
index 8bb8244..f57a152 100644
--- a/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/loongarch/arch-syscall.h
@@ -93,6 +93,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -122,6 +123,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_lookup_dcookie 18
#define __NR_lremovexattr 15
@@ -169,6 +171,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -208,6 +211,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat2 276
#define __NR_request_key 218
#define __NR_restart_syscall 128
@@ -264,6 +268,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/loongarch/atomic-machine.h b/sysdeps/unix/sysv/linux/loongarch/atomic-machine.h
index 0962826..683e947 100644
--- a/sysdeps/unix/sysv/linux/loongarch/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/loongarch/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/fcntl.h b/sysdeps/unix/sysv/linux/loongarch/bits/fcntl.h
index c10c65d..f06e702 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for the generic Linux/LoongArch ABI.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h b/sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h
index 16d17fa..99920ff 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP. LoongArch64 Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -36,3 +36,4 @@
#define HWCAP_LOONGARCH_LBT_ARM (1 << 11)
#define HWCAP_LOONGARCH_LBT_MIPS (1 << 12)
#define HWCAP_LOONGARCH_PTW (1 << 13)
+#define HWCAP_LOONGARCH_LSPW (1 << 14)
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/procfs.h b/sysdeps/unix/sysv/linux/loongarch/bits/procfs.h
index 85f311f..c4088d8 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/loongarch/bits/pthread_stack_min.h
index 5b16627..4c8c8a4 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. LoongArch Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/rseq.h b/sysdeps/unix/sysv/linux/loongarch/bits/rseq.h
new file mode 100644
index 0000000..a7413ae
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/rseq.h
@@ -0,0 +1,36 @@
+/* Restartable Sequences Linux LoongArch architecture header.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_RSEQ_H
+# error "Never use <bits/rseq.h> directly; include <sys/rseq.h> instead."
+#endif
+
+/* RSEQ_SIG is a signature required before each abort handler code.
+
+ It is a 32-bit value that maps to actual architecture code compiled
+ into applications and libraries. It needs to be defined for each
+ architecture. When choosing this value, it needs to be taken into
+ account that generating invalid instructions may have ill effects on
+ tools like objdump, and may also have impact on the CPU speculative
+ execution efficiency in some cases.
+
+ RSEQ_SIG uses the following break instruction:
+
+ 0x002a0010 break 0x10
+*/
+
+#define RSEQ_SIG 0x002a0010
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h b/sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h
index 8ff960a..e74644d 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. LoongArch version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/bits/sigstack.h b/sysdeps/unix/sysv/linux/loongarch/bits/sigstack.h
index 61da2e9..f94a549 100644
--- a/sysdeps/unix/sysv/linux/loongarch/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/loongarch/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/clone.S b/sysdeps/unix/sysv/linux/loongarch/clone.S
index c4fd93d..2a68dd3 100644
--- a/sysdeps/unix/sysv/linux/loongarch/clone.S
+++ b/sysdeps/unix/sysv/linux/loongarch/clone.S
@@ -1,5 +1,5 @@
/* The clone syscall wrapper.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/clone3.S b/sysdeps/unix/sysv/linux/loongarch/clone3.S
index dfffb1f..39d43ca 100644
--- a/sysdeps/unix/sysv/linux/loongarch/clone3.S
+++ b/sysdeps/unix/sysv/linux/loongarch/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/cpu-features.c b/sysdeps/unix/sysv/linux/loongarch/cpu-features.c
index ba6201a..5162c52 100644
--- a/sysdeps/unix/sysv/linux/loongarch/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/loongarch/cpu-features.c
@@ -1,6 +1,6 @@
/* Initialize CPU feature data. LoongArch64 version.
This file is part of the GNU C Library.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/loongarch/cpu-features.h b/sysdeps/unix/sysv/linux/loongarch/cpu-features.h
index eec5195..726b6e4 100644
--- a/sysdeps/unix/sysv/linux/loongarch/cpu-features.h
+++ b/sysdeps/unix/sysv/linux/loongarch/cpu-features.h
@@ -1,6 +1,6 @@
/* Initialize CPU feature data. LoongArch64 version.
This file is part of the GNU C Library.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/loongarch/dl-cache.h b/sysdeps/unix/sysv/linux/loongarch/dl-cache.h
index 6f88368..629c71d 100644
--- a/sysdeps/unix/sysv/linux/loongarch/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/loongarch/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c b/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c
index 5e056a1..853e57f 100644
--- a/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c
+++ b/sysdeps/unix/sysv/linux/loongarch/dl-procinfo.c
@@ -1,6 +1,6 @@
/* Data for LoongArch64 version of processor capability information.
Linux version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c b/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c
index 30b84f1..a7ae605 100644
--- a/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/loongarch/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. LoongArch version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/loongarch/fixup-asm-unistd.h
new file mode 100644
index 0000000..c1b89ce
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/loongarch/fixup-asm-unistd.h
@@ -0,0 +1,21 @@
+/* Regularize <asm/unistd.h> definitions. LoongArch version.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* To avoid the messy usage of the fstat, newfstatat, and statx system calls, we
+only use statx. */
+#undef __NR_fstat
+#undef __NR_newfstatat
diff --git a/sysdeps/unix/sysv/linux/loongarch/getcontext.S b/sysdeps/unix/sysv/linux/loongarch/getcontext.S
index 79e14d8..4e78c7c 100644
--- a/sysdeps/unix/sysv/linux/loongarch/getcontext.S
+++ b/sysdeps/unix/sysv/linux/loongarch/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c b/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c
index 72043dd..93ea6ce 100644
--- a/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/loongarch/gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday -- Get the current time of day.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/libc-start.c b/sysdeps/unix/sysv/linux/loongarch/libc-start.c
index e545f7f..51e276f 100644
--- a/sysdeps/unix/sysv/linux/loongarch/libc-start.c
+++ b/sysdeps/unix/sysv/linux/loongarch/libc-start.c
@@ -1,5 +1,5 @@
/* Override csu/libc-start.c on LoongArch64.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
index 0023ec1..a6cab96 100644
--- a/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist
@@ -2269,3 +2269,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
index 16bde43..4b3ea80 100644
--- a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
@@ -1068,3 +1068,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/loongarch/makecontext.c b/sysdeps/unix/sysv/linux/loongarch/makecontext.c
index 4215cd0..82a868f 100644
--- a/sysdeps/unix/sysv/linux/loongarch/makecontext.c
+++ b/sysdeps/unix/sysv/linux/loongarch/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h b/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h
index b85c58d..00f4ad7 100644
--- a/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/loongarch/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. LoongArch version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/readelflib.c b/sysdeps/unix/sysv/linux/loongarch/readelflib.c
index 2975012..bb7d6d2 100644
--- a/sysdeps/unix/sysv/linux/loongarch/readelflib.c
+++ b/sysdeps/unix/sysv/linux/loongarch/readelflib.c
@@ -1,5 +1,5 @@
/* Support for reading ELF files.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/setcontext.S b/sysdeps/unix/sysv/linux/loongarch/setcontext.S
index e1ce498..ef4830a 100644
--- a/sysdeps/unix/sysv/linux/loongarch/setcontext.S
+++ b/sysdeps/unix/sysv/linux/loongarch/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/sigcontextinfo.h b/sysdeps/unix/sysv/linux/loongarch/sigcontextinfo.h
index e608005..28505a1 100644
--- a/sysdeps/unix/sysv/linux/loongarch/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/loongarch/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* LoongArch definitions for signal handling calling conventions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/swapcontext.S b/sysdeps/unix/sysv/linux/loongarch/swapcontext.S
index e8029b4..4b8a90b 100644
--- a/sysdeps/unix/sysv/linux/loongarch/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/loongarch/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h b/sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h
index 613ffe8..4992f67 100644
--- a/sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/loongarch/sys/ucontext.h
@@ -1,5 +1,5 @@
/* struct ucontext definition.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/loongarch/sys/user.h b/sysdeps/unix/sysv/linux/loongarch/sys/user.h
index 2e6428f..2d5ac88 100644
--- a/sysdeps/unix/sysv/linux/loongarch/sys/user.h
+++ b/sysdeps/unix/sysv/linux/loongarch/sys/user.h
@@ -1,5 +1,5 @@
/* struct user_regs_struct definition for LoongArch.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S b/sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S
new file mode 100644
index 0000000..1cc3d61
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/loongarch/syscall_cancel.S
@@ -0,0 +1,50 @@
+/* Cancellable syscall wrapper. Linux/loongarch version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+ENTRY (__syscall_cancel_arch)
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ ld.w t0, a0, 0
+ andi t0, t0, TCB_CANCELED_BITMASK
+ bnez t0, 1f
+
+ /* Issue a 6 argument syscall. */
+ move t1, a1
+ move a0, a2
+ move a1, a3
+ move a2, a4
+ move a3, a5
+ move a4, a6
+ move a5, a7
+ move a7, t1
+ syscall 0
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ jr ra
+1:
+ b __syscall_do_cancel
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/loongarch/sysdep.S b/sysdeps/unix/sysv/linux/loongarch/sysdep.S
index 8b8b0e1..1680022 100644
--- a/sysdeps/unix/sysv/linux/loongarch/sysdep.S
+++ b/sysdeps/unix/sysv/linux/loongarch/sysdep.S
@@ -1,5 +1,5 @@
/* syscall error handlers
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/sysdep.h b/sysdeps/unix/sysv/linux/loongarch/sysdep.h
index eb0ba79..b9835d8 100644
--- a/sysdeps/unix/sysv/linux/loongarch/sysdep.h
+++ b/sysdeps/unix/sysv/linux/loongarch/sysdep.h
@@ -1,5 +1,5 @@
/* Assembly macros for LoongArch.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -119,6 +119,7 @@
#define HAVE_CLOCK_GETTIME64_VSYSCALL "__vdso_clock_gettime"
#define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
#define HAVE_GETCPU_VSYSCALL "__vdso_getcpu"
+#define HAVE_GETRANDOM_VSYSCALL "__vdso_getrandom"
#define HAVE_CLONE3_WRAPPER 1
diff --git a/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h b/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h
index bfb0759..99bc8b0 100644
--- a/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h
+++ b/sysdeps/unix/sysv/linux/loongarch/ucontext-macros.h
@@ -1,5 +1,5 @@
/* Macros for ucontext routines.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/loongarch/vfork.S b/sysdeps/unix/sysv/linux/loongarch/vfork.S
index a172823..903d0f8 100644
--- a/sysdeps/unix/sysv/linux/loongarch/vfork.S
+++ b/sysdeps/unix/sysv/linux/loongarch/vfork.S
@@ -1,5 +1,5 @@
/* vfork for Linux.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/lseek.c b/sysdeps/unix/sysv/linux/lseek.c
index 39d7963..ff83735 100644
--- a/sysdeps/unix/sysv/linux/lseek.c
+++ b/sysdeps/unix/sysv/linux/lseek.c
@@ -1,5 +1,5 @@
/* Linux lseek implementation, 32 bits off_t.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/lseek64.c b/sysdeps/unix/sysv/linux/lseek64.c
index f7ae01f..49f4136 100644
--- a/sysdeps/unix/sysv/linux/lseek64.c
+++ b/sysdeps/unix/sysv/linux/lseek64.c
@@ -1,5 +1,5 @@
/* Linux lseek implementation, 64 bits off_t.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/lstat.c b/sysdeps/unix/sysv/linux/lstat.c
index 7d87fcf..5b44171 100644
--- a/sysdeps/unix/sysv/linux/lstat.c
+++ b/sysdeps/unix/sysv/linux/lstat.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/lstat64.c b/sysdeps/unix/sysv/linux/lstat64.c
index cd09493..3d70ef8 100644
--- a/sysdeps/unix/sysv/linux/lstat64.c
+++ b/sysdeps/unix/sysv/linux/lstat64.c
@@ -1,5 +1,5 @@
/* Get file status.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/lutimes.c b/sysdeps/unix/sysv/linux/lutimes.c
index 9b56d93..8f8d3c7 100644
--- a/sysdeps/unix/sysv/linux/lutimes.c
+++ b/sysdeps/unix/sysv/linux/lutimes.c
@@ -1,6 +1,6 @@
/* Change access and/or modification date of file. Do not follow symbolic
links.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c
index 7f8d5e1..b6eb715 100644
--- a/sysdeps/unix/sysv/linux/lxstat.c
+++ b/sysdeps/unix/sysv/linux/lxstat.c
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix stat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,7 +38,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
{
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
int r = INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf,
AT_SYMLINK_NOFOLLOW);
return r ?: stat_overflow (buf);
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
index 16ad8b8..aee1efb 100644
--- a/sysdeps/unix/sysv/linux/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/lxstat64.c
@@ -1,5 +1,5 @@
/* lxstat64 using Linux lstat64 system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -69,7 +69,7 @@ ___lxstat64 (int vers, const char *name, struct stat64 *buf)
#else
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf,
AT_SYMLINK_NOFOLLOW);
diff --git a/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c b/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
index 8d2aa20..8442f7a 100644
--- a/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/arch-syscall.h b/sysdeps/unix/sysv/linux/m68k/arch-syscall.h
index 4ab34f6..a95cb41 100644
--- a/sysdeps/unix/sysv/linux/m68k/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/m68k/arch-syscall.h
@@ -140,6 +140,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 226
+#define __NR_getxattrat 464
#define __NR_init_module 128
#define __NR_inotify_add_watch 285
#define __NR_inotify_init 284
@@ -173,6 +174,7 @@
#define __NR_listen 360
#define __NR_listmount 458
#define __NR_listxattr 229
+#define __NR_listxattrat 465
#define __NR_llistxattr 230
#define __NR_lookup_dcookie 248
#define __NR_lremovexattr 233
@@ -232,6 +234,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 341
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 288
#define __NR_openat2 437
#define __NR_pause 29
@@ -281,6 +284,7 @@
#define __NR_recvmsg 369
#define __NR_remap_file_pages 252
#define __NR_removexattr 232
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 295
#define __NR_renameat2 351
@@ -354,6 +358,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 223
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h b/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
index f0d37cc..59cde28 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/poll.h b/sysdeps/unix/sysv/linux/m68k/bits/poll.h
index 9cdfe43..3e64d9e 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h b/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h
index 09a63e5..f5b5c8d 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. M68K version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/procfs.h b/sysdeps/unix/sysv/linux/m68k/bits/procfs.h
index 6c9b997..cec1f48 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. M68K version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h b/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
index bbbbd3d..4a64432 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
@@ -1,5 +1,5 @@
/* Definition of struct sockaddr_* members and sizes, Linux/m68k version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h b/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h
index b7f2018..0402b01 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/timesize.h b/sysdeps/unix/sysv/linux/m68k/bits/timesize.h
index ad9be44..606125e 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/m68k.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/bits/typesizes.h b/sysdeps/unix/sysv/linux/m68k/bits/typesizes.h
index a13f9f3..e0bebf9 100644
--- a/sysdeps/unix/sysv/linux/m68k/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/m68k/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. m68k version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/clone.S b/sysdeps/unix/sysv/linux/m68k/clone.S
index dc5bd4f..258d704 100644
--- a/sysdeps/unix/sysv/linux/m68k/clone.S
+++ b/sysdeps/unix/sysv/linux/m68k/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h b/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
index e9a5c35..5f1b232 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index d9bd6a9..7b7b72a 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -2781,6 +2781,25 @@ GLIBC_2.4 xdrstdio_create F
GLIBC_2.4 xencrypt F
GLIBC_2.4 xprt_register F
GLIBC_2.4 xprt_unregister F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 78540e9..63bad09 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h b/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
index 4f39f25..30b182f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/getpagesize.c b/sysdeps/unix/sysv/linux/m68k/getpagesize.c
index 14e0aac..207a296 100644
--- a/sysdeps/unix/sysv/linux/m68k/getpagesize.c
+++ b/sysdeps/unix/sysv/linux/m68k/getpagesize.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
index 82a34a8..3515b20 100644
--- a/sysdeps/unix/sysv/linux/m68k/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/libc-lock-arch.h b/sysdeps/unix/sysv/linux/m68k/libc-lock-arch.h
index 3efee8b..864c34b 100644
--- a/sysdeps/unix/sysv/linux/m68k/libc-lock-arch.h
+++ b/sysdeps/unix/sysv/linux/m68k/libc-lock-arch.h
@@ -1,5 +1,5 @@
/* Private libc-internal arch-specific definitions. m68k version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
index cde0dbf..df8858d 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index 439796d..df398e4 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2948,6 +2948,25 @@ GLIBC_2.4 sys_errlist D 0x210
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index 6fd32e7..9dba60b 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -914,3 +914,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
index 8affb64..60b71b3 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
index 6f85825..67fd246 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
index 060a7b2..8ce7531 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h b/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
index 2560e91..02bde90 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c b/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c
index c428742..845aae5 100644
--- a/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c
+++ b/sysdeps/unix/sysv/linux/m68k/m68k-helpers.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/m68k/mmap_internal.h b/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
index 2b2c8c2..7ba902f 100644
--- a/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation. Linux/m68k version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/mremap.S b/sysdeps/unix/sysv/linux/m68k/mremap.S
index 62011a8..eb27d9b 100644
--- a/sysdeps/unix/sysv/linux/m68k/mremap.S
+++ b/sysdeps/unix/sysv/linux/m68k/mremap.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h b/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
index 429bc24..312ffc5 100644
--- a/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/reg.h b/sysdeps/unix/sysv/linux/m68k/sys/reg.h
index 6bde111..e7f8522 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/reg.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/reg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
index db9c153..88062db 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/user.h b/sysdeps/unix/sysv/linux/m68k/sys/user.h
index 1ced05f..b461dab 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/user.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/syscall.S b/sysdeps/unix/sysv/linux/m68k/syscall.S
index 10776a8..24bda51 100644
--- a/sysdeps/unix/sysv/linux/m68k/syscall.S
+++ b/sysdeps/unix/sysv/linux/m68k/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/syscall_cancel.S b/sysdeps/unix/sysv/linux/m68k/syscall_cancel.S
new file mode 100644
index 0000000..00b94a1
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/m68k/syscall_cancel.S
@@ -0,0 +1,84 @@
+/* Cancellable syscall wrapper. Linux/m68k version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+
+ENTRY (__syscall_cancel_arch)
+#ifdef __mcoldfire__
+ lea (-16,%sp),%sp
+ movem.l %d2-%d5,(%sp)
+#else
+ movem.l %d2-%d5,-(%sp)
+#endif
+ cfi_def_cfa_offset (20)
+ cfi_offset (2, -20)
+ cfi_offset (3, -16)
+ cfi_offset (4, -12)
+ cfi_offset (5, -8)
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ move.l 20(%sp),%a0
+ move.l (%a0),%d0
+#ifdef __mcoldfire__
+ move.w %d0,%ccr
+ jeq 1f
+#else
+ btst #TCB_CANCELED_BIT,%d0
+ jne 1f
+#endif
+
+ move.l 48(%sp),%a0
+ move.l 44(%sp),%d5
+ move.l 40(%sp),%d4
+ move.l 36(%sp),%d3
+ move.l 32(%sp),%d2
+ move.l 28(%sp),%d1
+ move.l 24(%sp),%d0
+ trap #0
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+#ifdef __mcoldfire__
+ movem.l (%sp),%d2-%d5
+ lea (16,%sp),%sp
+#else
+ movem.l (%sp)+,%d2-%d5
+#endif
+ rts
+
+1:
+#ifdef PIC
+ bsr.l __syscall_do_cancel
+#else
+ jsr __syscall_do_cancel
+#endif
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.S b/sysdeps/unix/sysv/linux/m68k/sysdep.S
index 484f7a9..fc3276d 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.S
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/sysdep.h b/sysdeps/unix/sysv/linux/m68k/sysdep.h
index 0e43b4a..6f6b46e 100644
--- a/sysdeps/unix/sysv/linux/m68k/sysdep.h
+++ b/sysdeps/unix/sysv/linux/m68k/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/m68k/vfork.S b/sysdeps/unix/sysv/linux/m68k/vfork.S
index 985b14d..542595b 100644
--- a/sysdeps/unix/sysv/linux/m68k/vfork.S
+++ b/sysdeps/unix/sysv/linux/m68k/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/machine-sp.h b/sysdeps/unix/sysv/linux/machine-sp.h
index 601b6b4..6ab3ca6 100644
--- a/sysdeps/unix/sysv/linux/machine-sp.h
+++ b/sysdeps/unix/sysv/linux/machine-sp.h
@@ -1,5 +1,5 @@
/* Machine-specific function to return the stack pointer. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/malloc-hugepages.c b/sysdeps/unix/sysv/linux/malloc-hugepages.c
index e8f82fb..e23cdfb 100644
--- a/sysdeps/unix/sysv/linux/malloc-hugepages.c
+++ b/sysdeps/unix/sysv/linux/malloc-hugepages.c
@@ -1,5 +1,5 @@
/* Huge Page support. Linux implementation.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/malloc-sysdep.h b/sysdeps/unix/sysv/linux/malloc-sysdep.h
index 1ca2d6a..778d897 100644
--- a/sysdeps/unix/sysv/linux/malloc-sysdep.h
+++ b/sysdeps/unix/sysv/linux/malloc-sysdep.h
@@ -1,5 +1,5 @@
/* System-specific malloc support functions. Linux version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S b/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
index 3bac090..82b3492 100644
--- a/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/arch-syscall.h b/sysdeps/unix/sysv/linux/microblaze/arch-syscall.h
index 79e225e..fe08f5c 100644
--- a/sysdeps/unix/sysv/linux/microblaze/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/microblaze/arch-syscall.h
@@ -140,6 +140,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 229
+#define __NR_getxattrat 464
#define __NR_gtty 32
#define __NR_idle 112
#define __NR_init_module 128
@@ -178,6 +179,7 @@
#define __NR_listen 348
#define __NR_listmount 458
#define __NR_listxattr 232
+#define __NR_listxattrat 465
#define __NR_llistxattr 233
#define __NR_lock 53
#define __NR_lookup_dcookie 253
@@ -242,6 +244,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 372
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 295
#define __NR_openat2 437
#define __NR_pause 29
@@ -294,6 +297,7 @@
#define __NR_recvmsg 361
#define __NR_remap_file_pages 257
#define __NR_removexattr 235
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 302
#define __NR_renameat2 383
@@ -370,6 +374,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 226
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 335
#define __NR_shmctl 336
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index 1069d32..ca8df6f 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2834,3 +2834,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index d2c2cdb..5596e08 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h b/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
index da936f4..63681bb 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h b/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h
index ef8c27e..eff7f39 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. MicroBlaze version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h b/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h
index ff1e269..4b47cc7 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h b/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h
index 60de226..9b7d983 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/MicroBlaze.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/typesizes.h b/sysdeps/unix/sysv/linux/microblaze/bits/typesizes.h
index 943babb..a07dc91 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Microblaze version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/clock-compat.c b/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
index 6d907d8..4c4e99e 100644
--- a/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
+++ b/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
@@ -1,6 +1,6 @@
/* ABI compatibility redirects for clock_* symbols in librt.
MicroBlaze version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/clone.S b/sysdeps/unix/sysv/linux/microblaze/clone.S
index 30e9ee2..8b108fc 100644
--- a/sysdeps/unix/sysv/linux/microblaze/clone.S
+++ b/sysdeps/unix/sysv/linux/microblaze/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
index 69e322e..96c3131 100644
--- a/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h b/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
index c0a121f..d4bca02 100644
--- a/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
@@ -1,5 +1,5 @@
/* Definition of `struct stat' used in the kernel
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 17abe08..9508154 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2831,3 +2831,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index d2c2cdb..5596e08 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/microblaze/pselect32.c b/sysdeps/unix/sysv/linux/microblaze/pselect32.c
index 3aee185..d2a84ff 100644
--- a/sysdeps/unix/sysv/linux/microblaze/pselect32.c
+++ b/sysdeps/unix/sysv/linux/microblaze/pselect32.c
@@ -1,5 +1,5 @@
/* Synchronous I/O multiplexing. Linux/microblaze version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h b/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
index e9c2355..d6335fc 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h b/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h
index 35124b4..52b615b 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h
@@ -1,5 +1,5 @@
/* Data structures for user-level context switching. MicroBlaze version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/user.h b/sysdeps/unix/sysv/linux/microblaze/sys/user.h
index 362cc09..d9deec4 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sys/user.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/syscall.S b/sysdeps/unix/sysv/linux/microblaze/syscall.S
index 6c1ba07..6ebf688 100644
--- a/sysdeps/unix/sysv/linux/microblaze/syscall.S
+++ b/sysdeps/unix/sysv/linux/microblaze/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S b/sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S
new file mode 100644
index 0000000..38150e6
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/microblaze/syscall_cancel.S
@@ -0,0 +1,61 @@
+/* Cancellable syscall wrapper. Linux/microblaze version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ long int nr,
+ long int arg1,
+ long int arg2,
+ long int arg3,
+ long int arg4,
+ long int arg5,
+ long int arg6) */
+
+ENTRY (__syscall_cancel_arch)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ lwi r3,r5,0
+ andi r3,r3,TCB_CANCELED_BITMASK
+ bneid r3,1f
+ addk r12,r6,r0
+
+ addk r5,r7,r0
+ addk r6,r8,r0
+ addk r7,r9,r0
+ addk r8,r10,r0
+ lwi r9,r1,56
+ lwi r10,r1,60
+ brki r14,8
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ nop
+ lwi r15,r1,0
+ rtsd r15,8
+ addik r1,r1,28
+
+1:
+ brlid r15, __syscall_do_cancel
+ nop
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/microblaze/sysctl.c b/sysdeps/unix/sysv/linux/microblaze/sysctl.c
index 0e7d132..cb1f200 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sysctl.c
+++ b/sysdeps/unix/sysv/linux/microblaze/sysctl.c
@@ -1,5 +1,5 @@
/* sysctl function stub. microblaze version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep.S b/sysdeps/unix/sysv/linux/microblaze/sysdep.S
index 09d2f1e..0a3c1b6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sysdep.S
+++ b/sysdeps/unix/sysv/linux/microblaze/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep.h b/sysdeps/unix/sysv/linux/microblaze/sysdep.h
index 9c52923..ac56648 100644
--- a/sysdeps/unix/sysv/linux/microblaze/sysdep.h
+++ b/sysdeps/unix/sysv/linux/microblaze/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/microblaze/vfork.S b/sysdeps/unix/sysv/linux/microblaze/vfork.S
index 7f53f81..75375bd 100644
--- a/sysdeps/unix/sysv/linux/microblaze/vfork.S
+++ b/sysdeps/unix/sysv/linux/microblaze/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile
index d5725c6..05ec915 100644
--- a/sysdeps/unix/sysv/linux/mips/Makefile
+++ b/sysdeps/unix/sysv/linux/mips/Makefile
@@ -61,6 +61,7 @@ ifeq ($(subdir),elf)
# this test is expected to fail.
ifneq ($(mips-has-gnustack),yes)
test-xfail-check-execstack = yes
+CFLAGS-tst-execstack.c += -DDEFAULT_RWX_STACK=1
endif
endif
@@ -68,6 +69,12 @@ ifeq ($(subdir),stdlib)
gen-as-const-headers += ucontext_i.sym
endif
+ifeq ($(subdir),nptl)
+ifeq ($(mips-force-execstack),yes)
+CFLAGS-tst-execstack-threads.c += -DDEFAULT_RWX_STACK=1
+endif
+endif
+
ifeq ($(mips-force-execstack),yes)
CFLAGS-.o += -Wa,-execstack
CFLAGS-.os += -Wa,-execstack
diff --git a/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions
index 9ea0fa6..48f0037 100644
--- a/sysdeps/unix/sysv/linux/mips/Versions
+++ b/sysdeps/unix/sysv/linux/mips/Versions
@@ -26,6 +26,10 @@ libc {
pthread_attr_setstack;
pthread_attr_setstacksize;
}
+ GLIBC_2.42 {
+ tcgetattr;
+ tcsetattr;
+ }
GLIBC_PRIVATE {
# nptl/pthread_cond_timedwait.c uses INTERNAL_VSYSCALL(clock_gettime).
__vdso_clock_gettime;
diff --git a/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c b/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
index 9119909..de3891f 100644
--- a/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/_test_and_set.c b/sysdeps/unix/sysv/linux/mips/_test_and_set.c
index a4ff4fa..255e439 100644
--- a/sysdeps/unix/sysv/linux/mips/_test_and_set.c
+++ b/sysdeps/unix/sysv/linux/mips/_test_and_set.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/epoll.h b/sysdeps/unix/sysv/linux/mips/bits/epoll.h
index 7a9e6f0..e417cbe 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/errno.h b/sysdeps/unix/sysv/linux/mips/bits/errno.h
index bc87c2e..1dfaeac 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. MIPS/Linux specific version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/eventfd.h b/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
index a1dcbdd..9c35666 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/fcntl.h b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
index 774e150..c814bfc 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/inotify.h b/sysdeps/unix/sysv/linux/mips/bits/inotify.h
index 12c590e..4017182 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
index 18c554f..84bb6fc 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
@@ -1,5 +1,5 @@
/* Structure types for pre-termios terminal ioctls. Linux/MIPS version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -31,18 +31,6 @@ struct winsize
unsigned short int ws_ypixel;
};
-#define NCC 8
-struct termio
- {
- unsigned short int c_iflag; /* input mode flags */
- unsigned short int c_oflag; /* output mode flags */
- unsigned short int c_cflag; /* control mode flags */
- unsigned short int c_lflag; /* local mode flags */
- char c_line; /* line discipline */
- /* Yes, this is really NCCS. */
- unsigned char c_cc[32 /* NCCS */]; /* control characters */
- };
-
/* modem lines */
#define TIOCM_LE 0x001 /* line enable */
#define TIOCM_DTR 0x002 /* data terminal ready */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/mman.h b/sysdeps/unix/sysv/linux/mips/bits/mman.h
index 517f52d..91e43a2 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/MIPS version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/poll.h b/sysdeps/unix/sysv/linux/mips/bits/poll.h
index 9cdfe43..3e64d9e 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/procfs.h b/sysdeps/unix/sysv/linux/mips/bits/procfs.h
index 7a26ae1..7af0b4d 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. MIPS version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h
index 8c1ee07..4829024 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. MIPS Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/resource.h b/sysdeps/unix/sysv/linux/mips/bits/resource.h
index d288256..05f8e6a 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Linux/MIPS version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/rseq.h b/sysdeps/unix/sysv/linux/mips/bits/rseq.h
index 0abd1ce..a72c17c 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux mips architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/mips/bits/shmlba.h b/sysdeps/unix/sysv/linux/mips/bits/shmlba.h
index dfd857f..5509e3a 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. MIPS version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
index 0f31f90..f7e3ad8 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux/MIPS's sigaction.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h b/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
index 0a5a7b1..a3a5cc3 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/mips/bits/signalfd.h b/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
index ccd1f9e..bbd450e 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h b/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
index 2625c35..d16c13c 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/MIPS version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h b/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h
index 77ffc8b..d71571b 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures. Version for MIPS.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/socket_type.h b/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
index 313c34c..26438e1 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/MIPS.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/statfs.h b/sysdeps/unix/sysv/linux/mips/bits/statfs.h
index bf92bd9..a685953 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h b/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h
index 50a4b36..0670f48 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
index 7bed635..a1ed86b 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
@@ -1,5 +1,5 @@
/* termios c_cc symbolic constant definitions. Linux/mips version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h
index 5d3310e..a2c7679 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h
@@ -1,5 +1,5 @@
/* termios local mode definitions. Linux/mips version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-struct.h b/sysdeps/unix/sysv/linux/mips/bits/termios-struct.h
deleted file mode 100644
index 95882b7..0000000
--- a/sysdeps/unix/sysv/linux/mips/bits/termios-struct.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* struct termios definition. Linux/mips version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _TERMIOS_H
-# error "Never include <bits/termios-struct.h> directly; use <termios.h> instead."
-#endif
-
-#define NCCS 32
-struct termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
-#define _HAVE_STRUCT_TERMIOS_C_ISPEED 0
-#define _HAVE_STRUCT_TERMIOS_C_OSPEED 0
- };
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h b/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h
index 0c0f0542..986c56a 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/termios-tcflow.h
@@ -1,5 +1,5 @@
/* termios local mode definitions. Linux/mips version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/timerfd.h b/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
index 6b8250b..ab20435 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/timesize.h b/sysdeps/unix/sysv/linux/mips/bits/timesize.h
index ccc0643..80d8240 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/MIPS.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h b/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
index 4f52d55..a80b4a0 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
@@ -1,5 +1,5 @@
/* Define stack_t. MIPS Linux version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
index 09c5364..61723d3 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Linux/MIPS implementation of the SysV message struct msqid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h
index 0746684..730f7a8 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* MIPS implementation of the semaphore struct semid_ds
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h
index c665af1..ee6bcb0 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Linux/MIPS implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/bits/typesizes.h b/sysdeps/unix/sysv/linux/mips/bits/typesizes.h
index 1b4f700..1539181 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. MIPS version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/clone.S b/sysdeps/unix/sysv/linux/mips/clone.S
index eaa879f..d4f95d2 100644
--- a/sysdeps/unix/sysv/linux/mips/clone.S
+++ b/sysdeps/unix/sysv/linux/mips/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/clone3.S b/sysdeps/unix/sysv/linux/mips/clone3.S
index 58925d6..7e6f3cc 100644
--- a/sysdeps/unix/sysv/linux/mips/clone3.S
+++ b/sysdeps/unix/sysv/linux/mips/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/mips version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/mips/dl-cache.h b/sysdeps/unix/sysv/linux/mips/dl-cache.h
index e3e0c1a..72499fd 100644
--- a/sysdeps/unix/sysv/linux/mips/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/mips/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/errlist-compat-data.h b/sysdeps/unix/sysv/linux/mips/errlist-compat-data.h
index fafc254..6bd6821 100644
--- a/sysdeps/unix/sysv/linux/mips/errlist-compat-data.h
+++ b/sysdeps/unix/sysv/linux/mips/errlist-compat-data.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compat symbol definitions. MIPS version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/fxstat.c b/sysdeps/unix/sysv/linux/mips/fxstat.c
index 4ab3a34..d367227 100644
--- a/sysdeps/unix/sysv/linux/mips/fxstat.c
+++ b/sysdeps/unix/sysv/linux/mips/fxstat.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix stat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/getcontext.S b/sysdeps/unix/sysv/linux/mips/getcontext.S
index 48b3500..4e10d37 100644
--- a/sysdeps/unix/sysv/linux/mips/getcontext.S
+++ b/sysdeps/unix/sysv/linux/mips/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/getrlimit64.c b/sysdeps/unix/sysv/linux/mips/getrlimit64.c
index 39691dd..bdc535f 100644
--- a/sysdeps/unix/sysv/linux/mips/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/mips/getrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/kernel-features.h b/sysdeps/unix/sysv/linux/mips/kernel-features.h
index 5977177..d86ac92 100644
--- a/sysdeps/unix/sysv/linux/mips/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/mips/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/kernel_termios.h b/sysdeps/unix/sysv/linux/mips/kernel_termios.h
deleted file mode 100644
index 478f295..0000000
--- a/sysdeps/unix/sysv/linux/mips/kernel_termios.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _KERNEL_TERMIOS_H
-#define _KERNEL_TERMIOS_H 1
-/* The following corresponds to the values from the Linux 2.1.24 kernel. */
-
-#define __KERNEL_NCCS 23
-
-struct __kernel_termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[__KERNEL_NCCS]; /* control characters */
- };
-
-#define _HAVE_C_ISPEED 0
-#define _HAVE_C_OSPEED 0
-
-#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
index 5f6cdea..22d45dd 100644
--- a/sysdeps/unix/sysv/linux/mips/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects. MIPS.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/lxstat.c b/sysdeps/unix/sysv/linux/mips/lxstat.c
index 8bf8f67..e36fdf4 100644
--- a/sysdeps/unix/sysv/linux/mips/lxstat.c
+++ b/sysdeps/unix/sysv/linux/mips/lxstat.c
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix stat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/makecontext.S b/sysdeps/unix/sysv/linux/mips/makecontext.S
index 63909f2..dd632b3 100644
--- a/sysdeps/unix/sysv/linux/mips/makecontext.S
+++ b/sysdeps/unix/sysv/linux/mips/makecontext.S
@@ -1,5 +1,5 @@
/* Modify saved context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h b/sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h
index dadd7f3..7d76d65 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h
@@ -131,6 +131,7 @@
#define __NR_gettimeofday 4078
#define __NR_getuid 4024
#define __NR_getxattr 4227
+#define __NR_getxattrat 4464
#define __NR_gtty 4032
#define __NR_idle 4112
#define __NR_init_module 4128
@@ -168,6 +169,7 @@
#define __NR_listen 4174
#define __NR_listmount 4458
#define __NR_listxattr 4230
+#define __NR_listxattrat 4465
#define __NR_llistxattr 4231
#define __NR_lock 4053
#define __NR_lookup_dcookie 4247
@@ -227,6 +229,7 @@
#define __NR_open 4005
#define __NR_open_by_handle_at 4340
#define __NR_open_tree 4428
+#define __NR_open_tree_attr 4467
#define __NR_openat 4288
#define __NR_openat2 4437
#define __NR_pause 4029
@@ -279,6 +282,7 @@
#define __NR_recvmsg 4177
#define __NR_remap_file_pages 4251
#define __NR_removexattr 4233
+#define __NR_removexattrat 4466
#define __NR_rename 4038
#define __NR_renameat 4295
#define __NR_renameat2 4351
@@ -343,6 +347,7 @@
#define __NR_settimeofday 4079
#define __NR_setuid 4023
#define __NR_setxattr 4224
+#define __NR_setxattrat 4463
#define __NR_sgetmask 4068
#define __NR_shmat 4397
#define __NR_shmctl 4396
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c b/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c
index a36507d..5f75a4e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/bug-getcontext-mips-gp.c
@@ -1,5 +1,5 @@
/* Tests register values retrieved by getcontext() for mips o32.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 799e508..4d51cc4 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2909,6 +2909,27 @@ GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index a7c8ca0..cdcc488 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
index 137198a..2fcc21b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall5.S
@@ -1,5 +1,5 @@
/* MIPS syscall wrappers.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
index b54fad4..dcd579d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall6.S
@@ -1,5 +1,5 @@
/* MIPS syscall wrappers.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
index a4722aa..68da583 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips-syscall7.S
@@ -1,5 +1,5 @@
/* MIPS syscall wrappers.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
index ed0e688..66a1bfa 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
index 5b229f8..fb1516c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
index 4287178..8116bfb 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
index 1de808f..0938e6d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
index b212f51..7a56c16 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
index 4164849..e6a2f66 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
+++ b/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
@@ -1,5 +1,5 @@
/* MIPS16 syscall wrappers.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 1c10996..7f90fad 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2907,6 +2907,27 @@ GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/syscall_cancel.S b/sysdeps/unix/sysv/linux/mips/mips32/syscall_cancel.S
new file mode 100644
index 0000000..1190f08
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/mips32/syscall_cancel.S
@@ -0,0 +1,128 @@
+/* Cancellable syscall wrapper. Linux/mips32 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <sys/asm.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6,
+ __syscall_arg_t arg7) */
+
+#define FRAME_SIZE 56
+
+NESTED (__syscall_cancel_arch, FRAME_SIZE, fp)
+ .mask 0xc0070000,-SZREG
+ .fmask 0x00000000,0
+
+ PTR_ADDIU sp, -FRAME_SIZE
+ cfi_def_cfa_offset (FRAME_SIZE)
+
+ sw fp, 48(sp)
+ sw ra, 52(sp)
+ sw s2, 44(sp)
+ sw s1, 40(sp)
+ sw s0, 36(sp)
+#ifdef __PIC__
+ .cprestore 16
+#endif
+ cfi_offset (ra, -4)
+ cfi_offset (fp, -8)
+ cfi_offset (s2, -12)
+ cfi_offset (s1, -16)
+ cfi_offset (s0, -20)
+
+ move fp ,sp
+ cfi_def_cfa_register (fp)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ lw v0, 0(a0)
+ andi v0, v0, TCB_CANCELED_BITMASK
+ bne v0, zero, 2f
+
+ addiu sp, sp, -16
+ addiu v0, sp, 16
+ sw v0, 24(fp)
+
+ move s0, a1
+ move a0, a2
+ move a1, a3
+ lw a2, 72(fp)
+ lw a3, 76(fp)
+ lw v0, 84(fp)
+ lw s1, 80(fp)
+ lw s2, 88(fp)
+
+ .set noreorder
+ subu sp, 32
+ sw s1, 16(sp)
+ sw v0, 20(sp)
+ sw s2, 24(sp)
+ move v0, s0
+ syscall
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ addiu sp, sp, 32
+ .set reorder
+
+ beq a3, zero, 1f
+ subu v0, zero, v0
+1:
+ move sp, fp
+ cfi_remember_state
+ cfi_def_cfa_register (sp)
+ lw ra, 52(fp)
+ lw fp, 48(sp)
+ lw s2, 44(sp)
+ lw s1, 40(sp)
+ lw s0, 36(sp)
+
+ .set noreorder
+ .set nomacro
+ jr ra
+ addiu sp,sp,FRAME_SIZE
+
+ .set macro
+ .set reorder
+
+ cfi_def_cfa_offset (0)
+ cfi_restore (s0)
+ cfi_restore (s1)
+ cfi_restore (s2)
+ cfi_restore (fp)
+ cfi_restore (ra)
+
+2:
+ cfi_restore_state
+#ifdef __PIC__
+ PTR_LA t9, __syscall_do_cancel
+ jalr t9
+#else
+ jal __syscall_do_cancel
+#endif
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
index 1827caf..83ccfb0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,6 +18,10 @@
#ifndef _LINUX_MIPS_MIPS32_SYSDEP_H
#define _LINUX_MIPS_MIPS32_SYSDEP_H 1
+/* mips32 have cancelable syscalls with 7 arguments (currently only
+ sync_file_range). */
+#define HAVE_CANCELABLE_SYSCALL_WITH_7_ARGS 1
+
/* There is some commonality. */
#include <sysdeps/unix/sysv/linux/mips/sysdep.h>
#include <sysdeps/unix/sysv/linux/sysdep.h>
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
index 8bf8d05..8a7c3d0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
@@ -1,5 +1,5 @@
/* fxstat64 using 64-bit MIPS fstat system call.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c
index 583aafe..007b531 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat.c
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix fstat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
index 93d2556..37acf1e 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c b/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c
index f81ae5b..4b0fe2c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/getdents64.c
@@ -1,5 +1,5 @@
/* Get directory entries. Linux/MIPSn64 LFS version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h b/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
index 7f17aed..b2d93cf 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. MIPS64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/kstat_cp.h b/sysdeps/unix/sysv/linux/mips/mips64/kstat_cp.h
index fac8c0c..6e8375d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/kstat_cp.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/kstat_cp.h
@@ -1,5 +1,5 @@
/* Struct stat/stat64 to stat/stat64 conversion for Linux.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 8e36e16..888164b 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1189,3 +1189,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
index 4294668..c872172 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
@@ -1,5 +1,5 @@
/* lxstat64 using 64-bit MIPS lstat system call.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c b/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
index 064e234..a8d9eaa 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h
index db6b2d4..bca3ea6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h
@@ -124,6 +124,7 @@
#define __NR_gettimeofday 6094
#define __NR_getuid 6100
#define __NR_getxattr 6183
+#define __NR_getxattrat 6464
#define __NR_init_module 6168
#define __NR_inotify_add_watch 6248
#define __NR_inotify_init 6247
@@ -156,6 +157,7 @@
#define __NR_listen 6049
#define __NR_listmount 6458
#define __NR_listxattr 6186
+#define __NR_listxattrat 6465
#define __NR_llistxattr 6187
#define __NR_lookup_dcookie 6206
#define __NR_lremovexattr 6190
@@ -210,6 +212,7 @@
#define __NR_open 6002
#define __NR_open_by_handle_at 6304
#define __NR_open_tree 6428
+#define __NR_open_tree_attr 6467
#define __NR_openat 6251
#define __NR_openat2 6437
#define __NR_pause 6033
@@ -258,6 +261,7 @@
#define __NR_recvmsg 6046
#define __NR_remap_file_pages 6210
#define __NR_removexattr 6189
+#define __NR_removexattrat 6466
#define __NR_rename 6080
#define __NR_renameat 6258
#define __NR_renameat2 6315
@@ -323,6 +327,7 @@
#define __NR_settimeofday 6159
#define __NR_setuid 6103
#define __NR_setxattr 6180
+#define __NR_setxattrat 6463
#define __NR_shmat 6029
#define __NR_shmctl 6030
#define __NR_shmdt 6065
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 03d9655..fc366d1 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2915,6 +2915,27 @@ GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
index 1d21ced..b33c119 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
@@ -1,5 +1,5 @@
/* MIPS n32 lseek implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
index 9c739d1..7e0fb03 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation. MIPS n32 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/syscall.S b/sysdeps/unix/sysv/linux/mips/mips64/n32/syscall_types.h
index 18ac11c..90c0a0b 100644
--- a/sysdeps/unix/sysv/linux/nios2/syscall.S
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/syscall_types.h
@@ -1,5 +1,5 @@
-/* syscall - indirect system call.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Types and macros used for syscall issuing. MIPS64n32 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,21 +16,13 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <sysdep.h>
+#ifndef _SYSCALL_TYPES_H
+#define _SYSCALL_TYPES_H
-/* We don't need a special syscall to implement syscall(). It won't work
- reliably with 64-bit arguments (but that is true on many modern platforms).
-*/
+typedef long long int __syscall_arg_t;
-ENTRY (syscall)
- mov r2, r4
- mov r4, r5
- mov r5, r6
- mov r6, r7
- ldw r7, 0(sp)
- ldw r8, 4(sp)
- ldw r9, 8(sp)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
- ret
-PSEUDO_END (syscall)
+/* Convert X to a long long, without losing any bits if it is one
+ already or warning if it is a 32-bit pointer. */
+#define __SSC(__x) ((__syscall_arg_t) (__typeof__ ((__x) - (__x))) (__x))
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h b/sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h
index b4129a4..5bcd929 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h
@@ -116,6 +116,7 @@
#define __NR_gettimeofday 5094
#define __NR_getuid 5100
#define __NR_getxattr 5183
+#define __NR_getxattrat 5464
#define __NR_init_module 5168
#define __NR_inotify_add_watch 5244
#define __NR_inotify_init 5243
@@ -147,6 +148,7 @@
#define __NR_listen 5049
#define __NR_listmount 5458
#define __NR_listxattr 5186
+#define __NR_listxattrat 5465
#define __NR_llistxattr 5187
#define __NR_lookup_dcookie 5206
#define __NR_lremovexattr 5190
@@ -199,6 +201,7 @@
#define __NR_open 5002
#define __NR_open_by_handle_at 5299
#define __NR_open_tree 5428
+#define __NR_open_tree_attr 5467
#define __NR_openat 5247
#define __NR_openat2 5437
#define __NR_pause 5033
@@ -244,6 +247,7 @@
#define __NR_recvmsg 5046
#define __NR_remap_file_pages 5210
#define __NR_removexattr 5189
+#define __NR_removexattrat 5466
#define __NR_rename 5080
#define __NR_renameat 5254
#define __NR_renameat2 5311
@@ -305,6 +309,7 @@
#define __NR_settimeofday 5159
#define __NR_setuid 5103
#define __NR_setxattr 5180
+#define __NR_setxattrat 5463
#define __NR_shmat 5029
#define __NR_shmctl 5030
#define __NR_shmdt 5065
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatat.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatat.c
index bbb687a..efac564 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatat.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatat.c
@@ -1,5 +1,5 @@
/* Get file status. Linux/MIPSn64 version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S b/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
index 13f5ce0..667ddaf 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
@@ -1,4 +1,4 @@
-/* Copyright 2003-2024 Free Software Foundation, Inc.
+/* Copyright 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 05e402e..debd5c3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2817,6 +2817,27 @@ GLIBC_2.4 renameat F
GLIBC_2.4 symlinkat F
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
index 79f7e3d..22647e0 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/semctl.c b/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
index ce1c42c..819b0e5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c b/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
index 37548a8..b3e1fb3 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/syscall.S b/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
index ddc84b1..0ebaa60 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
+++ b/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S b/sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S
new file mode 100644
index 0000000..edd7c4d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/mips64/syscall_cancel.S
@@ -0,0 +1,112 @@
+/* Cancellable syscall wrapper. Linux/mips64 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <sys/asm.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6,
+ __syscall_arg_t arg7) */
+
+#define FRAME_SIZE 32
+
+ .text
+NESTED (__syscall_cancel_arch, FRAME_SIZE, ra)
+ .mask 0x90010000, -SZREG
+ .fmask 0x00000000, 0
+ LONG_ADDIU sp, sp, -FRAME_SIZE
+ cfi_def_cfa_offset (FRAME_SIZE)
+ sd gp, 16(sp)
+ cfi_offset (gp, -16)
+ lui gp, %hi(%neg(%gp_rel(__syscall_cancel_arch)))
+ LONG_ADDU gp, gp, t9
+ sd ra, 24(sp)
+ sd s0, 8(sp)
+ cfi_offset (ra, -8)
+ cfi_offset (s0, -24)
+ LONG_ADDIU gp, gp, %lo(%neg(%gp_rel(__syscall_cancel_arch)))
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ lw v0, 0(a0)
+ andi v0, v0, TCB_CANCELED_BITMASK
+ .set noreorder
+ .set nomacro
+ bne v0, zero, 2f
+ move s0, a1
+ .set macro
+ .set reorder
+
+ move a0, a2
+ move a1, a3
+ move a2, a4
+ move a3, a5
+ move a4, a6
+ move a5, a7
+
+ .set noreorder
+ move v0, s0
+ syscall
+ .set reorder
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ .set noreorder
+ .set nomacro
+#if __mips_isa_rev >= 6
+ beqzc $7, 1f
+#else
+ bnel a3, zero, 1f
+#endif
+ SUBU v0, zero, v0
+ .set macro
+ .set reorder
+
+1:
+ ld ra, 24(sp)
+ ld gp, 16(sp)
+ ld s0, 8(sp)
+
+ .set noreorder
+ .set nomacro
+ jr ra
+ LONG_ADDIU sp, sp, FRAME_SIZE
+ .set macro
+ .set reorder
+
+ cfi_remember_state
+ cfi_def_cfa_offset (0)
+ cfi_restore (s0)
+ cfi_restore (gp)
+ cfi_restore (ra)
+ .align 3
+2:
+ cfi_restore_state
+ LONG_L t9, %got_disp(__syscall_do_cancel)(gp)
+ .reloc 3f, R_MIPS_JALR, __syscall_do_cancel
+3: jalr t9
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/sysdep.h
index 0a1711d..78044d6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -44,15 +44,7 @@
#undef HAVE_INTERNAL_BRK_ADDR_SYMBOL
#define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1
-#if _MIPS_SIM == _ABIN32
-/* Convert X to a long long, without losing any bits if it is one
- already or warning if it is a 32-bit pointer. */
-# define ARGIFY(X) ((long long int) (__typeof__ ((X) - (X))) (X))
-typedef long long int __syscall_arg_t;
-#else
-# define ARGIFY(X) ((long int) (X))
-typedef long int __syscall_arg_t;
-#endif
+#include <syscall_types.h>
/* Note that the original Linux syscall restart convention required the
instruction immediately preceding SYSCALL to initialize $v0 with the
@@ -120,7 +112,7 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
@@ -144,8 +136,8 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
- __syscall_arg_t _arg2 = ARGIFY (arg2); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
+ __syscall_arg_t _arg2 = __SSC (arg2); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
@@ -170,9 +162,9 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
- __syscall_arg_t _arg2 = ARGIFY (arg2); \
- __syscall_arg_t _arg3 = ARGIFY (arg3); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
+ __syscall_arg_t _arg2 = __SSC (arg2); \
+ __syscall_arg_t _arg3 = __SSC (arg3); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
@@ -199,10 +191,10 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
- __syscall_arg_t _arg2 = ARGIFY (arg2); \
- __syscall_arg_t _arg3 = ARGIFY (arg3); \
- __syscall_arg_t _arg4 = ARGIFY (arg4); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
+ __syscall_arg_t _arg2 = __SSC (arg2); \
+ __syscall_arg_t _arg3 = __SSC (arg3); \
+ __syscall_arg_t _arg4 = __SSC (arg4); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
@@ -229,11 +221,11 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
- __syscall_arg_t _arg2 = ARGIFY (arg2); \
- __syscall_arg_t _arg3 = ARGIFY (arg3); \
- __syscall_arg_t _arg4 = ARGIFY (arg4); \
- __syscall_arg_t _arg5 = ARGIFY (arg5); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
+ __syscall_arg_t _arg2 = __SSC (arg2); \
+ __syscall_arg_t _arg3 = __SSC (arg3); \
+ __syscall_arg_t _arg4 = __SSC (arg4); \
+ __syscall_arg_t _arg5 = __SSC (arg5); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
@@ -261,12 +253,12 @@ typedef long int __syscall_arg_t;
long int _sys_result; \
\
{ \
- __syscall_arg_t _arg1 = ARGIFY (arg1); \
- __syscall_arg_t _arg2 = ARGIFY (arg2); \
- __syscall_arg_t _arg3 = ARGIFY (arg3); \
- __syscall_arg_t _arg4 = ARGIFY (arg4); \
- __syscall_arg_t _arg5 = ARGIFY (arg5); \
- __syscall_arg_t _arg6 = ARGIFY (arg6); \
+ __syscall_arg_t _arg1 = __SSC (arg1); \
+ __syscall_arg_t _arg2 = __SSC (arg2); \
+ __syscall_arg_t _arg3 = __SSC (arg3); \
+ __syscall_arg_t _arg4 = __SSC (arg4); \
+ __syscall_arg_t _arg5 = __SSC (arg5); \
+ __syscall_arg_t _arg6 = __SSC (arg6); \
register __syscall_arg_t __s0 asm ("$16") __attribute__ ((unused))\
= (number); \
register __syscall_arg_t __v0 asm ("$2"); \
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
index e8a6300..2738130 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+++ b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
@@ -1,5 +1,5 @@
/* xstat64 using Linux stat64 system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/readelflib.c b/sysdeps/unix/sysv/linux/mips/readelflib.c
index 57e8d72..d648a29 100644
--- a/sysdeps/unix/sysv/linux/mips/readelflib.c
+++ b/sysdeps/unix/sysv/linux/mips/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/setcontext.S b/sysdeps/unix/sysv/linux/mips/setcontext.S
index b9aa153..c16571a 100644
--- a/sysdeps/unix/sysv/linux/mips/setcontext.S
+++ b/sysdeps/unix/sysv/linux/mips/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/setrlimit64.c b/sysdeps/unix/sysv/linux/mips/setrlimit64.c
index 2a7279b..fd7a83e 100644
--- a/sysdeps/unix/sysv/linux/mips/setrlimit64.c
+++ b/sysdeps/unix/sysv/linux/mips/setrlimit64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h b/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
index 6282d37..bd6f371 100644
--- a/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h b/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h
index 2531fff..62450de 100644
--- a/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h
+++ b/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h
@@ -1,5 +1,5 @@
/* Compat socket constants used in 64-bit compat code.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/swapcontext.S b/sysdeps/unix/sysv/linux/mips/swapcontext.S
index 51351a0..bdb3d6f 100644
--- a/sysdeps/unix/sysv/linux/mips/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/mips/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/sys/cachectl.h b/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
index b1de27b..d059246 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/sys/sysmips.h b/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
index b00900d..71c84c6 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
index ddde9ab..90d3e1a 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc. This file is part of the GNU C Library.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/mips/sys/user.h b/sysdeps/unix/sysv/linux/mips/sys/user.h
index c70a49c..b9e7ed0 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/user.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/sysdep.h b/sysdeps/unix/sysv/linux/mips/sysdep.h
index 74ca3d6..76e121a 100644
--- a/sysdeps/unix/sysv/linux/mips/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/sysdep.h
@@ -1,5 +1,5 @@
/* Syscall definitions, Linux MIPS generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h b/sysdeps/unix/sysv/linux/mips/termios_arch.h
index b85d4ad..392d9aa 100644
--- a/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
+++ b/sysdeps/unix/sysv/linux/mips/termios_arch.h
@@ -1,5 +1,6 @@
-/* Processor capability information handling macros - aarch64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Architectural parameters for Linux termios - MIPS version
+
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,22 +17,18 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H 1
-
-#include <sys/auxv.h>
-#include <unistd.h>
-#include <ldsodefs.h>
-#include <sysdep.h>
+#define _TERMIOS2_NCCS 23
+#define _HAVE_TERMIOS2_C_CC_BEFORE_C_LINE 0
-/* We cannot provide a general printing function. */
-#define _dl_procinfo(type, word) -1
+#define _HAVE_STRUCT_OLD_TERMIOS 1
-static inline const char *
-__attribute__ ((unused))
-_dl_hwcap_string (int idx)
+#define OLD_NCCS 32
+struct old_termios
{
- return (unsigned)idx < _DL_HWCAP_COUNT ? GLRO(dl_aarch64_cap_flags)[idx] : "";
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[OLD_NCCS]; /* control characters */
};
-
-#endif /* dl-procinfo.h */
diff --git a/sysdeps/unix/sysv/linux/mips/ustat.c b/sysdeps/unix/sysv/linux/mips/ustat.c
index e827136..084f8b5 100644
--- a/sysdeps/unix/sysv/linux/mips/ustat.c
+++ b/sysdeps/unix/sysv/linux/mips/ustat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/vfork.S b/sysdeps/unix/sysv/linux/mips/vfork.S
index 13f8fba..36b3621 100644
--- a/sysdeps/unix/sysv/linux/mips/vfork.S
+++ b/sysdeps/unix/sysv/linux/mips/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/xstat.c b/sysdeps/unix/sysv/linux/mips/xstat.c
index f7651cf..e2bfc94 100644
--- a/sysdeps/unix/sysv/linux/mips/xstat.c
+++ b/sysdeps/unix/sysv/linux/mips/xstat.c
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mips/xstatconv.c b/sysdeps/unix/sysv/linux/mips/xstatconv.c
index 1c87b62..b8fa14a 100644
--- a/sysdeps/unix/sysv/linux/mips/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/mips/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mkdir.c b/sysdeps/unix/sysv/linux/mkdir.c
index fbab0a9..3fb245a 100644
--- a/sysdeps/unix/sysv/linux/mkdir.c
+++ b/sysdeps/unix/sysv/linux/mkdir.c
@@ -1,5 +1,5 @@
/* Create a directory. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mknodat.c b/sysdeps/unix/sysv/linux/mknodat.c
index 8e350e2..e86624b 100644
--- a/sysdeps/unix/sysv/linux/mknodat.c
+++ b/sysdeps/unix/sysv/linux/mknodat.c
@@ -1,5 +1,5 @@
/* Create a special or ordinary file. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mlock2.c b/sysdeps/unix/sysv/linux/mlock2.c
index 11f5e68..468f33e 100644
--- a/sysdeps/unix/sysv/linux/mlock2.c
+++ b/sysdeps/unix/sysv/linux/mlock2.c
@@ -1,5 +1,5 @@
/* Wrapper for the mlock2 system call with fallback to mlock.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/mmap.c b/sysdeps/unix/sysv/linux/mmap.c
index c7f8a6f..6af5e6d 100644
--- a/sysdeps/unix/sysv/linux/mmap.c
+++ b/sysdeps/unix/sysv/linux/mmap.c
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mmap64.c b/sysdeps/unix/sysv/linux/mmap64.c
index f1869fa..e202356 100644
--- a/sysdeps/unix/sysv/linux/mmap64.c
+++ b/sysdeps/unix/sysv/linux/mmap64.c
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mmap_call.h b/sysdeps/unix/sysv/linux/mmap_call.h
index f55dd2b..719fcff 100644
--- a/sysdeps/unix/sysv/linux/mmap_call.h
+++ b/sysdeps/unix/sysv/linux/mmap_call.h
@@ -1,5 +1,5 @@
/* Generic definition of MMAP_CALL and MMAP_CALL_INTERNAL.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mmap_internal.h b/sysdeps/unix/sysv/linux/mmap_internal.h
index b2c2e27..215a507 100644
--- a/sysdeps/unix/sysv/linux/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_close.c b/sysdeps/unix/sysv/linux/mq_close.c
index 6120960..f0faa45 100644
--- a/sysdeps/unix/sysv/linux/mq_close.c
+++ b/sysdeps/unix/sysv/linux/mq_close.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_getattr.c b/sysdeps/unix/sysv/linux/mq_getattr.c
index fc5fa41..f70af92 100644
--- a/sysdeps/unix/sysv/linux/mq_getattr.c
+++ b/sysdeps/unix/sysv/linux/mq_getattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_notify.c b/sysdeps/unix/sysv/linux/mq_notify.c
index 55b4294..f99e9ea 100644
--- a/sysdeps/unix/sysv/linux/mq_notify.c
+++ b/sysdeps/unix/sysv/linux/mq_notify.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_open.c b/sysdeps/unix/sysv/linux/mq_open.c
index 936001b..493ccb7 100644
--- a/sysdeps/unix/sysv/linux/mq_open.c
+++ b/sysdeps/unix/sysv/linux/mq_open.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_receive.c b/sysdeps/unix/sysv/linux/mq_receive.c
index 0955476..980db63 100644
--- a/sysdeps/unix/sysv/linux/mq_receive.c
+++ b/sysdeps/unix/sysv/linux/mq_receive.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_send.c b/sysdeps/unix/sysv/linux/mq_send.c
index c936942..16847a6 100644
--- a/sysdeps/unix/sysv/linux/mq_send.c
+++ b/sysdeps/unix/sysv/linux/mq_send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_setattr.c b/sysdeps/unix/sysv/linux/mq_setattr.c
index 098c740..09cbae6 100644
--- a/sysdeps/unix/sysv/linux/mq_setattr.c
+++ b/sysdeps/unix/sysv/linux/mq_setattr.c
@@ -1,5 +1,5 @@
/* mq_setattr system call wrapper.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_timedreceive.c b/sysdeps/unix/sysv/linux/mq_timedreceive.c
index f2f24ea..3ee2753 100644
--- a/sysdeps/unix/sysv/linux/mq_timedreceive.c
+++ b/sysdeps/unix/sysv/linux/mq_timedreceive.c
@@ -1,5 +1,5 @@
/* Receive a message from a message queue with a timeout. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_timedsend.c b/sysdeps/unix/sysv/linux/mq_timedsend.c
index a0ccda9..cb27f1a 100644
--- a/sysdeps/unix/sysv/linux/mq_timedsend.c
+++ b/sysdeps/unix/sysv/linux/mq_timedsend.c
@@ -1,5 +1,5 @@
/* Send a message to a message queue with a timeout. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mq_unlink.c b/sysdeps/unix/sysv/linux/mq_unlink.c
index ce4b889..e21e05a 100644
--- a/sysdeps/unix/sysv/linux/mq_unlink.c
+++ b/sysdeps/unix/sysv/linux/mq_unlink.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mremap-failure.h b/sysdeps/unix/sysv/linux/mremap-failure.h
index c99ab30..8535d62 100644
--- a/sysdeps/unix/sysv/linux/mremap-failure.h
+++ b/sysdeps/unix/sysv/linux/mremap-failure.h
@@ -1,5 +1,5 @@
/* mremap failure handling. Linux version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mremap.c b/sysdeps/unix/sysv/linux/mremap.c
index 1ada5c1..e93986e 100644
--- a/sysdeps/unix/sysv/linux/mremap.c
+++ b/sysdeps/unix/sysv/linux/mremap.c
@@ -1,5 +1,5 @@
/* Remap a virtual memory address. Linux specific syscall.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/msgctl.c b/sysdeps/unix/sysv/linux/msgctl.c
index 3120cae..ee794c3 100644
--- a/sysdeps/unix/sysv/linux/msgctl.c
+++ b/sysdeps/unix/sysv/linux/msgctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/msgget.c b/sysdeps/unix/sysv/linux/msgget.c
index 71eea73..608a6ec 100644
--- a/sysdeps/unix/sysv/linux/msgget.c
+++ b/sysdeps/unix/sysv/linux/msgget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/msgrcv.c b/sysdeps/unix/sysv/linux/msgrcv.c
index 3051900..35059b2 100644
--- a/sysdeps/unix/sysv/linux/msgrcv.c
+++ b/sysdeps/unix/sysv/linux/msgrcv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/msgsnd.c b/sysdeps/unix/sysv/linux/msgsnd.c
index 8af400c..3593685 100644
--- a/sysdeps/unix/sysv/linux/msgsnd.c
+++ b/sysdeps/unix/sysv/linux/msgsnd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/msync.c b/sysdeps/unix/sysv/linux/msync.c
index 1d8dd4f..542975c 100644
--- a/sysdeps/unix/sysv/linux/msync.c
+++ b/sysdeps/unix/sysv/linux/msync.c
@@ -1,5 +1,5 @@
/* Linux synchronize a file with a memory map implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/mtx_timedlock.c b/sysdeps/unix/sysv/linux/mtx_timedlock.c
index a829213..d98d9fe 100644
--- a/sysdeps/unix/sysv/linux/mtx_timedlock.c
+++ b/sysdeps/unix/sysv/linux/mtx_timedlock.c
@@ -1,5 +1,5 @@
/* C11 threads mutex timed lock implementation - Linux variant.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nanosleep.c b/sysdeps/unix/sysv/linux/nanosleep.c
index fac9307..04d2a59 100644
--- a/sysdeps/unix/sysv/linux/nanosleep.c
+++ b/sysdeps/unix/sysv/linux/nanosleep.c
@@ -1,5 +1,5 @@
/* High-resolution sleep.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/ethernet.h b/sysdeps/unix/sysv/linux/net/ethernet.h
index 3f58506..62eb832 100644
--- a/sysdeps/unix/sysv/linux/net/ethernet.h
+++ b/sysdeps/unix/sysv/linux/net/ethernet.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/if_arp.h b/sysdeps/unix/sysv/linux/net/if_arp.h
index e7e194d..6b0a79c 100644
--- a/sysdeps/unix/sysv/linux/net/if_arp.h
+++ b/sysdeps/unix/sysv/linux/net/if_arp.h
@@ -1,5 +1,5 @@
/* Definitions for Address Resolution Protocol.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/if_packet.h b/sysdeps/unix/sysv/linux/net/if_packet.h
index c17e1c2..4fdc930 100644
--- a/sysdeps/unix/sysv/linux/net/if_packet.h
+++ b/sysdeps/unix/sysv/linux/net/if_packet.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux SOCK_PACKET sockets.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/if_shaper.h b/sysdeps/unix/sysv/linux/net/if_shaper.h
index 89ac7d5..9b7b1b8 100644
--- a/sysdeps/unix/sysv/linux/net/if_shaper.h
+++ b/sysdeps/unix/sysv/linux/net/if_shaper.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/if_slip.h b/sysdeps/unix/sysv/linux/net/if_slip.h
index 991f67d..1c4afbb 100644
--- a/sysdeps/unix/sysv/linux/net/if_slip.h
+++ b/sysdeps/unix/sysv/linux/net/if_slip.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/net/route.h b/sysdeps/unix/sysv/linux/net/route.h
index 1999c06..28646ad 100644
--- a/sysdeps/unix/sysv/linux/net/route.h
+++ b/sysdeps/unix/sysv/linux/net/route.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netash/ash.h b/sysdeps/unix/sysv/linux/netash/ash.h
index 7a6ff50..1316837 100644
--- a/sysdeps/unix/sysv/linux/netash/ash.h
+++ b/sysdeps/unix/sysv/linux/netash/ash.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux AF_ASH sockets.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netatalk/at.h b/sysdeps/unix/sysv/linux/netatalk/at.h
index 6867620..aea8523 100644
--- a/sysdeps/unix/sysv/linux/netatalk/at.h
+++ b/sysdeps/unix/sysv/linux/netatalk/at.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netax25/ax25.h b/sysdeps/unix/sysv/linux/netax25/ax25.h
index 8259d3c..f10ab265a 100644
--- a/sysdeps/unix/sysv/linux/netax25/ax25.h
+++ b/sysdeps/unix/sysv/linux/netax25/ax25.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/neteconet/ec.h b/sysdeps/unix/sysv/linux/neteconet/ec.h
index f3132f0..93652e2 100644
--- a/sysdeps/unix/sysv/linux/neteconet/ec.h
+++ b/sysdeps/unix/sysv/linux/neteconet/ec.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux AF_ECONET sockets.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netinet/if_ether.h b/sysdeps/unix/sysv/linux/netinet/if_ether.h
index 344dd8f..a9c8a84 100644
--- a/sysdeps/unix/sysv/linux/netinet/if_ether.h
+++ b/sysdeps/unix/sysv/linux/netinet/if_ether.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netinet/if_fddi.h b/sysdeps/unix/sysv/linux/netinet/if_fddi.h
index 26b0c42..3771dbd 100644
--- a/sysdeps/unix/sysv/linux/netinet/if_fddi.h
+++ b/sysdeps/unix/sysv/linux/netinet/if_fddi.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netinet/if_tr.h b/sysdeps/unix/sysv/linux/netinet/if_tr.h
index ec08676..19f5e9a 100644
--- a/sysdeps/unix/sysv/linux/netinet/if_tr.h
+++ b/sysdeps/unix/sysv/linux/netinet/if_tr.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netipx/ipx.h b/sysdeps/unix/sysv/linux/netipx/ipx.h
index ee9d785..2acd9a6 100644
--- a/sysdeps/unix/sysv/linux/netipx/ipx.h
+++ b/sysdeps/unix/sysv/linux/netipx/ipx.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netiucv/iucv.h b/sysdeps/unix/sysv/linux/netiucv/iucv.h
index 27151e8..1e8a4c9 100644
--- a/sysdeps/unix/sysv/linux/netiucv/iucv.h
+++ b/sysdeps/unix/sysv/linux/netiucv/iucv.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netlink_assert_response.c b/sysdeps/unix/sysv/linux/netlink_assert_response.c
index f7dd348..05e2724 100644
--- a/sysdeps/unix/sysv/linux/netlink_assert_response.c
+++ b/sysdeps/unix/sysv/linux/netlink_assert_response.c
@@ -1,5 +1,5 @@
/* Check recvmsg results for netlink sockets.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netlinkaccess.h b/sysdeps/unix/sysv/linux/netlinkaccess.h
index 2bc6e3f..afea6c3 100644
--- a/sysdeps/unix/sysv/linux/netlinkaccess.h
+++ b/sysdeps/unix/sysv/linux/netlinkaccess.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netpacket/packet.h b/sysdeps/unix/sysv/linux/netpacket/packet.h
index 9ac1331..5e8d6f3 100644
--- a/sysdeps/unix/sysv/linux/netpacket/packet.h
+++ b/sysdeps/unix/sysv/linux/netpacket/packet.h
@@ -1,5 +1,5 @@
/* Definitions for use with Linux AF_PACKET sockets.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netrom/netrom.h b/sysdeps/unix/sysv/linux/netrom/netrom.h
index 184b235..0d61e37 100644
--- a/sysdeps/unix/sysv/linux/netrom/netrom.h
+++ b/sysdeps/unix/sysv/linux/netrom/netrom.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/netrose/rose.h b/sysdeps/unix/sysv/linux/netrose/rose.h
index 1f838d0..f87934b 100644
--- a/sysdeps/unix/sysv/linux/netrose/rose.h
+++ b/sysdeps/unix/sysv/linux/netrose/rose.h
@@ -1,5 +1,5 @@
/* Definitions for Rose packet radio address family.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/Implies b/sysdeps/unix/sysv/linux/nios2/Implies
deleted file mode 100644
index e6c9be4..0000000
--- a/sysdeps/unix/sysv/linux/nios2/Implies
+++ /dev/null
@@ -1 +0,0 @@
-nios2/nptl
diff --git a/sysdeps/unix/sysv/linux/nios2/Makefile b/sysdeps/unix/sysv/linux/nios2/Makefile
deleted file mode 100644
index 9342e45..0000000
--- a/sysdeps/unix/sysv/linux/nios2/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-ifeq ($(subdir),stdlib)
-gen-as-const-headers += ucontext_i.sym
-endif
-
-ifeq ($(subdir),misc)
-# MIPS-style cacheflush routine
-sysdep_headers += sys/cachectl.h
-sysdep_routines += cacheflush
-endif
-
-ifeq ($(subdir),csu)
-# Work around an incorrect assumption that an object of variably
-# modified type, with a small fixed size but a large variable-sized
-# part (the static_slotinfo variable in libc-tls.c) is allocated in
-# the small data section, not the data section where it belongs based
-# on its size. See GCC PR 92499.
-CFLAGS-libc-tls.c += -mgpopt=none
-endif
diff --git a/sysdeps/unix/sysv/linux/nios2/Versions b/sysdeps/unix/sysv/linux/nios2/Versions
deleted file mode 100644
index e42c85f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/Versions
+++ /dev/null
@@ -1,6 +0,0 @@
-libc {
- GLIBC_2.21 {
- _flush_cache;
- cacheflush;
- }
-}
diff --git a/sysdeps/unix/sysv/linux/nios2/arch-syscall.h b/sysdeps/unix/sysv/linux/nios2/arch-syscall.h
deleted file mode 100644
index f94e212..0000000
--- a/sysdeps/unix/sysv/linux/nios2/arch-syscall.h
+++ /dev/null
@@ -1,338 +0,0 @@
-/* AUTOGENERATED by update-syscall-lists.py. */
-#define __NR_accept 202
-#define __NR_accept4 242
-#define __NR_acct 89
-#define __NR_add_key 217
-#define __NR_adjtimex 171
-#define __NR_bind 200
-#define __NR_bpf 280
-#define __NR_brk 214
-#define __NR_cacheflush 244
-#define __NR_cachestat 451
-#define __NR_capget 90
-#define __NR_capset 91
-#define __NR_chdir 49
-#define __NR_chroot 51
-#define __NR_clock_adjtime 266
-#define __NR_clock_adjtime64 405
-#define __NR_clock_getres 114
-#define __NR_clock_getres_time64 406
-#define __NR_clock_gettime 113
-#define __NR_clock_gettime64 403
-#define __NR_clock_nanosleep 115
-#define __NR_clock_nanosleep_time64 407
-#define __NR_clock_settime 112
-#define __NR_clock_settime64 404
-#define __NR_clone 220
-#define __NR_close 57
-#define __NR_close_range 436
-#define __NR_connect 203
-#define __NR_copy_file_range 285
-#define __NR_delete_module 106
-#define __NR_dup 23
-#define __NR_dup3 24
-#define __NR_epoll_create1 20
-#define __NR_epoll_ctl 21
-#define __NR_epoll_pwait 22
-#define __NR_epoll_pwait2 441
-#define __NR_eventfd2 19
-#define __NR_execve 221
-#define __NR_execveat 281
-#define __NR_exit 93
-#define __NR_exit_group 94
-#define __NR_faccessat 48
-#define __NR_faccessat2 439
-#define __NR_fadvise64_64 223
-#define __NR_fallocate 47
-#define __NR_fanotify_init 262
-#define __NR_fanotify_mark 263
-#define __NR_fchdir 50
-#define __NR_fchmod 52
-#define __NR_fchmodat 53
-#define __NR_fchmodat2 452
-#define __NR_fchown 55
-#define __NR_fchownat 54
-#define __NR_fcntl64 25
-#define __NR_fdatasync 83
-#define __NR_fgetxattr 10
-#define __NR_finit_module 273
-#define __NR_flistxattr 13
-#define __NR_flock 32
-#define __NR_fremovexattr 16
-#define __NR_fsconfig 431
-#define __NR_fsetxattr 7
-#define __NR_fsmount 432
-#define __NR_fsopen 430
-#define __NR_fspick 433
-#define __NR_fstat64 80
-#define __NR_fstatat64 79
-#define __NR_fstatfs64 44
-#define __NR_fsync 82
-#define __NR_ftruncate64 46
-#define __NR_futex 98
-#define __NR_futex_requeue 456
-#define __NR_futex_time64 422
-#define __NR_futex_wait 455
-#define __NR_futex_waitv 449
-#define __NR_futex_wake 454
-#define __NR_get_mempolicy 236
-#define __NR_get_robust_list 100
-#define __NR_getcpu 168
-#define __NR_getcwd 17
-#define __NR_getdents64 61
-#define __NR_getegid 177
-#define __NR_geteuid 175
-#define __NR_getgid 176
-#define __NR_getgroups 158
-#define __NR_getitimer 102
-#define __NR_getpeername 205
-#define __NR_getpgid 155
-#define __NR_getpid 172
-#define __NR_getppid 173
-#define __NR_getpriority 141
-#define __NR_getrandom 278
-#define __NR_getresgid 150
-#define __NR_getresuid 148
-#define __NR_getrlimit 163
-#define __NR_getrusage 165
-#define __NR_getsid 156
-#define __NR_getsockname 204
-#define __NR_getsockopt 209
-#define __NR_gettid 178
-#define __NR_gettimeofday 169
-#define __NR_getuid 174
-#define __NR_getxattr 8
-#define __NR_init_module 105
-#define __NR_inotify_add_watch 27
-#define __NR_inotify_init1 26
-#define __NR_inotify_rm_watch 28
-#define __NR_io_cancel 3
-#define __NR_io_destroy 1
-#define __NR_io_getevents 4
-#define __NR_io_pgetevents 292
-#define __NR_io_pgetevents_time64 416
-#define __NR_io_setup 0
-#define __NR_io_submit 2
-#define __NR_io_uring_enter 426
-#define __NR_io_uring_register 427
-#define __NR_io_uring_setup 425
-#define __NR_ioctl 29
-#define __NR_ioprio_get 31
-#define __NR_ioprio_set 30
-#define __NR_kcmp 272
-#define __NR_kexec_file_load 294
-#define __NR_kexec_load 104
-#define __NR_keyctl 219
-#define __NR_kill 129
-#define __NR_landlock_add_rule 445
-#define __NR_landlock_create_ruleset 444
-#define __NR_landlock_restrict_self 446
-#define __NR_lgetxattr 9
-#define __NR_linkat 37
-#define __NR_listen 201
-#define __NR_listmount 458
-#define __NR_listxattr 11
-#define __NR_llistxattr 12
-#define __NR_llseek 62
-#define __NR_lookup_dcookie 18
-#define __NR_lremovexattr 15
-#define __NR_lsetxattr 6
-#define __NR_lsm_get_self_attr 459
-#define __NR_lsm_list_modules 461
-#define __NR_lsm_set_self_attr 460
-#define __NR_madvise 233
-#define __NR_map_shadow_stack 453
-#define __NR_mbind 235
-#define __NR_membarrier 283
-#define __NR_memfd_create 279
-#define __NR_migrate_pages 238
-#define __NR_mincore 232
-#define __NR_mkdirat 34
-#define __NR_mknodat 33
-#define __NR_mlock 228
-#define __NR_mlock2 284
-#define __NR_mlockall 230
-#define __NR_mmap2 222
-#define __NR_mount 40
-#define __NR_mount_setattr 442
-#define __NR_move_mount 429
-#define __NR_move_pages 239
-#define __NR_mprotect 226
-#define __NR_mq_getsetattr 185
-#define __NR_mq_notify 184
-#define __NR_mq_open 180
-#define __NR_mq_timedreceive 183
-#define __NR_mq_timedreceive_time64 419
-#define __NR_mq_timedsend 182
-#define __NR_mq_timedsend_time64 418
-#define __NR_mq_unlink 181
-#define __NR_mremap 216
-#define __NR_mseal 462
-#define __NR_msgctl 187
-#define __NR_msgget 186
-#define __NR_msgrcv 188
-#define __NR_msgsnd 189
-#define __NR_msync 227
-#define __NR_munlock 229
-#define __NR_munlockall 231
-#define __NR_munmap 215
-#define __NR_name_to_handle_at 264
-#define __NR_nanosleep 101
-#define __NR_nfsservctl 42
-#define __NR_open_by_handle_at 265
-#define __NR_open_tree 428
-#define __NR_openat 56
-#define __NR_openat2 437
-#define __NR_perf_event_open 241
-#define __NR_personality 92
-#define __NR_pidfd_getfd 438
-#define __NR_pidfd_open 434
-#define __NR_pidfd_send_signal 424
-#define __NR_pipe2 59
-#define __NR_pivot_root 41
-#define __NR_pkey_alloc 289
-#define __NR_pkey_free 290
-#define __NR_pkey_mprotect 288
-#define __NR_ppoll 73
-#define __NR_ppoll_time64 414
-#define __NR_prctl 167
-#define __NR_pread64 67
-#define __NR_preadv 69
-#define __NR_preadv2 286
-#define __NR_prlimit64 261
-#define __NR_process_madvise 440
-#define __NR_process_mrelease 448
-#define __NR_process_vm_readv 270
-#define __NR_process_vm_writev 271
-#define __NR_pselect6 72
-#define __NR_pselect6_time64 413
-#define __NR_ptrace 117
-#define __NR_pwrite64 68
-#define __NR_pwritev 70
-#define __NR_pwritev2 287
-#define __NR_quotactl 60
-#define __NR_quotactl_fd 443
-#define __NR_read 63
-#define __NR_readahead 213
-#define __NR_readlinkat 78
-#define __NR_readv 65
-#define __NR_reboot 142
-#define __NR_recvfrom 207
-#define __NR_recvmmsg 243
-#define __NR_recvmmsg_time64 417
-#define __NR_recvmsg 212
-#define __NR_remap_file_pages 234
-#define __NR_removexattr 14
-#define __NR_renameat 38
-#define __NR_renameat2 276
-#define __NR_request_key 218
-#define __NR_restart_syscall 128
-#define __NR_rseq 293
-#define __NR_rt_sigaction 134
-#define __NR_rt_sigpending 136
-#define __NR_rt_sigprocmask 135
-#define __NR_rt_sigqueueinfo 138
-#define __NR_rt_sigreturn 139
-#define __NR_rt_sigsuspend 133
-#define __NR_rt_sigtimedwait 137
-#define __NR_rt_sigtimedwait_time64 421
-#define __NR_rt_tgsigqueueinfo 240
-#define __NR_sched_get_priority_max 125
-#define __NR_sched_get_priority_min 126
-#define __NR_sched_getaffinity 123
-#define __NR_sched_getattr 275
-#define __NR_sched_getparam 121
-#define __NR_sched_getscheduler 120
-#define __NR_sched_rr_get_interval 127
-#define __NR_sched_rr_get_interval_time64 423
-#define __NR_sched_setaffinity 122
-#define __NR_sched_setattr 274
-#define __NR_sched_setparam 118
-#define __NR_sched_setscheduler 119
-#define __NR_sched_yield 124
-#define __NR_seccomp 277
-#define __NR_semctl 191
-#define __NR_semget 190
-#define __NR_semop 193
-#define __NR_semtimedop 192
-#define __NR_semtimedop_time64 420
-#define __NR_sendfile64 71
-#define __NR_sendmmsg 269
-#define __NR_sendmsg 211
-#define __NR_sendto 206
-#define __NR_set_mempolicy 237
-#define __NR_set_mempolicy_home_node 450
-#define __NR_set_robust_list 99
-#define __NR_set_tid_address 96
-#define __NR_setdomainname 162
-#define __NR_setfsgid 152
-#define __NR_setfsuid 151
-#define __NR_setgid 144
-#define __NR_setgroups 159
-#define __NR_sethostname 161
-#define __NR_setitimer 103
-#define __NR_setns 268
-#define __NR_setpgid 154
-#define __NR_setpriority 140
-#define __NR_setregid 143
-#define __NR_setresgid 149
-#define __NR_setresuid 147
-#define __NR_setreuid 145
-#define __NR_setrlimit 164
-#define __NR_setsid 157
-#define __NR_setsockopt 208
-#define __NR_settimeofday 170
-#define __NR_setuid 146
-#define __NR_setxattr 5
-#define __NR_shmat 196
-#define __NR_shmctl 195
-#define __NR_shmdt 197
-#define __NR_shmget 194
-#define __NR_shutdown 210
-#define __NR_sigaltstack 132
-#define __NR_signalfd4 74
-#define __NR_socket 198
-#define __NR_socketpair 199
-#define __NR_splice 76
-#define __NR_statfs64 43
-#define __NR_statmount 457
-#define __NR_statx 291
-#define __NR_swapoff 225
-#define __NR_swapon 224
-#define __NR_symlinkat 36
-#define __NR_sync 81
-#define __NR_sync_file_range 84
-#define __NR_syncfs 267
-#define __NR_sysinfo 179
-#define __NR_syslog 116
-#define __NR_tee 77
-#define __NR_tgkill 131
-#define __NR_timer_create 107
-#define __NR_timer_delete 111
-#define __NR_timer_getoverrun 109
-#define __NR_timer_gettime 108
-#define __NR_timer_gettime64 408
-#define __NR_timer_settime 110
-#define __NR_timer_settime64 409
-#define __NR_timerfd_create 85
-#define __NR_timerfd_gettime 87
-#define __NR_timerfd_gettime64 410
-#define __NR_timerfd_settime 86
-#define __NR_timerfd_settime64 411
-#define __NR_times 153
-#define __NR_tkill 130
-#define __NR_truncate64 45
-#define __NR_umask 166
-#define __NR_umount2 39
-#define __NR_uname 160
-#define __NR_unlinkat 35
-#define __NR_unshare 97
-#define __NR_userfaultfd 282
-#define __NR_utimensat 88
-#define __NR_utimensat_time64 412
-#define __NR_vhangup 58
-#define __NR_vmsplice 75
-#define __NR_wait4 260
-#define __NR_waitid 95
-#define __NR_write 64
-#define __NR_writev 66
diff --git a/sysdeps/unix/sysv/linux/nios2/atomic-machine.h b/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
deleted file mode 100644
index 91033fa..0000000
--- a/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Low-level functions for atomic operations. Nios II version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _NIOS2_ATOMIC_MACHINE_H
-#define _NIOS2_ATOMIC_MACHINE_H 1
-
-#define __HAVE_64B_ATOMICS 0
-#define USE_ATOMIC_COMPILER_BUILTINS 0
-
-/* XXX Is this actually correct? */
-#define ATOMIC_EXCHANGE_USES_CAS 1
-
-#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- (abort (), (__typeof (*mem)) 0)
-
-#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \
- (abort (), 0)
-#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \
- (abort (), 0)
-#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
- (abort (), 0)
-
-#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ \
- register int r2 asm ("r2"); \
- register int* r4 asm ("r4") = (int*)(mem); \
- register int r5 asm ("r5"); \
- register int r6 asm ("r6") = (int)(newval); \
- int retval, orig_oldval = (int)(oldval); \
- long kernel_cmpxchg = 0x1004; \
- while (1) \
- { \
- r5 = *r4; \
- if (r5 != orig_oldval) \
- { \
- retval = r5; \
- break; \
- } \
- asm volatile ("callr %1\n" \
- : "=r" (r2) \
- : "r" (kernel_cmpxchg), "r" (r4), "r" (r5), "r" (r6) \
- : "ra", "memory"); \
- if (!r2) { retval = orig_oldval; break; } \
- } \
- (__typeof (*(mem))) retval; \
- })
-
-#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
- ({ \
- register int r2 asm ("r2"); \
- register int *r4 asm ("r4") = (int*)(mem); \
- register int r5 asm ("r5") = (int)(oldval); \
- register int r6 asm ("r6") = (int)(newval); \
- long kernel_cmpxchg = 0x1004; \
- asm volatile ("callr %1\n" \
- : "=r" (r2) \
- : "r" (kernel_cmpxchg), "r" (r4), "r" (r5), "r" (r6) \
- : "ra", "memory"); \
- r2; \
- })
-
-#define atomic_full_barrier() ({ asm volatile ("sync"); })
-
-#endif /* _NIOS2_ATOMIC_MACHINE_H */
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/procfs.h b/sysdeps/unix/sysv/linux/nios2/bits/procfs.h
deleted file mode 100644
index 98ccb07..0000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/procfs.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Types for registers for sys/procfs.h. Nios II version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_PROCFS_H
-# error "Never include <bits/procfs.h> directly; use <sys/procfs.h> instead."
-#endif
-
-/* Type for a general-purpose register. */
-typedef unsigned long elf_greg_t;
-
-/* And the whole bunch of them. We could have used `struct
- user_regs' directly in the typedef, but tradition says that
- the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
-#define ELF_NGREG (sizeof (struct user_regs) / sizeof (elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-/* Register set for the floating-point registers. */
-typedef struct user_fpregs elf_fpregset_t;
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/statfs.h b/sysdeps/unix/sysv/linux/nios2/bits/statfs.h
deleted file mode 100644
index f9f3c64..0000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/statfs.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_STATFS_H
-# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
-#endif
-
-#include <bits/endian.h>
-#include <bits/types.h>
-#include <bits/wordsize.h>
-
-#if defined __USE_FILE_OFFSET64
-# define __field64(type, type64, name) type64 name
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define __field64(type, type64, name) \
- type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
-#else
-# define __field64(type, type64, name) \
- int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
-#endif
-
-struct statfs
- {
- __SWORD_TYPE f_type;
- __SWORD_TYPE f_bsize;
- __field64(__fsblkcnt_t, __fsblkcnt64_t, f_blocks);
- __field64(__fsblkcnt_t, __fsblkcnt64_t, f_bfree);
- __field64(__fsblkcnt_t, __fsblkcnt64_t, f_bavail);
- __field64(__fsfilcnt_t, __fsfilcnt64_t, f_files);
- __field64(__fsfilcnt_t, __fsfilcnt64_t, f_ffree);
- __fsid_t f_fsid;
- __SWORD_TYPE f_namelen;
- __SWORD_TYPE f_frsize;
- __SWORD_TYPE f_flags;
- __SWORD_TYPE f_spare[4];
- };
-
-#undef __field64
-
-#ifdef __USE_LARGEFILE64
-struct statfs64
- {
- __SWORD_TYPE f_type;
- __SWORD_TYPE f_bsize;
- __fsblkcnt64_t f_blocks;
- __fsblkcnt64_t f_bfree;
- __fsblkcnt64_t f_bavail;
- __fsfilcnt64_t f_files;
- __fsfilcnt64_t f_ffree;
- __fsid_t f_fsid;
- __SWORD_TYPE f_namelen;
- __SWORD_TYPE f_frsize;
- __SWORD_TYPE f_flags;
- __SWORD_TYPE f_spare[4];
- };
-#endif
-
-/* Tell code we have these members. */
-#define _STATFS_F_NAMELEN
-#define _STATFS_F_FRSIZE
-#define _STATFS_F_FLAGS
diff --git a/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h b/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h
deleted file mode 100644
index dab466d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/bits/struct_stat.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Definition for struct stat. Linux/nios2 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#if !defined _SYS_STAT_H && !defined _FCNTL_H
-# error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead."
-#endif
-
-#ifndef _BITS_STRUCT_STAT_H
-#define _BITS_STRUCT_STAT_H 1
-
-#include <bits/endian.h>
-#include <bits/wordsize.h>
-
-#if defined __USE_FILE_OFFSET64
-# define __field64(type, type64, name) type64 name
-#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
-# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T
-# error "ino_t and off_t must both be the same type"
-# endif
-# define __field64(type, type64, name) type name
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
-# define __field64(type, type64, name) \
- type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
-#else
-# define __field64(type, type64, name) \
- int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
-#endif
-
-struct stat
- {
-#ifdef __USE_TIME64_REDIRECTS
-# include <bits/struct_stat_time64_helper.h>
-#else
- __dev_t st_dev; /* Device. */
- __field64(__ino_t, __ino64_t, st_ino); /* File serial number. */
- __mode_t st_mode; /* File mode. */
- __nlink_t st_nlink; /* Link count. */
- __uid_t st_uid; /* User ID of the file's owner. */
- __gid_t st_gid; /* Group ID of the file's group.*/
- __dev_t st_rdev; /* Device number, if device. */
- __dev_t __pad1;
- __field64(__off_t, __off64_t, st_size); /* Size of file, in bytes. */
- __blksize_t st_blksize; /* Optimal block size for I/O. */
- int __pad2;
- __field64(__blkcnt_t, __blkcnt64_t, st_blocks); /* 512-byte blocks */
-# ifdef __USE_XOPEN2K8
- /* Nanosecond resolution timestamps are stored in a format
- equivalent to 'struct timespec'. This is the type used
- whenever possible but the Unix namespace rules do not allow the
- identifier 'timespec' to appear in the <sys/stat.h> header.
- Therefore we have to handle the use of this header in strictly
- standard-compliant sources special. */
- struct timespec st_atim; /* Time of last access. */
- struct timespec st_mtim; /* Time of last modification. */
- struct timespec st_ctim; /* Time of last status change. */
-# define st_atime st_atim.tv_sec /* Backward compatibility. */
-# define st_mtime st_mtim.tv_sec
-# define st_ctime st_ctim.tv_sec
-# else
- __time_t st_atime; /* Time of last access. */
- unsigned long int st_atimensec; /* Nscecs of last access. */
- __time_t st_mtime; /* Time of last modification. */
- unsigned long int st_mtimensec; /* Nsecs of last modification. */
- __time_t st_ctime; /* Time of last status change. */
- unsigned long int st_ctimensec; /* Nsecs of last status change. */
-# endif
- int __glibc_reserved[2];
-#endif
- };
-
-#undef __field64
-
-#ifdef __USE_LARGEFILE64
-struct stat64
- {
-# ifdef __USE_TIME64_REDIRECTS
-# include <bits/struct_stat_time64_helper.h>
-# else
- __dev_t st_dev; /* Device. */
- __ino64_t st_ino; /* File serial number. */
- __mode_t st_mode; /* File mode. */
- __nlink_t st_nlink; /* Link count. */
- __uid_t st_uid; /* User ID of the file's owner. */
- __gid_t st_gid; /* Group ID of the file's group.*/
- __dev_t st_rdev; /* Device number, if device. */
- __dev_t __pad1;
- __off64_t st_size; /* Size of file, in bytes. */
- __blksize_t st_blksize; /* Optimal block size for I/O. */
- int __pad2;
- __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
-# ifdef __USE_XOPEN2K8
- /* Nanosecond resolution timestamps are stored in a format
- equivalent to 'struct timespec'. This is the type used
- whenever possible but the Unix namespace rules do not allow the
- identifier 'timespec' to appear in the <sys/stat.h> header.
- Therefore we have to handle the use of this header in strictly
- standard-compliant sources special. */
- struct timespec st_atim; /* Time of last access. */
- struct timespec st_mtim; /* Time of last modification. */
- struct timespec st_ctim; /* Time of last status change. */
-# else
- __time_t st_atime; /* Time of last access. */
- unsigned long int st_atimensec; /* Nscecs of last access. */
- __time_t st_mtime; /* Time of last modification. */
- unsigned long int st_mtimensec; /* Nsecs of last modification. */
- __time_t st_ctime; /* Time of last status change. */
- unsigned long int st_ctimensec; /* Nsecs of last status change. */
-# endif
- int __glibc_reserved[2];
-# endif
- };
-#endif
-
-/* Tell code we have these members. */
-#define _STATBUF_ST_BLKSIZE
-#define _STATBUF_ST_RDEV
-/* Nanosecond resolution time values are supported. */
-#define _STATBUF_ST_NSEC
-
-#endif /* _BITS_STRUCT_STAT_H */
diff --git a/sysdeps/unix/sysv/linux/nios2/c++-types.data b/sysdeps/unix/sysv/linux/nios2/c++-types.data
deleted file mode 100644
index 303f457..0000000
--- a/sysdeps/unix/sysv/linux/nios2/c++-types.data
+++ /dev/null
@@ -1,67 +0,0 @@
-blkcnt64_t:x
-blkcnt_t:l
-blksize_t:i
-caddr_t:Pc
-clockid_t:i
-clock_t:l
-daddr_t:i
-dev_t:y
-fd_mask:l
-fsblkcnt64_t:y
-fsblkcnt_t:m
-fsfilcnt64_t:y
-fsfilcnt_t:m
-fsid_t:8__fsid_t
-gid_t:j
-id_t:j
-ino64_t:y
-ino_t:m
-int16_t:s
-int32_t:i
-int64_t:x
-int8_t:a
-intptr_t:i
-key_t:i
-loff_t:x
-mode_t:j
-nlink_t:j
-off64_t:x
-off_t:l
-pid_t:i
-pthread_attr_t:14pthread_attr_t
-pthread_barrier_t:17pthread_barrier_t
-pthread_barrierattr_t:21pthread_barrierattr_t
-pthread_cond_t:14pthread_cond_t
-pthread_condattr_t:18pthread_condattr_t
-pthread_key_t:j
-pthread_mutex_t:15pthread_mutex_t
-pthread_mutexattr_t:19pthread_mutexattr_t
-pthread_once_t:i
-pthread_rwlock_t:16pthread_rwlock_t
-pthread_rwlockattr_t:20pthread_rwlockattr_t
-pthread_spinlock_t:i
-pthread_t:m
-quad_t:x
-register_t:i
-rlim64_t:y
-rlim_t:m
-sigset_t:10__sigset_t
-size_t:j
-socklen_t:j
-ssize_t:i
-suseconds_t:l
-time_t:l
-u_char:h
-uid_t:j
-uint:j
-u_int:j
-u_int16_t:t
-u_int32_t:j
-u_int64_t:y
-u_int8_t:h
-ulong:m
-u_long:m
-u_quad_t:y
-useconds_t:j
-ushort:t
-u_short:t
diff --git a/sysdeps/unix/sysv/linux/nios2/clone.S b/sysdeps/unix/sysv/linux/nios2/clone.S
deleted file mode 100644
index c234f45..0000000
--- a/sysdeps/unix/sysv/linux/nios2/clone.S
+++ /dev/null
@@ -1,83 +0,0 @@
-/* clone() implementation for Nios II.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* clone() is even more special than fork() as it mucks with stacks
- and invokes a function in the right context after its all over. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <tcb-offsets.h>
-
-/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
- void *parent_tidptr, void *tls, void *child_tidptr) */
-
- .text
-ENTRY(__clone)
- /* Sanity check arguments. */
- movi r2, EINVAL
- /* No NULL function pointers. */
- beq r4, zero, SYSCALL_ERROR_LABEL
- /* No NULL stack pointers. */
- beq r5, zero, SYSCALL_ERROR_LABEL
-
- subi r5, r5, 8 /* Reserve argument save space. */
- stw r4, 4(r5) /* Save function pointer. */
- stw r7, 0(r5) /* Save argument pointer. */
-
- /* Load arguments. */
- mov r4, r6
- ldw r6, 0(sp)
- ldw r7, 8(sp)
- ldw r8, 4(sp)
-
- /* Do the system call. */
- movi r2, SYS_ify (clone)
-
- /* End FDE now, because in the child the unwind info will be
- wrong. */
- cfi_endproc
- trap
-
- /* Check for errors. */
- bne r7, zero, SYSCALL_ERROR_LABEL
- /* See if we're on the newly created thread. */
- beq r2, zero, thread_start
- /* Successful return from the parent */
- ret
-
-thread_start:
- cfi_startproc
- cfi_undefined (ra)
-
- ldw r5, 4(sp) /* Function pointer. */
- ldw r4, 0(sp) /* Argument pointer. */
- addi sp, sp, 8
-
- /* Call the user's function. */
- callr r5
-
- /* exit with the result. */
- movi r2, SYS_ify (exit)
- trap
- cfi_endproc
-
- cfi_startproc
-PSEUDO_END (__clone)
-libc_hidden_def (__clone)
-weak_alias (__clone, clone)
diff --git a/sysdeps/unix/sysv/linux/nios2/configure b/sysdeps/unix/sysv/linux/nios2/configure
deleted file mode 100644
index 8d80166..0000000
--- a/sysdeps/unix/sysv/linux/nios2/configure
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
- # Local configure fragment for sysdeps/unix/sysv/linux/nios2.
-
-arch_minimum_kernel=3.19.0
-
diff --git a/sysdeps/unix/sysv/linux/nios2/configure.ac b/sysdeps/unix/sysv/linux/nios2/configure.ac
deleted file mode 100644
index a8ccc17..0000000
--- a/sysdeps/unix/sysv/linux/nios2/configure.ac
+++ /dev/null
@@ -1,4 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/unix/sysv/linux/nios2.
-
-arch_minimum_kernel=3.19.0
diff --git a/sysdeps/unix/sysv/linux/nios2/getcontext.S b/sysdeps/unix/sysv/linux/nios2/getcontext.S
deleted file mode 100644
index 627c89d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/getcontext.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Save current context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include "ucontext_i.h"
-
-/* int getcontext (ucontext_t *ucp)
-
- Returns 0 on success -1 and errno on failure.
- */
- .text
-ENTRY(__getcontext)
- stw r16, (UCONTEXT_MCONTEXT + 16*4)(r4)
- stw r17, (UCONTEXT_MCONTEXT + 17*4)(r4)
- stw r18, (UCONTEXT_MCONTEXT + 18*4)(r4)
- stw r19, (UCONTEXT_MCONTEXT + 19*4)(r4)
- stw r20, (UCONTEXT_MCONTEXT + 20*4)(r4)
- stw r21, (UCONTEXT_MCONTEXT + 21*4)(r4)
- stw r22, (UCONTEXT_MCONTEXT + 22*4)(r4)
- stw ra, (UCONTEXT_MCONTEXT + 24*4)(r4)
- stw fp, (UCONTEXT_MCONTEXT + 25*4)(r4)
- stw gp, (UCONTEXT_MCONTEXT + 26*4)(r4)
- /* Store return address at place for EA. */
- stw ra, (UCONTEXT_MCONTEXT + 28*4)(r4)
- stw sp, (UCONTEXT_MCONTEXT + 29*4)(r4)
- /* Store zero for return success. */
- stw zero, (UCONTEXT_MCONTEXT + 2*4)(r4)
-
- /* Store value "1" at uc_flags to recognize as getcontext created. */
- movi r2, 1
- stw r2, UCONTEXT_FLAGS(r4)
-
- /* Store MCONTEXT_VERSION at first word of mcontext_t. */
- movi r2, MCONTEXT_VERSION
- stw r2, UCONTEXT_MCONTEXT(r4)
-
- /* Get signal mask. */
- /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
- movi r7, _NSIG8
- addi r6, r4, UCONTEXT_SIGMASK
- mov r5, zero
- movi r4, SIG_BLOCK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
- mov r2, zero
- ret
-
-PSEUDO_END(__getcontext)
-weak_alias(__getcontext, getcontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h b/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h
deleted file mode 100644
index 89f9bce..0000000
--- a/sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* NIOS2 uses the generic Linux UAPI but defines SA_RESTORER. */
-#define SA_RESTORER 0x04000000
-
-#define SET_SA_RESTORER(kact, act) \
- (kact)->sa_restorer = (act)->sa_restorer
-#define RESET_SA_RESTORER(act, kact) \
- (act)->sa_restorer = (kact)->sa_restorer
-
-#include <sysdeps/unix/sysv/linux/kernel_sigaction.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/ld.abilist b/sysdeps/unix/sysv/linux/nios2/ld.abilist
deleted file mode 100644
index 811ae9d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/ld.abilist
+++ /dev/null
@@ -1,9 +0,0 @@
-GLIBC_2.21 __libc_stack_end D 0x4
-GLIBC_2.21 __stack_chk_guard D 0x4
-GLIBC_2.21 __tls_get_addr F
-GLIBC_2.21 _dl_mcount F
-GLIBC_2.21 _r_debug D 0x14
-GLIBC_2.34 __rtld_version_placeholder F
-GLIBC_2.35 __rseq_flags D 0x4
-GLIBC_2.35 __rseq_offset D 0x4
-GLIBC_2.35 __rseq_size D 0x4
diff --git a/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist
deleted file mode 100644
index f0210af..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __ctype_get_mb_cur_max F
diff --git a/sysdeps/unix/sysv/linux/nios2/libanl.abilist b/sysdeps/unix/sysv/linux/nios2/libanl.abilist
deleted file mode 100644
index 68f340f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libanl.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __libanl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
deleted file mode 100644
index 3aa8176..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ /dev/null
@@ -1,2875 +0,0 @@
-GLIBC_2.21 _Exit F
-GLIBC_2.21 _IO_2_1_stderr_ D 0x98
-GLIBC_2.21 _IO_2_1_stdin_ D 0x98
-GLIBC_2.21 _IO_2_1_stdout_ D 0x98
-GLIBC_2.21 _IO_adjust_column F
-GLIBC_2.21 _IO_adjust_wcolumn F
-GLIBC_2.21 _IO_default_doallocate F
-GLIBC_2.21 _IO_default_finish F
-GLIBC_2.21 _IO_default_pbackfail F
-GLIBC_2.21 _IO_default_uflow F
-GLIBC_2.21 _IO_default_xsgetn F
-GLIBC_2.21 _IO_default_xsputn F
-GLIBC_2.21 _IO_do_write F
-GLIBC_2.21 _IO_doallocbuf F
-GLIBC_2.21 _IO_fclose F
-GLIBC_2.21 _IO_fdopen F
-GLIBC_2.21 _IO_feof F
-GLIBC_2.21 _IO_ferror F
-GLIBC_2.21 _IO_fflush F
-GLIBC_2.21 _IO_fgetpos F
-GLIBC_2.21 _IO_fgetpos64 F
-GLIBC_2.21 _IO_fgets F
-GLIBC_2.21 _IO_file_attach F
-GLIBC_2.21 _IO_file_close F
-GLIBC_2.21 _IO_file_close_it F
-GLIBC_2.21 _IO_file_doallocate F
-GLIBC_2.21 _IO_file_finish F
-GLIBC_2.21 _IO_file_fopen F
-GLIBC_2.21 _IO_file_init F
-GLIBC_2.21 _IO_file_jumps D 0x54
-GLIBC_2.21 _IO_file_open F
-GLIBC_2.21 _IO_file_overflow F
-GLIBC_2.21 _IO_file_read F
-GLIBC_2.21 _IO_file_seek F
-GLIBC_2.21 _IO_file_seekoff F
-GLIBC_2.21 _IO_file_setbuf F
-GLIBC_2.21 _IO_file_stat F
-GLIBC_2.21 _IO_file_sync F
-GLIBC_2.21 _IO_file_underflow F
-GLIBC_2.21 _IO_file_write F
-GLIBC_2.21 _IO_file_xsputn F
-GLIBC_2.21 _IO_flockfile F
-GLIBC_2.21 _IO_flush_all F
-GLIBC_2.21 _IO_flush_all_linebuffered F
-GLIBC_2.21 _IO_fopen F
-GLIBC_2.21 _IO_fprintf F
-GLIBC_2.21 _IO_fputs F
-GLIBC_2.21 _IO_fread F
-GLIBC_2.21 _IO_free_backup_area F
-GLIBC_2.21 _IO_free_wbackup_area F
-GLIBC_2.21 _IO_fsetpos F
-GLIBC_2.21 _IO_fsetpos64 F
-GLIBC_2.21 _IO_ftell F
-GLIBC_2.21 _IO_ftrylockfile F
-GLIBC_2.21 _IO_funlockfile F
-GLIBC_2.21 _IO_fwrite F
-GLIBC_2.21 _IO_getc F
-GLIBC_2.21 _IO_getline F
-GLIBC_2.21 _IO_getline_info F
-GLIBC_2.21 _IO_gets F
-GLIBC_2.21 _IO_init F
-GLIBC_2.21 _IO_init_marker F
-GLIBC_2.21 _IO_init_wmarker F
-GLIBC_2.21 _IO_iter_begin F
-GLIBC_2.21 _IO_iter_end F
-GLIBC_2.21 _IO_iter_file F
-GLIBC_2.21 _IO_iter_next F
-GLIBC_2.21 _IO_least_wmarker F
-GLIBC_2.21 _IO_link_in F
-GLIBC_2.21 _IO_list_all D 0x4
-GLIBC_2.21 _IO_list_lock F
-GLIBC_2.21 _IO_list_resetlock F
-GLIBC_2.21 _IO_list_unlock F
-GLIBC_2.21 _IO_marker_delta F
-GLIBC_2.21 _IO_marker_difference F
-GLIBC_2.21 _IO_padn F
-GLIBC_2.21 _IO_peekc_locked F
-GLIBC_2.21 _IO_popen F
-GLIBC_2.21 _IO_printf F
-GLIBC_2.21 _IO_proc_close F
-GLIBC_2.21 _IO_proc_open F
-GLIBC_2.21 _IO_putc F
-GLIBC_2.21 _IO_puts F
-GLIBC_2.21 _IO_remove_marker F
-GLIBC_2.21 _IO_seekmark F
-GLIBC_2.21 _IO_seekoff F
-GLIBC_2.21 _IO_seekpos F
-GLIBC_2.21 _IO_seekwmark F
-GLIBC_2.21 _IO_setb F
-GLIBC_2.21 _IO_setbuffer F
-GLIBC_2.21 _IO_setvbuf F
-GLIBC_2.21 _IO_sgetn F
-GLIBC_2.21 _IO_sprintf F
-GLIBC_2.21 _IO_sputbackc F
-GLIBC_2.21 _IO_sputbackwc F
-GLIBC_2.21 _IO_sscanf F
-GLIBC_2.21 _IO_str_init_readonly F
-GLIBC_2.21 _IO_str_init_static F
-GLIBC_2.21 _IO_str_overflow F
-GLIBC_2.21 _IO_str_pbackfail F
-GLIBC_2.21 _IO_str_seekoff F
-GLIBC_2.21 _IO_str_underflow F
-GLIBC_2.21 _IO_sungetc F
-GLIBC_2.21 _IO_sungetwc F
-GLIBC_2.21 _IO_switch_to_get_mode F
-GLIBC_2.21 _IO_switch_to_main_wget_area F
-GLIBC_2.21 _IO_switch_to_wbackup_area F
-GLIBC_2.21 _IO_switch_to_wget_mode F
-GLIBC_2.21 _IO_un_link F
-GLIBC_2.21 _IO_ungetc F
-GLIBC_2.21 _IO_unsave_markers F
-GLIBC_2.21 _IO_unsave_wmarkers F
-GLIBC_2.21 _IO_vfprintf F
-GLIBC_2.21 _IO_vfscanf F
-GLIBC_2.21 _IO_vsprintf F
-GLIBC_2.21 _IO_wdefault_doallocate F
-GLIBC_2.21 _IO_wdefault_finish F
-GLIBC_2.21 _IO_wdefault_pbackfail F
-GLIBC_2.21 _IO_wdefault_uflow F
-GLIBC_2.21 _IO_wdefault_xsgetn F
-GLIBC_2.21 _IO_wdefault_xsputn F
-GLIBC_2.21 _IO_wdo_write F
-GLIBC_2.21 _IO_wdoallocbuf F
-GLIBC_2.21 _IO_wfile_jumps D 0x54
-GLIBC_2.21 _IO_wfile_overflow F
-GLIBC_2.21 _IO_wfile_seekoff F
-GLIBC_2.21 _IO_wfile_sync F
-GLIBC_2.21 _IO_wfile_underflow F
-GLIBC_2.21 _IO_wfile_xsputn F
-GLIBC_2.21 _IO_wmarker_delta F
-GLIBC_2.21 _IO_wsetb F
-GLIBC_2.21 ___brk_addr D 0x4
-GLIBC_2.21 __adddf3 F
-GLIBC_2.21 __addsf3 F
-GLIBC_2.21 __adjtimex F
-GLIBC_2.21 __after_morecore_hook D 0x4
-GLIBC_2.21 __argz_count F
-GLIBC_2.21 __argz_next F
-GLIBC_2.21 __argz_stringify F
-GLIBC_2.21 __asprintf F
-GLIBC_2.21 __asprintf_chk F
-GLIBC_2.21 __assert F
-GLIBC_2.21 __assert_fail F
-GLIBC_2.21 __assert_perror_fail F
-GLIBC_2.21 __backtrace F
-GLIBC_2.21 __backtrace_symbols F
-GLIBC_2.21 __backtrace_symbols_fd F
-GLIBC_2.21 __bsd_getpgrp F
-GLIBC_2.21 __bzero F
-GLIBC_2.21 __check_rhosts_file D 0x4
-GLIBC_2.21 __chk_fail F
-GLIBC_2.21 __clone F
-GLIBC_2.21 __close F
-GLIBC_2.21 __cmsg_nxthdr F
-GLIBC_2.21 __confstr_chk F
-GLIBC_2.21 __connect F
-GLIBC_2.21 __ctype_b_loc F
-GLIBC_2.21 __ctype_get_mb_cur_max F
-GLIBC_2.21 __ctype_tolower_loc F
-GLIBC_2.21 __ctype_toupper_loc F
-GLIBC_2.21 __curbrk D 0x4
-GLIBC_2.21 __cxa_at_quick_exit F
-GLIBC_2.21 __cxa_atexit F
-GLIBC_2.21 __cxa_finalize F
-GLIBC_2.21 __cxa_thread_atexit_impl F
-GLIBC_2.21 __cyg_profile_func_enter F
-GLIBC_2.21 __cyg_profile_func_exit F
-GLIBC_2.21 __daylight D 0x4
-GLIBC_2.21 __dcgettext F
-GLIBC_2.21 __default_morecore F
-GLIBC_2.21 __dgettext F
-GLIBC_2.21 __divdf3 F
-GLIBC_2.21 __divsf3 F
-GLIBC_2.21 __dn_comp F
-GLIBC_2.21 __dn_expand F
-GLIBC_2.21 __dn_skipname F
-GLIBC_2.21 __dprintf_chk F
-GLIBC_2.21 __dup2 F
-GLIBC_2.21 __duplocale F
-GLIBC_2.21 __endmntent F
-GLIBC_2.21 __environ D 0x4
-GLIBC_2.21 __eqdf2 F
-GLIBC_2.21 __eqsf2 F
-GLIBC_2.21 __errno_location F
-GLIBC_2.21 __extendsfdf2 F
-GLIBC_2.21 __fbufsize F
-GLIBC_2.21 __fcntl F
-GLIBC_2.21 __fdelt_chk F
-GLIBC_2.21 __fdelt_warn F
-GLIBC_2.21 __ffs F
-GLIBC_2.21 __fgets_chk F
-GLIBC_2.21 __fgets_unlocked_chk F
-GLIBC_2.21 __fgetws_chk F
-GLIBC_2.21 __fgetws_unlocked_chk F
-GLIBC_2.21 __finite F
-GLIBC_2.21 __finitef F
-GLIBC_2.21 __finitel F
-GLIBC_2.21 __fixdfdi F
-GLIBC_2.21 __fixdfsi F
-GLIBC_2.21 __fixsfdi F
-GLIBC_2.21 __fixsfsi F
-GLIBC_2.21 __fixunsdfdi F
-GLIBC_2.21 __fixunsdfsi F
-GLIBC_2.21 __fixunssfdi F
-GLIBC_2.21 __fixunssfsi F
-GLIBC_2.21 __flbf F
-GLIBC_2.21 __floatdidf F
-GLIBC_2.21 __floatdisf F
-GLIBC_2.21 __floatsidf F
-GLIBC_2.21 __floatsisf F
-GLIBC_2.21 __floatundidf F
-GLIBC_2.21 __floatundisf F
-GLIBC_2.21 __floatunsidf F
-GLIBC_2.21 __floatunsisf F
-GLIBC_2.21 __fork F
-GLIBC_2.21 __fpending F
-GLIBC_2.21 __fprintf_chk F
-GLIBC_2.21 __fpu_control D 0x4
-GLIBC_2.21 __fpurge F
-GLIBC_2.21 __fread_chk F
-GLIBC_2.21 __fread_unlocked_chk F
-GLIBC_2.21 __freadable F
-GLIBC_2.21 __freading F
-GLIBC_2.21 __free_hook D 0x4
-GLIBC_2.21 __freelocale F
-GLIBC_2.21 __fsetlocking F
-GLIBC_2.21 __fwprintf_chk F
-GLIBC_2.21 __fwritable F
-GLIBC_2.21 __fwriting F
-GLIBC_2.21 __fxstat F
-GLIBC_2.21 __fxstat64 F
-GLIBC_2.21 __fxstatat F
-GLIBC_2.21 __fxstatat64 F
-GLIBC_2.21 __gedf2 F
-GLIBC_2.21 __gesf2 F
-GLIBC_2.21 __getauxval F
-GLIBC_2.21 __getcwd_chk F
-GLIBC_2.21 __getdelim F
-GLIBC_2.21 __getdomainname_chk F
-GLIBC_2.21 __getgroups_chk F
-GLIBC_2.21 __gethostname_chk F
-GLIBC_2.21 __getlogin_r_chk F
-GLIBC_2.21 __getmntent_r F
-GLIBC_2.21 __getpagesize F
-GLIBC_2.21 __getpgid F
-GLIBC_2.21 __getpid F
-GLIBC_2.21 __gets_chk F
-GLIBC_2.21 __gettimeofday F
-GLIBC_2.21 __getwd_chk F
-GLIBC_2.21 __gmtime_r F
-GLIBC_2.21 __gtdf2 F
-GLIBC_2.21 __gtsf2 F
-GLIBC_2.21 __h_errno_location F
-GLIBC_2.21 __isalnum_l F
-GLIBC_2.21 __isalpha_l F
-GLIBC_2.21 __isascii_l F
-GLIBC_2.21 __isblank_l F
-GLIBC_2.21 __iscntrl_l F
-GLIBC_2.21 __isctype F
-GLIBC_2.21 __isdigit_l F
-GLIBC_2.21 __isgraph_l F
-GLIBC_2.21 __isinf F
-GLIBC_2.21 __isinff F
-GLIBC_2.21 __isinfl F
-GLIBC_2.21 __islower_l F
-GLIBC_2.21 __isnan F
-GLIBC_2.21 __isnanf F
-GLIBC_2.21 __isnanl F
-GLIBC_2.21 __isoc99_fscanf F
-GLIBC_2.21 __isoc99_fwscanf F
-GLIBC_2.21 __isoc99_scanf F
-GLIBC_2.21 __isoc99_sscanf F
-GLIBC_2.21 __isoc99_swscanf F
-GLIBC_2.21 __isoc99_vfscanf F
-GLIBC_2.21 __isoc99_vfwscanf F
-GLIBC_2.21 __isoc99_vscanf F
-GLIBC_2.21 __isoc99_vsscanf F
-GLIBC_2.21 __isoc99_vswscanf F
-GLIBC_2.21 __isoc99_vwscanf F
-GLIBC_2.21 __isoc99_wscanf F
-GLIBC_2.21 __isprint_l F
-GLIBC_2.21 __ispunct_l F
-GLIBC_2.21 __isspace_l F
-GLIBC_2.21 __isupper_l F
-GLIBC_2.21 __iswalnum_l F
-GLIBC_2.21 __iswalpha_l F
-GLIBC_2.21 __iswblank_l F
-GLIBC_2.21 __iswcntrl_l F
-GLIBC_2.21 __iswctype F
-GLIBC_2.21 __iswctype_l F
-GLIBC_2.21 __iswdigit_l F
-GLIBC_2.21 __iswgraph_l F
-GLIBC_2.21 __iswlower_l F
-GLIBC_2.21 __iswprint_l F
-GLIBC_2.21 __iswpunct_l F
-GLIBC_2.21 __iswspace_l F
-GLIBC_2.21 __iswupper_l F
-GLIBC_2.21 __iswxdigit_l F
-GLIBC_2.21 __isxdigit_l F
-GLIBC_2.21 __ivaliduser F
-GLIBC_2.21 __key_decryptsession_pk_LOCAL D 0x4
-GLIBC_2.21 __key_encryptsession_pk_LOCAL D 0x4
-GLIBC_2.21 __key_gendes_LOCAL D 0x4
-GLIBC_2.21 __ledf2 F
-GLIBC_2.21 __lesf2 F
-GLIBC_2.21 __libc_allocate_rtsig F
-GLIBC_2.21 __libc_calloc F
-GLIBC_2.21 __libc_current_sigrtmax F
-GLIBC_2.21 __libc_current_sigrtmin F
-GLIBC_2.21 __libc_free F
-GLIBC_2.21 __libc_freeres F
-GLIBC_2.21 __libc_init_first F
-GLIBC_2.21 __libc_mallinfo F
-GLIBC_2.21 __libc_malloc F
-GLIBC_2.21 __libc_mallopt F
-GLIBC_2.21 __libc_memalign F
-GLIBC_2.21 __libc_pvalloc F
-GLIBC_2.21 __libc_realloc F
-GLIBC_2.21 __libc_sa_len F
-GLIBC_2.21 __libc_start_main F
-GLIBC_2.21 __libc_valloc F
-GLIBC_2.21 __longjmp_chk F
-GLIBC_2.21 __lseek F
-GLIBC_2.21 __ltdf2 F
-GLIBC_2.21 __ltsf2 F
-GLIBC_2.21 __lxstat F
-GLIBC_2.21 __lxstat64 F
-GLIBC_2.21 __malloc_hook D 0x4
-GLIBC_2.21 __malloc_initialize_hook D 0x4
-GLIBC_2.21 __mbrlen F
-GLIBC_2.21 __mbrtowc F
-GLIBC_2.21 __mbsnrtowcs_chk F
-GLIBC_2.21 __mbsrtowcs_chk F
-GLIBC_2.21 __mbstowcs_chk F
-GLIBC_2.21 __memalign_hook D 0x4
-GLIBC_2.21 __memcpy_chk F
-GLIBC_2.21 __memmove_chk F
-GLIBC_2.21 __mempcpy F
-GLIBC_2.21 __mempcpy_chk F
-GLIBC_2.21 __mempcpy_small F
-GLIBC_2.21 __memset_chk F
-GLIBC_2.21 __monstartup F
-GLIBC_2.21 __morecore D 0x4
-GLIBC_2.21 __mq_open_2 F
-GLIBC_2.21 __muldf3 F
-GLIBC_2.21 __mulsf3 F
-GLIBC_2.21 __nanosleep F
-GLIBC_2.21 __nedf2 F
-GLIBC_2.21 __negdf2 F
-GLIBC_2.21 __negsf2 F
-GLIBC_2.21 __nesf2 F
-GLIBC_2.21 __newlocale F
-GLIBC_2.21 __nl_langinfo_l F
-GLIBC_2.21 __nss_configure_lookup F
-GLIBC_2.21 __nss_database_lookup F
-GLIBC_2.21 __nss_group_lookup F
-GLIBC_2.21 __nss_hostname_digits_dots F
-GLIBC_2.21 __nss_hosts_lookup F
-GLIBC_2.21 __nss_next F
-GLIBC_2.21 __nss_passwd_lookup F
-GLIBC_2.21 __obstack_printf_chk F
-GLIBC_2.21 __obstack_vprintf_chk F
-GLIBC_2.21 __open F
-GLIBC_2.21 __open64 F
-GLIBC_2.21 __open64_2 F
-GLIBC_2.21 __open_2 F
-GLIBC_2.21 __openat64_2 F
-GLIBC_2.21 __openat_2 F
-GLIBC_2.21 __overflow F
-GLIBC_2.21 __pipe F
-GLIBC_2.21 __poll F
-GLIBC_2.21 __poll_chk F
-GLIBC_2.21 __posix_getopt F
-GLIBC_2.21 __ppoll_chk F
-GLIBC_2.21 __pread64 F
-GLIBC_2.21 __pread64_chk F
-GLIBC_2.21 __pread_chk F
-GLIBC_2.21 __printf_chk F
-GLIBC_2.21 __printf_fp F
-GLIBC_2.21 __profile_frequency F
-GLIBC_2.21 __progname D 0x4
-GLIBC_2.21 __progname_full D 0x4
-GLIBC_2.21 __pthread_cleanup_routine F
-GLIBC_2.21 __pthread_getspecific F
-GLIBC_2.21 __pthread_key_create F
-GLIBC_2.21 __pthread_mutex_destroy F
-GLIBC_2.21 __pthread_mutex_init F
-GLIBC_2.21 __pthread_mutex_lock F
-GLIBC_2.21 __pthread_mutex_trylock F
-GLIBC_2.21 __pthread_mutex_unlock F
-GLIBC_2.21 __pthread_mutexattr_destroy F
-GLIBC_2.21 __pthread_mutexattr_init F
-GLIBC_2.21 __pthread_mutexattr_settype F
-GLIBC_2.21 __pthread_once F
-GLIBC_2.21 __pthread_register_cancel F
-GLIBC_2.21 __pthread_register_cancel_defer F
-GLIBC_2.21 __pthread_rwlock_destroy F
-GLIBC_2.21 __pthread_rwlock_init F
-GLIBC_2.21 __pthread_rwlock_rdlock F
-GLIBC_2.21 __pthread_rwlock_tryrdlock F
-GLIBC_2.21 __pthread_rwlock_trywrlock F
-GLIBC_2.21 __pthread_rwlock_unlock F
-GLIBC_2.21 __pthread_rwlock_wrlock F
-GLIBC_2.21 __pthread_setspecific F
-GLIBC_2.21 __pthread_unregister_cancel F
-GLIBC_2.21 __pthread_unregister_cancel_restore F
-GLIBC_2.21 __pthread_unwind_next F
-GLIBC_2.21 __ptsname_r_chk F
-GLIBC_2.21 __pwrite64 F
-GLIBC_2.21 __rawmemchr F
-GLIBC_2.21 __rcmd_errstr D 0x4
-GLIBC_2.21 __read F
-GLIBC_2.21 __read_chk F
-GLIBC_2.21 __readlink_chk F
-GLIBC_2.21 __readlinkat_chk F
-GLIBC_2.21 __realloc_hook D 0x4
-GLIBC_2.21 __realpath_chk F
-GLIBC_2.21 __recv_chk F
-GLIBC_2.21 __recvfrom_chk F
-GLIBC_2.21 __register_atfork F
-GLIBC_2.21 __res_dnok F
-GLIBC_2.21 __res_hnok F
-GLIBC_2.21 __res_init F
-GLIBC_2.21 __res_mailok F
-GLIBC_2.21 __res_mkquery F
-GLIBC_2.21 __res_nclose F
-GLIBC_2.21 __res_ninit F
-GLIBC_2.21 __res_nmkquery F
-GLIBC_2.21 __res_nquery F
-GLIBC_2.21 __res_nquerydomain F
-GLIBC_2.21 __res_nsearch F
-GLIBC_2.21 __res_nsend F
-GLIBC_2.21 __res_ownok F
-GLIBC_2.21 __res_query F
-GLIBC_2.21 __res_querydomain F
-GLIBC_2.21 __res_randomid F
-GLIBC_2.21 __res_search F
-GLIBC_2.21 __res_send F
-GLIBC_2.21 __res_state F
-GLIBC_2.21 __rpc_thread_createerr F
-GLIBC_2.21 __rpc_thread_svc_fdset F
-GLIBC_2.21 __rpc_thread_svc_max_pollfd F
-GLIBC_2.21 __rpc_thread_svc_pollfd F
-GLIBC_2.21 __sbrk F
-GLIBC_2.21 __sched_cpualloc F
-GLIBC_2.21 __sched_cpucount F
-GLIBC_2.21 __sched_cpufree F
-GLIBC_2.21 __sched_get_priority_max F
-GLIBC_2.21 __sched_get_priority_min F
-GLIBC_2.21 __sched_getparam F
-GLIBC_2.21 __sched_getscheduler F
-GLIBC_2.21 __sched_setscheduler F
-GLIBC_2.21 __sched_yield F
-GLIBC_2.21 __select F
-GLIBC_2.21 __send F
-GLIBC_2.21 __setmntent F
-GLIBC_2.21 __setpgid F
-GLIBC_2.21 __sigaction F
-GLIBC_2.21 __sigaddset F
-GLIBC_2.21 __sigdelset F
-GLIBC_2.21 __sigismember F
-GLIBC_2.21 __signbit F
-GLIBC_2.21 __signbitf F
-GLIBC_2.21 __sigpause F
-GLIBC_2.21 __sigsetjmp F
-GLIBC_2.21 __sigsuspend F
-GLIBC_2.21 __snprintf_chk F
-GLIBC_2.21 __sprintf_chk F
-GLIBC_2.21 __stack_chk_fail F
-GLIBC_2.21 __statfs F
-GLIBC_2.21 __stpcpy F
-GLIBC_2.21 __stpcpy_chk F
-GLIBC_2.21 __stpcpy_small F
-GLIBC_2.21 __stpncpy F
-GLIBC_2.21 __stpncpy_chk F
-GLIBC_2.21 __strcasecmp F
-GLIBC_2.21 __strcasecmp_l F
-GLIBC_2.21 __strcasestr F
-GLIBC_2.21 __strcat_chk F
-GLIBC_2.21 __strcoll_l F
-GLIBC_2.21 __strcpy_chk F
-GLIBC_2.21 __strcpy_small F
-GLIBC_2.21 __strcspn_c1 F
-GLIBC_2.21 __strcspn_c2 F
-GLIBC_2.21 __strcspn_c3 F
-GLIBC_2.21 __strdup F
-GLIBC_2.21 __strerror_r F
-GLIBC_2.21 __strfmon_l F
-GLIBC_2.21 __strftime_l F
-GLIBC_2.21 __strncasecmp_l F
-GLIBC_2.21 __strncat_chk F
-GLIBC_2.21 __strncpy_chk F
-GLIBC_2.21 __strndup F
-GLIBC_2.21 __strpbrk_c2 F
-GLIBC_2.21 __strpbrk_c3 F
-GLIBC_2.21 __strsep_1c F
-GLIBC_2.21 __strsep_2c F
-GLIBC_2.21 __strsep_3c F
-GLIBC_2.21 __strsep_g F
-GLIBC_2.21 __strspn_c1 F
-GLIBC_2.21 __strspn_c2 F
-GLIBC_2.21 __strspn_c3 F
-GLIBC_2.21 __strtod_internal F
-GLIBC_2.21 __strtod_l F
-GLIBC_2.21 __strtof_internal F
-GLIBC_2.21 __strtof_l F
-GLIBC_2.21 __strtok_r F
-GLIBC_2.21 __strtok_r_1c F
-GLIBC_2.21 __strtol_internal F
-GLIBC_2.21 __strtol_l F
-GLIBC_2.21 __strtold_internal F
-GLIBC_2.21 __strtold_l F
-GLIBC_2.21 __strtoll_internal F
-GLIBC_2.21 __strtoll_l F
-GLIBC_2.21 __strtoul_internal F
-GLIBC_2.21 __strtoul_l F
-GLIBC_2.21 __strtoull_internal F
-GLIBC_2.21 __strtoull_l F
-GLIBC_2.21 __strverscmp F
-GLIBC_2.21 __strxfrm_l F
-GLIBC_2.21 __subdf3 F
-GLIBC_2.21 __subsf3 F
-GLIBC_2.21 __swprintf_chk F
-GLIBC_2.21 __sysconf F
-GLIBC_2.21 __syslog_chk F
-GLIBC_2.21 __sysv_signal F
-GLIBC_2.21 __timezone D 0x4
-GLIBC_2.21 __toascii_l F
-GLIBC_2.21 __tolower_l F
-GLIBC_2.21 __toupper_l F
-GLIBC_2.21 __towctrans F
-GLIBC_2.21 __towctrans_l F
-GLIBC_2.21 __towlower_l F
-GLIBC_2.21 __towupper_l F
-GLIBC_2.21 __truncdfsf2 F
-GLIBC_2.21 __ttyname_r_chk F
-GLIBC_2.21 __tzname D 0x8
-GLIBC_2.21 __uflow F
-GLIBC_2.21 __underflow F
-GLIBC_2.21 __unorddf2 F
-GLIBC_2.21 __unordsf2 F
-GLIBC_2.21 __uselocale F
-GLIBC_2.21 __vasprintf_chk F
-GLIBC_2.21 __vdprintf_chk F
-GLIBC_2.21 __vfork F
-GLIBC_2.21 __vfprintf_chk F
-GLIBC_2.21 __vfscanf F
-GLIBC_2.21 __vfwprintf_chk F
-GLIBC_2.21 __vprintf_chk F
-GLIBC_2.21 __vsnprintf F
-GLIBC_2.21 __vsnprintf_chk F
-GLIBC_2.21 __vsprintf_chk F
-GLIBC_2.21 __vsscanf F
-GLIBC_2.21 __vswprintf_chk F
-GLIBC_2.21 __vsyslog_chk F
-GLIBC_2.21 __vwprintf_chk F
-GLIBC_2.21 __wait F
-GLIBC_2.21 __waitpid F
-GLIBC_2.21 __wcpcpy_chk F
-GLIBC_2.21 __wcpncpy_chk F
-GLIBC_2.21 __wcrtomb_chk F
-GLIBC_2.21 __wcscasecmp_l F
-GLIBC_2.21 __wcscat_chk F
-GLIBC_2.21 __wcscoll_l F
-GLIBC_2.21 __wcscpy_chk F
-GLIBC_2.21 __wcsftime_l F
-GLIBC_2.21 __wcsncasecmp_l F
-GLIBC_2.21 __wcsncat_chk F
-GLIBC_2.21 __wcsncpy_chk F
-GLIBC_2.21 __wcsnrtombs_chk F
-GLIBC_2.21 __wcsrtombs_chk F
-GLIBC_2.21 __wcstod_internal F
-GLIBC_2.21 __wcstod_l F
-GLIBC_2.21 __wcstof_internal F
-GLIBC_2.21 __wcstof_l F
-GLIBC_2.21 __wcstol_internal F
-GLIBC_2.21 __wcstol_l F
-GLIBC_2.21 __wcstold_internal F
-GLIBC_2.21 __wcstold_l F
-GLIBC_2.21 __wcstoll_internal F
-GLIBC_2.21 __wcstoll_l F
-GLIBC_2.21 __wcstombs_chk F
-GLIBC_2.21 __wcstoul_internal F
-GLIBC_2.21 __wcstoul_l F
-GLIBC_2.21 __wcstoull_internal F
-GLIBC_2.21 __wcstoull_l F
-GLIBC_2.21 __wcsxfrm_l F
-GLIBC_2.21 __wctomb_chk F
-GLIBC_2.21 __wctrans_l F
-GLIBC_2.21 __wctype_l F
-GLIBC_2.21 __wmemcpy_chk F
-GLIBC_2.21 __wmemmove_chk F
-GLIBC_2.21 __wmempcpy_chk F
-GLIBC_2.21 __wmemset_chk F
-GLIBC_2.21 __woverflow F
-GLIBC_2.21 __wprintf_chk F
-GLIBC_2.21 __write F
-GLIBC_2.21 __wuflow F
-GLIBC_2.21 __wunderflow F
-GLIBC_2.21 __xmknod F
-GLIBC_2.21 __xmknodat F
-GLIBC_2.21 __xpg_basename F
-GLIBC_2.21 __xpg_sigpause F
-GLIBC_2.21 __xpg_strerror_r F
-GLIBC_2.21 __xstat F
-GLIBC_2.21 __xstat64 F
-GLIBC_2.21 _authenticate F
-GLIBC_2.21 _dl_mcount_wrapper F
-GLIBC_2.21 _dl_mcount_wrapper_check F
-GLIBC_2.21 _environ D 0x4
-GLIBC_2.21 _exit F
-GLIBC_2.21 _flush_cache F
-GLIBC_2.21 _flushlbf F
-GLIBC_2.21 _libc_intl_domainname D 0x5
-GLIBC_2.21 _longjmp F
-GLIBC_2.21 _mcleanup F
-GLIBC_2.21 _mcount F
-GLIBC_2.21 _nl_default_dirname D 0x12
-GLIBC_2.21 _nl_domain_bindings D 0x4
-GLIBC_2.21 _nl_msg_cat_cntr D 0x4
-GLIBC_2.21 _null_auth D 0xc
-GLIBC_2.21 _obstack_allocated_p F
-GLIBC_2.21 _obstack_begin F
-GLIBC_2.21 _obstack_begin_1 F
-GLIBC_2.21 _obstack_free F
-GLIBC_2.21 _obstack_memory_used F
-GLIBC_2.21 _obstack_newchunk F
-GLIBC_2.21 _pthread_cleanup_pop F
-GLIBC_2.21 _pthread_cleanup_pop_restore F
-GLIBC_2.21 _pthread_cleanup_push F
-GLIBC_2.21 _pthread_cleanup_push_defer F
-GLIBC_2.21 _res D 0x200
-GLIBC_2.21 _res_hconf D 0x30
-GLIBC_2.21 _rpc_dtablesize F
-GLIBC_2.21 _seterr_reply F
-GLIBC_2.21 _setjmp F
-GLIBC_2.21 _sys_errlist D 0x21c
-GLIBC_2.21 _sys_nerr D 0x4
-GLIBC_2.21 _sys_siglist D 0x104
-GLIBC_2.21 _tolower F
-GLIBC_2.21 _toupper F
-GLIBC_2.21 a64l F
-GLIBC_2.21 abort F
-GLIBC_2.21 abs F
-GLIBC_2.21 accept F
-GLIBC_2.21 accept4 F
-GLIBC_2.21 access F
-GLIBC_2.21 acct F
-GLIBC_2.21 addmntent F
-GLIBC_2.21 addseverity F
-GLIBC_2.21 adjtime F
-GLIBC_2.21 adjtimex F
-GLIBC_2.21 advance F
-GLIBC_2.21 aio_cancel F
-GLIBC_2.21 aio_cancel64 F
-GLIBC_2.21 aio_error F
-GLIBC_2.21 aio_error64 F
-GLIBC_2.21 aio_fsync F
-GLIBC_2.21 aio_fsync64 F
-GLIBC_2.21 aio_init F
-GLIBC_2.21 aio_read F
-GLIBC_2.21 aio_read64 F
-GLIBC_2.21 aio_return F
-GLIBC_2.21 aio_return64 F
-GLIBC_2.21 aio_suspend F
-GLIBC_2.21 aio_suspend64 F
-GLIBC_2.21 aio_write F
-GLIBC_2.21 aio_write64 F
-GLIBC_2.21 alarm F
-GLIBC_2.21 aligned_alloc F
-GLIBC_2.21 alphasort F
-GLIBC_2.21 alphasort64 F
-GLIBC_2.21 argp_err_exit_status D 0x4
-GLIBC_2.21 argp_error F
-GLIBC_2.21 argp_failure F
-GLIBC_2.21 argp_help F
-GLIBC_2.21 argp_parse F
-GLIBC_2.21 argp_program_bug_address D 0x4
-GLIBC_2.21 argp_program_version D 0x4
-GLIBC_2.21 argp_program_version_hook D 0x4
-GLIBC_2.21 argp_state_help F
-GLIBC_2.21 argp_usage F
-GLIBC_2.21 argz_add F
-GLIBC_2.21 argz_add_sep F
-GLIBC_2.21 argz_append F
-GLIBC_2.21 argz_count F
-GLIBC_2.21 argz_create F
-GLIBC_2.21 argz_create_sep F
-GLIBC_2.21 argz_delete F
-GLIBC_2.21 argz_extract F
-GLIBC_2.21 argz_insert F
-GLIBC_2.21 argz_next F
-GLIBC_2.21 argz_replace F
-GLIBC_2.21 argz_stringify F
-GLIBC_2.21 asctime F
-GLIBC_2.21 asctime_r F
-GLIBC_2.21 asprintf F
-GLIBC_2.21 atof F
-GLIBC_2.21 atoi F
-GLIBC_2.21 atol F
-GLIBC_2.21 atoll F
-GLIBC_2.21 authdes_create F
-GLIBC_2.21 authdes_getucred F
-GLIBC_2.21 authdes_pk_create F
-GLIBC_2.21 authnone_create F
-GLIBC_2.21 authunix_create F
-GLIBC_2.21 authunix_create_default F
-GLIBC_2.21 backtrace F
-GLIBC_2.21 backtrace_symbols F
-GLIBC_2.21 backtrace_symbols_fd F
-GLIBC_2.21 basename F
-GLIBC_2.21 bcmp F
-GLIBC_2.21 bcopy F
-GLIBC_2.21 bdflush F
-GLIBC_2.21 bind F
-GLIBC_2.21 bind_textdomain_codeset F
-GLIBC_2.21 bindresvport F
-GLIBC_2.21 bindtextdomain F
-GLIBC_2.21 brk F
-GLIBC_2.21 bsd_signal F
-GLIBC_2.21 bsearch F
-GLIBC_2.21 btowc F
-GLIBC_2.21 bzero F
-GLIBC_2.21 c16rtomb F
-GLIBC_2.21 c32rtomb F
-GLIBC_2.21 cacheflush F
-GLIBC_2.21 calloc F
-GLIBC_2.21 callrpc F
-GLIBC_2.21 canonicalize_file_name F
-GLIBC_2.21 capget F
-GLIBC_2.21 capset F
-GLIBC_2.21 catclose F
-GLIBC_2.21 catgets F
-GLIBC_2.21 catopen F
-GLIBC_2.21 cbc_crypt F
-GLIBC_2.21 cfgetispeed F
-GLIBC_2.21 cfgetospeed F
-GLIBC_2.21 cfmakeraw F
-GLIBC_2.21 cfree F
-GLIBC_2.21 cfsetispeed F
-GLIBC_2.21 cfsetospeed F
-GLIBC_2.21 cfsetspeed F
-GLIBC_2.21 chdir F
-GLIBC_2.21 chflags F
-GLIBC_2.21 chmod F
-GLIBC_2.21 chown F
-GLIBC_2.21 chroot F
-GLIBC_2.21 clearenv F
-GLIBC_2.21 clearerr F
-GLIBC_2.21 clearerr_unlocked F
-GLIBC_2.21 clnt_broadcast F
-GLIBC_2.21 clnt_create F
-GLIBC_2.21 clnt_pcreateerror F
-GLIBC_2.21 clnt_perrno F
-GLIBC_2.21 clnt_perror F
-GLIBC_2.21 clnt_spcreateerror F
-GLIBC_2.21 clnt_sperrno F
-GLIBC_2.21 clnt_sperror F
-GLIBC_2.21 clntraw_create F
-GLIBC_2.21 clnttcp_create F
-GLIBC_2.21 clntudp_bufcreate F
-GLIBC_2.21 clntudp_create F
-GLIBC_2.21 clntunix_create F
-GLIBC_2.21 clock F
-GLIBC_2.21 clock_adjtime F
-GLIBC_2.21 clock_getcpuclockid F
-GLIBC_2.21 clock_getres F
-GLIBC_2.21 clock_gettime F
-GLIBC_2.21 clock_nanosleep F
-GLIBC_2.21 clock_settime F
-GLIBC_2.21 clone F
-GLIBC_2.21 close F
-GLIBC_2.21 closedir F
-GLIBC_2.21 closelog F
-GLIBC_2.21 confstr F
-GLIBC_2.21 connect F
-GLIBC_2.21 copysign F
-GLIBC_2.21 copysignf F
-GLIBC_2.21 copysignl F
-GLIBC_2.21 creat F
-GLIBC_2.21 creat64 F
-GLIBC_2.21 create_module F
-GLIBC_2.21 ctermid F
-GLIBC_2.21 ctime F
-GLIBC_2.21 ctime_r F
-GLIBC_2.21 cuserid F
-GLIBC_2.21 daemon F
-GLIBC_2.21 daylight D 0x4
-GLIBC_2.21 dcgettext F
-GLIBC_2.21 dcngettext F
-GLIBC_2.21 delete_module F
-GLIBC_2.21 des_setparity F
-GLIBC_2.21 dgettext F
-GLIBC_2.21 difftime F
-GLIBC_2.21 dirfd F
-GLIBC_2.21 dirname F
-GLIBC_2.21 div F
-GLIBC_2.21 dl_iterate_phdr F
-GLIBC_2.21 dladdr F
-GLIBC_2.21 dladdr1 F
-GLIBC_2.21 dlclose F
-GLIBC_2.21 dlerror F
-GLIBC_2.21 dlinfo F
-GLIBC_2.21 dlmopen F
-GLIBC_2.21 dlopen F
-GLIBC_2.21 dlsym F
-GLIBC_2.21 dlvsym F
-GLIBC_2.21 dngettext F
-GLIBC_2.21 dprintf F
-GLIBC_2.21 drand48 F
-GLIBC_2.21 drand48_r F
-GLIBC_2.21 dup F
-GLIBC_2.21 dup2 F
-GLIBC_2.21 dup3 F
-GLIBC_2.21 duplocale F
-GLIBC_2.21 dysize F
-GLIBC_2.21 eaccess F
-GLIBC_2.21 ecb_crypt F
-GLIBC_2.21 ecvt F
-GLIBC_2.21 ecvt_r F
-GLIBC_2.21 endaliasent F
-GLIBC_2.21 endfsent F
-GLIBC_2.21 endgrent F
-GLIBC_2.21 endhostent F
-GLIBC_2.21 endmntent F
-GLIBC_2.21 endnetent F
-GLIBC_2.21 endnetgrent F
-GLIBC_2.21 endprotoent F
-GLIBC_2.21 endpwent F
-GLIBC_2.21 endrpcent F
-GLIBC_2.21 endservent F
-GLIBC_2.21 endsgent F
-GLIBC_2.21 endspent F
-GLIBC_2.21 endttyent F
-GLIBC_2.21 endusershell F
-GLIBC_2.21 endutent F
-GLIBC_2.21 endutxent F
-GLIBC_2.21 environ D 0x4
-GLIBC_2.21 envz_add F
-GLIBC_2.21 envz_entry F
-GLIBC_2.21 envz_get F
-GLIBC_2.21 envz_merge F
-GLIBC_2.21 envz_remove F
-GLIBC_2.21 envz_strip F
-GLIBC_2.21 epoll_create F
-GLIBC_2.21 epoll_create1 F
-GLIBC_2.21 epoll_ctl F
-GLIBC_2.21 epoll_pwait F
-GLIBC_2.21 epoll_wait F
-GLIBC_2.21 erand48 F
-GLIBC_2.21 erand48_r F
-GLIBC_2.21 err F
-GLIBC_2.21 error F
-GLIBC_2.21 error_at_line F
-GLIBC_2.21 error_message_count D 0x4
-GLIBC_2.21 error_one_per_line D 0x4
-GLIBC_2.21 error_print_progname D 0x4
-GLIBC_2.21 errx F
-GLIBC_2.21 ether_aton F
-GLIBC_2.21 ether_aton_r F
-GLIBC_2.21 ether_hostton F
-GLIBC_2.21 ether_line F
-GLIBC_2.21 ether_ntoa F
-GLIBC_2.21 ether_ntoa_r F
-GLIBC_2.21 ether_ntohost F
-GLIBC_2.21 euidaccess F
-GLIBC_2.21 eventfd F
-GLIBC_2.21 eventfd_read F
-GLIBC_2.21 eventfd_write F
-GLIBC_2.21 execl F
-GLIBC_2.21 execle F
-GLIBC_2.21 execlp F
-GLIBC_2.21 execv F
-GLIBC_2.21 execve F
-GLIBC_2.21 execvp F
-GLIBC_2.21 execvpe F
-GLIBC_2.21 exit F
-GLIBC_2.21 faccessat F
-GLIBC_2.21 fallocate F
-GLIBC_2.21 fallocate64 F
-GLIBC_2.21 fanotify_init F
-GLIBC_2.21 fanotify_mark F
-GLIBC_2.21 fattach F
-GLIBC_2.21 fchdir F
-GLIBC_2.21 fchflags F
-GLIBC_2.21 fchmod F
-GLIBC_2.21 fchmodat F
-GLIBC_2.21 fchown F
-GLIBC_2.21 fchownat F
-GLIBC_2.21 fclose F
-GLIBC_2.21 fcloseall F
-GLIBC_2.21 fcntl F
-GLIBC_2.21 fcvt F
-GLIBC_2.21 fcvt_r F
-GLIBC_2.21 fdatasync F
-GLIBC_2.21 fdetach F
-GLIBC_2.21 fdopen F
-GLIBC_2.21 fdopendir F
-GLIBC_2.21 feof F
-GLIBC_2.21 feof_unlocked F
-GLIBC_2.21 ferror F
-GLIBC_2.21 ferror_unlocked F
-GLIBC_2.21 fexecve F
-GLIBC_2.21 fflush F
-GLIBC_2.21 fflush_unlocked F
-GLIBC_2.21 ffs F
-GLIBC_2.21 ffsl F
-GLIBC_2.21 ffsll F
-GLIBC_2.21 fgetc F
-GLIBC_2.21 fgetc_unlocked F
-GLIBC_2.21 fgetgrent F
-GLIBC_2.21 fgetgrent_r F
-GLIBC_2.21 fgetpos F
-GLIBC_2.21 fgetpos64 F
-GLIBC_2.21 fgetpwent F
-GLIBC_2.21 fgetpwent_r F
-GLIBC_2.21 fgets F
-GLIBC_2.21 fgets_unlocked F
-GLIBC_2.21 fgetsgent F
-GLIBC_2.21 fgetsgent_r F
-GLIBC_2.21 fgetspent F
-GLIBC_2.21 fgetspent_r F
-GLIBC_2.21 fgetwc F
-GLIBC_2.21 fgetwc_unlocked F
-GLIBC_2.21 fgetws F
-GLIBC_2.21 fgetws_unlocked F
-GLIBC_2.21 fgetxattr F
-GLIBC_2.21 fileno F
-GLIBC_2.21 fileno_unlocked F
-GLIBC_2.21 finite F
-GLIBC_2.21 finitef F
-GLIBC_2.21 finitel F
-GLIBC_2.21 flistxattr F
-GLIBC_2.21 flock F
-GLIBC_2.21 flockfile F
-GLIBC_2.21 fmemopen F
-GLIBC_2.21 fmtmsg F
-GLIBC_2.21 fnmatch F
-GLIBC_2.21 fopen F
-GLIBC_2.21 fopen64 F
-GLIBC_2.21 fopencookie F
-GLIBC_2.21 fork F
-GLIBC_2.21 forkpty F
-GLIBC_2.21 fpathconf F
-GLIBC_2.21 fprintf F
-GLIBC_2.21 fputc F
-GLIBC_2.21 fputc_unlocked F
-GLIBC_2.21 fputs F
-GLIBC_2.21 fputs_unlocked F
-GLIBC_2.21 fputwc F
-GLIBC_2.21 fputwc_unlocked F
-GLIBC_2.21 fputws F
-GLIBC_2.21 fputws_unlocked F
-GLIBC_2.21 fread F
-GLIBC_2.21 fread_unlocked F
-GLIBC_2.21 free F
-GLIBC_2.21 freeaddrinfo F
-GLIBC_2.21 freeifaddrs F
-GLIBC_2.21 freelocale F
-GLIBC_2.21 fremovexattr F
-GLIBC_2.21 freopen F
-GLIBC_2.21 freopen64 F
-GLIBC_2.21 frexp F
-GLIBC_2.21 frexpf F
-GLIBC_2.21 frexpl F
-GLIBC_2.21 fscanf F
-GLIBC_2.21 fseek F
-GLIBC_2.21 fseeko F
-GLIBC_2.21 fseeko64 F
-GLIBC_2.21 fsetpos F
-GLIBC_2.21 fsetpos64 F
-GLIBC_2.21 fsetxattr F
-GLIBC_2.21 fstatfs F
-GLIBC_2.21 fstatfs64 F
-GLIBC_2.21 fstatvfs F
-GLIBC_2.21 fstatvfs64 F
-GLIBC_2.21 fsync F
-GLIBC_2.21 ftell F
-GLIBC_2.21 ftello F
-GLIBC_2.21 ftello64 F
-GLIBC_2.21 ftime F
-GLIBC_2.21 ftok F
-GLIBC_2.21 ftruncate F
-GLIBC_2.21 ftruncate64 F
-GLIBC_2.21 ftrylockfile F
-GLIBC_2.21 fts_children F
-GLIBC_2.21 fts_close F
-GLIBC_2.21 fts_open F
-GLIBC_2.21 fts_read F
-GLIBC_2.21 fts_set F
-GLIBC_2.21 ftw F
-GLIBC_2.21 ftw64 F
-GLIBC_2.21 funlockfile F
-GLIBC_2.21 futimens F
-GLIBC_2.21 futimes F
-GLIBC_2.21 futimesat F
-GLIBC_2.21 fwide F
-GLIBC_2.21 fwprintf F
-GLIBC_2.21 fwrite F
-GLIBC_2.21 fwrite_unlocked F
-GLIBC_2.21 fwscanf F
-GLIBC_2.21 gai_cancel F
-GLIBC_2.21 gai_error F
-GLIBC_2.21 gai_strerror F
-GLIBC_2.21 gai_suspend F
-GLIBC_2.21 gcvt F
-GLIBC_2.21 get_avphys_pages F
-GLIBC_2.21 get_current_dir_name F
-GLIBC_2.21 get_kernel_syms F
-GLIBC_2.21 get_myaddress F
-GLIBC_2.21 get_nprocs F
-GLIBC_2.21 get_nprocs_conf F
-GLIBC_2.21 get_phys_pages F
-GLIBC_2.21 getaddrinfo F
-GLIBC_2.21 getaddrinfo_a F
-GLIBC_2.21 getaliasbyname F
-GLIBC_2.21 getaliasbyname_r F
-GLIBC_2.21 getaliasent F
-GLIBC_2.21 getaliasent_r F
-GLIBC_2.21 getauxval F
-GLIBC_2.21 getc F
-GLIBC_2.21 getc_unlocked F
-GLIBC_2.21 getchar F
-GLIBC_2.21 getchar_unlocked F
-GLIBC_2.21 getcontext F
-GLIBC_2.21 getcwd F
-GLIBC_2.21 getdate F
-GLIBC_2.21 getdate_err D 0x4
-GLIBC_2.21 getdate_r F
-GLIBC_2.21 getdelim F
-GLIBC_2.21 getdirentries F
-GLIBC_2.21 getdirentries64 F
-GLIBC_2.21 getdomainname F
-GLIBC_2.21 getdtablesize F
-GLIBC_2.21 getegid F
-GLIBC_2.21 getenv F
-GLIBC_2.21 geteuid F
-GLIBC_2.21 getfsent F
-GLIBC_2.21 getfsfile F
-GLIBC_2.21 getfsspec F
-GLIBC_2.21 getgid F
-GLIBC_2.21 getgrent F
-GLIBC_2.21 getgrent_r F
-GLIBC_2.21 getgrgid F
-GLIBC_2.21 getgrgid_r F
-GLIBC_2.21 getgrnam F
-GLIBC_2.21 getgrnam_r F
-GLIBC_2.21 getgrouplist F
-GLIBC_2.21 getgroups F
-GLIBC_2.21 gethostbyaddr F
-GLIBC_2.21 gethostbyaddr_r F
-GLIBC_2.21 gethostbyname F
-GLIBC_2.21 gethostbyname2 F
-GLIBC_2.21 gethostbyname2_r F
-GLIBC_2.21 gethostbyname_r F
-GLIBC_2.21 gethostent F
-GLIBC_2.21 gethostent_r F
-GLIBC_2.21 gethostid F
-GLIBC_2.21 gethostname F
-GLIBC_2.21 getifaddrs F
-GLIBC_2.21 getipv4sourcefilter F
-GLIBC_2.21 getitimer F
-GLIBC_2.21 getline F
-GLIBC_2.21 getloadavg F
-GLIBC_2.21 getlogin F
-GLIBC_2.21 getlogin_r F
-GLIBC_2.21 getmntent F
-GLIBC_2.21 getmntent_r F
-GLIBC_2.21 getmsg F
-GLIBC_2.21 getnameinfo F
-GLIBC_2.21 getnetbyaddr F
-GLIBC_2.21 getnetbyaddr_r F
-GLIBC_2.21 getnetbyname F
-GLIBC_2.21 getnetbyname_r F
-GLIBC_2.21 getnetent F
-GLIBC_2.21 getnetent_r F
-GLIBC_2.21 getnetgrent F
-GLIBC_2.21 getnetgrent_r F
-GLIBC_2.21 getnetname F
-GLIBC_2.21 getopt F
-GLIBC_2.21 getopt_long F
-GLIBC_2.21 getopt_long_only F
-GLIBC_2.21 getpagesize F
-GLIBC_2.21 getpass F
-GLIBC_2.21 getpeername F
-GLIBC_2.21 getpgid F
-GLIBC_2.21 getpgrp F
-GLIBC_2.21 getpid F
-GLIBC_2.21 getpmsg F
-GLIBC_2.21 getppid F
-GLIBC_2.21 getpriority F
-GLIBC_2.21 getprotobyname F
-GLIBC_2.21 getprotobyname_r F
-GLIBC_2.21 getprotobynumber F
-GLIBC_2.21 getprotobynumber_r F
-GLIBC_2.21 getprotoent F
-GLIBC_2.21 getprotoent_r F
-GLIBC_2.21 getpt F
-GLIBC_2.21 getpublickey F
-GLIBC_2.21 getpw F
-GLIBC_2.21 getpwent F
-GLIBC_2.21 getpwent_r F
-GLIBC_2.21 getpwnam F
-GLIBC_2.21 getpwnam_r F
-GLIBC_2.21 getpwuid F
-GLIBC_2.21 getpwuid_r F
-GLIBC_2.21 getresgid F
-GLIBC_2.21 getresuid F
-GLIBC_2.21 getrlimit F
-GLIBC_2.21 getrlimit64 F
-GLIBC_2.21 getrpcbyname F
-GLIBC_2.21 getrpcbyname_r F
-GLIBC_2.21 getrpcbynumber F
-GLIBC_2.21 getrpcbynumber_r F
-GLIBC_2.21 getrpcent F
-GLIBC_2.21 getrpcent_r F
-GLIBC_2.21 getrpcport F
-GLIBC_2.21 getrusage F
-GLIBC_2.21 gets F
-GLIBC_2.21 getsecretkey F
-GLIBC_2.21 getservbyname F
-GLIBC_2.21 getservbyname_r F
-GLIBC_2.21 getservbyport F
-GLIBC_2.21 getservbyport_r F
-GLIBC_2.21 getservent F
-GLIBC_2.21 getservent_r F
-GLIBC_2.21 getsgent F
-GLIBC_2.21 getsgent_r F
-GLIBC_2.21 getsgnam F
-GLIBC_2.21 getsgnam_r F
-GLIBC_2.21 getsid F
-GLIBC_2.21 getsockname F
-GLIBC_2.21 getsockopt F
-GLIBC_2.21 getsourcefilter F
-GLIBC_2.21 getspent F
-GLIBC_2.21 getspent_r F
-GLIBC_2.21 getspnam F
-GLIBC_2.21 getspnam_r F
-GLIBC_2.21 getsubopt F
-GLIBC_2.21 gettext F
-GLIBC_2.21 gettimeofday F
-GLIBC_2.21 getttyent F
-GLIBC_2.21 getttynam F
-GLIBC_2.21 getuid F
-GLIBC_2.21 getusershell F
-GLIBC_2.21 getutent F
-GLIBC_2.21 getutent_r F
-GLIBC_2.21 getutid F
-GLIBC_2.21 getutid_r F
-GLIBC_2.21 getutline F
-GLIBC_2.21 getutline_r F
-GLIBC_2.21 getutmp F
-GLIBC_2.21 getutmpx F
-GLIBC_2.21 getutxent F
-GLIBC_2.21 getutxid F
-GLIBC_2.21 getutxline F
-GLIBC_2.21 getw F
-GLIBC_2.21 getwc F
-GLIBC_2.21 getwc_unlocked F
-GLIBC_2.21 getwchar F
-GLIBC_2.21 getwchar_unlocked F
-GLIBC_2.21 getwd F
-GLIBC_2.21 getxattr F
-GLIBC_2.21 glob F
-GLIBC_2.21 glob64 F
-GLIBC_2.21 glob_pattern_p F
-GLIBC_2.21 globfree F
-GLIBC_2.21 globfree64 F
-GLIBC_2.21 gmtime F
-GLIBC_2.21 gmtime_r F
-GLIBC_2.21 gnu_dev_major F
-GLIBC_2.21 gnu_dev_makedev F
-GLIBC_2.21 gnu_dev_minor F
-GLIBC_2.21 gnu_get_libc_release F
-GLIBC_2.21 gnu_get_libc_version F
-GLIBC_2.21 grantpt F
-GLIBC_2.21 group_member F
-GLIBC_2.21 gsignal F
-GLIBC_2.21 gtty F
-GLIBC_2.21 h_errlist D 0x14
-GLIBC_2.21 h_nerr D 0x4
-GLIBC_2.21 hasmntopt F
-GLIBC_2.21 hcreate F
-GLIBC_2.21 hcreate_r F
-GLIBC_2.21 hdestroy F
-GLIBC_2.21 hdestroy_r F
-GLIBC_2.21 herror F
-GLIBC_2.21 host2netname F
-GLIBC_2.21 hsearch F
-GLIBC_2.21 hsearch_r F
-GLIBC_2.21 hstrerror F
-GLIBC_2.21 htonl F
-GLIBC_2.21 htons F
-GLIBC_2.21 iconv F
-GLIBC_2.21 iconv_close F
-GLIBC_2.21 iconv_open F
-GLIBC_2.21 if_freenameindex F
-GLIBC_2.21 if_indextoname F
-GLIBC_2.21 if_nameindex F
-GLIBC_2.21 if_nametoindex F
-GLIBC_2.21 imaxabs F
-GLIBC_2.21 imaxdiv F
-GLIBC_2.21 in6addr_any D 0x10
-GLIBC_2.21 in6addr_loopback D 0x10
-GLIBC_2.21 index F
-GLIBC_2.21 inet6_opt_append F
-GLIBC_2.21 inet6_opt_find F
-GLIBC_2.21 inet6_opt_finish F
-GLIBC_2.21 inet6_opt_get_val F
-GLIBC_2.21 inet6_opt_init F
-GLIBC_2.21 inet6_opt_next F
-GLIBC_2.21 inet6_opt_set_val F
-GLIBC_2.21 inet6_option_alloc F
-GLIBC_2.21 inet6_option_append F
-GLIBC_2.21 inet6_option_find F
-GLIBC_2.21 inet6_option_init F
-GLIBC_2.21 inet6_option_next F
-GLIBC_2.21 inet6_option_space F
-GLIBC_2.21 inet6_rth_add F
-GLIBC_2.21 inet6_rth_getaddr F
-GLIBC_2.21 inet6_rth_init F
-GLIBC_2.21 inet6_rth_reverse F
-GLIBC_2.21 inet6_rth_segments F
-GLIBC_2.21 inet6_rth_space F
-GLIBC_2.21 inet_addr F
-GLIBC_2.21 inet_aton F
-GLIBC_2.21 inet_lnaof F
-GLIBC_2.21 inet_makeaddr F
-GLIBC_2.21 inet_netof F
-GLIBC_2.21 inet_network F
-GLIBC_2.21 inet_nsap_addr F
-GLIBC_2.21 inet_nsap_ntoa F
-GLIBC_2.21 inet_ntoa F
-GLIBC_2.21 inet_ntop F
-GLIBC_2.21 inet_pton F
-GLIBC_2.21 init_module F
-GLIBC_2.21 initgroups F
-GLIBC_2.21 initstate F
-GLIBC_2.21 initstate_r F
-GLIBC_2.21 innetgr F
-GLIBC_2.21 inotify_add_watch F
-GLIBC_2.21 inotify_init F
-GLIBC_2.21 inotify_init1 F
-GLIBC_2.21 inotify_rm_watch F
-GLIBC_2.21 insque F
-GLIBC_2.21 ioctl F
-GLIBC_2.21 iruserok F
-GLIBC_2.21 iruserok_af F
-GLIBC_2.21 isalnum F
-GLIBC_2.21 isalnum_l F
-GLIBC_2.21 isalpha F
-GLIBC_2.21 isalpha_l F
-GLIBC_2.21 isascii F
-GLIBC_2.21 isastream F
-GLIBC_2.21 isatty F
-GLIBC_2.21 isblank F
-GLIBC_2.21 isblank_l F
-GLIBC_2.21 iscntrl F
-GLIBC_2.21 iscntrl_l F
-GLIBC_2.21 isctype F
-GLIBC_2.21 isdigit F
-GLIBC_2.21 isdigit_l F
-GLIBC_2.21 isfdtype F
-GLIBC_2.21 isgraph F
-GLIBC_2.21 isgraph_l F
-GLIBC_2.21 isinf F
-GLIBC_2.21 isinff F
-GLIBC_2.21 isinfl F
-GLIBC_2.21 islower F
-GLIBC_2.21 islower_l F
-GLIBC_2.21 isnan F
-GLIBC_2.21 isnanf F
-GLIBC_2.21 isnanl F
-GLIBC_2.21 isprint F
-GLIBC_2.21 isprint_l F
-GLIBC_2.21 ispunct F
-GLIBC_2.21 ispunct_l F
-GLIBC_2.21 isspace F
-GLIBC_2.21 isspace_l F
-GLIBC_2.21 isupper F
-GLIBC_2.21 isupper_l F
-GLIBC_2.21 iswalnum F
-GLIBC_2.21 iswalnum_l F
-GLIBC_2.21 iswalpha F
-GLIBC_2.21 iswalpha_l F
-GLIBC_2.21 iswblank F
-GLIBC_2.21 iswblank_l F
-GLIBC_2.21 iswcntrl F
-GLIBC_2.21 iswcntrl_l F
-GLIBC_2.21 iswctype F
-GLIBC_2.21 iswctype_l F
-GLIBC_2.21 iswdigit F
-GLIBC_2.21 iswdigit_l F
-GLIBC_2.21 iswgraph F
-GLIBC_2.21 iswgraph_l F
-GLIBC_2.21 iswlower F
-GLIBC_2.21 iswlower_l F
-GLIBC_2.21 iswprint F
-GLIBC_2.21 iswprint_l F
-GLIBC_2.21 iswpunct F
-GLIBC_2.21 iswpunct_l F
-GLIBC_2.21 iswspace F
-GLIBC_2.21 iswspace_l F
-GLIBC_2.21 iswupper F
-GLIBC_2.21 iswupper_l F
-GLIBC_2.21 iswxdigit F
-GLIBC_2.21 iswxdigit_l F
-GLIBC_2.21 isxdigit F
-GLIBC_2.21 isxdigit_l F
-GLIBC_2.21 jrand48 F
-GLIBC_2.21 jrand48_r F
-GLIBC_2.21 key_decryptsession F
-GLIBC_2.21 key_decryptsession_pk F
-GLIBC_2.21 key_encryptsession F
-GLIBC_2.21 key_encryptsession_pk F
-GLIBC_2.21 key_gendes F
-GLIBC_2.21 key_get_conv F
-GLIBC_2.21 key_secretkey_is_set F
-GLIBC_2.21 key_setnet F
-GLIBC_2.21 key_setsecret F
-GLIBC_2.21 kill F
-GLIBC_2.21 killpg F
-GLIBC_2.21 klogctl F
-GLIBC_2.21 l64a F
-GLIBC_2.21 labs F
-GLIBC_2.21 lchmod F
-GLIBC_2.21 lchown F
-GLIBC_2.21 lckpwdf F
-GLIBC_2.21 lcong48 F
-GLIBC_2.21 lcong48_r F
-GLIBC_2.21 ldexp F
-GLIBC_2.21 ldexpf F
-GLIBC_2.21 ldexpl F
-GLIBC_2.21 ldiv F
-GLIBC_2.21 lfind F
-GLIBC_2.21 lgetxattr F
-GLIBC_2.21 link F
-GLIBC_2.21 linkat F
-GLIBC_2.21 lio_listio F
-GLIBC_2.21 lio_listio64 F
-GLIBC_2.21 listen F
-GLIBC_2.21 listxattr F
-GLIBC_2.21 llabs F
-GLIBC_2.21 lldiv F
-GLIBC_2.21 llistxattr F
-GLIBC_2.21 llseek F
-GLIBC_2.21 loc1 D 0x4
-GLIBC_2.21 loc2 D 0x4
-GLIBC_2.21 localeconv F
-GLIBC_2.21 localtime F
-GLIBC_2.21 localtime_r F
-GLIBC_2.21 lockf F
-GLIBC_2.21 lockf64 F
-GLIBC_2.21 locs D 0x4
-GLIBC_2.21 login F
-GLIBC_2.21 login_tty F
-GLIBC_2.21 logout F
-GLIBC_2.21 logwtmp F
-GLIBC_2.21 longjmp F
-GLIBC_2.21 lrand48 F
-GLIBC_2.21 lrand48_r F
-GLIBC_2.21 lremovexattr F
-GLIBC_2.21 lsearch F
-GLIBC_2.21 lseek F
-GLIBC_2.21 lseek64 F
-GLIBC_2.21 lsetxattr F
-GLIBC_2.21 lutimes F
-GLIBC_2.21 madvise F
-GLIBC_2.21 makecontext F
-GLIBC_2.21 mallinfo F
-GLIBC_2.21 malloc F
-GLIBC_2.21 malloc_info F
-GLIBC_2.21 malloc_stats F
-GLIBC_2.21 malloc_trim F
-GLIBC_2.21 malloc_usable_size F
-GLIBC_2.21 mallopt F
-GLIBC_2.21 mallwatch D 0x4
-GLIBC_2.21 mblen F
-GLIBC_2.21 mbrlen F
-GLIBC_2.21 mbrtoc16 F
-GLIBC_2.21 mbrtoc32 F
-GLIBC_2.21 mbrtowc F
-GLIBC_2.21 mbsinit F
-GLIBC_2.21 mbsnrtowcs F
-GLIBC_2.21 mbsrtowcs F
-GLIBC_2.21 mbstowcs F
-GLIBC_2.21 mbtowc F
-GLIBC_2.21 mcheck F
-GLIBC_2.21 mcheck_check_all F
-GLIBC_2.21 mcheck_pedantic F
-GLIBC_2.21 memalign F
-GLIBC_2.21 memccpy F
-GLIBC_2.21 memchr F
-GLIBC_2.21 memcmp F
-GLIBC_2.21 memcpy F
-GLIBC_2.21 memfrob F
-GLIBC_2.21 memmem F
-GLIBC_2.21 memmove F
-GLIBC_2.21 mempcpy F
-GLIBC_2.21 memrchr F
-GLIBC_2.21 memset F
-GLIBC_2.21 mincore F
-GLIBC_2.21 mkdir F
-GLIBC_2.21 mkdirat F
-GLIBC_2.21 mkdtemp F
-GLIBC_2.21 mkfifo F
-GLIBC_2.21 mkfifoat F
-GLIBC_2.21 mkostemp F
-GLIBC_2.21 mkostemp64 F
-GLIBC_2.21 mkostemps F
-GLIBC_2.21 mkostemps64 F
-GLIBC_2.21 mkstemp F
-GLIBC_2.21 mkstemp64 F
-GLIBC_2.21 mkstemps F
-GLIBC_2.21 mkstemps64 F
-GLIBC_2.21 mktemp F
-GLIBC_2.21 mktime F
-GLIBC_2.21 mlock F
-GLIBC_2.21 mlockall F
-GLIBC_2.21 mmap F
-GLIBC_2.21 mmap64 F
-GLIBC_2.21 modf F
-GLIBC_2.21 modff F
-GLIBC_2.21 modfl F
-GLIBC_2.21 moncontrol F
-GLIBC_2.21 monstartup F
-GLIBC_2.21 mount F
-GLIBC_2.21 mprobe F
-GLIBC_2.21 mprotect F
-GLIBC_2.21 mq_close F
-GLIBC_2.21 mq_getattr F
-GLIBC_2.21 mq_notify F
-GLIBC_2.21 mq_open F
-GLIBC_2.21 mq_receive F
-GLIBC_2.21 mq_send F
-GLIBC_2.21 mq_setattr F
-GLIBC_2.21 mq_timedreceive F
-GLIBC_2.21 mq_timedsend F
-GLIBC_2.21 mq_unlink F
-GLIBC_2.21 mrand48 F
-GLIBC_2.21 mrand48_r F
-GLIBC_2.21 mremap F
-GLIBC_2.21 msgctl F
-GLIBC_2.21 msgget F
-GLIBC_2.21 msgrcv F
-GLIBC_2.21 msgsnd F
-GLIBC_2.21 msync F
-GLIBC_2.21 mtrace F
-GLIBC_2.21 munlock F
-GLIBC_2.21 munlockall F
-GLIBC_2.21 munmap F
-GLIBC_2.21 muntrace F
-GLIBC_2.21 name_to_handle_at F
-GLIBC_2.21 nanosleep F
-GLIBC_2.21 netname2host F
-GLIBC_2.21 netname2user F
-GLIBC_2.21 newlocale F
-GLIBC_2.21 nfsservctl F
-GLIBC_2.21 nftw F
-GLIBC_2.21 nftw64 F
-GLIBC_2.21 ngettext F
-GLIBC_2.21 nice F
-GLIBC_2.21 nl_langinfo F
-GLIBC_2.21 nl_langinfo_l F
-GLIBC_2.21 nrand48 F
-GLIBC_2.21 nrand48_r F
-GLIBC_2.21 ns_name_compress F
-GLIBC_2.21 ns_name_ntop F
-GLIBC_2.21 ns_name_pack F
-GLIBC_2.21 ns_name_pton F
-GLIBC_2.21 ns_name_skip F
-GLIBC_2.21 ns_name_uncompress F
-GLIBC_2.21 ns_name_unpack F
-GLIBC_2.21 ntohl F
-GLIBC_2.21 ntohs F
-GLIBC_2.21 ntp_adjtime F
-GLIBC_2.21 ntp_gettime F
-GLIBC_2.21 ntp_gettimex F
-GLIBC_2.21 obstack_alloc_failed_handler D 0x4
-GLIBC_2.21 obstack_exit_failure D 0x4
-GLIBC_2.21 obstack_free F
-GLIBC_2.21 obstack_printf F
-GLIBC_2.21 obstack_vprintf F
-GLIBC_2.21 on_exit F
-GLIBC_2.21 open F
-GLIBC_2.21 open64 F
-GLIBC_2.21 open_by_handle_at F
-GLIBC_2.21 open_memstream F
-GLIBC_2.21 open_wmemstream F
-GLIBC_2.21 openat F
-GLIBC_2.21 openat64 F
-GLIBC_2.21 opendir F
-GLIBC_2.21 openlog F
-GLIBC_2.21 openpty F
-GLIBC_2.21 optarg D 0x4
-GLIBC_2.21 opterr D 0x4
-GLIBC_2.21 optind D 0x4
-GLIBC_2.21 optopt D 0x4
-GLIBC_2.21 parse_printf_format F
-GLIBC_2.21 passwd2des F
-GLIBC_2.21 pathconf F
-GLIBC_2.21 pause F
-GLIBC_2.21 pclose F
-GLIBC_2.21 perror F
-GLIBC_2.21 personality F
-GLIBC_2.21 pipe F
-GLIBC_2.21 pipe2 F
-GLIBC_2.21 pivot_root F
-GLIBC_2.21 pmap_getmaps F
-GLIBC_2.21 pmap_getport F
-GLIBC_2.21 pmap_rmtcall F
-GLIBC_2.21 pmap_set F
-GLIBC_2.21 pmap_unset F
-GLIBC_2.21 poll F
-GLIBC_2.21 popen F
-GLIBC_2.21 posix_fadvise F
-GLIBC_2.21 posix_fadvise64 F
-GLIBC_2.21 posix_fallocate F
-GLIBC_2.21 posix_fallocate64 F
-GLIBC_2.21 posix_madvise F
-GLIBC_2.21 posix_memalign F
-GLIBC_2.21 posix_openpt F
-GLIBC_2.21 posix_spawn F
-GLIBC_2.21 posix_spawn_file_actions_addclose F
-GLIBC_2.21 posix_spawn_file_actions_adddup2 F
-GLIBC_2.21 posix_spawn_file_actions_addopen F
-GLIBC_2.21 posix_spawn_file_actions_destroy F
-GLIBC_2.21 posix_spawn_file_actions_init F
-GLIBC_2.21 posix_spawnattr_destroy F
-GLIBC_2.21 posix_spawnattr_getflags F
-GLIBC_2.21 posix_spawnattr_getpgroup F
-GLIBC_2.21 posix_spawnattr_getschedparam F
-GLIBC_2.21 posix_spawnattr_getschedpolicy F
-GLIBC_2.21 posix_spawnattr_getsigdefault F
-GLIBC_2.21 posix_spawnattr_getsigmask F
-GLIBC_2.21 posix_spawnattr_init F
-GLIBC_2.21 posix_spawnattr_setflags F
-GLIBC_2.21 posix_spawnattr_setpgroup F
-GLIBC_2.21 posix_spawnattr_setschedparam F
-GLIBC_2.21 posix_spawnattr_setschedpolicy F
-GLIBC_2.21 posix_spawnattr_setsigdefault F
-GLIBC_2.21 posix_spawnattr_setsigmask F
-GLIBC_2.21 posix_spawnp F
-GLIBC_2.21 ppoll F
-GLIBC_2.21 prctl F
-GLIBC_2.21 pread F
-GLIBC_2.21 pread64 F
-GLIBC_2.21 preadv F
-GLIBC_2.21 preadv64 F
-GLIBC_2.21 printf F
-GLIBC_2.21 printf_size F
-GLIBC_2.21 printf_size_info F
-GLIBC_2.21 prlimit F
-GLIBC_2.21 prlimit64 F
-GLIBC_2.21 process_vm_readv F
-GLIBC_2.21 process_vm_writev F
-GLIBC_2.21 profil F
-GLIBC_2.21 program_invocation_name D 0x4
-GLIBC_2.21 program_invocation_short_name D 0x4
-GLIBC_2.21 pselect F
-GLIBC_2.21 psiginfo F
-GLIBC_2.21 psignal F
-GLIBC_2.21 pthread_attr_destroy F
-GLIBC_2.21 pthread_attr_getaffinity_np F
-GLIBC_2.21 pthread_attr_getdetachstate F
-GLIBC_2.21 pthread_attr_getguardsize F
-GLIBC_2.21 pthread_attr_getinheritsched F
-GLIBC_2.21 pthread_attr_getschedparam F
-GLIBC_2.21 pthread_attr_getschedpolicy F
-GLIBC_2.21 pthread_attr_getscope F
-GLIBC_2.21 pthread_attr_getstack F
-GLIBC_2.21 pthread_attr_getstackaddr F
-GLIBC_2.21 pthread_attr_getstacksize F
-GLIBC_2.21 pthread_attr_init F
-GLIBC_2.21 pthread_attr_setaffinity_np F
-GLIBC_2.21 pthread_attr_setdetachstate F
-GLIBC_2.21 pthread_attr_setguardsize F
-GLIBC_2.21 pthread_attr_setinheritsched F
-GLIBC_2.21 pthread_attr_setschedparam F
-GLIBC_2.21 pthread_attr_setschedpolicy F
-GLIBC_2.21 pthread_attr_setscope F
-GLIBC_2.21 pthread_attr_setstack F
-GLIBC_2.21 pthread_attr_setstackaddr F
-GLIBC_2.21 pthread_attr_setstacksize F
-GLIBC_2.21 pthread_barrier_destroy F
-GLIBC_2.21 pthread_barrier_init F
-GLIBC_2.21 pthread_barrier_wait F
-GLIBC_2.21 pthread_barrierattr_destroy F
-GLIBC_2.21 pthread_barrierattr_getpshared F
-GLIBC_2.21 pthread_barrierattr_init F
-GLIBC_2.21 pthread_barrierattr_setpshared F
-GLIBC_2.21 pthread_cancel F
-GLIBC_2.21 pthread_cond_broadcast F
-GLIBC_2.21 pthread_cond_destroy F
-GLIBC_2.21 pthread_cond_init F
-GLIBC_2.21 pthread_cond_signal F
-GLIBC_2.21 pthread_cond_timedwait F
-GLIBC_2.21 pthread_cond_wait F
-GLIBC_2.21 pthread_condattr_destroy F
-GLIBC_2.21 pthread_condattr_getclock F
-GLIBC_2.21 pthread_condattr_getpshared F
-GLIBC_2.21 pthread_condattr_init F
-GLIBC_2.21 pthread_condattr_setclock F
-GLIBC_2.21 pthread_condattr_setpshared F
-GLIBC_2.21 pthread_create F
-GLIBC_2.21 pthread_detach F
-GLIBC_2.21 pthread_equal F
-GLIBC_2.21 pthread_exit F
-GLIBC_2.21 pthread_getaffinity_np F
-GLIBC_2.21 pthread_getattr_default_np F
-GLIBC_2.21 pthread_getattr_np F
-GLIBC_2.21 pthread_getconcurrency F
-GLIBC_2.21 pthread_getcpuclockid F
-GLIBC_2.21 pthread_getname_np F
-GLIBC_2.21 pthread_getschedparam F
-GLIBC_2.21 pthread_getspecific F
-GLIBC_2.21 pthread_join F
-GLIBC_2.21 pthread_key_create F
-GLIBC_2.21 pthread_key_delete F
-GLIBC_2.21 pthread_kill F
-GLIBC_2.21 pthread_kill_other_threads_np F
-GLIBC_2.21 pthread_mutex_consistent F
-GLIBC_2.21 pthread_mutex_consistent_np F
-GLIBC_2.21 pthread_mutex_destroy F
-GLIBC_2.21 pthread_mutex_getprioceiling F
-GLIBC_2.21 pthread_mutex_init F
-GLIBC_2.21 pthread_mutex_lock F
-GLIBC_2.21 pthread_mutex_setprioceiling F
-GLIBC_2.21 pthread_mutex_timedlock F
-GLIBC_2.21 pthread_mutex_trylock F
-GLIBC_2.21 pthread_mutex_unlock F
-GLIBC_2.21 pthread_mutexattr_destroy F
-GLIBC_2.21 pthread_mutexattr_getkind_np F
-GLIBC_2.21 pthread_mutexattr_getprioceiling F
-GLIBC_2.21 pthread_mutexattr_getprotocol F
-GLIBC_2.21 pthread_mutexattr_getpshared F
-GLIBC_2.21 pthread_mutexattr_getrobust F
-GLIBC_2.21 pthread_mutexattr_getrobust_np F
-GLIBC_2.21 pthread_mutexattr_gettype F
-GLIBC_2.21 pthread_mutexattr_init F
-GLIBC_2.21 pthread_mutexattr_setkind_np F
-GLIBC_2.21 pthread_mutexattr_setprioceiling F
-GLIBC_2.21 pthread_mutexattr_setprotocol F
-GLIBC_2.21 pthread_mutexattr_setpshared F
-GLIBC_2.21 pthread_mutexattr_setrobust F
-GLIBC_2.21 pthread_mutexattr_setrobust_np F
-GLIBC_2.21 pthread_mutexattr_settype F
-GLIBC_2.21 pthread_once F
-GLIBC_2.21 pthread_rwlock_destroy F
-GLIBC_2.21 pthread_rwlock_init F
-GLIBC_2.21 pthread_rwlock_rdlock F
-GLIBC_2.21 pthread_rwlock_timedrdlock F
-GLIBC_2.21 pthread_rwlock_timedwrlock F
-GLIBC_2.21 pthread_rwlock_tryrdlock F
-GLIBC_2.21 pthread_rwlock_trywrlock F
-GLIBC_2.21 pthread_rwlock_unlock F
-GLIBC_2.21 pthread_rwlock_wrlock F
-GLIBC_2.21 pthread_rwlockattr_destroy F
-GLIBC_2.21 pthread_rwlockattr_getkind_np F
-GLIBC_2.21 pthread_rwlockattr_getpshared F
-GLIBC_2.21 pthread_rwlockattr_init F
-GLIBC_2.21 pthread_rwlockattr_setkind_np F
-GLIBC_2.21 pthread_rwlockattr_setpshared F
-GLIBC_2.21 pthread_self F
-GLIBC_2.21 pthread_setaffinity_np F
-GLIBC_2.21 pthread_setattr_default_np F
-GLIBC_2.21 pthread_setcancelstate F
-GLIBC_2.21 pthread_setcanceltype F
-GLIBC_2.21 pthread_setconcurrency F
-GLIBC_2.21 pthread_setname_np F
-GLIBC_2.21 pthread_setschedparam F
-GLIBC_2.21 pthread_setschedprio F
-GLIBC_2.21 pthread_setspecific F
-GLIBC_2.21 pthread_sigmask F
-GLIBC_2.21 pthread_sigqueue F
-GLIBC_2.21 pthread_spin_destroy F
-GLIBC_2.21 pthread_spin_init F
-GLIBC_2.21 pthread_spin_lock F
-GLIBC_2.21 pthread_spin_trylock F
-GLIBC_2.21 pthread_spin_unlock F
-GLIBC_2.21 pthread_testcancel F
-GLIBC_2.21 pthread_timedjoin_np F
-GLIBC_2.21 pthread_tryjoin_np F
-GLIBC_2.21 pthread_yield F
-GLIBC_2.21 ptrace F
-GLIBC_2.21 ptsname F
-GLIBC_2.21 ptsname_r F
-GLIBC_2.21 putc F
-GLIBC_2.21 putc_unlocked F
-GLIBC_2.21 putchar F
-GLIBC_2.21 putchar_unlocked F
-GLIBC_2.21 putenv F
-GLIBC_2.21 putgrent F
-GLIBC_2.21 putmsg F
-GLIBC_2.21 putpmsg F
-GLIBC_2.21 putpwent F
-GLIBC_2.21 puts F
-GLIBC_2.21 putsgent F
-GLIBC_2.21 putspent F
-GLIBC_2.21 pututline F
-GLIBC_2.21 pututxline F
-GLIBC_2.21 putw F
-GLIBC_2.21 putwc F
-GLIBC_2.21 putwc_unlocked F
-GLIBC_2.21 putwchar F
-GLIBC_2.21 putwchar_unlocked F
-GLIBC_2.21 pvalloc F
-GLIBC_2.21 pwrite F
-GLIBC_2.21 pwrite64 F
-GLIBC_2.21 pwritev F
-GLIBC_2.21 pwritev64 F
-GLIBC_2.21 qecvt F
-GLIBC_2.21 qecvt_r F
-GLIBC_2.21 qfcvt F
-GLIBC_2.21 qfcvt_r F
-GLIBC_2.21 qgcvt F
-GLIBC_2.21 qsort F
-GLIBC_2.21 qsort_r F
-GLIBC_2.21 query_module F
-GLIBC_2.21 quick_exit F
-GLIBC_2.21 quotactl F
-GLIBC_2.21 raise F
-GLIBC_2.21 rand F
-GLIBC_2.21 rand_r F
-GLIBC_2.21 random F
-GLIBC_2.21 random_r F
-GLIBC_2.21 rawmemchr F
-GLIBC_2.21 rcmd F
-GLIBC_2.21 rcmd_af F
-GLIBC_2.21 re_comp F
-GLIBC_2.21 re_compile_fastmap F
-GLIBC_2.21 re_compile_pattern F
-GLIBC_2.21 re_exec F
-GLIBC_2.21 re_match F
-GLIBC_2.21 re_match_2 F
-GLIBC_2.21 re_search F
-GLIBC_2.21 re_search_2 F
-GLIBC_2.21 re_set_registers F
-GLIBC_2.21 re_set_syntax F
-GLIBC_2.21 re_syntax_options D 0x4
-GLIBC_2.21 read F
-GLIBC_2.21 readahead F
-GLIBC_2.21 readdir F
-GLIBC_2.21 readdir64 F
-GLIBC_2.21 readdir64_r F
-GLIBC_2.21 readdir_r F
-GLIBC_2.21 readlink F
-GLIBC_2.21 readlinkat F
-GLIBC_2.21 readv F
-GLIBC_2.21 realloc F
-GLIBC_2.21 realpath F
-GLIBC_2.21 reboot F
-GLIBC_2.21 recv F
-GLIBC_2.21 recvfrom F
-GLIBC_2.21 recvmmsg F
-GLIBC_2.21 recvmsg F
-GLIBC_2.21 regcomp F
-GLIBC_2.21 regerror F
-GLIBC_2.21 regexec F
-GLIBC_2.21 regfree F
-GLIBC_2.21 register_printf_function F
-GLIBC_2.21 register_printf_modifier F
-GLIBC_2.21 register_printf_specifier F
-GLIBC_2.21 register_printf_type F
-GLIBC_2.21 registerrpc F
-GLIBC_2.21 remap_file_pages F
-GLIBC_2.21 remove F
-GLIBC_2.21 removexattr F
-GLIBC_2.21 remque F
-GLIBC_2.21 rename F
-GLIBC_2.21 renameat F
-GLIBC_2.21 revoke F
-GLIBC_2.21 rewind F
-GLIBC_2.21 rewinddir F
-GLIBC_2.21 rexec F
-GLIBC_2.21 rexec_af F
-GLIBC_2.21 rexecoptions D 0x4
-GLIBC_2.21 rindex F
-GLIBC_2.21 rmdir F
-GLIBC_2.21 rpc_createerr D 0x10
-GLIBC_2.21 rpmatch F
-GLIBC_2.21 rresvport F
-GLIBC_2.21 rresvport_af F
-GLIBC_2.21 rtime F
-GLIBC_2.21 ruserok F
-GLIBC_2.21 ruserok_af F
-GLIBC_2.21 ruserpass F
-GLIBC_2.21 sbrk F
-GLIBC_2.21 scalbn F
-GLIBC_2.21 scalbnf F
-GLIBC_2.21 scalbnl F
-GLIBC_2.21 scandir F
-GLIBC_2.21 scandir64 F
-GLIBC_2.21 scandirat F
-GLIBC_2.21 scandirat64 F
-GLIBC_2.21 scanf F
-GLIBC_2.21 sched_get_priority_max F
-GLIBC_2.21 sched_get_priority_min F
-GLIBC_2.21 sched_getaffinity F
-GLIBC_2.21 sched_getcpu F
-GLIBC_2.21 sched_getparam F
-GLIBC_2.21 sched_getscheduler F
-GLIBC_2.21 sched_rr_get_interval F
-GLIBC_2.21 sched_setaffinity F
-GLIBC_2.21 sched_setparam F
-GLIBC_2.21 sched_setscheduler F
-GLIBC_2.21 sched_yield F
-GLIBC_2.21 secure_getenv F
-GLIBC_2.21 seed48 F
-GLIBC_2.21 seed48_r F
-GLIBC_2.21 seekdir F
-GLIBC_2.21 select F
-GLIBC_2.21 sem_close F
-GLIBC_2.21 sem_destroy F
-GLIBC_2.21 sem_getvalue F
-GLIBC_2.21 sem_init F
-GLIBC_2.21 sem_open F
-GLIBC_2.21 sem_post F
-GLIBC_2.21 sem_timedwait F
-GLIBC_2.21 sem_trywait F
-GLIBC_2.21 sem_unlink F
-GLIBC_2.21 sem_wait F
-GLIBC_2.21 semctl F
-GLIBC_2.21 semget F
-GLIBC_2.21 semop F
-GLIBC_2.21 semtimedop F
-GLIBC_2.21 send F
-GLIBC_2.21 sendfile F
-GLIBC_2.21 sendfile64 F
-GLIBC_2.21 sendmmsg F
-GLIBC_2.21 sendmsg F
-GLIBC_2.21 sendto F
-GLIBC_2.21 setaliasent F
-GLIBC_2.21 setbuf F
-GLIBC_2.21 setbuffer F
-GLIBC_2.21 setcontext F
-GLIBC_2.21 setdomainname F
-GLIBC_2.21 setegid F
-GLIBC_2.21 setenv F
-GLIBC_2.21 seteuid F
-GLIBC_2.21 setfsent F
-GLIBC_2.21 setfsgid F
-GLIBC_2.21 setfsuid F
-GLIBC_2.21 setgid F
-GLIBC_2.21 setgrent F
-GLIBC_2.21 setgroups F
-GLIBC_2.21 sethostent F
-GLIBC_2.21 sethostid F
-GLIBC_2.21 sethostname F
-GLIBC_2.21 setipv4sourcefilter F
-GLIBC_2.21 setitimer F
-GLIBC_2.21 setjmp F
-GLIBC_2.21 setlinebuf F
-GLIBC_2.21 setlocale F
-GLIBC_2.21 setlogin F
-GLIBC_2.21 setlogmask F
-GLIBC_2.21 setmntent F
-GLIBC_2.21 setnetent F
-GLIBC_2.21 setnetgrent F
-GLIBC_2.21 setns F
-GLIBC_2.21 setpgid F
-GLIBC_2.21 setpgrp F
-GLIBC_2.21 setpriority F
-GLIBC_2.21 setprotoent F
-GLIBC_2.21 setpwent F
-GLIBC_2.21 setregid F
-GLIBC_2.21 setresgid F
-GLIBC_2.21 setresuid F
-GLIBC_2.21 setreuid F
-GLIBC_2.21 setrlimit F
-GLIBC_2.21 setrlimit64 F
-GLIBC_2.21 setrpcent F
-GLIBC_2.21 setservent F
-GLIBC_2.21 setsgent F
-GLIBC_2.21 setsid F
-GLIBC_2.21 setsockopt F
-GLIBC_2.21 setsourcefilter F
-GLIBC_2.21 setspent F
-GLIBC_2.21 setstate F
-GLIBC_2.21 setstate_r F
-GLIBC_2.21 settimeofday F
-GLIBC_2.21 setttyent F
-GLIBC_2.21 setuid F
-GLIBC_2.21 setusershell F
-GLIBC_2.21 setutent F
-GLIBC_2.21 setutxent F
-GLIBC_2.21 setvbuf F
-GLIBC_2.21 setxattr F
-GLIBC_2.21 sgetsgent F
-GLIBC_2.21 sgetsgent_r F
-GLIBC_2.21 sgetspent F
-GLIBC_2.21 sgetspent_r F
-GLIBC_2.21 shm_open F
-GLIBC_2.21 shm_unlink F
-GLIBC_2.21 shmat F
-GLIBC_2.21 shmctl F
-GLIBC_2.21 shmdt F
-GLIBC_2.21 shmget F
-GLIBC_2.21 shutdown F
-GLIBC_2.21 sigaction F
-GLIBC_2.21 sigaddset F
-GLIBC_2.21 sigaltstack F
-GLIBC_2.21 sigandset F
-GLIBC_2.21 sigblock F
-GLIBC_2.21 sigdelset F
-GLIBC_2.21 sigemptyset F
-GLIBC_2.21 sigfillset F
-GLIBC_2.21 siggetmask F
-GLIBC_2.21 sighold F
-GLIBC_2.21 sigignore F
-GLIBC_2.21 siginterrupt F
-GLIBC_2.21 sigisemptyset F
-GLIBC_2.21 sigismember F
-GLIBC_2.21 siglongjmp F
-GLIBC_2.21 signal F
-GLIBC_2.21 signalfd F
-GLIBC_2.21 sigorset F
-GLIBC_2.21 sigpause F
-GLIBC_2.21 sigpending F
-GLIBC_2.21 sigprocmask F
-GLIBC_2.21 sigqueue F
-GLIBC_2.21 sigrelse F
-GLIBC_2.21 sigreturn F
-GLIBC_2.21 sigset F
-GLIBC_2.21 sigsetmask F
-GLIBC_2.21 sigstack F
-GLIBC_2.21 sigsuspend F
-GLIBC_2.21 sigtimedwait F
-GLIBC_2.21 sigwait F
-GLIBC_2.21 sigwaitinfo F
-GLIBC_2.21 sleep F
-GLIBC_2.21 snprintf F
-GLIBC_2.21 sockatmark F
-GLIBC_2.21 socket F
-GLIBC_2.21 socketpair F
-GLIBC_2.21 splice F
-GLIBC_2.21 sprintf F
-GLIBC_2.21 sprofil F
-GLIBC_2.21 srand F
-GLIBC_2.21 srand48 F
-GLIBC_2.21 srand48_r F
-GLIBC_2.21 srandom F
-GLIBC_2.21 srandom_r F
-GLIBC_2.21 sscanf F
-GLIBC_2.21 ssignal F
-GLIBC_2.21 sstk F
-GLIBC_2.21 statfs F
-GLIBC_2.21 statfs64 F
-GLIBC_2.21 statvfs F
-GLIBC_2.21 statvfs64 F
-GLIBC_2.21 stderr D 0x4
-GLIBC_2.21 stdin D 0x4
-GLIBC_2.21 stdout D 0x4
-GLIBC_2.21 step F
-GLIBC_2.21 stime F
-GLIBC_2.21 stpcpy F
-GLIBC_2.21 stpncpy F
-GLIBC_2.21 strcasecmp F
-GLIBC_2.21 strcasecmp_l F
-GLIBC_2.21 strcasestr F
-GLIBC_2.21 strcat F
-GLIBC_2.21 strchr F
-GLIBC_2.21 strchrnul F
-GLIBC_2.21 strcmp F
-GLIBC_2.21 strcoll F
-GLIBC_2.21 strcoll_l F
-GLIBC_2.21 strcpy F
-GLIBC_2.21 strcspn F
-GLIBC_2.21 strdup F
-GLIBC_2.21 strerror F
-GLIBC_2.21 strerror_l F
-GLIBC_2.21 strerror_r F
-GLIBC_2.21 strfmon F
-GLIBC_2.21 strfmon_l F
-GLIBC_2.21 strfry F
-GLIBC_2.21 strftime F
-GLIBC_2.21 strftime_l F
-GLIBC_2.21 strlen F
-GLIBC_2.21 strncasecmp F
-GLIBC_2.21 strncasecmp_l F
-GLIBC_2.21 strncat F
-GLIBC_2.21 strncmp F
-GLIBC_2.21 strncpy F
-GLIBC_2.21 strndup F
-GLIBC_2.21 strnlen F
-GLIBC_2.21 strpbrk F
-GLIBC_2.21 strptime F
-GLIBC_2.21 strptime_l F
-GLIBC_2.21 strrchr F
-GLIBC_2.21 strsep F
-GLIBC_2.21 strsignal F
-GLIBC_2.21 strspn F
-GLIBC_2.21 strstr F
-GLIBC_2.21 strtod F
-GLIBC_2.21 strtod_l F
-GLIBC_2.21 strtof F
-GLIBC_2.21 strtof_l F
-GLIBC_2.21 strtoimax F
-GLIBC_2.21 strtok F
-GLIBC_2.21 strtok_r F
-GLIBC_2.21 strtol F
-GLIBC_2.21 strtol_l F
-GLIBC_2.21 strtold F
-GLIBC_2.21 strtold_l F
-GLIBC_2.21 strtoll F
-GLIBC_2.21 strtoll_l F
-GLIBC_2.21 strtoq F
-GLIBC_2.21 strtoul F
-GLIBC_2.21 strtoul_l F
-GLIBC_2.21 strtoull F
-GLIBC_2.21 strtoull_l F
-GLIBC_2.21 strtoumax F
-GLIBC_2.21 strtouq F
-GLIBC_2.21 strverscmp F
-GLIBC_2.21 strxfrm F
-GLIBC_2.21 strxfrm_l F
-GLIBC_2.21 stty F
-GLIBC_2.21 svc_exit F
-GLIBC_2.21 svc_fdset D 0x80
-GLIBC_2.21 svc_getreq F
-GLIBC_2.21 svc_getreq_common F
-GLIBC_2.21 svc_getreq_poll F
-GLIBC_2.21 svc_getreqset F
-GLIBC_2.21 svc_max_pollfd D 0x4
-GLIBC_2.21 svc_pollfd D 0x4
-GLIBC_2.21 svc_register F
-GLIBC_2.21 svc_run F
-GLIBC_2.21 svc_sendreply F
-GLIBC_2.21 svc_unregister F
-GLIBC_2.21 svcauthdes_stats D 0xc
-GLIBC_2.21 svcerr_auth F
-GLIBC_2.21 svcerr_decode F
-GLIBC_2.21 svcerr_noproc F
-GLIBC_2.21 svcerr_noprog F
-GLIBC_2.21 svcerr_progvers F
-GLIBC_2.21 svcerr_systemerr F
-GLIBC_2.21 svcerr_weakauth F
-GLIBC_2.21 svcfd_create F
-GLIBC_2.21 svcraw_create F
-GLIBC_2.21 svctcp_create F
-GLIBC_2.21 svcudp_bufcreate F
-GLIBC_2.21 svcudp_create F
-GLIBC_2.21 svcudp_enablecache F
-GLIBC_2.21 svcunix_create F
-GLIBC_2.21 svcunixfd_create F
-GLIBC_2.21 swab F
-GLIBC_2.21 swapcontext F
-GLIBC_2.21 swapoff F
-GLIBC_2.21 swapon F
-GLIBC_2.21 swprintf F
-GLIBC_2.21 swscanf F
-GLIBC_2.21 symlink F
-GLIBC_2.21 symlinkat F
-GLIBC_2.21 sync F
-GLIBC_2.21 sync_file_range F
-GLIBC_2.21 syncfs F
-GLIBC_2.21 sys_errlist D 0x21c
-GLIBC_2.21 sys_nerr D 0x4
-GLIBC_2.21 sys_sigabbrev D 0x104
-GLIBC_2.21 sys_siglist D 0x104
-GLIBC_2.21 syscall F
-GLIBC_2.21 sysconf F
-GLIBC_2.21 sysctl F
-GLIBC_2.21 sysinfo F
-GLIBC_2.21 syslog F
-GLIBC_2.21 system F
-GLIBC_2.21 sysv_signal F
-GLIBC_2.21 tcdrain F
-GLIBC_2.21 tcflow F
-GLIBC_2.21 tcflush F
-GLIBC_2.21 tcgetattr F
-GLIBC_2.21 tcgetpgrp F
-GLIBC_2.21 tcgetsid F
-GLIBC_2.21 tcsendbreak F
-GLIBC_2.21 tcsetattr F
-GLIBC_2.21 tcsetpgrp F
-GLIBC_2.21 tdelete F
-GLIBC_2.21 tdestroy F
-GLIBC_2.21 tee F
-GLIBC_2.21 telldir F
-GLIBC_2.21 tempnam F
-GLIBC_2.21 textdomain F
-GLIBC_2.21 tfind F
-GLIBC_2.21 time F
-GLIBC_2.21 timegm F
-GLIBC_2.21 timelocal F
-GLIBC_2.21 timer_create F
-GLIBC_2.21 timer_delete F
-GLIBC_2.21 timer_getoverrun F
-GLIBC_2.21 timer_gettime F
-GLIBC_2.21 timer_settime F
-GLIBC_2.21 timerfd_create F
-GLIBC_2.21 timerfd_gettime F
-GLIBC_2.21 timerfd_settime F
-GLIBC_2.21 times F
-GLIBC_2.21 timespec_get F
-GLIBC_2.21 timezone D 0x4
-GLIBC_2.21 tmpfile F
-GLIBC_2.21 tmpfile64 F
-GLIBC_2.21 tmpnam F
-GLIBC_2.21 tmpnam_r F
-GLIBC_2.21 toascii F
-GLIBC_2.21 tolower F
-GLIBC_2.21 tolower_l F
-GLIBC_2.21 toupper F
-GLIBC_2.21 toupper_l F
-GLIBC_2.21 towctrans F
-GLIBC_2.21 towctrans_l F
-GLIBC_2.21 towlower F
-GLIBC_2.21 towlower_l F
-GLIBC_2.21 towupper F
-GLIBC_2.21 towupper_l F
-GLIBC_2.21 tr_break F
-GLIBC_2.21 truncate F
-GLIBC_2.21 truncate64 F
-GLIBC_2.21 tsearch F
-GLIBC_2.21 ttyname F
-GLIBC_2.21 ttyname_r F
-GLIBC_2.21 ttyslot F
-GLIBC_2.21 twalk F
-GLIBC_2.21 tzname D 0x8
-GLIBC_2.21 tzset F
-GLIBC_2.21 ualarm F
-GLIBC_2.21 ulckpwdf F
-GLIBC_2.21 ulimit F
-GLIBC_2.21 umask F
-GLIBC_2.21 umount F
-GLIBC_2.21 umount2 F
-GLIBC_2.21 uname F
-GLIBC_2.21 ungetc F
-GLIBC_2.21 ungetwc F
-GLIBC_2.21 unlink F
-GLIBC_2.21 unlinkat F
-GLIBC_2.21 unlockpt F
-GLIBC_2.21 unsetenv F
-GLIBC_2.21 unshare F
-GLIBC_2.21 updwtmp F
-GLIBC_2.21 updwtmpx F
-GLIBC_2.21 uselib F
-GLIBC_2.21 uselocale F
-GLIBC_2.21 user2netname F
-GLIBC_2.21 usleep F
-GLIBC_2.21 ustat F
-GLIBC_2.21 utime F
-GLIBC_2.21 utimensat F
-GLIBC_2.21 utimes F
-GLIBC_2.21 utmpname F
-GLIBC_2.21 utmpxname F
-GLIBC_2.21 valloc F
-GLIBC_2.21 vasprintf F
-GLIBC_2.21 vdprintf F
-GLIBC_2.21 verr F
-GLIBC_2.21 verrx F
-GLIBC_2.21 versionsort F
-GLIBC_2.21 versionsort64 F
-GLIBC_2.21 vfork F
-GLIBC_2.21 vfprintf F
-GLIBC_2.21 vfscanf F
-GLIBC_2.21 vfwprintf F
-GLIBC_2.21 vfwscanf F
-GLIBC_2.21 vhangup F
-GLIBC_2.21 vlimit F
-GLIBC_2.21 vmsplice F
-GLIBC_2.21 vprintf F
-GLIBC_2.21 vscanf F
-GLIBC_2.21 vsnprintf F
-GLIBC_2.21 vsprintf F
-GLIBC_2.21 vsscanf F
-GLIBC_2.21 vswprintf F
-GLIBC_2.21 vswscanf F
-GLIBC_2.21 vsyslog F
-GLIBC_2.21 vtimes F
-GLIBC_2.21 vwarn F
-GLIBC_2.21 vwarnx F
-GLIBC_2.21 vwprintf F
-GLIBC_2.21 vwscanf F
-GLIBC_2.21 wait F
-GLIBC_2.21 wait3 F
-GLIBC_2.21 wait4 F
-GLIBC_2.21 waitid F
-GLIBC_2.21 waitpid F
-GLIBC_2.21 warn F
-GLIBC_2.21 warnx F
-GLIBC_2.21 wcpcpy F
-GLIBC_2.21 wcpncpy F
-GLIBC_2.21 wcrtomb F
-GLIBC_2.21 wcscasecmp F
-GLIBC_2.21 wcscasecmp_l F
-GLIBC_2.21 wcscat F
-GLIBC_2.21 wcschr F
-GLIBC_2.21 wcschrnul F
-GLIBC_2.21 wcscmp F
-GLIBC_2.21 wcscoll F
-GLIBC_2.21 wcscoll_l F
-GLIBC_2.21 wcscpy F
-GLIBC_2.21 wcscspn F
-GLIBC_2.21 wcsdup F
-GLIBC_2.21 wcsftime F
-GLIBC_2.21 wcsftime_l F
-GLIBC_2.21 wcslen F
-GLIBC_2.21 wcsncasecmp F
-GLIBC_2.21 wcsncasecmp_l F
-GLIBC_2.21 wcsncat F
-GLIBC_2.21 wcsncmp F
-GLIBC_2.21 wcsncpy F
-GLIBC_2.21 wcsnlen F
-GLIBC_2.21 wcsnrtombs F
-GLIBC_2.21 wcspbrk F
-GLIBC_2.21 wcsrchr F
-GLIBC_2.21 wcsrtombs F
-GLIBC_2.21 wcsspn F
-GLIBC_2.21 wcsstr F
-GLIBC_2.21 wcstod F
-GLIBC_2.21 wcstod_l F
-GLIBC_2.21 wcstof F
-GLIBC_2.21 wcstof_l F
-GLIBC_2.21 wcstoimax F
-GLIBC_2.21 wcstok F
-GLIBC_2.21 wcstol F
-GLIBC_2.21 wcstol_l F
-GLIBC_2.21 wcstold F
-GLIBC_2.21 wcstold_l F
-GLIBC_2.21 wcstoll F
-GLIBC_2.21 wcstoll_l F
-GLIBC_2.21 wcstombs F
-GLIBC_2.21 wcstoq F
-GLIBC_2.21 wcstoul F
-GLIBC_2.21 wcstoul_l F
-GLIBC_2.21 wcstoull F
-GLIBC_2.21 wcstoull_l F
-GLIBC_2.21 wcstoumax F
-GLIBC_2.21 wcstouq F
-GLIBC_2.21 wcswcs F
-GLIBC_2.21 wcswidth F
-GLIBC_2.21 wcsxfrm F
-GLIBC_2.21 wcsxfrm_l F
-GLIBC_2.21 wctob F
-GLIBC_2.21 wctomb F
-GLIBC_2.21 wctrans F
-GLIBC_2.21 wctrans_l F
-GLIBC_2.21 wctype F
-GLIBC_2.21 wctype_l F
-GLIBC_2.21 wcwidth F
-GLIBC_2.21 wmemchr F
-GLIBC_2.21 wmemcmp F
-GLIBC_2.21 wmemcpy F
-GLIBC_2.21 wmemmove F
-GLIBC_2.21 wmempcpy F
-GLIBC_2.21 wmemset F
-GLIBC_2.21 wordexp F
-GLIBC_2.21 wordfree F
-GLIBC_2.21 wprintf F
-GLIBC_2.21 write F
-GLIBC_2.21 writev F
-GLIBC_2.21 wscanf F
-GLIBC_2.21 xdecrypt F
-GLIBC_2.21 xdr_accepted_reply F
-GLIBC_2.21 xdr_array F
-GLIBC_2.21 xdr_authdes_cred F
-GLIBC_2.21 xdr_authdes_verf F
-GLIBC_2.21 xdr_authunix_parms F
-GLIBC_2.21 xdr_bool F
-GLIBC_2.21 xdr_bytes F
-GLIBC_2.21 xdr_callhdr F
-GLIBC_2.21 xdr_callmsg F
-GLIBC_2.21 xdr_char F
-GLIBC_2.21 xdr_cryptkeyarg F
-GLIBC_2.21 xdr_cryptkeyarg2 F
-GLIBC_2.21 xdr_cryptkeyres F
-GLIBC_2.21 xdr_des_block F
-GLIBC_2.21 xdr_double F
-GLIBC_2.21 xdr_enum F
-GLIBC_2.21 xdr_float F
-GLIBC_2.21 xdr_free F
-GLIBC_2.21 xdr_getcredres F
-GLIBC_2.21 xdr_hyper F
-GLIBC_2.21 xdr_int F
-GLIBC_2.21 xdr_int16_t F
-GLIBC_2.21 xdr_int32_t F
-GLIBC_2.21 xdr_int64_t F
-GLIBC_2.21 xdr_int8_t F
-GLIBC_2.21 xdr_key_netstarg F
-GLIBC_2.21 xdr_key_netstres F
-GLIBC_2.21 xdr_keybuf F
-GLIBC_2.21 xdr_keystatus F
-GLIBC_2.21 xdr_long F
-GLIBC_2.21 xdr_longlong_t F
-GLIBC_2.21 xdr_netnamestr F
-GLIBC_2.21 xdr_netobj F
-GLIBC_2.21 xdr_opaque F
-GLIBC_2.21 xdr_opaque_auth F
-GLIBC_2.21 xdr_pmap F
-GLIBC_2.21 xdr_pmaplist F
-GLIBC_2.21 xdr_pointer F
-GLIBC_2.21 xdr_quad_t F
-GLIBC_2.21 xdr_reference F
-GLIBC_2.21 xdr_rejected_reply F
-GLIBC_2.21 xdr_replymsg F
-GLIBC_2.21 xdr_rmtcall_args F
-GLIBC_2.21 xdr_rmtcallres F
-GLIBC_2.21 xdr_short F
-GLIBC_2.21 xdr_sizeof F
-GLIBC_2.21 xdr_string F
-GLIBC_2.21 xdr_u_char F
-GLIBC_2.21 xdr_u_hyper F
-GLIBC_2.21 xdr_u_int F
-GLIBC_2.21 xdr_u_long F
-GLIBC_2.21 xdr_u_longlong_t F
-GLIBC_2.21 xdr_u_quad_t F
-GLIBC_2.21 xdr_u_short F
-GLIBC_2.21 xdr_uint16_t F
-GLIBC_2.21 xdr_uint32_t F
-GLIBC_2.21 xdr_uint64_t F
-GLIBC_2.21 xdr_uint8_t F
-GLIBC_2.21 xdr_union F
-GLIBC_2.21 xdr_unixcred F
-GLIBC_2.21 xdr_vector F
-GLIBC_2.21 xdr_void F
-GLIBC_2.21 xdr_wrapstring F
-GLIBC_2.21 xdrmem_create F
-GLIBC_2.21 xdrrec_create F
-GLIBC_2.21 xdrrec_endofrecord F
-GLIBC_2.21 xdrrec_eof F
-GLIBC_2.21 xdrrec_skiprecord F
-GLIBC_2.21 xdrstdio_create F
-GLIBC_2.21 xencrypt F
-GLIBC_2.21 xprt_register F
-GLIBC_2.21 xprt_unregister F
-GLIBC_2.22 fmemopen F
-GLIBC_2.23 fts64_children F
-GLIBC_2.23 fts64_close F
-GLIBC_2.23 fts64_open F
-GLIBC_2.23 fts64_read F
-GLIBC_2.23 fts64_set F
-GLIBC_2.24 quick_exit F
-GLIBC_2.25 __explicit_bzero_chk F
-GLIBC_2.25 explicit_bzero F
-GLIBC_2.25 getentropy F
-GLIBC_2.25 getrandom F
-GLIBC_2.25 strfromd F
-GLIBC_2.25 strfromf F
-GLIBC_2.25 strfroml F
-GLIBC_2.26 preadv2 F
-GLIBC_2.26 preadv64v2 F
-GLIBC_2.26 pwritev2 F
-GLIBC_2.26 pwritev64v2 F
-GLIBC_2.26 reallocarray F
-GLIBC_2.27 copy_file_range F
-GLIBC_2.27 glob F
-GLIBC_2.27 glob64 F
-GLIBC_2.27 memfd_create F
-GLIBC_2.27 mlock2 F
-GLIBC_2.27 pkey_alloc F
-GLIBC_2.27 pkey_free F
-GLIBC_2.27 pkey_get F
-GLIBC_2.27 pkey_mprotect F
-GLIBC_2.27 pkey_set F
-GLIBC_2.27 strfromf32 F
-GLIBC_2.27 strfromf32x F
-GLIBC_2.27 strfromf64 F
-GLIBC_2.27 strtof32 F
-GLIBC_2.27 strtof32_l F
-GLIBC_2.27 strtof32x F
-GLIBC_2.27 strtof32x_l F
-GLIBC_2.27 strtof64 F
-GLIBC_2.27 strtof64_l F
-GLIBC_2.27 wcstof32 F
-GLIBC_2.27 wcstof32_l F
-GLIBC_2.27 wcstof32x F
-GLIBC_2.27 wcstof32x_l F
-GLIBC_2.27 wcstof64 F
-GLIBC_2.27 wcstof64_l F
-GLIBC_2.28 call_once F
-GLIBC_2.28 cnd_broadcast F
-GLIBC_2.28 cnd_destroy F
-GLIBC_2.28 cnd_init F
-GLIBC_2.28 cnd_signal F
-GLIBC_2.28 cnd_timedwait F
-GLIBC_2.28 cnd_wait F
-GLIBC_2.28 fcntl F
-GLIBC_2.28 fcntl64 F
-GLIBC_2.28 mtx_destroy F
-GLIBC_2.28 mtx_init F
-GLIBC_2.28 mtx_lock F
-GLIBC_2.28 mtx_timedlock F
-GLIBC_2.28 mtx_trylock F
-GLIBC_2.28 mtx_unlock F
-GLIBC_2.28 renameat2 F
-GLIBC_2.28 statx F
-GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_current F
-GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_equal F
-GLIBC_2.28 thrd_exit F
-GLIBC_2.28 thrd_join F
-GLIBC_2.28 thrd_sleep F
-GLIBC_2.28 thrd_yield F
-GLIBC_2.28 tss_create F
-GLIBC_2.28 tss_delete F
-GLIBC_2.28 tss_get F
-GLIBC_2.28 tss_set F
-GLIBC_2.29 getcpu F
-GLIBC_2.29 posix_spawn_file_actions_addchdir_np F
-GLIBC_2.29 posix_spawn_file_actions_addfchdir_np F
-GLIBC_2.30 getdents64 F
-GLIBC_2.30 gettid F
-GLIBC_2.30 pthread_cond_clockwait F
-GLIBC_2.30 pthread_mutex_clocklock F
-GLIBC_2.30 pthread_rwlock_clockrdlock F
-GLIBC_2.30 pthread_rwlock_clockwrlock F
-GLIBC_2.30 sem_clockwait F
-GLIBC_2.30 tgkill F
-GLIBC_2.30 twalk_r F
-GLIBC_2.31 pthread_clockjoin_np F
-GLIBC_2.32 __libc_single_threaded D 0x1
-GLIBC_2.32 pthread_attr_getsigmask_np F
-GLIBC_2.32 pthread_attr_setaffinity_np F
-GLIBC_2.32 pthread_attr_setsigmask_np F
-GLIBC_2.32 pthread_getaffinity_np F
-GLIBC_2.32 pthread_getattr_np F
-GLIBC_2.32 pthread_sigmask F
-GLIBC_2.32 sigabbrev_np F
-GLIBC_2.32 sigdescr_np F
-GLIBC_2.32 strerrordesc_np F
-GLIBC_2.32 strerrorname_np F
-GLIBC_2.33 fstat F
-GLIBC_2.33 fstat64 F
-GLIBC_2.33 fstatat F
-GLIBC_2.33 fstatat64 F
-GLIBC_2.33 lstat F
-GLIBC_2.33 lstat64 F
-GLIBC_2.33 mallinfo2 F
-GLIBC_2.33 mknod F
-GLIBC_2.33 mknodat F
-GLIBC_2.33 stat F
-GLIBC_2.33 stat64 F
-GLIBC_2.34 _Fork F
-GLIBC_2.34 ___adjtimex64 F
-GLIBC_2.34 __adjtime64 F
-GLIBC_2.34 __aio_suspend_time64 F
-GLIBC_2.34 __clock_adjtime64 F
-GLIBC_2.34 __clock_getres64 F
-GLIBC_2.34 __clock_gettime64 F
-GLIBC_2.34 __clock_nanosleep_time64 F
-GLIBC_2.34 __clock_settime64 F
-GLIBC_2.34 __cnd_timedwait64 F
-GLIBC_2.34 __ctime64 F
-GLIBC_2.34 __ctime64_r F
-GLIBC_2.34 __difftime64 F
-GLIBC_2.34 __fcntl_time64 F
-GLIBC_2.34 __fstat64_time64 F
-GLIBC_2.34 __fstatat64_time64 F
-GLIBC_2.34 __fts64_children_time64 F
-GLIBC_2.34 __fts64_close_time64 F
-GLIBC_2.34 __fts64_open_time64 F
-GLIBC_2.34 __fts64_read_time64 F
-GLIBC_2.34 __fts64_set_time64 F
-GLIBC_2.34 __ftw64_time64 F
-GLIBC_2.34 __futimens64 F
-GLIBC_2.34 __futimes64 F
-GLIBC_2.34 __futimesat64 F
-GLIBC_2.34 __gai_suspend_time64 F
-GLIBC_2.34 __getitimer64 F
-GLIBC_2.34 __getrusage64 F
-GLIBC_2.34 __getsockopt64 F
-GLIBC_2.34 __gettimeofday64 F
-GLIBC_2.34 __glob64_time64 F
-GLIBC_2.34 __globfree64_time64 F
-GLIBC_2.34 __gmtime64 F
-GLIBC_2.34 __gmtime64_r F
-GLIBC_2.34 __ioctl_time64 F
-GLIBC_2.34 __libc_start_main F
-GLIBC_2.34 __localtime64 F
-GLIBC_2.34 __localtime64_r F
-GLIBC_2.34 __lstat64_time64 F
-GLIBC_2.34 __lutimes64 F
-GLIBC_2.34 __mktime64 F
-GLIBC_2.34 __mq_open_2 F
-GLIBC_2.34 __mq_timedreceive_time64 F
-GLIBC_2.34 __mq_timedsend_time64 F
-GLIBC_2.34 __msgctl64 F
-GLIBC_2.34 __mtx_timedlock64 F
-GLIBC_2.34 __nanosleep64 F
-GLIBC_2.34 __nftw64_time64 F
-GLIBC_2.34 __ntp_gettime64 F
-GLIBC_2.34 __ntp_gettimex64 F
-GLIBC_2.34 __ppoll64 F
-GLIBC_2.34 __prctl_time64 F
-GLIBC_2.34 __pselect64 F
-GLIBC_2.34 __pthread_cleanup_routine F
-GLIBC_2.34 __pthread_clockjoin_np64 F
-GLIBC_2.34 __pthread_cond_clockwait64 F
-GLIBC_2.34 __pthread_cond_timedwait64 F
-GLIBC_2.34 __pthread_key_create F
-GLIBC_2.34 __pthread_mutex_clocklock64 F
-GLIBC_2.34 __pthread_mutex_timedlock64 F
-GLIBC_2.34 __pthread_register_cancel F
-GLIBC_2.34 __pthread_register_cancel_defer F
-GLIBC_2.34 __pthread_rwlock_clockrdlock64 F
-GLIBC_2.34 __pthread_rwlock_clockwrlock64 F
-GLIBC_2.34 __pthread_rwlock_timedrdlock64 F
-GLIBC_2.34 __pthread_rwlock_timedwrlock64 F
-GLIBC_2.34 __pthread_timedjoin_np64 F
-GLIBC_2.34 __pthread_unregister_cancel F
-GLIBC_2.34 __pthread_unregister_cancel_restore F
-GLIBC_2.34 __pthread_unwind_next F
-GLIBC_2.34 __recvmmsg64 F
-GLIBC_2.34 __recvmsg64 F
-GLIBC_2.34 __sched_rr_get_interval64 F
-GLIBC_2.34 __select64 F
-GLIBC_2.34 __sem_clockwait64 F
-GLIBC_2.34 __sem_timedwait64 F
-GLIBC_2.34 __semctl64 F
-GLIBC_2.34 __semtimedop64 F
-GLIBC_2.34 __sendmmsg64 F
-GLIBC_2.34 __sendmsg64 F
-GLIBC_2.34 __setitimer64 F
-GLIBC_2.34 __setsockopt64 F
-GLIBC_2.34 __settimeofday64 F
-GLIBC_2.34 __shmctl64 F
-GLIBC_2.34 __sigtimedwait64 F
-GLIBC_2.34 __stat64_time64 F
-GLIBC_2.34 __thrd_sleep64 F
-GLIBC_2.34 __time64 F
-GLIBC_2.34 __timegm64 F
-GLIBC_2.34 __timer_gettime64 F
-GLIBC_2.34 __timer_settime64 F
-GLIBC_2.34 __timerfd_gettime64 F
-GLIBC_2.34 __timerfd_settime64 F
-GLIBC_2.34 __timespec_get64 F
-GLIBC_2.34 __timespec_getres64 F
-GLIBC_2.34 __utime64 F
-GLIBC_2.34 __utimensat64 F
-GLIBC_2.34 __utimes64 F
-GLIBC_2.34 __wait3_time64 F
-GLIBC_2.34 __wait4_time64 F
-GLIBC_2.34 _pthread_cleanup_pop F
-GLIBC_2.34 _pthread_cleanup_push F
-GLIBC_2.34 aio_cancel F
-GLIBC_2.34 aio_cancel64 F
-GLIBC_2.34 aio_error F
-GLIBC_2.34 aio_error64 F
-GLIBC_2.34 aio_fsync F
-GLIBC_2.34 aio_fsync64 F
-GLIBC_2.34 aio_init F
-GLIBC_2.34 aio_read F
-GLIBC_2.34 aio_read64 F
-GLIBC_2.34 aio_return F
-GLIBC_2.34 aio_return64 F
-GLIBC_2.34 aio_suspend F
-GLIBC_2.34 aio_suspend64 F
-GLIBC_2.34 aio_write F
-GLIBC_2.34 aio_write64 F
-GLIBC_2.34 call_once F
-GLIBC_2.34 close_range F
-GLIBC_2.34 closefrom F
-GLIBC_2.34 cnd_broadcast F
-GLIBC_2.34 cnd_destroy F
-GLIBC_2.34 cnd_init F
-GLIBC_2.34 cnd_signal F
-GLIBC_2.34 cnd_timedwait F
-GLIBC_2.34 cnd_wait F
-GLIBC_2.34 dladdr F
-GLIBC_2.34 dladdr1 F
-GLIBC_2.34 dlclose F
-GLIBC_2.34 dlerror F
-GLIBC_2.34 dlinfo F
-GLIBC_2.34 dlmopen F
-GLIBC_2.34 dlopen F
-GLIBC_2.34 dlsym F
-GLIBC_2.34 dlvsym F
-GLIBC_2.34 dn_comp F
-GLIBC_2.34 dn_expand F
-GLIBC_2.34 dn_skipname F
-GLIBC_2.34 execveat F
-GLIBC_2.34 forkpty F
-GLIBC_2.34 gai_cancel F
-GLIBC_2.34 gai_error F
-GLIBC_2.34 gai_suspend F
-GLIBC_2.34 getaddrinfo_a F
-GLIBC_2.34 lio_listio F
-GLIBC_2.34 lio_listio64 F
-GLIBC_2.34 login F
-GLIBC_2.34 login_tty F
-GLIBC_2.34 logout F
-GLIBC_2.34 logwtmp F
-GLIBC_2.34 mq_close F
-GLIBC_2.34 mq_getattr F
-GLIBC_2.34 mq_notify F
-GLIBC_2.34 mq_open F
-GLIBC_2.34 mq_receive F
-GLIBC_2.34 mq_send F
-GLIBC_2.34 mq_setattr F
-GLIBC_2.34 mq_timedreceive F
-GLIBC_2.34 mq_timedsend F
-GLIBC_2.34 mq_unlink F
-GLIBC_2.34 mtx_destroy F
-GLIBC_2.34 mtx_init F
-GLIBC_2.34 mtx_lock F
-GLIBC_2.34 mtx_timedlock F
-GLIBC_2.34 mtx_trylock F
-GLIBC_2.34 mtx_unlock F
-GLIBC_2.34 ns_name_compress F
-GLIBC_2.34 ns_name_ntop F
-GLIBC_2.34 ns_name_pack F
-GLIBC_2.34 ns_name_pton F
-GLIBC_2.34 ns_name_skip F
-GLIBC_2.34 ns_name_uncompress F
-GLIBC_2.34 ns_name_unpack F
-GLIBC_2.34 openpty F
-GLIBC_2.34 posix_spawn_file_actions_addclosefrom_np F
-GLIBC_2.34 pthread_attr_getaffinity_np F
-GLIBC_2.34 pthread_attr_getguardsize F
-GLIBC_2.34 pthread_attr_getstack F
-GLIBC_2.34 pthread_attr_getstackaddr F
-GLIBC_2.34 pthread_attr_getstacksize F
-GLIBC_2.34 pthread_attr_setguardsize F
-GLIBC_2.34 pthread_attr_setstack F
-GLIBC_2.34 pthread_attr_setstackaddr F
-GLIBC_2.34 pthread_attr_setstacksize F
-GLIBC_2.34 pthread_barrier_destroy F
-GLIBC_2.34 pthread_barrier_init F
-GLIBC_2.34 pthread_barrier_wait F
-GLIBC_2.34 pthread_barrierattr_destroy F
-GLIBC_2.34 pthread_barrierattr_getpshared F
-GLIBC_2.34 pthread_barrierattr_init F
-GLIBC_2.34 pthread_barrierattr_setpshared F
-GLIBC_2.34 pthread_cancel F
-GLIBC_2.34 pthread_clockjoin_np F
-GLIBC_2.34 pthread_cond_clockwait F
-GLIBC_2.34 pthread_condattr_getclock F
-GLIBC_2.34 pthread_condattr_getpshared F
-GLIBC_2.34 pthread_condattr_setclock F
-GLIBC_2.34 pthread_condattr_setpshared F
-GLIBC_2.34 pthread_create F
-GLIBC_2.34 pthread_detach F
-GLIBC_2.34 pthread_getattr_default_np F
-GLIBC_2.34 pthread_getconcurrency F
-GLIBC_2.34 pthread_getcpuclockid F
-GLIBC_2.34 pthread_getname_np F
-GLIBC_2.34 pthread_getspecific F
-GLIBC_2.34 pthread_join F
-GLIBC_2.34 pthread_key_create F
-GLIBC_2.34 pthread_key_delete F
-GLIBC_2.34 pthread_kill F
-GLIBC_2.34 pthread_mutex_clocklock F
-GLIBC_2.34 pthread_mutex_consistent F
-GLIBC_2.34 pthread_mutex_getprioceiling F
-GLIBC_2.34 pthread_mutex_setprioceiling F
-GLIBC_2.34 pthread_mutex_timedlock F
-GLIBC_2.34 pthread_mutex_trylock F
-GLIBC_2.34 pthread_mutexattr_destroy F
-GLIBC_2.34 pthread_mutexattr_getprioceiling F
-GLIBC_2.34 pthread_mutexattr_getprotocol F
-GLIBC_2.34 pthread_mutexattr_getpshared F
-GLIBC_2.34 pthread_mutexattr_getrobust F
-GLIBC_2.34 pthread_mutexattr_gettype F
-GLIBC_2.34 pthread_mutexattr_init F
-GLIBC_2.34 pthread_mutexattr_setprioceiling F
-GLIBC_2.34 pthread_mutexattr_setprotocol F
-GLIBC_2.34 pthread_mutexattr_setpshared F
-GLIBC_2.34 pthread_mutexattr_setrobust F
-GLIBC_2.34 pthread_mutexattr_settype F
-GLIBC_2.34 pthread_once F
-GLIBC_2.34 pthread_rwlock_clockrdlock F
-GLIBC_2.34 pthread_rwlock_clockwrlock F
-GLIBC_2.34 pthread_rwlock_destroy F
-GLIBC_2.34 pthread_rwlock_init F
-GLIBC_2.34 pthread_rwlock_rdlock F
-GLIBC_2.34 pthread_rwlock_timedrdlock F
-GLIBC_2.34 pthread_rwlock_timedwrlock F
-GLIBC_2.34 pthread_rwlock_tryrdlock F
-GLIBC_2.34 pthread_rwlock_trywrlock F
-GLIBC_2.34 pthread_rwlock_unlock F
-GLIBC_2.34 pthread_rwlock_wrlock F
-GLIBC_2.34 pthread_rwlockattr_destroy F
-GLIBC_2.34 pthread_rwlockattr_getkind_np F
-GLIBC_2.34 pthread_rwlockattr_getpshared F
-GLIBC_2.34 pthread_rwlockattr_init F
-GLIBC_2.34 pthread_rwlockattr_setkind_np F
-GLIBC_2.34 pthread_rwlockattr_setpshared F
-GLIBC_2.34 pthread_setaffinity_np F
-GLIBC_2.34 pthread_setattr_default_np F
-GLIBC_2.34 pthread_setconcurrency F
-GLIBC_2.34 pthread_setname_np F
-GLIBC_2.34 pthread_setschedprio F
-GLIBC_2.34 pthread_setspecific F
-GLIBC_2.34 pthread_sigqueue F
-GLIBC_2.34 pthread_spin_destroy F
-GLIBC_2.34 pthread_spin_init F
-GLIBC_2.34 pthread_spin_lock F
-GLIBC_2.34 pthread_spin_trylock F
-GLIBC_2.34 pthread_spin_unlock F
-GLIBC_2.34 pthread_testcancel F
-GLIBC_2.34 pthread_timedjoin_np F
-GLIBC_2.34 pthread_tryjoin_np F
-GLIBC_2.34 res_dnok F
-GLIBC_2.34 res_hnok F
-GLIBC_2.34 res_mailok F
-GLIBC_2.34 res_mkquery F
-GLIBC_2.34 res_nmkquery F
-GLIBC_2.34 res_nquery F
-GLIBC_2.34 res_nquerydomain F
-GLIBC_2.34 res_nsearch F
-GLIBC_2.34 res_nsend F
-GLIBC_2.34 res_ownok F
-GLIBC_2.34 res_query F
-GLIBC_2.34 res_querydomain F
-GLIBC_2.34 res_search F
-GLIBC_2.34 res_send F
-GLIBC_2.34 sem_clockwait F
-GLIBC_2.34 sem_close F
-GLIBC_2.34 sem_destroy F
-GLIBC_2.34 sem_getvalue F
-GLIBC_2.34 sem_init F
-GLIBC_2.34 sem_open F
-GLIBC_2.34 sem_post F
-GLIBC_2.34 sem_timedwait F
-GLIBC_2.34 sem_trywait F
-GLIBC_2.34 sem_unlink F
-GLIBC_2.34 sem_wait F
-GLIBC_2.34 shm_open F
-GLIBC_2.34 shm_unlink F
-GLIBC_2.34 thrd_create F
-GLIBC_2.34 thrd_detach F
-GLIBC_2.34 thrd_exit F
-GLIBC_2.34 thrd_join F
-GLIBC_2.34 timer_create F
-GLIBC_2.34 timer_delete F
-GLIBC_2.34 timer_getoverrun F
-GLIBC_2.34 timer_gettime F
-GLIBC_2.34 timer_settime F
-GLIBC_2.34 timespec_getres F
-GLIBC_2.34 tss_create F
-GLIBC_2.34 tss_delete F
-GLIBC_2.34 tss_get F
-GLIBC_2.34 tss_set F
-GLIBC_2.35 __epoll_pwait2_time64 F
-GLIBC_2.35 __memcmpeq F
-GLIBC_2.35 _dl_find_object F
-GLIBC_2.35 epoll_pwait2 F
-GLIBC_2.35 posix_spawn_file_actions_addtcsetpgrp_np F
-GLIBC_2.36 arc4random F
-GLIBC_2.36 arc4random_buf F
-GLIBC_2.36 arc4random_uniform F
-GLIBC_2.36 c8rtomb F
-GLIBC_2.36 fsconfig F
-GLIBC_2.36 fsmount F
-GLIBC_2.36 fsopen F
-GLIBC_2.36 fspick F
-GLIBC_2.36 mbrtoc8 F
-GLIBC_2.36 mount_setattr F
-GLIBC_2.36 move_mount F
-GLIBC_2.36 open_tree F
-GLIBC_2.36 pidfd_getfd F
-GLIBC_2.36 pidfd_open F
-GLIBC_2.36 pidfd_send_signal F
-GLIBC_2.36 process_madvise F
-GLIBC_2.36 process_mrelease F
-GLIBC_2.37 __ppoll64_chk F
-GLIBC_2.38 __isoc23_fscanf F
-GLIBC_2.38 __isoc23_fwscanf F
-GLIBC_2.38 __isoc23_scanf F
-GLIBC_2.38 __isoc23_sscanf F
-GLIBC_2.38 __isoc23_strtoimax F
-GLIBC_2.38 __isoc23_strtol F
-GLIBC_2.38 __isoc23_strtol_l F
-GLIBC_2.38 __isoc23_strtoll F
-GLIBC_2.38 __isoc23_strtoll_l F
-GLIBC_2.38 __isoc23_strtoul F
-GLIBC_2.38 __isoc23_strtoul_l F
-GLIBC_2.38 __isoc23_strtoull F
-GLIBC_2.38 __isoc23_strtoull_l F
-GLIBC_2.38 __isoc23_strtoumax F
-GLIBC_2.38 __isoc23_swscanf F
-GLIBC_2.38 __isoc23_vfscanf F
-GLIBC_2.38 __isoc23_vfwscanf F
-GLIBC_2.38 __isoc23_vscanf F
-GLIBC_2.38 __isoc23_vsscanf F
-GLIBC_2.38 __isoc23_vswscanf F
-GLIBC_2.38 __isoc23_vwscanf F
-GLIBC_2.38 __isoc23_wcstoimax F
-GLIBC_2.38 __isoc23_wcstol F
-GLIBC_2.38 __isoc23_wcstol_l F
-GLIBC_2.38 __isoc23_wcstoll F
-GLIBC_2.38 __isoc23_wcstoll_l F
-GLIBC_2.38 __isoc23_wcstoul F
-GLIBC_2.38 __isoc23_wcstoul_l F
-GLIBC_2.38 __isoc23_wcstoull F
-GLIBC_2.38 __isoc23_wcstoull_l F
-GLIBC_2.38 __isoc23_wcstoumax F
-GLIBC_2.38 __isoc23_wscanf F
-GLIBC_2.38 __strlcat_chk F
-GLIBC_2.38 __strlcpy_chk F
-GLIBC_2.38 __wcslcat_chk F
-GLIBC_2.38 __wcslcpy_chk F
-GLIBC_2.38 strlcat F
-GLIBC_2.38 strlcpy F
-GLIBC_2.38 wcslcat F
-GLIBC_2.38 wcslcpy F
-GLIBC_2.39 pidfd_getpid F
-GLIBC_2.39 pidfd_spawn F
-GLIBC_2.39 pidfd_spawnp F
-GLIBC_2.39 posix_spawnattr_getcgroup_np F
-GLIBC_2.39 posix_spawnattr_setcgroup_np F
-GLIBC_2.39 stdc_bit_ceil_uc F
-GLIBC_2.39 stdc_bit_ceil_ui F
-GLIBC_2.39 stdc_bit_ceil_ul F
-GLIBC_2.39 stdc_bit_ceil_ull F
-GLIBC_2.39 stdc_bit_ceil_us F
-GLIBC_2.39 stdc_bit_floor_uc F
-GLIBC_2.39 stdc_bit_floor_ui F
-GLIBC_2.39 stdc_bit_floor_ul F
-GLIBC_2.39 stdc_bit_floor_ull F
-GLIBC_2.39 stdc_bit_floor_us F
-GLIBC_2.39 stdc_bit_width_uc F
-GLIBC_2.39 stdc_bit_width_ui F
-GLIBC_2.39 stdc_bit_width_ul F
-GLIBC_2.39 stdc_bit_width_ull F
-GLIBC_2.39 stdc_bit_width_us F
-GLIBC_2.39 stdc_count_ones_uc F
-GLIBC_2.39 stdc_count_ones_ui F
-GLIBC_2.39 stdc_count_ones_ul F
-GLIBC_2.39 stdc_count_ones_ull F
-GLIBC_2.39 stdc_count_ones_us F
-GLIBC_2.39 stdc_count_zeros_uc F
-GLIBC_2.39 stdc_count_zeros_ui F
-GLIBC_2.39 stdc_count_zeros_ul F
-GLIBC_2.39 stdc_count_zeros_ull F
-GLIBC_2.39 stdc_count_zeros_us F
-GLIBC_2.39 stdc_first_leading_one_uc F
-GLIBC_2.39 stdc_first_leading_one_ui F
-GLIBC_2.39 stdc_first_leading_one_ul F
-GLIBC_2.39 stdc_first_leading_one_ull F
-GLIBC_2.39 stdc_first_leading_one_us F
-GLIBC_2.39 stdc_first_leading_zero_uc F
-GLIBC_2.39 stdc_first_leading_zero_ui F
-GLIBC_2.39 stdc_first_leading_zero_ul F
-GLIBC_2.39 stdc_first_leading_zero_ull F
-GLIBC_2.39 stdc_first_leading_zero_us F
-GLIBC_2.39 stdc_first_trailing_one_uc F
-GLIBC_2.39 stdc_first_trailing_one_ui F
-GLIBC_2.39 stdc_first_trailing_one_ul F
-GLIBC_2.39 stdc_first_trailing_one_ull F
-GLIBC_2.39 stdc_first_trailing_one_us F
-GLIBC_2.39 stdc_first_trailing_zero_uc F
-GLIBC_2.39 stdc_first_trailing_zero_ui F
-GLIBC_2.39 stdc_first_trailing_zero_ul F
-GLIBC_2.39 stdc_first_trailing_zero_ull F
-GLIBC_2.39 stdc_first_trailing_zero_us F
-GLIBC_2.39 stdc_has_single_bit_uc F
-GLIBC_2.39 stdc_has_single_bit_ui F
-GLIBC_2.39 stdc_has_single_bit_ul F
-GLIBC_2.39 stdc_has_single_bit_ull F
-GLIBC_2.39 stdc_has_single_bit_us F
-GLIBC_2.39 stdc_leading_ones_uc F
-GLIBC_2.39 stdc_leading_ones_ui F
-GLIBC_2.39 stdc_leading_ones_ul F
-GLIBC_2.39 stdc_leading_ones_ull F
-GLIBC_2.39 stdc_leading_ones_us F
-GLIBC_2.39 stdc_leading_zeros_uc F
-GLIBC_2.39 stdc_leading_zeros_ui F
-GLIBC_2.39 stdc_leading_zeros_ul F
-GLIBC_2.39 stdc_leading_zeros_ull F
-GLIBC_2.39 stdc_leading_zeros_us F
-GLIBC_2.39 stdc_trailing_ones_uc F
-GLIBC_2.39 stdc_trailing_ones_ui F
-GLIBC_2.39 stdc_trailing_ones_ul F
-GLIBC_2.39 stdc_trailing_ones_ull F
-GLIBC_2.39 stdc_trailing_ones_us F
-GLIBC_2.39 stdc_trailing_zeros_uc F
-GLIBC_2.39 stdc_trailing_zeros_ui F
-GLIBC_2.39 stdc_trailing_zeros_ul F
-GLIBC_2.39 stdc_trailing_zeros_ull F
-GLIBC_2.39 stdc_trailing_zeros_us F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist
deleted file mode 100644
index de9a79a..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libc_malloc_debug.abilist
+++ /dev/null
@@ -1,28 +0,0 @@
-GLIBC_2.21 __free_hook D 0x4
-GLIBC_2.21 __malloc_hook D 0x4
-GLIBC_2.21 __memalign_hook D 0x4
-GLIBC_2.21 __realloc_hook D 0x4
-GLIBC_2.21 aligned_alloc F
-GLIBC_2.21 calloc F
-GLIBC_2.21 free F
-GLIBC_2.21 mallinfo F
-GLIBC_2.21 malloc F
-GLIBC_2.21 malloc_get_state F
-GLIBC_2.21 malloc_info F
-GLIBC_2.21 malloc_set_state F
-GLIBC_2.21 malloc_stats F
-GLIBC_2.21 malloc_trim F
-GLIBC_2.21 malloc_usable_size F
-GLIBC_2.21 mallopt F
-GLIBC_2.21 mcheck F
-GLIBC_2.21 mcheck_check_all F
-GLIBC_2.21 mcheck_pedantic F
-GLIBC_2.21 memalign F
-GLIBC_2.21 mprobe F
-GLIBC_2.21 mtrace F
-GLIBC_2.21 muntrace F
-GLIBC_2.21 posix_memalign F
-GLIBC_2.21 pvalloc F
-GLIBC_2.21 realloc F
-GLIBC_2.21 valloc F
-GLIBC_2.33 mallinfo2 F
diff --git a/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/sysdeps/unix/sysv/linux/nios2/libdl.abilist
deleted file mode 100644
index 70efb87..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libdl.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __libdl_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist
deleted file mode 100644
index c0df77f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libm.abilist
+++ /dev/null
@@ -1,880 +0,0 @@
-GLIBC_2.21 _LIB_VERSION D 0x4
-GLIBC_2.21 __acos_finite F
-GLIBC_2.21 __acosf_finite F
-GLIBC_2.21 __acosh_finite F
-GLIBC_2.21 __acoshf_finite F
-GLIBC_2.21 __asin_finite F
-GLIBC_2.21 __asinf_finite F
-GLIBC_2.21 __atan2_finite F
-GLIBC_2.21 __atan2f_finite F
-GLIBC_2.21 __atanh_finite F
-GLIBC_2.21 __atanhf_finite F
-GLIBC_2.21 __clog10 F
-GLIBC_2.21 __clog10f F
-GLIBC_2.21 __clog10l F
-GLIBC_2.21 __cosh_finite F
-GLIBC_2.21 __coshf_finite F
-GLIBC_2.21 __exp10_finite F
-GLIBC_2.21 __exp10f_finite F
-GLIBC_2.21 __exp2_finite F
-GLIBC_2.21 __exp2f_finite F
-GLIBC_2.21 __exp_finite F
-GLIBC_2.21 __expf_finite F
-GLIBC_2.21 __finite F
-GLIBC_2.21 __finitef F
-GLIBC_2.21 __finitel F
-GLIBC_2.21 __fmod_finite F
-GLIBC_2.21 __fmodf_finite F
-GLIBC_2.21 __fpclassify F
-GLIBC_2.21 __fpclassifyf F
-GLIBC_2.21 __gamma_r_finite F
-GLIBC_2.21 __gammaf_r_finite F
-GLIBC_2.21 __hypot_finite F
-GLIBC_2.21 __hypotf_finite F
-GLIBC_2.21 __issignaling F
-GLIBC_2.21 __issignalingf F
-GLIBC_2.21 __j0_finite F
-GLIBC_2.21 __j0f_finite F
-GLIBC_2.21 __j1_finite F
-GLIBC_2.21 __j1f_finite F
-GLIBC_2.21 __jn_finite F
-GLIBC_2.21 __jnf_finite F
-GLIBC_2.21 __lgamma_r_finite F
-GLIBC_2.21 __lgammaf_r_finite F
-GLIBC_2.21 __log10_finite F
-GLIBC_2.21 __log10f_finite F
-GLIBC_2.21 __log2_finite F
-GLIBC_2.21 __log2f_finite F
-GLIBC_2.21 __log_finite F
-GLIBC_2.21 __logf_finite F
-GLIBC_2.21 __pow_finite F
-GLIBC_2.21 __powf_finite F
-GLIBC_2.21 __remainder_finite F
-GLIBC_2.21 __remainderf_finite F
-GLIBC_2.21 __scalb_finite F
-GLIBC_2.21 __scalbf_finite F
-GLIBC_2.21 __signbit F
-GLIBC_2.21 __signbitf F
-GLIBC_2.21 __sinh_finite F
-GLIBC_2.21 __sinhf_finite F
-GLIBC_2.21 __sqrt_finite F
-GLIBC_2.21 __sqrtf_finite F
-GLIBC_2.21 __y0_finite F
-GLIBC_2.21 __y0f_finite F
-GLIBC_2.21 __y1_finite F
-GLIBC_2.21 __y1f_finite F
-GLIBC_2.21 __yn_finite F
-GLIBC_2.21 __ynf_finite F
-GLIBC_2.21 acos F
-GLIBC_2.21 acosf F
-GLIBC_2.21 acosh F
-GLIBC_2.21 acoshf F
-GLIBC_2.21 acoshl F
-GLIBC_2.21 acosl F
-GLIBC_2.21 asin F
-GLIBC_2.21 asinf F
-GLIBC_2.21 asinh F
-GLIBC_2.21 asinhf F
-GLIBC_2.21 asinhl F
-GLIBC_2.21 asinl F
-GLIBC_2.21 atan F
-GLIBC_2.21 atan2 F
-GLIBC_2.21 atan2f F
-GLIBC_2.21 atan2l F
-GLIBC_2.21 atanf F
-GLIBC_2.21 atanh F
-GLIBC_2.21 atanhf F
-GLIBC_2.21 atanhl F
-GLIBC_2.21 atanl F
-GLIBC_2.21 cabs F
-GLIBC_2.21 cabsf F
-GLIBC_2.21 cabsl F
-GLIBC_2.21 cacos F
-GLIBC_2.21 cacosf F
-GLIBC_2.21 cacosh F
-GLIBC_2.21 cacoshf F
-GLIBC_2.21 cacoshl F
-GLIBC_2.21 cacosl F
-GLIBC_2.21 carg F
-GLIBC_2.21 cargf F
-GLIBC_2.21 cargl F
-GLIBC_2.21 casin F
-GLIBC_2.21 casinf F
-GLIBC_2.21 casinh F
-GLIBC_2.21 casinhf F
-GLIBC_2.21 casinhl F
-GLIBC_2.21 casinl F
-GLIBC_2.21 catan F
-GLIBC_2.21 catanf F
-GLIBC_2.21 catanh F
-GLIBC_2.21 catanhf F
-GLIBC_2.21 catanhl F
-GLIBC_2.21 catanl F
-GLIBC_2.21 cbrt F
-GLIBC_2.21 cbrtf F
-GLIBC_2.21 cbrtl F
-GLIBC_2.21 ccos F
-GLIBC_2.21 ccosf F
-GLIBC_2.21 ccosh F
-GLIBC_2.21 ccoshf F
-GLIBC_2.21 ccoshl F
-GLIBC_2.21 ccosl F
-GLIBC_2.21 ceil F
-GLIBC_2.21 ceilf F
-GLIBC_2.21 ceill F
-GLIBC_2.21 cexp F
-GLIBC_2.21 cexpf F
-GLIBC_2.21 cexpl F
-GLIBC_2.21 cimag F
-GLIBC_2.21 cimagf F
-GLIBC_2.21 cimagl F
-GLIBC_2.21 clog F
-GLIBC_2.21 clog10 F
-GLIBC_2.21 clog10f F
-GLIBC_2.21 clog10l F
-GLIBC_2.21 clogf F
-GLIBC_2.21 clogl F
-GLIBC_2.21 conj F
-GLIBC_2.21 conjf F
-GLIBC_2.21 conjl F
-GLIBC_2.21 copysign F
-GLIBC_2.21 copysignf F
-GLIBC_2.21 copysignl F
-GLIBC_2.21 cos F
-GLIBC_2.21 cosf F
-GLIBC_2.21 cosh F
-GLIBC_2.21 coshf F
-GLIBC_2.21 coshl F
-GLIBC_2.21 cosl F
-GLIBC_2.21 cpow F
-GLIBC_2.21 cpowf F
-GLIBC_2.21 cpowl F
-GLIBC_2.21 cproj F
-GLIBC_2.21 cprojf F
-GLIBC_2.21 cprojl F
-GLIBC_2.21 creal F
-GLIBC_2.21 crealf F
-GLIBC_2.21 creall F
-GLIBC_2.21 csin F
-GLIBC_2.21 csinf F
-GLIBC_2.21 csinh F
-GLIBC_2.21 csinhf F
-GLIBC_2.21 csinhl F
-GLIBC_2.21 csinl F
-GLIBC_2.21 csqrt F
-GLIBC_2.21 csqrtf F
-GLIBC_2.21 csqrtl F
-GLIBC_2.21 ctan F
-GLIBC_2.21 ctanf F
-GLIBC_2.21 ctanh F
-GLIBC_2.21 ctanhf F
-GLIBC_2.21 ctanhl F
-GLIBC_2.21 ctanl F
-GLIBC_2.21 drem F
-GLIBC_2.21 dremf F
-GLIBC_2.21 dreml F
-GLIBC_2.21 erf F
-GLIBC_2.21 erfc F
-GLIBC_2.21 erfcf F
-GLIBC_2.21 erfcl F
-GLIBC_2.21 erff F
-GLIBC_2.21 erfl F
-GLIBC_2.21 exp F
-GLIBC_2.21 exp10 F
-GLIBC_2.21 exp10f F
-GLIBC_2.21 exp10l F
-GLIBC_2.21 exp2 F
-GLIBC_2.21 exp2f F
-GLIBC_2.21 exp2l F
-GLIBC_2.21 expf F
-GLIBC_2.21 expl F
-GLIBC_2.21 expm1 F
-GLIBC_2.21 expm1f F
-GLIBC_2.21 expm1l F
-GLIBC_2.21 fabs F
-GLIBC_2.21 fabsf F
-GLIBC_2.21 fabsl F
-GLIBC_2.21 fdim F
-GLIBC_2.21 fdimf F
-GLIBC_2.21 fdiml F
-GLIBC_2.21 feclearexcept F
-GLIBC_2.21 fedisableexcept F
-GLIBC_2.21 feenableexcept F
-GLIBC_2.21 fegetenv F
-GLIBC_2.21 fegetexcept F
-GLIBC_2.21 fegetexceptflag F
-GLIBC_2.21 fegetround F
-GLIBC_2.21 feholdexcept F
-GLIBC_2.21 feraiseexcept F
-GLIBC_2.21 fesetenv F
-GLIBC_2.21 fesetexceptflag F
-GLIBC_2.21 fesetround F
-GLIBC_2.21 fetestexcept F
-GLIBC_2.21 feupdateenv F
-GLIBC_2.21 finite F
-GLIBC_2.21 finitef F
-GLIBC_2.21 finitel F
-GLIBC_2.21 floor F
-GLIBC_2.21 floorf F
-GLIBC_2.21 floorl F
-GLIBC_2.21 fma F
-GLIBC_2.21 fmaf F
-GLIBC_2.21 fmal F
-GLIBC_2.21 fmax F
-GLIBC_2.21 fmaxf F
-GLIBC_2.21 fmaxl F
-GLIBC_2.21 fmin F
-GLIBC_2.21 fminf F
-GLIBC_2.21 fminl F
-GLIBC_2.21 fmod F
-GLIBC_2.21 fmodf F
-GLIBC_2.21 fmodl F
-GLIBC_2.21 frexp F
-GLIBC_2.21 frexpf F
-GLIBC_2.21 frexpl F
-GLIBC_2.21 gamma F
-GLIBC_2.21 gammaf F
-GLIBC_2.21 gammal F
-GLIBC_2.21 hypot F
-GLIBC_2.21 hypotf F
-GLIBC_2.21 hypotl F
-GLIBC_2.21 ilogb F
-GLIBC_2.21 ilogbf F
-GLIBC_2.21 ilogbl F
-GLIBC_2.21 j0 F
-GLIBC_2.21 j0f F
-GLIBC_2.21 j0l F
-GLIBC_2.21 j1 F
-GLIBC_2.21 j1f F
-GLIBC_2.21 j1l F
-GLIBC_2.21 jn F
-GLIBC_2.21 jnf F
-GLIBC_2.21 jnl F
-GLIBC_2.21 ldexp F
-GLIBC_2.21 ldexpf F
-GLIBC_2.21 ldexpl F
-GLIBC_2.21 lgamma F
-GLIBC_2.21 lgamma_r F
-GLIBC_2.21 lgammaf F
-GLIBC_2.21 lgammaf_r F
-GLIBC_2.21 lgammal F
-GLIBC_2.21 lgammal_r F
-GLIBC_2.21 llrint F
-GLIBC_2.21 llrintf F
-GLIBC_2.21 llrintl F
-GLIBC_2.21 llround F
-GLIBC_2.21 llroundf F
-GLIBC_2.21 llroundl F
-GLIBC_2.21 log F
-GLIBC_2.21 log10 F
-GLIBC_2.21 log10f F
-GLIBC_2.21 log10l F
-GLIBC_2.21 log1p F
-GLIBC_2.21 log1pf F
-GLIBC_2.21 log1pl F
-GLIBC_2.21 log2 F
-GLIBC_2.21 log2f F
-GLIBC_2.21 log2l F
-GLIBC_2.21 logb F
-GLIBC_2.21 logbf F
-GLIBC_2.21 logbl F
-GLIBC_2.21 logf F
-GLIBC_2.21 logl F
-GLIBC_2.21 lrint F
-GLIBC_2.21 lrintf F
-GLIBC_2.21 lrintl F
-GLIBC_2.21 lround F
-GLIBC_2.21 lroundf F
-GLIBC_2.21 lroundl F
-GLIBC_2.21 matherr F
-GLIBC_2.21 modf F
-GLIBC_2.21 modff F
-GLIBC_2.21 modfl F
-GLIBC_2.21 nan F
-GLIBC_2.21 nanf F
-GLIBC_2.21 nanl F
-GLIBC_2.21 nearbyint F
-GLIBC_2.21 nearbyintf F
-GLIBC_2.21 nearbyintl F
-GLIBC_2.21 nextafter F
-GLIBC_2.21 nextafterf F
-GLIBC_2.21 nextafterl F
-GLIBC_2.21 nexttoward F
-GLIBC_2.21 nexttowardf F
-GLIBC_2.21 nexttowardl F
-GLIBC_2.21 pow F
-GLIBC_2.21 pow10 F
-GLIBC_2.21 pow10f F
-GLIBC_2.21 pow10l F
-GLIBC_2.21 powf F
-GLIBC_2.21 powl F
-GLIBC_2.21 remainder F
-GLIBC_2.21 remainderf F
-GLIBC_2.21 remainderl F
-GLIBC_2.21 remquo F
-GLIBC_2.21 remquof F
-GLIBC_2.21 remquol F
-GLIBC_2.21 rint F
-GLIBC_2.21 rintf F
-GLIBC_2.21 rintl F
-GLIBC_2.21 round F
-GLIBC_2.21 roundf F
-GLIBC_2.21 roundl F
-GLIBC_2.21 scalb F
-GLIBC_2.21 scalbf F
-GLIBC_2.21 scalbl F
-GLIBC_2.21 scalbln F
-GLIBC_2.21 scalblnf F
-GLIBC_2.21 scalblnl F
-GLIBC_2.21 scalbn F
-GLIBC_2.21 scalbnf F
-GLIBC_2.21 scalbnl F
-GLIBC_2.21 signgam D 0x4
-GLIBC_2.21 significand F
-GLIBC_2.21 significandf F
-GLIBC_2.21 significandl F
-GLIBC_2.21 sin F
-GLIBC_2.21 sincos F
-GLIBC_2.21 sincosf F
-GLIBC_2.21 sincosl F
-GLIBC_2.21 sinf F
-GLIBC_2.21 sinh F
-GLIBC_2.21 sinhf F
-GLIBC_2.21 sinhl F
-GLIBC_2.21 sinl F
-GLIBC_2.21 sqrt F
-GLIBC_2.21 sqrtf F
-GLIBC_2.21 sqrtl F
-GLIBC_2.21 tan F
-GLIBC_2.21 tanf F
-GLIBC_2.21 tanh F
-GLIBC_2.21 tanhf F
-GLIBC_2.21 tanhl F
-GLIBC_2.21 tanl F
-GLIBC_2.21 tgamma F
-GLIBC_2.21 tgammaf F
-GLIBC_2.21 tgammal F
-GLIBC_2.21 trunc F
-GLIBC_2.21 truncf F
-GLIBC_2.21 truncl F
-GLIBC_2.21 y0 F
-GLIBC_2.21 y0f F
-GLIBC_2.21 y0l F
-GLIBC_2.21 y1 F
-GLIBC_2.21 y1f F
-GLIBC_2.21 y1l F
-GLIBC_2.21 yn F
-GLIBC_2.21 ynf F
-GLIBC_2.21 ynl F
-GLIBC_2.23 __signgam D 0x4
-GLIBC_2.23 lgamma F
-GLIBC_2.23 lgammaf F
-GLIBC_2.23 lgammal F
-GLIBC_2.24 nextdown F
-GLIBC_2.24 nextdownf F
-GLIBC_2.24 nextdownl F
-GLIBC_2.24 nextup F
-GLIBC_2.24 nextupf F
-GLIBC_2.24 nextupl F
-GLIBC_2.25 __iseqsig F
-GLIBC_2.25 __iseqsigf F
-GLIBC_2.25 canonicalize F
-GLIBC_2.25 canonicalizef F
-GLIBC_2.25 canonicalizel F
-GLIBC_2.25 fegetmode F
-GLIBC_2.25 fesetexcept F
-GLIBC_2.25 fesetmode F
-GLIBC_2.25 fetestexceptflag F
-GLIBC_2.25 fmaxmag F
-GLIBC_2.25 fmaxmagf F
-GLIBC_2.25 fmaxmagl F
-GLIBC_2.25 fminmag F
-GLIBC_2.25 fminmagf F
-GLIBC_2.25 fminmagl F
-GLIBC_2.25 fromfp F
-GLIBC_2.25 fromfpf F
-GLIBC_2.25 fromfpl F
-GLIBC_2.25 fromfpx F
-GLIBC_2.25 fromfpxf F
-GLIBC_2.25 fromfpxl F
-GLIBC_2.25 getpayload F
-GLIBC_2.25 getpayloadf F
-GLIBC_2.25 getpayloadl F
-GLIBC_2.25 llogb F
-GLIBC_2.25 llogbf F
-GLIBC_2.25 llogbl F
-GLIBC_2.25 roundeven F
-GLIBC_2.25 roundevenf F
-GLIBC_2.25 roundevenl F
-GLIBC_2.25 setpayload F
-GLIBC_2.25 setpayloadf F
-GLIBC_2.25 setpayloadl F
-GLIBC_2.25 setpayloadsig F
-GLIBC_2.25 setpayloadsigf F
-GLIBC_2.25 setpayloadsigl F
-GLIBC_2.25 totalorder F
-GLIBC_2.25 totalorderf F
-GLIBC_2.25 totalorderl F
-GLIBC_2.25 totalordermag F
-GLIBC_2.25 totalordermagf F
-GLIBC_2.25 totalordermagl F
-GLIBC_2.25 ufromfp F
-GLIBC_2.25 ufromfpf F
-GLIBC_2.25 ufromfpl F
-GLIBC_2.25 ufromfpx F
-GLIBC_2.25 ufromfpxf F
-GLIBC_2.25 ufromfpxl F
-GLIBC_2.27 acosf32 F
-GLIBC_2.27 acosf32x F
-GLIBC_2.27 acosf64 F
-GLIBC_2.27 acoshf32 F
-GLIBC_2.27 acoshf32x F
-GLIBC_2.27 acoshf64 F
-GLIBC_2.27 asinf32 F
-GLIBC_2.27 asinf32x F
-GLIBC_2.27 asinf64 F
-GLIBC_2.27 asinhf32 F
-GLIBC_2.27 asinhf32x F
-GLIBC_2.27 asinhf64 F
-GLIBC_2.27 atan2f32 F
-GLIBC_2.27 atan2f32x F
-GLIBC_2.27 atan2f64 F
-GLIBC_2.27 atanf32 F
-GLIBC_2.27 atanf32x F
-GLIBC_2.27 atanf64 F
-GLIBC_2.27 atanhf32 F
-GLIBC_2.27 atanhf32x F
-GLIBC_2.27 atanhf64 F
-GLIBC_2.27 cabsf32 F
-GLIBC_2.27 cabsf32x F
-GLIBC_2.27 cabsf64 F
-GLIBC_2.27 cacosf32 F
-GLIBC_2.27 cacosf32x F
-GLIBC_2.27 cacosf64 F
-GLIBC_2.27 cacoshf32 F
-GLIBC_2.27 cacoshf32x F
-GLIBC_2.27 cacoshf64 F
-GLIBC_2.27 canonicalizef32 F
-GLIBC_2.27 canonicalizef32x F
-GLIBC_2.27 canonicalizef64 F
-GLIBC_2.27 cargf32 F
-GLIBC_2.27 cargf32x F
-GLIBC_2.27 cargf64 F
-GLIBC_2.27 casinf32 F
-GLIBC_2.27 casinf32x F
-GLIBC_2.27 casinf64 F
-GLIBC_2.27 casinhf32 F
-GLIBC_2.27 casinhf32x F
-GLIBC_2.27 casinhf64 F
-GLIBC_2.27 catanf32 F
-GLIBC_2.27 catanf32x F
-GLIBC_2.27 catanf64 F
-GLIBC_2.27 catanhf32 F
-GLIBC_2.27 catanhf32x F
-GLIBC_2.27 catanhf64 F
-GLIBC_2.27 cbrtf32 F
-GLIBC_2.27 cbrtf32x F
-GLIBC_2.27 cbrtf64 F
-GLIBC_2.27 ccosf32 F
-GLIBC_2.27 ccosf32x F
-GLIBC_2.27 ccosf64 F
-GLIBC_2.27 ccoshf32 F
-GLIBC_2.27 ccoshf32x F
-GLIBC_2.27 ccoshf64 F
-GLIBC_2.27 ceilf32 F
-GLIBC_2.27 ceilf32x F
-GLIBC_2.27 ceilf64 F
-GLIBC_2.27 cexpf32 F
-GLIBC_2.27 cexpf32x F
-GLIBC_2.27 cexpf64 F
-GLIBC_2.27 cimagf32 F
-GLIBC_2.27 cimagf32x F
-GLIBC_2.27 cimagf64 F
-GLIBC_2.27 clog10f32 F
-GLIBC_2.27 clog10f32x F
-GLIBC_2.27 clog10f64 F
-GLIBC_2.27 clogf32 F
-GLIBC_2.27 clogf32x F
-GLIBC_2.27 clogf64 F
-GLIBC_2.27 conjf32 F
-GLIBC_2.27 conjf32x F
-GLIBC_2.27 conjf64 F
-GLIBC_2.27 copysignf32 F
-GLIBC_2.27 copysignf32x F
-GLIBC_2.27 copysignf64 F
-GLIBC_2.27 cosf32 F
-GLIBC_2.27 cosf32x F
-GLIBC_2.27 cosf64 F
-GLIBC_2.27 coshf32 F
-GLIBC_2.27 coshf32x F
-GLIBC_2.27 coshf64 F
-GLIBC_2.27 cpowf32 F
-GLIBC_2.27 cpowf32x F
-GLIBC_2.27 cpowf64 F
-GLIBC_2.27 cprojf32 F
-GLIBC_2.27 cprojf32x F
-GLIBC_2.27 cprojf64 F
-GLIBC_2.27 crealf32 F
-GLIBC_2.27 crealf32x F
-GLIBC_2.27 crealf64 F
-GLIBC_2.27 csinf32 F
-GLIBC_2.27 csinf32x F
-GLIBC_2.27 csinf64 F
-GLIBC_2.27 csinhf32 F
-GLIBC_2.27 csinhf32x F
-GLIBC_2.27 csinhf64 F
-GLIBC_2.27 csqrtf32 F
-GLIBC_2.27 csqrtf32x F
-GLIBC_2.27 csqrtf64 F
-GLIBC_2.27 ctanf32 F
-GLIBC_2.27 ctanf32x F
-GLIBC_2.27 ctanf64 F
-GLIBC_2.27 ctanhf32 F
-GLIBC_2.27 ctanhf32x F
-GLIBC_2.27 ctanhf64 F
-GLIBC_2.27 erfcf32 F
-GLIBC_2.27 erfcf32x F
-GLIBC_2.27 erfcf64 F
-GLIBC_2.27 erff32 F
-GLIBC_2.27 erff32x F
-GLIBC_2.27 erff64 F
-GLIBC_2.27 exp10f32 F
-GLIBC_2.27 exp10f32x F
-GLIBC_2.27 exp10f64 F
-GLIBC_2.27 exp2f F
-GLIBC_2.27 exp2f32 F
-GLIBC_2.27 exp2f32x F
-GLIBC_2.27 exp2f64 F
-GLIBC_2.27 expf F
-GLIBC_2.27 expf32 F
-GLIBC_2.27 expf32x F
-GLIBC_2.27 expf64 F
-GLIBC_2.27 expm1f32 F
-GLIBC_2.27 expm1f32x F
-GLIBC_2.27 expm1f64 F
-GLIBC_2.27 fabsf32 F
-GLIBC_2.27 fabsf32x F
-GLIBC_2.27 fabsf64 F
-GLIBC_2.27 fdimf32 F
-GLIBC_2.27 fdimf32x F
-GLIBC_2.27 fdimf64 F
-GLIBC_2.27 floorf32 F
-GLIBC_2.27 floorf32x F
-GLIBC_2.27 floorf64 F
-GLIBC_2.27 fmaf32 F
-GLIBC_2.27 fmaf32x F
-GLIBC_2.27 fmaf64 F
-GLIBC_2.27 fmaxf32 F
-GLIBC_2.27 fmaxf32x F
-GLIBC_2.27 fmaxf64 F
-GLIBC_2.27 fmaxmagf32 F
-GLIBC_2.27 fmaxmagf32x F
-GLIBC_2.27 fmaxmagf64 F
-GLIBC_2.27 fminf32 F
-GLIBC_2.27 fminf32x F
-GLIBC_2.27 fminf64 F
-GLIBC_2.27 fminmagf32 F
-GLIBC_2.27 fminmagf32x F
-GLIBC_2.27 fminmagf64 F
-GLIBC_2.27 fmodf32 F
-GLIBC_2.27 fmodf32x F
-GLIBC_2.27 fmodf64 F
-GLIBC_2.27 frexpf32 F
-GLIBC_2.27 frexpf32x F
-GLIBC_2.27 frexpf64 F
-GLIBC_2.27 fromfpf32 F
-GLIBC_2.27 fromfpf32x F
-GLIBC_2.27 fromfpf64 F
-GLIBC_2.27 fromfpxf32 F
-GLIBC_2.27 fromfpxf32x F
-GLIBC_2.27 fromfpxf64 F
-GLIBC_2.27 getpayloadf32 F
-GLIBC_2.27 getpayloadf32x F
-GLIBC_2.27 getpayloadf64 F
-GLIBC_2.27 hypotf32 F
-GLIBC_2.27 hypotf32x F
-GLIBC_2.27 hypotf64 F
-GLIBC_2.27 ilogbf32 F
-GLIBC_2.27 ilogbf32x F
-GLIBC_2.27 ilogbf64 F
-GLIBC_2.27 j0f32 F
-GLIBC_2.27 j0f32x F
-GLIBC_2.27 j0f64 F
-GLIBC_2.27 j1f32 F
-GLIBC_2.27 j1f32x F
-GLIBC_2.27 j1f64 F
-GLIBC_2.27 jnf32 F
-GLIBC_2.27 jnf32x F
-GLIBC_2.27 jnf64 F
-GLIBC_2.27 ldexpf32 F
-GLIBC_2.27 ldexpf32x F
-GLIBC_2.27 ldexpf64 F
-GLIBC_2.27 lgammaf32 F
-GLIBC_2.27 lgammaf32_r F
-GLIBC_2.27 lgammaf32x F
-GLIBC_2.27 lgammaf32x_r F
-GLIBC_2.27 lgammaf64 F
-GLIBC_2.27 lgammaf64_r F
-GLIBC_2.27 llogbf32 F
-GLIBC_2.27 llogbf32x F
-GLIBC_2.27 llogbf64 F
-GLIBC_2.27 llrintf32 F
-GLIBC_2.27 llrintf32x F
-GLIBC_2.27 llrintf64 F
-GLIBC_2.27 llroundf32 F
-GLIBC_2.27 llroundf32x F
-GLIBC_2.27 llroundf64 F
-GLIBC_2.27 log10f32 F
-GLIBC_2.27 log10f32x F
-GLIBC_2.27 log10f64 F
-GLIBC_2.27 log1pf32 F
-GLIBC_2.27 log1pf32x F
-GLIBC_2.27 log1pf64 F
-GLIBC_2.27 log2f F
-GLIBC_2.27 log2f32 F
-GLIBC_2.27 log2f32x F
-GLIBC_2.27 log2f64 F
-GLIBC_2.27 logbf32 F
-GLIBC_2.27 logbf32x F
-GLIBC_2.27 logbf64 F
-GLIBC_2.27 logf F
-GLIBC_2.27 logf32 F
-GLIBC_2.27 logf32x F
-GLIBC_2.27 logf64 F
-GLIBC_2.27 lrintf32 F
-GLIBC_2.27 lrintf32x F
-GLIBC_2.27 lrintf64 F
-GLIBC_2.27 lroundf32 F
-GLIBC_2.27 lroundf32x F
-GLIBC_2.27 lroundf64 F
-GLIBC_2.27 modff32 F
-GLIBC_2.27 modff32x F
-GLIBC_2.27 modff64 F
-GLIBC_2.27 nanf32 F
-GLIBC_2.27 nanf32x F
-GLIBC_2.27 nanf64 F
-GLIBC_2.27 nearbyintf32 F
-GLIBC_2.27 nearbyintf32x F
-GLIBC_2.27 nearbyintf64 F
-GLIBC_2.27 nextafterf32 F
-GLIBC_2.27 nextafterf32x F
-GLIBC_2.27 nextafterf64 F
-GLIBC_2.27 nextdownf32 F
-GLIBC_2.27 nextdownf32x F
-GLIBC_2.27 nextdownf64 F
-GLIBC_2.27 nextupf32 F
-GLIBC_2.27 nextupf32x F
-GLIBC_2.27 nextupf64 F
-GLIBC_2.27 powf F
-GLIBC_2.27 powf32 F
-GLIBC_2.27 powf32x F
-GLIBC_2.27 powf64 F
-GLIBC_2.27 remainderf32 F
-GLIBC_2.27 remainderf32x F
-GLIBC_2.27 remainderf64 F
-GLIBC_2.27 remquof32 F
-GLIBC_2.27 remquof32x F
-GLIBC_2.27 remquof64 F
-GLIBC_2.27 rintf32 F
-GLIBC_2.27 rintf32x F
-GLIBC_2.27 rintf64 F
-GLIBC_2.27 roundevenf32 F
-GLIBC_2.27 roundevenf32x F
-GLIBC_2.27 roundevenf64 F
-GLIBC_2.27 roundf32 F
-GLIBC_2.27 roundf32x F
-GLIBC_2.27 roundf64 F
-GLIBC_2.27 scalblnf32 F
-GLIBC_2.27 scalblnf32x F
-GLIBC_2.27 scalblnf64 F
-GLIBC_2.27 scalbnf32 F
-GLIBC_2.27 scalbnf32x F
-GLIBC_2.27 scalbnf64 F
-GLIBC_2.27 setpayloadf32 F
-GLIBC_2.27 setpayloadf32x F
-GLIBC_2.27 setpayloadf64 F
-GLIBC_2.27 setpayloadsigf32 F
-GLIBC_2.27 setpayloadsigf32x F
-GLIBC_2.27 setpayloadsigf64 F
-GLIBC_2.27 sincosf32 F
-GLIBC_2.27 sincosf32x F
-GLIBC_2.27 sincosf64 F
-GLIBC_2.27 sinf32 F
-GLIBC_2.27 sinf32x F
-GLIBC_2.27 sinf64 F
-GLIBC_2.27 sinhf32 F
-GLIBC_2.27 sinhf32x F
-GLIBC_2.27 sinhf64 F
-GLIBC_2.27 sqrtf32 F
-GLIBC_2.27 sqrtf32x F
-GLIBC_2.27 sqrtf64 F
-GLIBC_2.27 tanf32 F
-GLIBC_2.27 tanf32x F
-GLIBC_2.27 tanf64 F
-GLIBC_2.27 tanhf32 F
-GLIBC_2.27 tanhf32x F
-GLIBC_2.27 tanhf64 F
-GLIBC_2.27 tgammaf32 F
-GLIBC_2.27 tgammaf32x F
-GLIBC_2.27 tgammaf64 F
-GLIBC_2.27 totalorderf32 F
-GLIBC_2.27 totalorderf32x F
-GLIBC_2.27 totalorderf64 F
-GLIBC_2.27 totalordermagf32 F
-GLIBC_2.27 totalordermagf32x F
-GLIBC_2.27 totalordermagf64 F
-GLIBC_2.27 truncf32 F
-GLIBC_2.27 truncf32x F
-GLIBC_2.27 truncf64 F
-GLIBC_2.27 ufromfpf32 F
-GLIBC_2.27 ufromfpf32x F
-GLIBC_2.27 ufromfpf64 F
-GLIBC_2.27 ufromfpxf32 F
-GLIBC_2.27 ufromfpxf32x F
-GLIBC_2.27 ufromfpxf64 F
-GLIBC_2.27 y0f32 F
-GLIBC_2.27 y0f32x F
-GLIBC_2.27 y0f64 F
-GLIBC_2.27 y1f32 F
-GLIBC_2.27 y1f32x F
-GLIBC_2.27 y1f64 F
-GLIBC_2.27 ynf32 F
-GLIBC_2.27 ynf32x F
-GLIBC_2.27 ynf64 F
-GLIBC_2.28 daddl F
-GLIBC_2.28 ddivl F
-GLIBC_2.28 dmull F
-GLIBC_2.28 dsubl F
-GLIBC_2.28 f32addf32x F
-GLIBC_2.28 f32addf64 F
-GLIBC_2.28 f32divf32x F
-GLIBC_2.28 f32divf64 F
-GLIBC_2.28 f32mulf32x F
-GLIBC_2.28 f32mulf64 F
-GLIBC_2.28 f32subf32x F
-GLIBC_2.28 f32subf64 F
-GLIBC_2.28 f32xaddf64 F
-GLIBC_2.28 f32xdivf64 F
-GLIBC_2.28 f32xmulf64 F
-GLIBC_2.28 f32xsubf64 F
-GLIBC_2.28 fadd F
-GLIBC_2.28 faddl F
-GLIBC_2.28 fdiv F
-GLIBC_2.28 fdivl F
-GLIBC_2.28 fmul F
-GLIBC_2.28 fmull F
-GLIBC_2.28 fsub F
-GLIBC_2.28 fsubl F
-GLIBC_2.29 exp F
-GLIBC_2.29 exp2 F
-GLIBC_2.29 log F
-GLIBC_2.29 log2 F
-GLIBC_2.29 pow F
-GLIBC_2.31 totalorder F
-GLIBC_2.31 totalorderf F
-GLIBC_2.31 totalorderf32 F
-GLIBC_2.31 totalorderf32x F
-GLIBC_2.31 totalorderf64 F
-GLIBC_2.31 totalorderl F
-GLIBC_2.31 totalordermag F
-GLIBC_2.31 totalordermagf F
-GLIBC_2.31 totalordermagf32 F
-GLIBC_2.31 totalordermagf32x F
-GLIBC_2.31 totalordermagf64 F
-GLIBC_2.31 totalordermagl F
-GLIBC_2.32 exp10f F
-GLIBC_2.35 dfmal F
-GLIBC_2.35 dsqrtl F
-GLIBC_2.35 f32fmaf32x F
-GLIBC_2.35 f32fmaf64 F
-GLIBC_2.35 f32sqrtf32x F
-GLIBC_2.35 f32sqrtf64 F
-GLIBC_2.35 f32xfmaf64 F
-GLIBC_2.35 f32xsqrtf64 F
-GLIBC_2.35 ffma F
-GLIBC_2.35 ffmal F
-GLIBC_2.35 fmaximum F
-GLIBC_2.35 fmaximum_mag F
-GLIBC_2.35 fmaximum_mag_num F
-GLIBC_2.35 fmaximum_mag_numf F
-GLIBC_2.35 fmaximum_mag_numf32 F
-GLIBC_2.35 fmaximum_mag_numf32x F
-GLIBC_2.35 fmaximum_mag_numf64 F
-GLIBC_2.35 fmaximum_mag_numl F
-GLIBC_2.35 fmaximum_magf F
-GLIBC_2.35 fmaximum_magf32 F
-GLIBC_2.35 fmaximum_magf32x F
-GLIBC_2.35 fmaximum_magf64 F
-GLIBC_2.35 fmaximum_magl F
-GLIBC_2.35 fmaximum_num F
-GLIBC_2.35 fmaximum_numf F
-GLIBC_2.35 fmaximum_numf32 F
-GLIBC_2.35 fmaximum_numf32x F
-GLIBC_2.35 fmaximum_numf64 F
-GLIBC_2.35 fmaximum_numl F
-GLIBC_2.35 fmaximumf F
-GLIBC_2.35 fmaximumf32 F
-GLIBC_2.35 fmaximumf32x F
-GLIBC_2.35 fmaximumf64 F
-GLIBC_2.35 fmaximuml F
-GLIBC_2.35 fminimum F
-GLIBC_2.35 fminimum_mag F
-GLIBC_2.35 fminimum_mag_num F
-GLIBC_2.35 fminimum_mag_numf F
-GLIBC_2.35 fminimum_mag_numf32 F
-GLIBC_2.35 fminimum_mag_numf32x F
-GLIBC_2.35 fminimum_mag_numf64 F
-GLIBC_2.35 fminimum_mag_numl F
-GLIBC_2.35 fminimum_magf F
-GLIBC_2.35 fminimum_magf32 F
-GLIBC_2.35 fminimum_magf32x F
-GLIBC_2.35 fminimum_magf64 F
-GLIBC_2.35 fminimum_magl F
-GLIBC_2.35 fminimum_num F
-GLIBC_2.35 fminimum_numf F
-GLIBC_2.35 fminimum_numf32 F
-GLIBC_2.35 fminimum_numf32x F
-GLIBC_2.35 fminimum_numf64 F
-GLIBC_2.35 fminimum_numl F
-GLIBC_2.35 fminimumf F
-GLIBC_2.35 fminimumf32 F
-GLIBC_2.35 fminimumf32x F
-GLIBC_2.35 fminimumf64 F
-GLIBC_2.35 fminimuml F
-GLIBC_2.35 fsqrt F
-GLIBC_2.35 fsqrtl F
-GLIBC_2.35 hypot F
-GLIBC_2.35 hypotf F
-GLIBC_2.38 fmod F
-GLIBC_2.38 fmodf F
-GLIBC_2.39 exp10 F
-GLIBC_2.40 exp10m1 F
-GLIBC_2.40 exp10m1f F
-GLIBC_2.40 exp10m1f32 F
-GLIBC_2.40 exp10m1f32x F
-GLIBC_2.40 exp10m1f64 F
-GLIBC_2.40 exp10m1l F
-GLIBC_2.40 exp2m1 F
-GLIBC_2.40 exp2m1f F
-GLIBC_2.40 exp2m1f32 F
-GLIBC_2.40 exp2m1f32x F
-GLIBC_2.40 exp2m1f64 F
-GLIBC_2.40 exp2m1l F
-GLIBC_2.40 log10p1 F
-GLIBC_2.40 log10p1f F
-GLIBC_2.40 log10p1f32 F
-GLIBC_2.40 log10p1f32x F
-GLIBC_2.40 log10p1f64 F
-GLIBC_2.40 log10p1l F
-GLIBC_2.40 log2p1 F
-GLIBC_2.40 log2p1f F
-GLIBC_2.40 log2p1f32 F
-GLIBC_2.40 log2p1f32x F
-GLIBC_2.40 log2p1f64 F
-GLIBC_2.40 log2p1l F
-GLIBC_2.40 logp1 F
-GLIBC_2.40 logp1f F
-GLIBC_2.40 logp1f32 F
-GLIBC_2.40 logp1f32x F
-GLIBC_2.40 logp1f64 F
-GLIBC_2.40 logp1l F
diff --git a/sysdeps/unix/sysv/linux/nios2/libnsl.abilist b/sysdeps/unix/sysv/linux/nios2/libnsl.abilist
deleted file mode 100644
index 9a3bbb3..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libnsl.abilist
+++ /dev/null
@@ -1,121 +0,0 @@
-GLIBC_2.21 __free_fdresult F
-GLIBC_2.21 __nis_default_access F
-GLIBC_2.21 __nis_default_group F
-GLIBC_2.21 __nis_default_owner F
-GLIBC_2.21 __nis_default_ttl F
-GLIBC_2.21 __nis_finddirectory F
-GLIBC_2.21 __nis_hash F
-GLIBC_2.21 __nisbind_connect F
-GLIBC_2.21 __nisbind_create F
-GLIBC_2.21 __nisbind_destroy F
-GLIBC_2.21 __nisbind_next F
-GLIBC_2.21 __yp_check F
-GLIBC_2.21 nis_add F
-GLIBC_2.21 nis_add_entry F
-GLIBC_2.21 nis_addmember F
-GLIBC_2.21 nis_checkpoint F
-GLIBC_2.21 nis_clone_directory F
-GLIBC_2.21 nis_clone_object F
-GLIBC_2.21 nis_clone_result F
-GLIBC_2.21 nis_creategroup F
-GLIBC_2.21 nis_destroy_object F
-GLIBC_2.21 nis_destroygroup F
-GLIBC_2.21 nis_dir_cmp F
-GLIBC_2.21 nis_domain_of F
-GLIBC_2.21 nis_domain_of_r F
-GLIBC_2.21 nis_first_entry F
-GLIBC_2.21 nis_free_directory F
-GLIBC_2.21 nis_free_object F
-GLIBC_2.21 nis_free_request F
-GLIBC_2.21 nis_freenames F
-GLIBC_2.21 nis_freeresult F
-GLIBC_2.21 nis_freeservlist F
-GLIBC_2.21 nis_freetags F
-GLIBC_2.21 nis_getnames F
-GLIBC_2.21 nis_getservlist F
-GLIBC_2.21 nis_ismember F
-GLIBC_2.21 nis_leaf_of F
-GLIBC_2.21 nis_leaf_of_r F
-GLIBC_2.21 nis_lerror F
-GLIBC_2.21 nis_list F
-GLIBC_2.21 nis_local_directory F
-GLIBC_2.21 nis_local_group F
-GLIBC_2.21 nis_local_host F
-GLIBC_2.21 nis_local_principal F
-GLIBC_2.21 nis_lookup F
-GLIBC_2.21 nis_mkdir F
-GLIBC_2.21 nis_modify F
-GLIBC_2.21 nis_modify_entry F
-GLIBC_2.21 nis_name_of F
-GLIBC_2.21 nis_name_of_r F
-GLIBC_2.21 nis_next_entry F
-GLIBC_2.21 nis_perror F
-GLIBC_2.21 nis_ping F
-GLIBC_2.21 nis_print_directory F
-GLIBC_2.21 nis_print_entry F
-GLIBC_2.21 nis_print_group F
-GLIBC_2.21 nis_print_group_entry F
-GLIBC_2.21 nis_print_link F
-GLIBC_2.21 nis_print_object F
-GLIBC_2.21 nis_print_result F
-GLIBC_2.21 nis_print_rights F
-GLIBC_2.21 nis_print_table F
-GLIBC_2.21 nis_read_obj F
-GLIBC_2.21 nis_remove F
-GLIBC_2.21 nis_remove_entry F
-GLIBC_2.21 nis_removemember F
-GLIBC_2.21 nis_rmdir F
-GLIBC_2.21 nis_servstate F
-GLIBC_2.21 nis_sperrno F
-GLIBC_2.21 nis_sperror F
-GLIBC_2.21 nis_sperror_r F
-GLIBC_2.21 nis_stats F
-GLIBC_2.21 nis_verifygroup F
-GLIBC_2.21 nis_write_obj F
-GLIBC_2.21 readColdStartFile F
-GLIBC_2.21 writeColdStartFile F
-GLIBC_2.21 xdr_cback_data F
-GLIBC_2.21 xdr_domainname F
-GLIBC_2.21 xdr_keydat F
-GLIBC_2.21 xdr_mapname F
-GLIBC_2.21 xdr_obj_p F
-GLIBC_2.21 xdr_peername F
-GLIBC_2.21 xdr_valdat F
-GLIBC_2.21 xdr_yp_buf F
-GLIBC_2.21 xdr_ypall F
-GLIBC_2.21 xdr_ypbind_binding F
-GLIBC_2.21 xdr_ypbind_resp F
-GLIBC_2.21 xdr_ypbind_resptype F
-GLIBC_2.21 xdr_ypbind_setdom F
-GLIBC_2.21 xdr_ypdelete_args F
-GLIBC_2.21 xdr_ypmap_parms F
-GLIBC_2.21 xdr_ypmaplist F
-GLIBC_2.21 xdr_yppush_status F
-GLIBC_2.21 xdr_yppushresp_xfr F
-GLIBC_2.21 xdr_ypreq_key F
-GLIBC_2.21 xdr_ypreq_nokey F
-GLIBC_2.21 xdr_ypreq_xfr F
-GLIBC_2.21 xdr_ypresp_all F
-GLIBC_2.21 xdr_ypresp_key_val F
-GLIBC_2.21 xdr_ypresp_maplist F
-GLIBC_2.21 xdr_ypresp_master F
-GLIBC_2.21 xdr_ypresp_order F
-GLIBC_2.21 xdr_ypresp_val F
-GLIBC_2.21 xdr_ypresp_xfr F
-GLIBC_2.21 xdr_ypstat F
-GLIBC_2.21 xdr_ypupdate_args F
-GLIBC_2.21 xdr_ypxfrstat F
-GLIBC_2.21 yp_all F
-GLIBC_2.21 yp_bind F
-GLIBC_2.21 yp_first F
-GLIBC_2.21 yp_get_default_domain F
-GLIBC_2.21 yp_maplist F
-GLIBC_2.21 yp_master F
-GLIBC_2.21 yp_match F
-GLIBC_2.21 yp_next F
-GLIBC_2.21 yp_order F
-GLIBC_2.21 yp_unbind F
-GLIBC_2.21 yp_update F
-GLIBC_2.21 ypbinderr_string F
-GLIBC_2.21 yperr_string F
-GLIBC_2.21 ypprot_err F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
deleted file mode 100644
index 714dfd9..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ /dev/null
@@ -1,4 +0,0 @@
-GLIBC_2.21 __libpthread_version_placeholder F
-GLIBC_2.28 __libpthread_version_placeholder F
-GLIBC_2.30 __libpthread_version_placeholder F
-GLIBC_2.31 __libpthread_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
deleted file mode 100644
index e1d6065..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
+++ /dev/null
@@ -1,67 +0,0 @@
-GLIBC_2.21 __b64_ntop F
-GLIBC_2.21 __b64_pton F
-GLIBC_2.21 __dn_count_labels F
-GLIBC_2.21 __fp_nquery F
-GLIBC_2.21 __fp_query F
-GLIBC_2.21 __fp_resstat F
-GLIBC_2.21 __hostalias F
-GLIBC_2.21 __loc_aton F
-GLIBC_2.21 __loc_ntoa F
-GLIBC_2.21 __p_cdname F
-GLIBC_2.21 __p_cdnname F
-GLIBC_2.21 __p_class F
-GLIBC_2.21 __p_class_syms D 0x54
-GLIBC_2.21 __p_fqname F
-GLIBC_2.21 __p_fqnname F
-GLIBC_2.21 __p_option F
-GLIBC_2.21 __p_query F
-GLIBC_2.21 __p_rcode F
-GLIBC_2.21 __p_secstodate F
-GLIBC_2.21 __p_time F
-GLIBC_2.21 __p_type F
-GLIBC_2.21 __p_type_syms D 0x228
-GLIBC_2.21 __putlong F
-GLIBC_2.21 __putshort F
-GLIBC_2.21 __res_close F
-GLIBC_2.21 __res_hostalias F
-GLIBC_2.21 __res_isourserver F
-GLIBC_2.21 __res_nameinquery F
-GLIBC_2.21 __res_queriesmatch F
-GLIBC_2.21 __sym_ntop F
-GLIBC_2.21 __sym_ntos F
-GLIBC_2.21 __sym_ston F
-GLIBC_2.21 _gethtbyaddr F
-GLIBC_2.21 _gethtbyname F
-GLIBC_2.21 _gethtbyname2 F
-GLIBC_2.21 _gethtent F
-GLIBC_2.21 _getlong F
-GLIBC_2.21 _getshort F
-GLIBC_2.21 _res_opcodes D 0x40
-GLIBC_2.21 _sethtent F
-GLIBC_2.21 inet_net_ntop F
-GLIBC_2.21 inet_net_pton F
-GLIBC_2.21 inet_neta F
-GLIBC_2.21 ns_datetosecs F
-GLIBC_2.21 ns_format_ttl F
-GLIBC_2.21 ns_get16 F
-GLIBC_2.21 ns_get32 F
-GLIBC_2.21 ns_initparse F
-GLIBC_2.21 ns_makecanon F
-GLIBC_2.21 ns_msg_getflag F
-GLIBC_2.21 ns_name_ntol F
-GLIBC_2.21 ns_name_rollback F
-GLIBC_2.21 ns_parse_ttl F
-GLIBC_2.21 ns_parserr F
-GLIBC_2.21 ns_put16 F
-GLIBC_2.21 ns_put32 F
-GLIBC_2.21 ns_samedomain F
-GLIBC_2.21 ns_samename F
-GLIBC_2.21 ns_skiprr F
-GLIBC_2.21 ns_sprintrr F
-GLIBC_2.21 ns_sprintrrf F
-GLIBC_2.21 ns_subdomain F
-GLIBC_2.21 res_gethostbyaddr F
-GLIBC_2.21 res_gethostbyname F
-GLIBC_2.21 res_gethostbyname2 F
-GLIBC_2.21 res_send_setqhook F
-GLIBC_2.21 res_send_setrhook F
diff --git a/sysdeps/unix/sysv/linux/nios2/librt.abilist b/sysdeps/unix/sysv/linux/nios2/librt.abilist
deleted file mode 100644
index 834a4dc..0000000
--- a/sysdeps/unix/sysv/linux/nios2/librt.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __librt_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist b/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist
deleted file mode 100644
index cb9e543..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist
+++ /dev/null
@@ -1,40 +0,0 @@
-GLIBC_2.21 td_init F
-GLIBC_2.21 td_log F
-GLIBC_2.21 td_symbol_list F
-GLIBC_2.21 td_ta_clear_event F
-GLIBC_2.21 td_ta_delete F
-GLIBC_2.21 td_ta_enable_stats F
-GLIBC_2.21 td_ta_event_addr F
-GLIBC_2.21 td_ta_event_getmsg F
-GLIBC_2.21 td_ta_get_nthreads F
-GLIBC_2.21 td_ta_get_ph F
-GLIBC_2.21 td_ta_get_stats F
-GLIBC_2.21 td_ta_map_id2thr F
-GLIBC_2.21 td_ta_map_lwp2thr F
-GLIBC_2.21 td_ta_new F
-GLIBC_2.21 td_ta_reset_stats F
-GLIBC_2.21 td_ta_set_event F
-GLIBC_2.21 td_ta_setconcurrency F
-GLIBC_2.21 td_ta_thr_iter F
-GLIBC_2.21 td_ta_tsd_iter F
-GLIBC_2.21 td_thr_clear_event F
-GLIBC_2.21 td_thr_dbresume F
-GLIBC_2.21 td_thr_dbsuspend F
-GLIBC_2.21 td_thr_event_enable F
-GLIBC_2.21 td_thr_event_getmsg F
-GLIBC_2.21 td_thr_get_info F
-GLIBC_2.21 td_thr_getfpregs F
-GLIBC_2.21 td_thr_getgregs F
-GLIBC_2.21 td_thr_getxregs F
-GLIBC_2.21 td_thr_getxregsize F
-GLIBC_2.21 td_thr_set_event F
-GLIBC_2.21 td_thr_setfpregs F
-GLIBC_2.21 td_thr_setgregs F
-GLIBC_2.21 td_thr_setprio F
-GLIBC_2.21 td_thr_setsigpending F
-GLIBC_2.21 td_thr_setxregs F
-GLIBC_2.21 td_thr_sigsetmask F
-GLIBC_2.21 td_thr_tls_get_addr F
-GLIBC_2.21 td_thr_tlsbase F
-GLIBC_2.21 td_thr_tsd F
-GLIBC_2.21 td_thr_validate F
diff --git a/sysdeps/unix/sysv/linux/nios2/libutil.abilist b/sysdeps/unix/sysv/linux/nios2/libutil.abilist
deleted file mode 100644
index 742ebe6..0000000
--- a/sysdeps/unix/sysv/linux/nios2/libutil.abilist
+++ /dev/null
@@ -1 +0,0 @@
-GLIBC_2.21 __libutil_version_placeholder F
diff --git a/sysdeps/unix/sysv/linux/nios2/localplt.data b/sysdeps/unix/sysv/linux/nios2/localplt.data
deleted file mode 100644
index f502a3f..0000000
--- a/sysdeps/unix/sysv/linux/nios2/localplt.data
+++ /dev/null
@@ -1,30 +0,0 @@
-libc.so: realloc
-libc.so: __floatsisf
-libc.so: __gtdf2 ?
-libc.so: __ltdf2
-libc.so: __gedf2
-libc.so: malloc
-libc.so: __gtsf2 ?
-libc.so: __nesf2
-libc.so: __mulsf3
-libc.so: __floatunsisf
-libc.so: __addsf3
-libc.so: __fixsfsi
-libc.so: __subsf3
-libc.so: __unorddf2 ?
-libc.so: calloc
-libc.so: __muldf3
-libc.so: __unordsf2 ?
-libc.so: free
-libc.so: __subdf3
-libc.so: __ledf2
-libc.so: __adddf3
-libc.so: __divdf3
-libc.so: __floatsidf
-libc.so: __divsf3
-libc.so: __nedf2
-libc.so: __eqdf2
-libc.so: __extendsfdf2
-libc.so: __floatundidf ?
-libc.so: __floatunsidf ?
-libm.so: matherr
diff --git a/sysdeps/unix/sysv/linux/nios2/makecontext.c b/sysdeps/unix/sysv/linux/nios2/makecontext.c
deleted file mode 100644
index d6e430c..0000000
--- a/sysdeps/unix/sysv/linux/nios2/makecontext.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Create new context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <stdarg.h>
-#include <stdint.h>
-#include <ucontext.h>
-
-/* makecontext sets up a stack and the registers for the
- user context. The stack looks like this:
-
- +-----------------------+
- | padding as required |
- +-----------------------+
- sp -> | parameters 5 to n |
- +-----------------------+
-
- The registers are set up like this:
- r4--r7 : parameter 1 to 4
- r16 : uc_link
- sp : stack pointer.
-*/
-
-void
-__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
-{
- extern void __startcontext (void);
- unsigned long *sp;
- va_list ap;
- int i;
-
- sp = (unsigned long *)
- ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
-
- /* Allocate stack arguments. */
- sp -= argc < 4 ? 0 : argc - 4;
-
- /* Keep the stack aligned. */
- sp = (unsigned long*) (((uintptr_t) sp) & -4L);
-
- /* Init version field. */
- ucp->uc_mcontext.version = 2;
- /* Keep uc_link in r16. */
- ucp->uc_mcontext.regs[15] = (uintptr_t) ucp->uc_link;
- /* Return address points to __startcontext(). */
- ucp->uc_mcontext.regs[23] = (uintptr_t) &__startcontext;
- /* Frame pointer is null. */
- ucp->uc_mcontext.regs[24] = (uintptr_t) 0;
- /* Restart in user-space starting at 'func'. */
- ucp->uc_mcontext.regs[27] = (uintptr_t) func;
- /* Set stack pointer. */
- ucp->uc_mcontext.regs[28] = (uintptr_t) sp;
-
- va_start (ap, argc);
- for (i = 0; i < argc; ++i)
- if (i < 4)
- ucp->uc_mcontext.regs[i + 3] = va_arg (ap, unsigned long);
- else
- sp[i - 4] = va_arg (ap, unsigned long);
-
- va_end (ap);
-}
-
-weak_alias (__makecontext, makecontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/pointer_guard.h b/sysdeps/unix/sysv/linux/nios2/pointer_guard.h
deleted file mode 100644
index 487fa22..0000000
--- a/sysdeps/unix/sysv/linux/nios2/pointer_guard.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Pointer obfuscation implenentation. Nios II version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef POINTER_GUARD_H
-#define POINTER_GUARD_H
-
-#if IS_IN (rtld)
-/* We cannot use the thread descriptor because in ld.so we use setjmp
- earlier than the descriptor is initialized. */
-# include <sysdeps/generic/pointer_guard.h>
-#else
-# ifdef __ASSEMBLER__
-# define PTR_MANGLE_GUARD(guard) ldw guard, POINTER_GUARD(r23)
-# define PTR_MANGLE(dst, src, guard) xor dst, src, guard
-# define PTR_DEMANGLE(dst, src, guard) PTR_MANGLE (dst, src, guard)
-# else
-# include <stdint.h>
-# include <tls.h>
-# define PTR_MANGLE(var) \
- (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
-# define PTR_DEMANGLE(var) PTR_MANGLE (var)
-# endif
-#endif
-
-#endif /* POINTER_GUARD_H */
diff --git a/sysdeps/unix/sysv/linux/nios2/send.c b/sysdeps/unix/sysv/linux/nios2/send.c
deleted file mode 100644
index c1621c8..0000000
--- a/sysdeps/unix/sysv/linux/nios2/send.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <shlib-compat.h>
-
-#include <sysdeps/unix/sysv/linux/send.c>
-
-#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_21, GLIBC_2_34)
-/* libpthread compat symbol: Nios2 used the generic version without the
- libc_hidden_def which lead in a non existent __send symbol in libc.so. */
-compat_symbol (libc, __libc_send, __send, GLIBC_2_21);
-#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/setcontext.S b/sysdeps/unix/sysv/linux/nios2/setcontext.S
deleted file mode 100644
index 2345de7..0000000
--- a/sysdeps/unix/sysv/linux/nios2/setcontext.S
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Set current context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include "ucontext_i.h"
-
-/* int setcontext (const ucontext_t *ucp) */
- .text
-ENTRY(__setcontext)
- ldw r5, UCONTEXT_FLAGS(r4)
- movi r6, 1
- bne r5, r6, .Lsigreturn
-
- mov r10, r4
-
- /* Restore signal mask. */
- /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
- movi r7, _NSIG8
- addi r5, r4, UCONTEXT_SIGMASK
- mov r6, zero
- movi r4, SIG_SETMASK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
- /* Restore argument registers, for the makecontext() case. */
- ldw r4, (UCONTEXT_MCONTEXT + 4*4)(r10)
- ldw r5, (UCONTEXT_MCONTEXT + 5*4)(r10)
- ldw r6, (UCONTEXT_MCONTEXT + 6*4)(r10)
- ldw r7, (UCONTEXT_MCONTEXT + 7*4)(r10)
-
- ldw r16, (UCONTEXT_MCONTEXT + 16*4)(r10)
- ldw r17, (UCONTEXT_MCONTEXT + 17*4)(r10)
- ldw r18, (UCONTEXT_MCONTEXT + 18*4)(r10)
- ldw r19, (UCONTEXT_MCONTEXT + 19*4)(r10)
- ldw r20, (UCONTEXT_MCONTEXT + 20*4)(r10)
- ldw r21, (UCONTEXT_MCONTEXT + 21*4)(r10)
- ldw r22, (UCONTEXT_MCONTEXT + 22*4)(r10)
- ldw ra, (UCONTEXT_MCONTEXT + 24*4)(r10)
- ldw fp, (UCONTEXT_MCONTEXT + 25*4)(r10)
- ldw gp, (UCONTEXT_MCONTEXT + 26*4)(r10)
- /* Load address to continue execution. */
- ldw r3, (UCONTEXT_MCONTEXT + 28*4)(r10)
- ldw sp, (UCONTEXT_MCONTEXT + 29*4)(r10)
-
- mov r2, zero
- jmp r3
-
-.Lsigreturn:
- addi sp, sp, -RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (RT_SIGFRAME_SIZE)
-
- addi r2, sp, RT_SIGFRAME_UCONTEXT
- movi r3, UCONTEXT_SIZE-4
-1:
- add r6, r4, r3
- ldw r5, 0(r6)
- add r7, r2, r3
- addi r3, r3, -4
- stw r5, 0(r7)
- bgt r3, zero, 1b
-
- movi r2, SYS_ify (rt_sigreturn)
- trap
-
- addi sp, sp, RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (-RT_SIGFRAME_SIZE)
- br SYSCALL_ERROR_LABEL
-
-PSEUDO_END (__setcontext)
-weak_alias (__setcontext, setcontext)
-
- /* We add an NOP here to separate between __setcontext/__startcontext.
- The wanted behavior that happens is: when unwinding from a function
- called inside a makecontext() context, FDE lookup will use
- '&__startcontext - 1', then returns NULL for no FDE found,
- and immediately ends the unwind, in a normal fashion.
-
- If this NOP word does not exist, FDE lookup just repeatedly finds
- __setcontext's FDE in an infinite loop, due to the convention of
- using 'address - 1' for FDE lookup. Modifying/deleting the below
- __startcontext's FDE has no help on this. */
- nop
-
-ENTRY(__startcontext)
- mov r4, r16
- bne r4, zero, __setcontext
-
- /* If uc_link == zero, call exit. */
-#ifdef PIC
- nextpc r22
-1: movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- add r22, r22, r8
- ldw r8, %call(HIDDEN_JUMPTARGET(exit))(r22)
- jmp r8
-#else
- jmpi exit
-#endif
-END(__startcontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/shlib-versions b/sysdeps/unix/sysv/linux/nios2/shlib-versions
deleted file mode 100644
index 443fd4d..0000000
--- a/sysdeps/unix/sysv/linux/nios2/shlib-versions
+++ /dev/null
@@ -1,2 +0,0 @@
-DEFAULT GLIBC_2.21
-ld=ld-linux-nios2.so.1
diff --git a/sysdeps/unix/sysv/linux/nios2/swapcontext.S b/sysdeps/unix/sysv/linux/nios2/swapcontext.S
deleted file mode 100644
index 488d702..0000000
--- a/sysdeps/unix/sysv/linux/nios2/swapcontext.S
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Modify saved context.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include "ucontext_i.h"
-
-/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
- .text
-ENTRY(__swapcontext)
-
- /* Same as getcontext(). */
- stw r16, (UCONTEXT_MCONTEXT + 16*4)(r4)
- stw r17, (UCONTEXT_MCONTEXT + 17*4)(r4)
- stw r18, (UCONTEXT_MCONTEXT + 18*4)(r4)
- stw r19, (UCONTEXT_MCONTEXT + 19*4)(r4)
- stw r20, (UCONTEXT_MCONTEXT + 20*4)(r4)
- stw r21, (UCONTEXT_MCONTEXT + 21*4)(r4)
- stw r22, (UCONTEXT_MCONTEXT + 22*4)(r4)
- stw ra, (UCONTEXT_MCONTEXT + 24*4)(r4)
- stw fp, (UCONTEXT_MCONTEXT + 25*4)(r4)
- stw gp, (UCONTEXT_MCONTEXT + 26*4)(r4)
- /* Store return address at place for EA. */
- stw ra, (UCONTEXT_MCONTEXT + 28*4)(r4)
- stw sp, (UCONTEXT_MCONTEXT + 29*4)(r4)
- /* Store zero for return success. */
- stw zero, (UCONTEXT_MCONTEXT + 2*4)(r4)
-
- /* Store value "1" at uc_flags to recognize as getcontext created. */
- movi r2, 1
- stw r2, UCONTEXT_FLAGS(r4)
-
- /* Store MCONTEXT_VERSION at first word of mcontext_t. */
- movi r2, MCONTEXT_VERSION
- stw r2, UCONTEXT_MCONTEXT(r4)
-
- /* Save ucp to non-argument syscall preserved register. */
- mov r10, r5
-
- /* Get signal mask. */
- /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
- movi r7, _NSIG8
- addi r6, r4, UCONTEXT_SIGMASK
- mov r5, zero
- movi r4, SIG_BLOCK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
-
- /* Same as setcontext(). */
- ldw r5, UCONTEXT_FLAGS(r10)
- movi r6, 1
- bne r5, r6, .Lsigreturn
-
- /* Restore signal mask. */
- /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
- movi r7, _NSIG8
- addi r5, r10, UCONTEXT_SIGMASK
- mov r6, zero
- movi r4, SIG_SETMASK
- movi r2, SYS_ify (rt_sigprocmask)
- trap
- bne r7, zero, SYSCALL_ERROR_LABEL
-
- /* Restore argument registers, for the makecontext() case. */
- ldw r4, (UCONTEXT_MCONTEXT + 4*4)(r10)
- ldw r5, (UCONTEXT_MCONTEXT + 5*4)(r10)
- ldw r6, (UCONTEXT_MCONTEXT + 6*4)(r10)
- ldw r7, (UCONTEXT_MCONTEXT + 7*4)(r10)
-
- ldw r16, (UCONTEXT_MCONTEXT + 16*4)(r10)
- ldw r17, (UCONTEXT_MCONTEXT + 17*4)(r10)
- ldw r18, (UCONTEXT_MCONTEXT + 18*4)(r10)
- ldw r19, (UCONTEXT_MCONTEXT + 19*4)(r10)
- ldw r20, (UCONTEXT_MCONTEXT + 20*4)(r10)
- ldw r21, (UCONTEXT_MCONTEXT + 21*4)(r10)
- ldw r22, (UCONTEXT_MCONTEXT + 22*4)(r10)
- ldw ra, (UCONTEXT_MCONTEXT + 24*4)(r10)
- ldw fp, (UCONTEXT_MCONTEXT + 25*4)(r10)
- ldw gp, (UCONTEXT_MCONTEXT + 26*4)(r10)
- /* Load address to continue execution. */
- ldw r3, (UCONTEXT_MCONTEXT + 28*4)(r10)
- ldw sp, (UCONTEXT_MCONTEXT + 29*4)(r10)
-
- mov r2, zero
- jmp r3
-
-.Lsigreturn:
- addi sp, sp, -RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (RT_SIGFRAME_SIZE)
-
- addi r2, sp, RT_SIGFRAME_UCONTEXT
- movi r3, UCONTEXT_SIZE-4
-1:
- add r6, r4, r3
- ldw r5, 0(r6)
- add r7, r2, r3
- addi r3, r3, -4
- stw r5, 0(r7)
- bgt r3, zero, 1b
-
- movi r2, SYS_ify (rt_sigreturn)
- trap
-
- addi sp, sp, RT_SIGFRAME_SIZE
- cfi_adjust_cfa_offset (-RT_SIGFRAME_SIZE)
- br SYSCALL_ERROR_LABEL
-
-PSEUDO_END (__swapcontext)
-weak_alias (__swapcontext, swapcontext)
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
deleted file mode 100644
index 74cc119..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* ucontext_t definition, Nios II version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-/* System V/Nios II ABI compliant context switching support. */
-
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
-
-#include <features.h>
-
-#include <bits/types/sigset_t.h>
-#include <bits/types/stack_t.h>
-
-
-/* These definitions must be in sync with the kernel. */
-
-#ifdef __USE_MISC
-# define MCONTEXT_VERSION 2
-#endif
-
-#ifdef __USE_MISC
-# define __ctx(fld) fld
-#else
-# define __ctx(fld) __ ## fld
-#endif
-
-/* Context to describe whole processor state. */
-typedef struct
- {
- int __ctx(version);
- unsigned long __ctx(regs)[32];
- } mcontext_t;
-
-/* Userlevel context. */
-typedef struct ucontext_t
- {
- unsigned long __ctx(uc_flags);
- struct ucontext_t *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- sigset_t uc_sigmask;
- } ucontext_t;
-
-#undef __ctx
-
-#endif /* sys/ucontext.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/user.h b/sysdeps/unix/sysv/linux/nios2/sys/user.h
deleted file mode 100644
index ed637b5..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sys/user.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ptrace register data format definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _SYS_USER_H
-#define _SYS_USER_H 1
-
-/* The whole purpose of this file is for GDB and GDB only. Don't read
- too much into it. Don't use it for anything other than GDB unless
- you know what you are doing. */
-
-struct user_fpregs
-{
-};
-
-struct user_regs
-{
- unsigned long int uregs[49];
-};
-
-struct user
-{
- struct user_regs regs; /* General registers */
- int u_fpvalid; /* True if math co-processor being used. */
-
- unsigned long int u_tsize; /* Text segment size (pages). */
- unsigned long int u_dsize; /* Data segment size (pages). */
- unsigned long int u_ssize; /* Stack segment size (pages). */
-
- unsigned long start_code; /* Starting virtual address of text. */
- unsigned long start_stack; /* Starting virtual address of stack. */
-
- long int signal; /* Signal that caused the core dump. */
- int reserved; /* No longer used */
- struct user_regs *u_ar0; /* help gdb to find the general registers. */
-
- unsigned long magic; /* uniquely identify a core file */
- char u_comm[32]; /* User command that was responsible */
- int u_debugreg[8];
- struct user_fpregs u_fp; /* Floating point registers */
- struct user_fpregs *u_fp0; /* help gdb to find the FP registers. */
-};
-
-#endif /* sys/user.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep.S b/sysdeps/unix/sysv/linux/nios2/sysdep.S
deleted file mode 100644
index a827d41..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sysdep.S
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Static library error handling code fragment for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* The following code is only used in the static library. In the shared
- library, the error handling code is at the end of each function. */
-
-#ifndef PIC
-
-/* In the static library, the syscall stubs jump here when they detect
- an error. */
-
-# undef CALL_MCOUNT
-# define CALL_MCOUNT /* Don't insert the profiling call, it clobbers r2. */
-
-# if IS_IN (libc)
-# define SYSCALL_ERROR_ERRNO __libc_errno
-# else
-# define SYSCALL_ERROR_ERRNO errno
-# endif
- .text
-ENTRY (__syscall_error)
- nextpc r3
-1:
- movhi r8, %hiadj(_gp_got - 1b)
- addi r8, r8, %lo(_gp_got - 1b)
- add r3, r3, r8
- ldw r3, %tls_ie(SYSCALL_ERROR_ERRNO)(r3)
- add r3, r23, r3
- stw r2, 0(r3)
- movi r2, -1
- ret
-END (__syscall_error)
-#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep.h b/sysdeps/unix/sysv/linux/nios2/sysdep.h
deleted file mode 100644
index 2ea9c3b..0000000
--- a/sysdeps/unix/sysv/linux/nios2/sysdep.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Assembler macros for Nios II.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _LINUX_NIOS2_SYSDEP_H
-#define _LINUX_NIOS2_SYSDEP_H 1
-
-#include <sysdeps/unix/sysv/linux/sysdep.h>
-#include <sysdeps/unix/sysdep.h>
-#include <sysdeps/nios2/sysdep.h>
-
-/* For RTLD_PRIVATE_ERRNO. */
-#include <dl-sysdep.h>
-
-#include <tls.h>
-
-/* For Linux we can use the system call table in the header file
- /usr/include/asm/unistd.h
- of the kernel. But these symbols do not follow the SYS_* syntax
- so we have to redefine the `SYS_ify' macro here. */
-#undef SYS_ify
-#define SYS_ify(syscall_name) __NR_##syscall_name
-
-#ifdef __ASSEMBLER__
-
-#undef SYSCALL_ERROR_LABEL
-#define SYSCALL_ERROR_LABEL __local_syscall_error
-
-#undef PSEUDO
-#define PSEUDO(name, syscall_name, args) \
- ENTRY (name) \
- DO_CALL (syscall_name, args) \
- bne r7, zero, SYSCALL_ERROR_LABEL; \
-
-#undef PSEUDO_END
-#define PSEUDO_END(name) \
- SYSCALL_ERROR_HANDLER \
- END (name)
-
-#undef PSEUDO_NOERRNO
-#define PSEUDO_NOERRNO(name, syscall_name, args) \
- ENTRY (name) \
- DO_CALL (syscall_name, args)
-
-#undef PSEUDO_END_NOERRNO
-#define PSEUDO_END_NOERRNO(name) \
- END (name)
-
-#undef ret_NOERRNO
-#define ret_NOERRNO ret
-
-#undef DO_CALL
-#define DO_CALL(syscall_name, args) \
- DOARGS_##args \
- movi r2, SYS_ify(syscall_name); \
- trap;
-
-#if defined(__PIC__) || defined(PIC)
-
-# if RTLD_PRIVATE_ERRNO
-
-# define SYSCALL_ERROR_HANDLER \
- SYSCALL_ERROR_LABEL: \
- nextpc r3; \
-1: \
- movhi r8, %hiadj(rtld_errno - 1b); \
- addi r8, r8, %lo(rtld_errno - 1b); \
- add r3, r3, r8; \
- stw r2, 0(r3); \
- movi r2, -1; \
- ret;
-
-# else
-
-# if IS_IN (libc)
-# define SYSCALL_ERROR_ERRNO __libc_errno
-# else
-# define SYSCALL_ERROR_ERRNO errno
-# endif
-# define SYSCALL_ERROR_HANDLER \
- SYSCALL_ERROR_LABEL: \
- nextpc r3; \
-1: \
- movhi r8, %hiadj(_gp_got - 1b); \
- addi r8, r8, %lo(_gp_got - 1b); \
- add r3, r3, r8; \
- ldw r3, %tls_ie(SYSCALL_ERROR_ERRNO)(r3); \
- add r3, r23, r3; \
- stw r2, 0(r3); \
- movi r2, -1; \
- ret;
-
-# endif
-
-#else
-
-/* We can use a single error handler in the static library. */
-#define SYSCALL_ERROR_HANDLER \
- SYSCALL_ERROR_LABEL: \
- jmpi __syscall_error;
-
-#endif
-
-#define DOARGS_0 /* nothing */
-#define DOARGS_1 /* nothing */
-#define DOARGS_2 /* nothing */
-#define DOARGS_3 /* nothing */
-#define DOARGS_4 /* nothing */
-#define DOARGS_5 ldw r8, 0(sp);
-#define DOARGS_6 ldw r9, 4(sp); ldw r8, 0(sp);
-
-/* The function has to return the error code. */
-#undef PSEUDO_ERRVAL
-#define PSEUDO_ERRVAL(name, syscall_name, args) \
- ENTRY (name) \
- DO_CALL (syscall_name, args)
-
-#undef PSEUDO_END_ERRVAL
-#define PSEUDO_END_ERRVAL(name) \
- END (name)
-
-#define ret_ERRVAL ret
-
-#else /* __ASSEMBLER__ */
-
-/* In order to get __set_errno() definition in INLINE_SYSCALL. */
-#include <errno.h>
-
-#undef INTERNAL_SYSCALL_RAW
-#define INTERNAL_SYSCALL_RAW(name, nr, args...) \
- ({ unsigned int _sys_result; \
- { \
- /* Load argument values in temporary variables
- to perform side effects like function calls
- before the call-used registers are set. */ \
- LOAD_ARGS_##nr (args) \
- LOAD_REGS_##nr \
- register int _r2 asm ("r2") = (int)(name); \
- register int _err asm ("r7"); \
- asm volatile ("trap" \
- : "+r" (_r2), "=r" (_err) \
- : ASM_ARGS_##nr \
- : __SYSCALL_CLOBBERS); \
- _sys_result = _err != 0 ? -_r2 : _r2; \
- } \
- (int) _sys_result; })
-
-#undef INTERNAL_SYSCALL
-#define INTERNAL_SYSCALL(name, nr, args...) \
- INTERNAL_SYSCALL_RAW(SYS_ify(name), nr, args)
-
-#undef INTERNAL_SYSCALL_NCS
-#define INTERNAL_SYSCALL_NCS(number, nr, args...) \
- INTERNAL_SYSCALL_RAW(number, nr, args)
-
-#define LOAD_ARGS_0()
-#define LOAD_REGS_0
-#define ASM_ARGS_0
-#define LOAD_ARGS_1(a1) \
- LOAD_ARGS_0 () \
- int __arg1 = (int) (a1);
-#define LOAD_REGS_1 \
- register int _r4 asm ("r4") = __arg1; \
- LOAD_REGS_0
-#define ASM_ARGS_1 "r" (_r4)
-#define LOAD_ARGS_2(a1, a2) \
- LOAD_ARGS_1 (a1) \
- int __arg2 = (int) (a2);
-#define LOAD_REGS_2 \
- register int _r5 asm ("r5") = __arg2; \
- LOAD_REGS_1
-#define ASM_ARGS_2 ASM_ARGS_1, "r" (_r5)
-#define LOAD_ARGS_3(a1, a2, a3) \
- LOAD_ARGS_2 (a1, a2) \
- int __arg3 = (int) (a3);
-#define LOAD_REGS_3 \
- register int _r6 asm ("r6") = __arg3; \
- LOAD_REGS_2
-#define ASM_ARGS_3 ASM_ARGS_2, "r" (_r6)
-#define LOAD_ARGS_4(a1, a2, a3, a4) \
- LOAD_ARGS_3 (a1, a2, a3) \
- int __arg4 = (int) (a4);
-#define LOAD_REGS_4 \
- register int _r7 asm ("r7") = __arg4; \
- LOAD_REGS_3
-#define ASM_ARGS_4 ASM_ARGS_3, "r" (_r7)
-#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
- LOAD_ARGS_4 (a1, a2, a3, a4) \
- int __arg5 = (int) (a5);
-#define LOAD_REGS_5 \
- register int _r8 asm ("r8") = __arg5; \
- LOAD_REGS_4
-#define ASM_ARGS_5 ASM_ARGS_4, "r" (_r8)
-#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
- LOAD_ARGS_5 (a1, a2, a3, a4, a5) \
- int __arg6 = (int) (a6);
-#define LOAD_REGS_6 \
- register int _r9 asm ("r9") = __arg6; \
- LOAD_REGS_5
-#define ASM_ARGS_6 ASM_ARGS_5, "r" (_r9)
-
-#define __SYSCALL_CLOBBERS "memory"
-
-#undef HAVE_INTERNAL_BRK_ADDR_SYMBOL
-#define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* linux/nios2/sysdep.h */
diff --git a/sysdeps/unix/sysv/linux/nios2/time64-compat.h b/sysdeps/unix/sysv/linux/nios2/time64-compat.h
deleted file mode 100644
index 700f854..0000000
--- a/sysdeps/unix/sysv/linux/nios2/time64-compat.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* ABI support 64-bit in non-default mode. */
-#define TIME64_NON_DEFAULT
diff --git a/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym b/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym
deleted file mode 100644
index a844c96..0000000
--- a/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <inttypes.h>
-#include <signal.h>
-#include <stddef.h>
-#include <sys/ucontext.h>
-
-#include "kernel_rt_sigframe.h"
-
-SIG_BLOCK
-SIG_SETMASK
-
-_NSIG8 (_NSIG / 8)
-
-MCONTEXT_VERSION
-
--- Offsets of the fields in the kernel rt_sigframe_t structure.
-#define rt_sigframe(member) offsetof (struct kernel_rt_sigframe, member)
-
-RT_SIGFRAME_SIZE sizeof (struct kernel_rt_sigframe)
-RT_SIGFRAME_UCONTEXT rt_sigframe (uc)
-
--- Offsets of the fields in the ucontext_t structure.
-#define ucontext(member) offsetof (ucontext_t, member)
-
-UCONTEXT_FLAGS ucontext (uc_flags)
-UCONTEXT_LINK ucontext (uc_link)
-UCONTEXT_STACK ucontext (uc_stack)
-UCONTEXT_MCONTEXT ucontext (uc_mcontext)
-UCONTEXT_SIGMASK ucontext (uc_sigmask)
-UCONTEXT_SIZE sizeof (ucontext_t)
diff --git a/sysdeps/unix/sysv/linux/not-cancel.h b/sysdeps/unix/sysv/linux/not-cancel.h
index 2a7585b..5ac6dd4 100644
--- a/sysdeps/unix/sysv/linux/not-cancel.h
+++ b/sysdeps/unix/sysv/linux/not-cancel.h
@@ -1,5 +1,5 @@
/* Uncancelable versions of cancelable interfaces. Linux/NPTL version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,18 +27,19 @@
#include <sys/syscall.h>
#include <sys/wait.h>
#include <time.h>
+#include <sys/random.h>
/* Non cancellable open syscall. */
-__typeof (open) __open_nocancel;
+extern int __open_nocancel (const char *, int, ...);
/* Non cancellable open syscall (LFS version). */
-__typeof (open64) __open64_nocancel;
+extern int __open64_nocancel (const char *, int, ...);
/* Non cancellable openat syscall. */
-__typeof (openat) __openat_nocancel;
+extern int __openat_nocancel (int fd, const char *, int, ...);
/* Non cacellable openat syscall (LFS version). */
-__typeof (openat64) __openat64_nocancel;
+extern int __openat64_nocancel (int fd, const char *, int, ...);
/* Non cancellable read syscall. */
__typeof (__read) __read_nocancel;
@@ -52,8 +53,11 @@ __typeof (__write) __write_nocancel;
/* Uncancelable close. */
__typeof (__close) __close_nocancel;
+/* Uncancellable close that does not also set errno in case of failure. */
+void __close_nocancel_nostatus (int);
+
/* Uncancelable fcntl. */
-__typeof (__fcntl) __fcntl64_nocancel;
+int __fcntl64_nocancel (int, int, ...);
#if IS_IN (libc) || IS_IN (rtld)
hidden_proto (__open_nocancel)
@@ -64,17 +68,10 @@ hidden_proto (__read_nocancel)
hidden_proto (__pread64_nocancel)
hidden_proto (__write_nocancel)
hidden_proto (__close_nocancel)
+hidden_proto (__close_nocancel_nostatus)
hidden_proto (__fcntl64_nocancel)
#endif
-/* Non cancellable close syscall that does not also set errno in case of
- failure. */
-static inline void
-__close_nocancel_nostatus (int fd)
-{
- __close_nocancel (fd);
-}
-
/* Non cancellable writev syscall that does not also set errno in case of
failure. */
static inline void
@@ -84,15 +81,17 @@ __writev_nocancel_nostatus (int fd, const struct iovec *iov, int iovcnt)
}
static inline ssize_t
-__getrandom_nocancel (void *buf, size_t buflen, unsigned int flags)
+__getrandom_nocancel_direct (void *buf, size_t buflen, unsigned int flags)
{
return INLINE_SYSCALL_CALL (getrandom, buf, buflen, flags);
}
+__typeof (getrandom) __getrandom_nocancel attribute_hidden;
+
/* Non cancellable getrandom syscall that does not also set errno in case of
failure. */
static inline ssize_t
-__getrandom_nocancel_nostatus (void *buf, size_t buflen, unsigned int flags)
+__getrandom_nocancel_nostatus_direct (void *buf, size_t buflen, unsigned int flags)
{
return INTERNAL_SYSCALL_CALL (getrandom, buf, buflen, flags);
}
diff --git a/sysdeps/unix/sysv/linux/not-errno.h b/sysdeps/unix/sysv/linux/not-errno.h
index a8b8b50..32c09b2 100644
--- a/sysdeps/unix/sysv/linux/not-errno.h
+++ b/sysdeps/unix/sysv/linux/not-errno.h
@@ -1,5 +1,5 @@
/* Syscall wrapper that do not set errno. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nscd_setup_thread.c b/sysdeps/unix/sysv/linux/nscd_setup_thread.c
index 6e5f6a4..22a3613 100644
--- a/sysdeps/unix/sysv/linux/nscd_setup_thread.c
+++ b/sysdeps/unix/sysv/linux/nscd_setup_thread.c
@@ -1,5 +1,5 @@
/* Setup of nscd worker threads. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
diff --git a/sysdeps/unix/sysv/linux/ntp_gettime.c b/sysdeps/unix/sysv/linux/ntp_gettime.c
index c293a53..ad32d56 100644
--- a/sysdeps/unix/sysv/linux/ntp_gettime.c
+++ b/sysdeps/unix/sysv/linux/ntp_gettime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ntp_gettimex.c b/sysdeps/unix/sysv/linux/ntp_gettimex.c
index 92df9a0..bd14e2e 100644
--- a/sysdeps/unix/sysv/linux/ntp_gettimex.c
+++ b/sysdeps/unix/sysv/linux/ntp_gettimex.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/old_termios.h b/sysdeps/unix/sysv/linux/old_termios.h
new file mode 100644
index 0000000..56d19ba
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/old_termios.h
@@ -0,0 +1,23 @@
+/* old_termios.h for Linux other than MIPS and SPARC
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* By default, no old termios structure */
+#define _HAVE_STRUCT_OLD_TERMIOS 0
+#define OLD_NCCS NCCS
+typedef struct termios old_termios_t;
diff --git a/sysdeps/unix/sysv/linux/olddirent.h b/sysdeps/unix/sysv/linux/olddirent.h
index 239f790..b64f48d 100644
--- a/sysdeps/unix/sysv/linux/olddirent.h
+++ b/sysdeps/unix/sysv/linux/olddirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -34,8 +34,6 @@ extern struct __old_dirent64 *__old_readdir64 (DIR *__dirp);
libc_hidden_proto (__old_readdir64);
extern int __old_readdir64_r (DIR *__dirp, struct __old_dirent64 *__entry,
struct __old_dirent64 **__result);
-extern __ssize_t __old_getdents64 (int __fd, char *__buf, size_t __nbytes)
- attribute_hidden;
int __old_scandir64 (const char * __dir,
struct __old_dirent64 *** __namelist,
int (*__selector) (const struct __old_dirent64 *),
diff --git a/sysdeps/unix/sysv/linux/open.c b/sysdeps/unix/sysv/linux/open.c
index 1ddc627..76d804f 100644
--- a/sysdeps/unix/sysv/linux/open.c
+++ b/sysdeps/unix/sysv/linux/open.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, non-LFS.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/open64.c b/sysdeps/unix/sysv/linux/open64.c
index f15a921..7558be3 100644
--- a/sysdeps/unix/sysv/linux/open64.c
+++ b/sysdeps/unix/sysv/linux/open64.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, LFS.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/open64_nocancel.c b/sysdeps/unix/sysv/linux/open64_nocancel.c
index c6b6845..7a62eba 100644
--- a/sysdeps/unix/sysv/linux/open64_nocancel.c
+++ b/sysdeps/unix/sysv/linux/open64_nocancel.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, LFS, non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/open_by_handle_at.c b/sysdeps/unix/sysv/linux/open_by_handle_at.c
index 730059d..824b214 100644
--- a/sysdeps/unix/sysv/linux/open_by_handle_at.c
+++ b/sysdeps/unix/sysv/linux/open_by_handle_at.c
@@ -1,5 +1,5 @@
/* Obtain handle for an open file via a handle. Linux implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/open_nocancel.c b/sysdeps/unix/sysv/linux/open_nocancel.c
index d3412ca..98afb73 100644
--- a/sysdeps/unix/sysv/linux/open_nocancel.c
+++ b/sysdeps/unix/sysv/linux/open_nocancel.c
@@ -1,5 +1,5 @@
/* Linux open syscall implementation, non-LFS, non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/openat.c b/sysdeps/unix/sysv/linux/openat.c
index d8400f4..be8b52a 100644
--- a/sysdeps/unix/sysv/linux/openat.c
+++ b/sysdeps/unix/sysv/linux/openat.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, non-LFS.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/openat64.c b/sysdeps/unix/sysv/linux/openat64.c
index 3bf6730..7e71a7c 100644
--- a/sysdeps/unix/sysv/linux/openat64.c
+++ b/sysdeps/unix/sysv/linux/openat64.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, LFS.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/openat64_nocancel.c b/sysdeps/unix/sysv/linux/openat64_nocancel.c
index 4e1cbb2..80c6cb2 100644
--- a/sysdeps/unix/sysv/linux/openat64_nocancel.c
+++ b/sysdeps/unix/sysv/linux/openat64_nocancel.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, LFS, non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/openat_nocancel.c b/sysdeps/unix/sysv/linux/openat_nocancel.c
index 5a9458d..abb2f37 100644
--- a/sysdeps/unix/sysv/linux/openat_nocancel.c
+++ b/sysdeps/unix/sysv/linux/openat_nocancel.c
@@ -1,5 +1,5 @@
/* Linux openat syscall implementation, non-LFS, non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/opendir.c b/sysdeps/unix/sysv/linux/opendir.c
index b521813..48e3dc4 100644
--- a/sysdeps/unix/sysv/linux/opendir.c
+++ b/sysdeps/unix/sysv/linux/opendir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/arch-syscall.h b/sysdeps/unix/sysv/linux/or1k/arch-syscall.h
index 2d21fa2..c2a1d51 100644
--- a/sysdeps/unix/sysv/linux/or1k/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/or1k/arch-syscall.h
@@ -102,6 +102,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -132,6 +133,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_llseek 62
#define __NR_lookup_dcookie 18
@@ -181,6 +183,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_or1k_atomic 244
@@ -224,6 +227,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat 38
#define __NR_renameat2 276
#define __NR_request_key 218
@@ -285,6 +289,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/or1k/bits/procfs.h b/sysdeps/unix/sysv/linux/or1k/bits/procfs.h
index e6a799f..23de266 100644
--- a/sysdeps/unix/sysv/linux/or1k/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/or1k/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/clone.c b/sysdeps/unix/sysv/linux/or1k/clone.c
index ff8b9eb..5d775bd 100644
--- a/sysdeps/unix/sysv/linux/or1k/clone.c
+++ b/sysdeps/unix/sysv/linux/or1k/clone.c
@@ -1,5 +1,5 @@
/* OpenRISC helper for the clone syscall.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/getcontext-common.S b/sysdeps/unix/sysv/linux/or1k/getcontext-common.S
index 9187749..f867689 100644
--- a/sysdeps/unix/sysv/linux/or1k/getcontext-common.S
+++ b/sysdeps/unix/sysv/linux/or1k/getcontext-common.S
@@ -1,5 +1,5 @@
/* Save current context. OpenRISC common version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/getcontext.S b/sysdeps/unix/sysv/linux/or1k/getcontext.S
index da69e69..692a624 100644
--- a/sysdeps/unix/sysv/linux/or1k/getcontext.S
+++ b/sysdeps/unix/sysv/linux/or1k/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/libc.abilist b/sysdeps/unix/sysv/linux/or1k/libc.abilist
index 959e59e..b62d59f 100644
--- a/sysdeps/unix/sysv/linux/or1k/libc.abilist
+++ b/sysdeps/unix/sysv/linux/or1k/libc.abilist
@@ -2259,3 +2259,22 @@ GLIBC_2.40 getcontext F
GLIBC_2.40 makecontext F
GLIBC_2.40 setcontext F
GLIBC_2.40 swapcontext F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/or1k/libm.abilist b/sysdeps/unix/sysv/linux/or1k/libm.abilist
index 4db8702..bef7a98 100644
--- a/sysdeps/unix/sysv/linux/or1k/libm.abilist
+++ b/sysdeps/unix/sysv/linux/or1k/libm.abilist
@@ -787,3 +787,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/or1k/makecontext.c b/sysdeps/unix/sysv/linux/or1k/makecontext.c
index 7e131ba..07557e7 100644
--- a/sysdeps/unix/sysv/linux/or1k/makecontext.c
+++ b/sysdeps/unix/sysv/linux/or1k/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/mmap_internal.h b/sysdeps/unix/sysv/linux/or1k/mmap_internal.h
index f6fb86e..320fe13 100644
--- a/sysdeps/unix/sysv/linux/or1k/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/or1k/mmap_internal.h
@@ -1,5 +1,5 @@
/* Common mmap definition for Linux implementation. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/or1k_clone.S b/sysdeps/unix/sysv/linux/or1k/or1k_clone.S
index 7b03257..5884713 100644
--- a/sysdeps/unix/sysv/linux/or1k/or1k_clone.S
+++ b/sysdeps/unix/sysv/linux/or1k/or1k_clone.S
@@ -1,5 +1,5 @@
/* clone helper __or1k_clone for OpenRISC.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/prctl.c b/sysdeps/unix/sysv/linux/or1k/prctl.c
index 1aa707d..d443edd 100644
--- a/sysdeps/unix/sysv/linux/or1k/prctl.c
+++ b/sysdeps/unix/sysv/linux/or1k/prctl.c
@@ -1,5 +1,5 @@
/* prctl - Linux specific syscall. OpenRISC version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/setcontext-common.S b/sysdeps/unix/sysv/linux/or1k/setcontext-common.S
index 8a4f147..d0e72f2 100644
--- a/sysdeps/unix/sysv/linux/or1k/setcontext-common.S
+++ b/sysdeps/unix/sysv/linux/or1k/setcontext-common.S
@@ -1,5 +1,5 @@
/* Set current context. OpenRISC common version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/setcontext.S b/sysdeps/unix/sysv/linux/or1k/setcontext.S
index a49a5c5..a64ec28 100644
--- a/sysdeps/unix/sysv/linux/or1k/setcontext.S
+++ b/sysdeps/unix/sysv/linux/or1k/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/sigcontextinfo.h b/sysdeps/unix/sysv/linux/or1k/sigcontextinfo.h
index 841dbbe..8adc5af 100644
--- a/sysdeps/unix/sysv/linux/or1k/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/or1k/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* Profile counter helper to get PC from sigcontext. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/swapcontext-common.S b/sysdeps/unix/sysv/linux/or1k/swapcontext-common.S
index b7e2d4c..d508f29 100644
--- a/sysdeps/unix/sysv/linux/or1k/swapcontext-common.S
+++ b/sysdeps/unix/sysv/linux/or1k/swapcontext-common.S
@@ -1,5 +1,5 @@
/* Swap two contexts. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/swapcontext.S b/sysdeps/unix/sysv/linux/or1k/swapcontext.S
index 861c1e2..05ed2f8 100644
--- a/sysdeps/unix/sysv/linux/or1k/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/or1k/swapcontext.S
@@ -1,5 +1,5 @@
/* Swap two contexts. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/sys/ucontext.h b/sysdeps/unix/sysv/linux/or1k/sys/ucontext.h
index 1b42859..ea7217d 100644
--- a/sysdeps/unix/sysv/linux/or1k/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/or1k/sys/ucontext.h
@@ -1,5 +1,5 @@
/* ucontext_t definition, OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/or1k/syscall_cancel.S b/sysdeps/unix/sysv/linux/or1k/syscall_cancel.S
new file mode 100644
index 0000000..733719a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/or1k/syscall_cancel.S
@@ -0,0 +1,63 @@
+/* Cancellable syscall wrapper. Linux/or1k version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+ENTRY (__syscall_cancel_arch)
+ l.addi r1, r1, -4
+ cfi_def_cfa_offset (4)
+ l.sw 0(r1), r9
+ cfi_offset (9, -4)
+
+ .global __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ l.movhi r19, hi(0)
+ l.lwz r17, 0(r3)
+ l.andi r17, r17, 8
+ l.sfeq r17, r19
+ l.bnf 1f
+
+ /* Issue a 6 argument syscall. */
+ l.or r11, r4, r4
+ l.or r3, r5, r5
+ l.or r4, r6, r6
+ l.or r5, r7, r7
+ l.or r6, r8, r8
+ l.lwz r7, 4(r1)
+ l.lwz r8, 8(r1)
+ l.sys 1
+ l.nop
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ l.lwz r9, 0(r1)
+ l.jr r9
+ l.addi r1, r1, 4
+ cfi_remember_state
+ cfi_def_cfa_offset (0)
+ cfi_restore (9)
+1:
+ cfi_restore_state
+ l.jal __syscall_do_cancel
+ l.nop
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/or1k/sysdep.c b/sysdeps/unix/sysv/linux/or1k/sysdep.c
index f9a4e15..3619995 100644
--- a/sysdeps/unix/sysv/linux/or1k/sysdep.c
+++ b/sysdeps/unix/sysv/linux/or1k/sysdep.c
@@ -1,5 +1,5 @@
/* OpenRISC wrapper for setting errno.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/or1k/sysdep.h b/sysdeps/unix/sysv/linux/or1k/sysdep.h
index ea3cf34..284d872 100644
--- a/sysdeps/unix/sysv/linux/or1k/sysdep.h
+++ b/sysdeps/unix/sysv/linux/or1k/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler and syscall macros. OpenRISC version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pathconf.c b/sysdeps/unix/sysv/linux/pathconf.c
index d593712..87a0a3a 100644
--- a/sysdeps/unix/sysv/linux/pathconf.c
+++ b/sysdeps/unix/sysv/linux/pathconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about a file. Linux version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -186,6 +186,9 @@ __statfs_link_max (int result, const struct statfs *fsbuf, const char *file,
case LUSTRE_SUPER_MAGIC:
return LUSTRE_LINK_MAX;
+ case BTRFS_SUPER_MAGIC:
+ return BTRFS_LINK_MAX;
+
default:
return LINUX_LINK_MAX;
}
diff --git a/sysdeps/unix/sysv/linux/pathconf.h b/sysdeps/unix/sysv/linux/pathconf.h
index b5c0e35..9683cf8 100644
--- a/sysdeps/unix/sysv/linux/pathconf.h
+++ b/sysdeps/unix/sysv/linux/pathconf.h
@@ -1,5 +1,5 @@
/* Common parts of Linux implementation of pathconf and fpathconf.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pause.c b/sysdeps/unix/sysv/linux/pause.c
index a29dac5..1e421ce 100644
--- a/sysdeps/unix/sysv/linux/pause.c
+++ b/sysdeps/unix/sysv/linux/pause.c
@@ -1,5 +1,5 @@
/* Linux pause syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/personality.c b/sysdeps/unix/sysv/linux/personality.c
index 3c975bf..3332fc6 100644
--- a/sysdeps/unix/sysv/linux/personality.c
+++ b/sysdeps/unix/sysv/linux/personality.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pidfd_getpid.c b/sysdeps/unix/sysv/linux/pidfd_getpid.c
index 6967477..4f16865 100644
--- a/sysdeps/unix/sysv/linux/pidfd_getpid.c
+++ b/sysdeps/unix/sysv/linux/pidfd_getpid.c
@@ -1,5 +1,5 @@
/* pidfd_getpid - Get the associated pid from the pid file descriptor.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pidfd_spawn.c b/sysdeps/unix/sysv/linux/pidfd_spawn.c
index 2735315..6d5a1bd 100644
--- a/sysdeps/unix/sysv/linux/pidfd_spawn.c
+++ b/sysdeps/unix/sysv/linux/pidfd_spawn.c
@@ -1,5 +1,5 @@
/* pidfd_spawn - Spawn a process and return a PID file descriptor.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pidfd_spawnp.c b/sysdeps/unix/sysv/linux/pidfd_spawnp.c
index 5175a6f..f2af942 100644
--- a/sysdeps/unix/sysv/linux/pidfd_spawnp.c
+++ b/sysdeps/unix/sysv/linux/pidfd_spawnp.c
@@ -1,5 +1,5 @@
/* pidfd_spawnp - Spawn a process and return a PID file descriptor.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pipe.c b/sysdeps/unix/sysv/linux/pipe.c
index e47e3fb..2955f41 100644
--- a/sysdeps/unix/sysv/linux/pipe.c
+++ b/sysdeps/unix/sysv/linux/pipe.c
@@ -1,5 +1,5 @@
/* Create create pipe. Linux generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pkey_get.c b/sysdeps/unix/sysv/linux/pkey_get.c
index 743bd09..5036c93 100644
--- a/sysdeps/unix/sysv/linux/pkey_get.c
+++ b/sysdeps/unix/sysv/linux/pkey_get.c
@@ -1,5 +1,5 @@
/* Obtaining the thread memory protection key, generic stub.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,10 +17,13 @@
<https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <sys/mman.h>
int
-pkey_get (int key)
+__pkey_get (int key)
{
__set_errno (ENOSYS);
return -1;
}
+libc_hidden_def (__pkey_get)
+weak_alias (__pkey_get, pkey_get)
diff --git a/sysdeps/unix/sysv/linux/pkey_mprotect.c b/sysdeps/unix/sysv/linux/pkey_mprotect.c
index b7afa79..376c728 100644
--- a/sysdeps/unix/sysv/linux/pkey_mprotect.c
+++ b/sysdeps/unix/sysv/linux/pkey_mprotect.c
@@ -1,5 +1,5 @@
/* mprotect with a memory protection key.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
#include <sysdep.h>
int
-pkey_mprotect (void *addr, size_t len, int prot, int pkey)
+__pkey_mprotect (void *addr, size_t len, int prot, int pkey)
{
if (pkey == -1)
/* If the key is -1, the system call is precisely equivalent to
@@ -30,3 +30,5 @@ pkey_mprotect (void *addr, size_t len, int prot, int pkey)
return __mprotect (addr, len, prot);
return INLINE_SYSCALL_CALL (pkey_mprotect, addr, len, prot, pkey);
}
+libc_hidden_def (__pkey_mprotect)
+weak_alias (__pkey_mprotect, pkey_mprotect)
diff --git a/sysdeps/unix/sysv/linux/pkey_set.c b/sysdeps/unix/sysv/linux/pkey_set.c
index d5d59e3..a3b33ba 100644
--- a/sysdeps/unix/sysv/linux/pkey_set.c
+++ b/sysdeps/unix/sysv/linux/pkey_set.c
@@ -1,5 +1,5 @@
/* Changing the thread memory protection key, generic stub.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,10 +17,13 @@
<https://www.gnu.org/licenses/>. */
#include <errno.h>
+#include <sys/mman.h>
int
-pkey_set (int key, unsigned int access_rights)
+__pkey_set (int key, unsigned int access_restrictions)
{
__set_errno (ENOSYS);
return -1;
}
+libc_hidden_def (__pkey_set)
+weak_alias (__pkey_set, pkey_set)
diff --git a/sysdeps/unix/sysv/linux/poll.c b/sysdeps/unix/sysv/linux/poll.c
index 76c967d..8ee6621 100644
--- a/sysdeps/unix/sysv/linux/poll.c
+++ b/sysdeps/unix/sysv/linux/poll.c
@@ -1,5 +1,5 @@
/* Linux poll implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/posix_fadvise.c b/sysdeps/unix/sysv/linux/posix_fadvise.c
index 150f5df..33d9b02 100644
--- a/sysdeps/unix/sysv/linux/posix_fadvise.c
+++ b/sysdeps/unix/sysv/linux/posix_fadvise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/posix_fadvise64.c b/sysdeps/unix/sysv/linux/posix_fadvise64.c
index 681bc20..b2dc2f8 100644
--- a/sysdeps/unix/sysv/linux/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/posix_fadvise64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/posix_fallocate.c b/sysdeps/unix/sysv/linux/posix_fallocate.c
index fff373c..c0ab457 100644
--- a/sysdeps/unix/sysv/linux/posix_fallocate.c
+++ b/sysdeps/unix/sysv/linux/posix_fallocate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/posix_fallocate64.c b/sysdeps/unix/sysv/linux/posix_fallocate64.c
index f9b122b..8dfbcb1 100644
--- a/sysdeps/unix/sysv/linux/posix_fallocate64.c
+++ b/sysdeps/unix/sysv/linux/posix_fallocate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/posix_madvise.c b/sysdeps/unix/sysv/linux/posix_madvise.c
index ae1a712..6802c3f 100644
--- a/sysdeps/unix/sysv/linux/posix_madvise.c
+++ b/sysdeps/unix/sysv/linux/posix_madvise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/Makefile b/sysdeps/unix/sysv/linux/powerpc/Makefile
index 24827ef..cddb624 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Makefile
+++ b/sysdeps/unix/sysv/linux/powerpc/Makefile
@@ -13,6 +13,10 @@ gen-as-const-headers += ucontext_i.sym
endif
ifeq ($(subdir),elf)
+dl-routines += \
+ dl-hwcap-info \
+ # dl-routines
+
# Otherwise tst-tls-dlinfo fails due to tst-tlsmod2.so using static tls.
ifeq ($(have-tls-get-addr-optimize),yes)
LDFLAGS-tst-tlsmod2.so += -Wl,--no-tls-get-addr-optimize
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/environments.h b/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
index d31d5c2..d8339e6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
index 2f17fe9..24fd3b7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/PowerPC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
index 4044c00..267fa09 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
@@ -1,5 +1,5 @@
/* Structure types for pre-termios terminal ioctls. Linux/powerpc version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,17 +32,6 @@ struct winsize
unsigned short int ws_ypixel;
};
-#define NCC 10
-struct termio
- {
- unsigned short int c_iflag; /* input mode flags */
- unsigned short int c_oflag; /* output mode flags */
- unsigned short int c_cflag; /* control mode flags */
- unsigned short int c_lflag; /* local mode flags */
- unsigned char c_line; /* line discipline */
- unsigned char c_cc[NCC]; /* control characters */
-};
-
/* modem lines */
#define TIOCM_LE 0x001
#define TIOCM_DTR 0x002
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ioctls.h b/sysdeps/unix/sysv/linux/powerpc/bits/ioctls.h
new file mode 100644
index 0000000..e1921df
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/ioctls.h
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IOCTL_H
+# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
+#endif
+
+/* Use the definitions from the kernel header files. */
+#include <asm/ioctls.h>
+
+/* PowerPC quirk: on PowerPC only, ioctl() emulates the TCGETS/TCSETS*
+ ioctls with tcgetattr/tcsetattr using the glibc struct termios.
+ As struct termios2 is the same as the kernel struct termios on PowerPC,
+ simply consider the kernel ones as the termios2 interface, even
+ though the kernel doesn't call it that. */
+
+#define TCGETS2 _IOR ('t', 19, struct termios2)
+#define TCSETS2 _IOW ('t', 20, struct termios2)
+#define TCSETSW2 _IOW ('t', 21, struct termios2)
+#define TCSETSF2 _IOW ('t', 22, struct termios2)
+
+#include <linux/sockios.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h
index d2a2b5b..0c281d8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h
@@ -1,5 +1,5 @@
/* struct ipc_perm definition. Linux/powerpc version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
index 2b392cc..99c8e52 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/PowerPC version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h b/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
index 21843fb..7749db6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
@@ -1,5 +1,5 @@
/* Facilities specific to the PowerPC architecture on Linux
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h b/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h
index 4e21788..501464b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. PowerPC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h
index 509919d..540cdbb 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. Linux/PPC version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/rseq.h b/sysdeps/unix/sysv/linux/powerpc/bits/rseq.h
index 85544aa..d2d6216 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux powerpc architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h b/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
index 2c198eb..17a17ce 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h b/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h
index 0d3e095..fee5674 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures. Version for POWER.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h b/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h
index 2cf3315..f0721f9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
index c5f395a..20f1661 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
@@ -1,5 +1,5 @@
/* termios c_cc symbolic constant definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h
index 6607bb0..a90d581 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cflag.h
@@ -1,5 +1,5 @@
/* termios control mode definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -35,5 +35,7 @@
#define CLOCAL 00100000
#ifdef __USE_MISC
-# define ADDRB 04000000000
+# define ADDRB 04000000000
+# define CMSPAR 010000000000 /* Mark or space (stick) parity. */
+# define CRTSCTS 020000000000 /* Flow control. */
#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
index b5e066d..ef076dc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
@@ -1,5 +1,5 @@
/* termios input mode definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h
index 9f6b0ad5..9b67040 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h
@@ -1,5 +1,5 @@
/* termios local mode definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h
index 99a0bd0..67f52df 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_oflag.h
@@ -1,5 +1,5 @@
/* termios output mode definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-cbaud.h
index 6862050..7bcbba4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-cbaud.h
@@ -1,5 +1,5 @@
/* termios baud rate selection definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,29 +17,29 @@
<https://www.gnu.org/licenses/>. */
#ifndef _TERMIOS_H
-# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+# error "Never include <bits/termios-cbaud.h> directly; use <termios.h> instead."
#endif
#ifdef __USE_MISC
-# define CBAUD 0000377
-# define CBAUDEX 0000020
-# define CMSPAR 010000000000 /* mark or space (stick) parity */
-# define CRTSCTS 020000000000 /* flow control */
+# define CBAUD 000000377
+# define CBAUDEX 000000020
+# define CIBAUD 077600000
+# define IBSHIFT 16
#endif
-#define B57600 00020
-#define B115200 00021
-#define B230400 00022
-#define B460800 00023
-#define B500000 00024
-#define B576000 00025
-#define B921600 00026
-#define B1000000 00027
-#define B1152000 00030
-#define B1500000 00031
-#define B2000000 00032
-#define B2500000 00033
-#define B3000000 00034
-#define B3500000 00035
-#define B4000000 00036
-#define __MAX_BAUD B4000000
+#define __B57600 00020
+#define __B115200 00021
+#define __B230400 00022
+#define __B460800 00023
+#define __B500000 00024
+#define __B576000 00025
+#define __B921600 00026
+#define __B1000000 00027
+#define __B1152000 00030
+#define __B1500000 00031
+#define __B2000000 00032
+#define __B2500000 00033
+#define __B3000000 00034
+#define __B3500000 00035
+#define __B4000000 00036
+#define __BOTHER 00037
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h
index aec8ac9..fe74858 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-misc.h
@@ -1,5 +1,5 @@
/* termios baud platform specific definitions. Linux/powerpc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/timesize.h b/sysdeps/unix/sysv/linux/powerpc/bits/timesize.h
index d25cff2..31edb4b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/PowerPC.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
index 44ae082..43e1827 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Linux/PowerPC implementation of the SysV message struct msqid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h
index ccee57c..d5c40f5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* PowerPC implementation of the semaphore struct semid_ds.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h
index 58145d0..9a751fe 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Linux/PowerPC implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/typesizes.h b/sysdeps/unix/sysv/linux/powerpc/bits/typesizes.h
index 065ede2..9db989d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. PowerPC version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/cancellation-pc-check.h b/sysdeps/unix/sysv/linux/powerpc/cancellation-pc-check.h
new file mode 100644
index 0000000..709882d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/cancellation-pc-check.h
@@ -0,0 +1,65 @@
+/* Architecture specific code for pthread cancellation handling.
+ Linux/PowerPC version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NPTL_CANCELLATION_PC_CHECK
+#define _NPTL_CANCELLATION_PC_CHECK
+
+#include <sigcontextinfo.h>
+
+/* For syscalls with side-effects (e.g read that might return partial read),
+ the kernel cannot restart the syscall when interrupted by a signal, it must
+ return from the call with whatever partial result. In this case, the saved
+ program counter is set just after the syscall instruction, so the SIGCANCEL
+ handler should not act on cancellation.
+
+ The __syscall_cancel_arch function, used for all cancellable syscalls,
+ contains two extra markers, __syscall_cancel_arch_start and
+ __syscall_cancel_arch_end. The former points to just before the initial
+ conditional branch that checks if the thread has received a cancellation
+ request, while former points to the instruction after the one responsible
+ to issue the syscall.
+
+ The function check if the program counter (PC) from ucontext_t CTX is
+ within the start and then end boundary from the __syscall_cancel_arch
+ bridge. Return TRUE if the PC is within the boundary, meaning the
+ syscall does not have any side effects; or FALSE otherwise. */
+
+static __always_inline bool
+cancellation_pc_check (void *ctx)
+{
+ /* Both are defined in syscall_cancel.S. */
+ extern const char __syscall_cancel_arch_start[1];
+ extern const char __syscall_cancel_arch_end_sc[1];
+#if defined(USE_PPC_SVC) && defined(__powerpc64__)
+ extern const char __syscall_cancel_arch_end_svc[1];
+#endif
+
+ uintptr_t pc = sigcontext_get_pc (ctx);
+
+ return pc >= (uintptr_t) __syscall_cancel_arch_start
+#if defined(USE_PPC_SVC) && defined(__powerpc64__)
+ && THREAD_GET_HWCAP() & PPC_FEATURE2_SCV
+ ? pc < (uintptr_t) __syscall_cancel_arch_end_sc
+ : pc < (uintptr_t) __syscall_cancel_arch_end_svc;
+#else
+ && pc < (uintptr_t) __syscall_cancel_arch_end_sc;
+#endif
+}
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/configure b/sysdeps/unix/sysv/linux/powerpc/configure
index 61ae675..ef2055d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/configure
+++ b/sysdeps/unix/sysv/linux/powerpc/configure
@@ -40,48 +40,7 @@ fi
printf "%s\n" "$libc_cv_mlong_double_128ibm" >&6; }
if test "$libc_cv_mlong_double_128ibm" = no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC $CFLAGS supports -mabi=ibmlongdouble" >&5
-printf %s "checking whether $CC $CFLAGS supports -mabi=ibmlongdouble... " >&6; }
-if test ${libc_cv_mabi_ibmlongdouble+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <float.h>
-int
-main (void)
-{
-
-#if LDBL_MANT_DIG != 106
-# error "compiler doesn't implement IBM extended format of long double"
-#endif
-long double foobar (long double x) { return x; }
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
- libc_cv_mabi_ibmlongdouble=yes
-else case e in #(
- e) libc_cv_mabi_ibmlongdouble=no ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- CFLAGS="$save_CFLAGS" ;;
-esac
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mabi_ibmlongdouble" >&5
-printf "%s\n" "$libc_cv_mabi_ibmlongdouble" >&6; }
-
- if test "$libc_cv_mabi_ibmlongdouble" = yes; then
- CFLAGS="$CFLAGS -mabi=ibmlongdouble"
- else
- as_fn_error $? "this configuration requires -mlong-double-128 IBM extended format support" "$LINENO" 5
- fi
+ CFLAGS="$CFLAGS -mabi=ibmlongdouble"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for linker that supports --no-tls-get-addr-optimize" >&5
diff --git a/sysdeps/unix/sysv/linux/powerpc/configure.ac b/sysdeps/unix/sysv/linux/powerpc/configure.ac
index 8d2ec60..42347a6 100644
--- a/sysdeps/unix/sysv/linux/powerpc/configure.ac
+++ b/sysdeps/unix/sysv/linux/powerpc/configure.ac
@@ -16,24 +16,7 @@ long double foobar (long double x) { return x; }]])],
CFLAGS="$save_CFLAGS"])
if test "$libc_cv_mlong_double_128ibm" = no; then
- AC_CACHE_CHECK(whether $CC $CFLAGS supports -mabi=ibmlongdouble,
- libc_cv_mabi_ibmlongdouble, [dnl
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <float.h>]], [[
-#if LDBL_MANT_DIG != 106
-# error "compiler doesn't implement IBM extended format of long double"
-#endif
-long double foobar (long double x) { return x; }]])],
- libc_cv_mabi_ibmlongdouble=yes,
- libc_cv_mabi_ibmlongdouble=no)
- CFLAGS="$save_CFLAGS"])
-
- if test "$libc_cv_mabi_ibmlongdouble" = yes; then
- CFLAGS="$CFLAGS -mabi=ibmlongdouble"
- else
- AC_MSG_ERROR([this configuration requires -mlong-double-128 IBM extended format support])
- fi
+ CFLAGS="$CFLAGS -mabi=ibmlongdouble"
fi
LIBC_LINKER_FEATURE([--no-tls-get-addr-optimize], [-Wl,--no-tls-get-addr-optimize],
diff --git a/sysdeps/unix/sysv/linux/powerpc/cpu-features.c b/sysdeps/unix/sysv/linux/powerpc/cpu-features.c
index a947d62..88fe55f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/cpu-features.c
+++ b/sysdeps/unix/sysv/linux/powerpc/cpu-features.c
@@ -1,5 +1,5 @@
/* Initialize cpu feature data. PowerPC version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,8 +21,19 @@
#include <cpu-features.h>
#include <elf/dl-tunables.h>
#include <dl-tunables-parse.h>
+#include <dl-hwcap-info.h>
#include <unistd.h>
#include <string.h>
+#include <ldsodefs.h>
+
+static void set_hwcap_bit (unsigned long int *hwcap, bool disable,
+ unsigned long int tcb_value, unsigned int value)
+{
+ if (disable)
+ *hwcap &= ~value;
+ else
+ *hwcap |= tcb_value & value;
+}
static void
TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
@@ -55,32 +66,27 @@ TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *valp)
continue;
size_t offset = 0;
- for (int i = 0; i < array_length (hwcap_tunables); ++i)
+ for (int i = 0; i < __dl_hwcap_info_size; ++i)
{
- const char *hwcap_name = hwcap_names + offset;
+ const char *hwcap_name = __dl_hwcap_names + offset;
size_t hwcap_name_len = strlen (hwcap_name);
/* Check the tunable name on the supported list. */
if (tunable_str_comma_strcmp (&t, hwcap_name, hwcap_name_len))
{
- /* Update the hwcap and hwcap2 bits. */
- if (t.disable)
+ switch (__dl_hwcap_info[i].hwcap)
{
- /* Id is 1 for hwcap2 tunable. */
- if (hwcap_tunables[i].id)
- cpu_features->hwcap2 &= ~(hwcap_tunables[i].mask);
- else
- cpu_features->hwcap &= ~(hwcap_tunables[i].mask);
- }
- else
- {
- /* Enable the features and also check that no unsupported
- features were enabled by user. */
- if (hwcap_tunables[i].id)
- cpu_features->hwcap2 |= (tcbv_hwcap2 & hwcap_tunables[i].mask);
- else
- cpu_features->hwcap |= (tcbv_hwcap & hwcap_tunables[i].mask);
+ case AT_HWCAP:
+ set_hwcap_bit (&cpu_features->hwcap, t.disable, tcbv_hwcap,
+ __dl_hwcap_info[i].value);
+ break;
+
+ case AT_HWCAP2:
+ set_hwcap_bit (&cpu_features->hwcap2, t.disable, tcbv_hwcap2,
+ __dl_hwcap_info[i].value);
+ break;
+
+ /* Ignore unknown values. */
}
- break;
}
offset += hwcap_name_len + 1;
}
diff --git a/sysdeps/unix/sysv/linux/powerpc/cpu-features.h b/sysdeps/unix/sysv/linux/powerpc/cpu-features.h
index e9eb6a1..f15a803 100644
--- a/sysdeps/unix/sysv/linux/powerpc/cpu-features.h
+++ b/sysdeps/unix/sysv/linux/powerpc/cpu-features.h
@@ -1,5 +1,5 @@
/* Initialize cpu feature data. PowerPC version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -30,103 +30,4 @@ struct cpu_features
unsigned long int hwcap4;
};
-static const char hwcap_names[] = {
- "4xxmac\0"
- "altivec\0"
- "arch_2_05\0"
- "arch_2_06\0"
- "archpmu\0"
- "booke\0"
- "cellbe\0"
- "dfp\0"
- "efpdouble\0"
- "efpsingle\0"
- "fpu\0"
- "ic_snoop\0"
- "mmu\0"
- "notb\0"
- "pa6t\0"
- "power4\0"
- "power5\0"
- "power5+\0"
- "power6x\0"
- "ppc32\0"
- "ppc601\0"
- "ppc64\0"
- "ppcle\0"
- "smt\0"
- "spe\0"
- "true_le\0"
- "ucache\0"
- "vsx\0"
- "arch_2_07\0"
- "dscr\0"
- "ebb\0"
- "htm\0"
- "htm-nosc\0"
- "htm-no-suspend\0"
- "isel\0"
- "tar\0"
- "vcrypto\0"
- "arch_3_00\0"
- "ieee128\0"
- "darn\0"
- "scv\0"
- "arch_3_1\0"
- "mma\0"
-};
-
-static const struct
-{
- unsigned int mask;
- bool id;
-} hwcap_tunables[] = {
- /* AT_HWCAP tunable masks. */
- { PPC_FEATURE_HAS_4xxMAC, 0 },
- { PPC_FEATURE_HAS_ALTIVEC, 0 },
- { PPC_FEATURE_ARCH_2_05, 0 },
- { PPC_FEATURE_ARCH_2_06, 0 },
- { PPC_FEATURE_PSERIES_PERFMON_COMPAT, 0 },
- { PPC_FEATURE_BOOKE, 0 },
- { PPC_FEATURE_CELL_BE, 0 },
- { PPC_FEATURE_HAS_DFP, 0 },
- { PPC_FEATURE_HAS_EFP_DOUBLE, 0 },
- { PPC_FEATURE_HAS_EFP_SINGLE, 0 },
- { PPC_FEATURE_HAS_FPU, 0 },
- { PPC_FEATURE_ICACHE_SNOOP, 0 },
- { PPC_FEATURE_HAS_MMU, 0 },
- { PPC_FEATURE_NO_TB, 0 },
- { PPC_FEATURE_PA6T, 0 },
- { PPC_FEATURE_POWER4, 0 },
- { PPC_FEATURE_POWER5, 0 },
- { PPC_FEATURE_POWER5_PLUS, 0 },
- { PPC_FEATURE_POWER6_EXT, 0 },
- { PPC_FEATURE_32, 0 },
- { PPC_FEATURE_601_INSTR, 0 },
- { PPC_FEATURE_64, 0 },
- { PPC_FEATURE_PPC_LE, 0 },
- { PPC_FEATURE_SMT, 0 },
- { PPC_FEATURE_HAS_SPE, 0 },
- { PPC_FEATURE_TRUE_LE, 0 },
- { PPC_FEATURE_UNIFIED_CACHE, 0 },
- { PPC_FEATURE_HAS_VSX, 0 },
-
- /* AT_HWCAP2 tunable masks. */
- { PPC_FEATURE2_ARCH_2_07, 1 },
- { PPC_FEATURE2_HAS_DSCR, 1 },
- { PPC_FEATURE2_HAS_EBB, 1 },
- { PPC_FEATURE2_HAS_HTM, 1 },
- { PPC_FEATURE2_HTM_NOSC, 1 },
- { PPC_FEATURE2_HTM_NO_SUSPEND, 1 },
- { PPC_FEATURE2_HAS_ISEL, 1 },
- { PPC_FEATURE2_HAS_TAR, 1 },
- { PPC_FEATURE2_HAS_VEC_CRYPTO, 1 },
- { PPC_FEATURE2_ARCH_3_00, 1 },
- { PPC_FEATURE2_HAS_IEEE128, 1 },
- { PPC_FEATURE2_DARN, 1 },
- { PPC_FEATURE2_SCV, 1 },
- { PPC_FEATURE2_ARCH_3_1, 1 },
- { PPC_FEATURE2_MMA, 1 },
-};
-
#endif /* __CPU_FEATURES_H */
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-auxv.h b/sysdeps/unix/sysv/linux/powerpc/dl-auxv.h
index e47dac6..ddb9328 100644
--- a/sysdeps/unix/sysv/linux/powerpc/dl-auxv.h
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-auxv.h
@@ -1,5 +1,5 @@
/* Auxiliary vector processing. Linux/PPC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.c b/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.c
new file mode 100644
index 0000000..1178828
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.c
@@ -0,0 +1,117 @@
+/* HWCAP string information. PowerPC version.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
+#include <dl-hwcap-info.h>
+
+const char __dl_hwcap_names[] = {
+ "4xxmac\0"
+ "altivec\0"
+ "arch_2_05\0"
+ "arch_2_06\0"
+ "archpmu\0"
+ "booke\0"
+ "cellbe\0"
+ "dfp\0"
+ "efpdouble\0"
+ "efpsingle\0"
+ "fpu\0"
+ "ic_snoop\0"
+ "mmu\0"
+ "notb\0"
+ "pa6t\0"
+ "power4\0"
+ "power5\0"
+ "power5+\0"
+ "power6x\0"
+ "ppc32\0"
+ "ppc601\0"
+ "ppc64\0"
+ "ppcle\0"
+ "smt\0"
+ "spe\0"
+ "true_le\0"
+ "ucache\0"
+ "vsx\0"
+ "arch_2_07\0"
+ "dscr\0"
+ "ebb\0"
+ "htm\0"
+ "htm-nosc\0"
+ "htm-no-suspend\0"
+ "isel\0"
+ "tar\0"
+ "vcrypto\0"
+ "arch_3_00\0"
+ "ieee128\0"
+ "darn\0"
+ "scv\0"
+ "arch_3_1\0"
+ "mma\0"
+};
+
+const struct hwcap_info_t __dl_hwcap_info[] =
+{
+ /* AT_HWCAP tunable masks. */
+ { PPC_FEATURE_HAS_4xxMAC, AT_HWCAP },
+ { PPC_FEATURE_HAS_ALTIVEC, AT_HWCAP },
+ { PPC_FEATURE_ARCH_2_05, AT_HWCAP },
+ { PPC_FEATURE_ARCH_2_06, AT_HWCAP },
+ { PPC_FEATURE_PSERIES_PERFMON_COMPAT, AT_HWCAP },
+ { PPC_FEATURE_BOOKE, AT_HWCAP },
+ { PPC_FEATURE_CELL_BE, AT_HWCAP },
+ { PPC_FEATURE_HAS_DFP, AT_HWCAP },
+ { PPC_FEATURE_HAS_EFP_DOUBLE, AT_HWCAP },
+ { PPC_FEATURE_HAS_EFP_SINGLE, AT_HWCAP },
+ { PPC_FEATURE_HAS_FPU, AT_HWCAP },
+ { PPC_FEATURE_ICACHE_SNOOP, AT_HWCAP },
+ { PPC_FEATURE_HAS_MMU, AT_HWCAP },
+ { PPC_FEATURE_NO_TB, AT_HWCAP },
+ { PPC_FEATURE_PA6T, AT_HWCAP },
+ { PPC_FEATURE_POWER4, AT_HWCAP },
+ { PPC_FEATURE_POWER5, AT_HWCAP },
+ { PPC_FEATURE_POWER5_PLUS, AT_HWCAP },
+ { PPC_FEATURE_POWER6_EXT, AT_HWCAP },
+ { PPC_FEATURE_32, AT_HWCAP },
+ { PPC_FEATURE_601_INSTR, AT_HWCAP },
+ { PPC_FEATURE_64, AT_HWCAP },
+ { PPC_FEATURE_PPC_LE, AT_HWCAP },
+ { PPC_FEATURE_SMT, AT_HWCAP },
+ { PPC_FEATURE_HAS_SPE, AT_HWCAP },
+ { PPC_FEATURE_TRUE_LE, AT_HWCAP },
+ { PPC_FEATURE_UNIFIED_CACHE, AT_HWCAP },
+ { PPC_FEATURE_HAS_VSX, AT_HWCAP },
+
+ /* AT_HWCAP2 tunable masks. */
+ { PPC_FEATURE2_ARCH_2_07, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_DSCR, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_EBB, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_HTM, AT_HWCAP2 },
+ { PPC_FEATURE2_HTM_NOSC, AT_HWCAP2 },
+ { PPC_FEATURE2_HTM_NO_SUSPEND, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_ISEL, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_TAR, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_VEC_CRYPTO, AT_HWCAP2 },
+ { PPC_FEATURE2_ARCH_3_00, AT_HWCAP2 },
+ { PPC_FEATURE2_HAS_IEEE128, AT_HWCAP2 },
+ { PPC_FEATURE2_DARN, AT_HWCAP2 },
+ { PPC_FEATURE2_SCV, AT_HWCAP2 },
+ { PPC_FEATURE2_ARCH_3_1, AT_HWCAP2 },
+ { PPC_FEATURE2_MMA, AT_HWCAP2 },
+};
+
+size_t __dl_hwcap_info_size = array_length (__dl_hwcap_info);
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.h b/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.h
new file mode 100644
index 0000000..194f40c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-hwcap-info.h
@@ -0,0 +1,34 @@
+/* HWCAP string information. PowerPC version.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _DL_HWCAP_INFO_H
+#define _DL_HWCAP_INFO_H
+
+#include <stddef.h>
+#include <sys/auxv.h>
+
+extern const char __dl_hwcap_names[] attribute_hidden;
+
+struct hwcap_info_t
+{
+ unsigned int value;
+ int hwcap;
+};
+extern const struct hwcap_info_t __dl_hwcap_info[] attribute_hidden;
+extern size_t __dl_hwcap_info_size attribute_hidden;
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
index a85d25c..451897b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
@@ -1,5 +1,5 @@
/* elision-conf.c: Lock elision tunable parameters.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,7 @@
#include <pthreadP.h>
#include <elision-conf.h>
#include <unistd.h>
-#include <dl-procinfo.h>
+#include <ldsodefs.h>
#define TUNABLE_NAMESPACE elision
#include <elf/dl-tunables.h>
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-conf.h b/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
index bb7cbb4..11bc7ed 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
@@ -1,5 +1,5 @@
/* elision-conf.h: Lock elision tunable parameters.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
index 0715f69..8eb7c3e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
@@ -1,5 +1,5 @@
/* elision-lock.c: Elided pthread mutex lock.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-timed.c b/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
index 0b7d5bc..6442408 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
@@ -1,5 +1,5 @@
/* elision-timed.c: Lock elision timed lock.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
index 2eaa413..d252799 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
@@ -1,5 +1,5 @@
/* elision-trylock.c: Lock eliding trylock for pthreads.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
index 40322ab..7741514 100644
--- a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
+++ b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
@@ -1,5 +1,5 @@
/* elision-unlock.c: Commit an elided pthread lock.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c b/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
index 12b609c..0c64a62 100644
--- a/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
+++ b/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
@@ -1,5 +1,5 @@
/* Get the frequency of the time base.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
index 41a8f4e..1ff9f1e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/htm.h b/sysdeps/unix/sysv/linux/powerpc/htm.h
index a256c65..672b197 100644
--- a/sysdeps/unix/sysv/linux/powerpc/htm.h
+++ b/sysdeps/unix/sysv/linux/powerpc/htm.h
@@ -2,7 +2,7 @@
compilers and assemblers that do not support the intrinsics and instructions
yet.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/internal-ioctl.h b/sysdeps/unix/sysv/linux/powerpc/internal-ioctl.h
index 6f68946..6c21357 100644
--- a/sysdeps/unix/sysv/linux/powerpc/internal-ioctl.h
+++ b/sysdeps/unix/sysv/linux/powerpc/internal-ioctl.h
@@ -1,5 +1,5 @@
/* Linux internal definitions for ioctl.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h b/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
index 0d15f04..24b7202 100644
--- a/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. PowerPC version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
index 9ddfe82..6e5adb9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. PowerPC version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h b/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h
deleted file mode 100644
index 6047297..0000000
--- a/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _KERNEL_TERMIOS_H
-#define _KERNEL_TERMIOS_H 1
-
-/* We need the definition of tcflag_t, cc_t, and speed_t. */
-#include <termios.h>
-
-#define __KERNEL_NCCS 19
-
-struct __kernel_termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_cc[__KERNEL_NCCS]; /* control characters */
- cc_t c_line; /* line discipline */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
- };
-
-#define _HAVE_C_ISPEED 1
-#define _HAVE_C_OSPEED 1
-
-/* We have the kernel termios structure, so we can presume this code knows
- what it's doing... */
-
-#undef TCGETS
-#undef TCSETS
-#undef TCSETSW
-#undef TCSETSF
-#define TCGETS _IOR ('t', 19, struct __kernel_termios)
-#define TCSETS _IOW ('t', 20, struct __kernel_termios)
-#define TCSETSW _IOW ('t', 21, struct __kernel_termios)
-#define TCSETSF _IOW ('t', 22, struct __kernel_termios)
-
-#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
index 6a00cd8..852efce 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.h b/sysdeps/unix/sysv/linux/powerpc/libc-start.h
index 309eef3..f137cd3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.h
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.h
@@ -1,5 +1,5 @@
/* PowerPC definitions for libc main startup.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h b/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
index 3fe5252..b976355 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
@@ -1,5 +1,5 @@
/* Resolve function pointers to VDSO functions.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/libpthread-compat.c b/sysdeps/unix/sysv/linux/powerpc/libpthread-compat.c
index 08545e3..da2467e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libpthread-compat.c
+++ b/sysdeps/unix/sysv/linux/powerpc/libpthread-compat.c
@@ -1,5 +1,5 @@
/* Placeholder definitions for removed symbol versions. powerpc version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/pointer_guard.h b/sysdeps/unix/sysv/linux/powerpc/pointer_guard.h
index 0db0f0d..19da93d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/powerpc/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. PowerpC version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
index 9255568..fca4423 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h
index 206d9fd..c371df8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h
@@ -130,6 +130,7 @@
#define __NR_gettimeofday 78
#define __NR_getuid 24
#define __NR_getxattr 212
+#define __NR_getxattrat 464
#define __NR_gtty 32
#define __NR_idle 112
#define __NR_init_module 128
@@ -168,6 +169,7 @@
#define __NR_listen 329
#define __NR_listmount 458
#define __NR_listxattr 215
+#define __NR_listxattrat 465
#define __NR_llistxattr 216
#define __NR_lock 53
#define __NR_lookup_dcookie 235
@@ -233,6 +235,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 346
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 286
#define __NR_openat2 437
#define __NR_pause 29
@@ -288,6 +291,7 @@
#define __NR_recvmsg 342
#define __NR_remap_file_pages 239
#define __NR_removexattr 218
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 293
#define __NR_renameat2 357
@@ -353,6 +357,7 @@
#define __NR_settimeofday 79
#define __NR_setuid 23
#define __NR_setxattr 209
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
index ddd0f46..20b8f8b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
index 7137e06..1a70df5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_MASK_ENV for Linux/ppc.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
index 6f96a17..08dfcae 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_NOMASK_ENV for Linux/ppc.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 9714305..883e66f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -3138,6 +3138,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index cbadcef..7f584d3 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1025,3 +1025,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
index 34e6d07..8482e47 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
@@ -1,5 +1,5 @@
/* Save current context, powerpc32 common.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
index 06cf8b2..27befc7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
index 6e2a5c2..40b5163 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
@@ -1,5 +1,5 @@
/* Definition of `struct stat' used in the kernel.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
index 1f6d0a1..2ab64b5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
@@ -1,5 +1,5 @@
/* Set up a context to call a function.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
index 8ee39fe..c64f9dc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 0beb52c..84cd9e0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -3183,6 +3183,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index d0078a4..d1cd4b1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1024,3 +1024,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
index 09f3c65..e4d161e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
@@ -1,5 +1,5 @@
/* Jump to a new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
index 53e4c4f..053e939 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and jump to a new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
index 7ec73cc..3c78d26 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
@@ -1,5 +1,5 @@
/* Jump to a new context powerpc32 common.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
index 6457871..98241ff 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
@@ -1,5 +1,5 @@
/* Jump to a new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
index 5a397d7..2afd519 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
@@ -1,5 +1,5 @@
/* Save current context and jump to a new context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
index 96e4b6f..91efdfc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and jump to a new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
index 04ebc31..0461a3f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
index 71b381d..5ada298 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h
index 4fe77a3..1f66411 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-pkey.h
@@ -1,5 +1,5 @@
/* Helper functions for manipulating memory protection keys, for powerpc64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h
index 19f72a7..df8844d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h
@@ -119,6 +119,7 @@
#define __NR_gettimeofday 78
#define __NR_getuid 24
#define __NR_getxattr 212
+#define __NR_getxattrat 464
#define __NR_gtty 32
#define __NR_idle 112
#define __NR_init_module 128
@@ -156,6 +157,7 @@
#define __NR_listen 329
#define __NR_listmount 458
#define __NR_listxattr 215
+#define __NR_listxattrat 465
#define __NR_llistxattr 216
#define __NR_lock 53
#define __NR_lookup_dcookie 235
@@ -218,6 +220,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 346
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 286
#define __NR_openat2 437
#define __NR_pause 29
@@ -270,6 +273,7 @@
#define __NR_recvmsg 342
#define __NR_remap_file_pages 239
#define __NR_removexattr 218
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 293
#define __NR_renameat2 357
@@ -332,6 +336,7 @@
#define __NR_settimeofday 79
#define __NR_setuid 23
#define __NR_setxattr 209
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
index cfc2ebd..8832568 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
@@ -2892,6 +2892,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index 86fdb9f..bfc5310 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1018,3 +1018,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
index 164311d..878c807 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. PowerPC64 version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -56,7 +56,6 @@ ENTRY (__clone)
/* Save fn, args, stack across syscall. */
mr r30,r3 /* Function in r30. */
- mr r29,r5 /* Flags in r29. */
mr r31,r6 /* Argument in r31. */
/* 'flags' argument is first parameter to clone syscall.
@@ -77,14 +76,12 @@ ENTRY (__clone)
CHECK_SCV_SUPPORT r28 0f
/* This is equivalent to DO_CALL_SCV, but we cannot use the macro here
because it uses CFI directives and we just called cfi_endproc. */
- mflr r9
- std r9,FRAME_LR_SAVE(r1)
+ mflr r29
.machine "push"
.machine "power9"
scv 0
.machine "pop"
- ld r9,FRAME_LR_SAVE(r1)
- mtlr r9
+ mtlr r29
/* Check for child process. */
/* When using scv, error is indicated by negative r3. */
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S
index 900c354..332f3d9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/powerpc64 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -39,14 +39,12 @@
because it uses CFI directives and we just called cfi_endproc. */
# define DO_CLONE3_SVC_CALL(jumpfalse) \
CHECK_SCV_SUPPORT r28 jumpfalse; \
- mflr r9; \
- std r9, FRAME_LR_SAVE(r1); \
+ mflr r31; \
.machine "push"; \
.machine "power9"; \
scv 0; \
.machine "pop"; \
- ld r9, FRAME_LR_SAVE(r1); \
- mtlr r9; \
+ mtlr r31; \
/* With scv an, an error is a value -4095 <= x < 0. */ \
cmpdi cr1, r3, 0; \
b 1f;
@@ -66,13 +64,15 @@ ENTRY(__clone3)
/* Save some regs in the "red zone". */
#ifdef USE_PPC_SCV
- std r28, -24(r1)
- cfi_offset (r28, -24)
+ std r28, -32(r1)
+ cfi_offset (r28, -32)
#endif
- std r29, -16(r1)
- std r30, -8(r1)
- cfi_offset (r29, -16)
- cfi_offset (r30, -8)
+ std r29, -24(r1)
+ std r30, -16(r1)
+ std r31, -8(r1)
+ cfi_offset (r29, -24)
+ cfi_offset (r30, -16)
+ cfi_offset (r31, -8)
/* Save func and arg across syscall. */
mr r30, r5 /* Function in r30. */
@@ -132,16 +132,19 @@ L(parent):
/* Parent. Restore registers & return. */
#ifdef USE_PPC_SCV
- cfi_offset (r28, -24)
- ld r28, -24(r1)
+ cfi_offset (r28, -32)
+ ld r28, -32(r1)
cfi_restore (r28)
#endif
- cfi_offset (r29,-16)
- cfi_offset (r30,-8)
- ld r29, -16(r1)
- ld r30, -8(r1)
+ cfi_offset (r29,-24)
+ cfi_offset (r30,-16)
+ cfi_offset (r31,-8)
+ ld r29, -24(r1)
+ ld r30, -16(r1)
+ ld r31, -8(r1)
cfi_restore (r29)
cfi_restore (r30)
+ cfi_restore (r31)
#ifdef USE_PPC_SCV
beq cr1, 0f
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
index a72f8ce..1b8ae1b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
index d8b938d..8714aea 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_MASK_ENV for Linux/ppc64.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
index 50e5704..4cf946d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
@@ -1,5 +1,5 @@
/* Procedure definition for FE_NOMASK_ENV for Linux/ppc64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
index 96d6005..9d8f021 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,6 +32,9 @@ ENTRY(__novec_getcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
mflr r0
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -139,6 +142,9 @@ ENTRY(__novec_getcontext)
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
blr
PSEUDO_END(__novec_getcontext)
@@ -161,6 +167,9 @@ ENTRY(__getcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
mflr r0
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -377,6 +386,9 @@ L(has_no_vec):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
blr
PSEUDO_END(__getcontext)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
index 5a4bc7f..f34e798 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
index 8c9efc5..b6ff801 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
@@ -2968,3 +2968,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 34568bd..dedfefc 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1366,3 +1366,111 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 __acospiieee128 F
+GLIBC_2.41 __asinpiieee128 F
+GLIBC_2.41 __atan2piieee128 F
+GLIBC_2.41 __atanpiieee128 F
+GLIBC_2.41 __cospiieee128 F
+GLIBC_2.41 __sinpiieee128 F
+GLIBC_2.41 __tanpiieee128 F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 __compoundnieee128 F
+GLIBC_2.42 __pownieee128 F
+GLIBC_2.42 __powrieee128 F
+GLIBC_2.42 __rootnieee128 F
+GLIBC_2.42 __rsqrtieee128 F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/sysctl.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/sysctl.c
index d91b441..c4e2b75 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/sysctl.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/sysctl.c
@@ -1,5 +1,5 @@
/* sysctl function stub. powerpc64le version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
index 97ea557..7d0cede 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -39,6 +39,9 @@ ENTRY (__makecontext)
addi r6,r1,FRAME_PARM_SAVE+24
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
stdu r1,-128(r1)
cfi_adjust_cfa_offset (128)
@@ -181,6 +184,9 @@ L(gotexitcodeaddr):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
blr
END(__makecontext)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_get.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_get.c
index 217ecd0..cd4635a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_get.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_get.c
@@ -1,5 +1,5 @@
/* Reading the per-thread memory protection key, powerpc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
#include <sys/mman.h>
int
-pkey_get (int key)
+__pkey_get (int key)
{
if (key < 0 || key > PKEY_MAX)
{
@@ -40,3 +40,5 @@ pkey_get (int key)
return PKEY_DISABLE_WRITE;
return 0;
}
+libc_hidden_def (__pkey_get)
+weak_alias (__pkey_get, pkey_get)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_set.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_set.c
index cc67b0a..371f827 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_set.c
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pkey_set.c
@@ -1,5 +1,5 @@
/* Changing the per-thread memory protection key, powerpc64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
#include <sys/mman.h>
int
-pkey_set (int key, unsigned int rights)
+__pkey_set (int key, unsigned int rights)
{
if (key < 0 || key > PKEY_MAX || rights > 3)
{
@@ -46,3 +46,5 @@ pkey_set (int key, unsigned int rights)
pkey_write (amr);
return 0;
}
+libc_hidden_def (__pkey_set)
+weak_alias (__pkey_set, pkey_set)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
index eb83d21..bd00f43 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
@@ -1,5 +1,5 @@
/* Switch to context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,8 +38,11 @@
ENTRY(__novec_setcontext)
CALL_MCOUNT 1
mflr r0
- std r31,-8(1)
- cfi_offset(r31,-8)
+ std r31,-16(1)
+ cfi_offset(r31,-16)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
stdu r1,-128(r1)
@@ -184,7 +187,10 @@ L(nv_error_exit):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
- ld r31,-8(r1)
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
+ ld r31,-16(r1)
blr
PSEUDO_END(__novec_setcontext)
@@ -197,8 +203,11 @@ compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3)
ENTRY(__setcontext)
CALL_MCOUNT 1
mflr r0
- std r31,-8(1)
- cfi_offset(r31,-8)
+ std r31,-16(1)
+ cfi_offset(r31,-16)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
stdu r1,-128(r1)
@@ -446,7 +455,10 @@ L(error_exit):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
- ld r31,-8(r1)
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
+ ld r31,-16(r1)
blr
PSEUDO_END(__setcontext)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
index b7133f0..4d98b4c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -40,8 +40,11 @@ ENTRY(__novec_swapcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
mflr r0
- std r31,-8(1)
- cfi_offset(r31,-8)
+ std r31,-16(1)
+ cfi_offset(r31,-16)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -271,7 +274,10 @@ L(nv_error_exit):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
- ld r31,-8(r1)
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
+ ld r31,-16(r1)
blr
PSEUDO_END(__novec_swapcontext)
@@ -287,8 +293,11 @@ ENTRY(__swapcontext)
std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
mflr r0
- std r31,-8(1)
- cfi_offset(r31,-8)
+ std r31,-16(1)
+ cfi_offset(r31,-16)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
std r0,FRAME_LR_SAVE(r1)
cfi_offset (lr, FRAME_LR_SAVE)
@@ -731,7 +740,10 @@ L(error_exit):
ld r0,128+FRAME_LR_SAVE(r1)
addi r1,r1,128
mtlr r0
- ld r31,-8(r1)
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
+ ld r31,-16(r1)
blr
PSEUDO_END(__swapcontext)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
index 41c4e0a..4018c30 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h
index 582aac7..5d25815 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. powerpc64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
index 4fbbc2b..1018f3e 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/readelflib.c b/sysdeps/unix/sysv/linux/powerpc/readelflib.c
index d2e0e88..2996d08 100644
--- a/sysdeps/unix/sysv/linux/powerpc/readelflib.c
+++ b/sysdeps/unix/sysv/linux/powerpc/readelflib.c
@@ -1,5 +1,5 @@
/* Special checks on libraries for ldconfig. Linux/PowerPC version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h b/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
index 5ec1f2b..551f5ea 100644
--- a/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
+++ b/sysdeps/unix/sysv/linux/powerpc/rtld_static_init.h
@@ -1,5 +1,5 @@
/* Partial initialization of ld.so loaded via static dlopen. powerpc helper.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h b/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
index 860c2e3..a96d4d7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h b/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h
index f8ab6ff..c76a426 100644
--- a/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h
+++ b/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h
@@ -1,5 +1,5 @@
/* Compat socket constants used in 64-bit compat code.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
index 605ba3f..860a857 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/PowerPC version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
index 8fe3975..0807a29 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/user.h b/sysdeps/unix/sysv/linux/powerpc/sys/user.h
index 1b207a3..529110c 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/user.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/syscall.S b/sysdeps/unix/sysv/linux/powerpc/syscall.S
index 9d0cb54..ff33dd4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/syscall.S
+++ b/sysdeps/unix/sysv/linux/powerpc/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/syscall_cancel.S b/sysdeps/unix/sysv/linux/powerpc/syscall_cancel.S
new file mode 100644
index 0000000..33b0b7c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/syscall_cancel.S
@@ -0,0 +1,86 @@
+/* Cancellable syscall wrapper. Linux/powerpc version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int [r3] __syscall_cancel_arch (int *cancelhandling [r3],
+ long int nr [r4],
+ long int arg1 [r5],
+ long int arg2 [r6],
+ long int arg3 [r7],
+ long int arg4 [r8],
+ long int arg5 [r9],
+ long int arg6 [r10]) */
+
+ENTRY (__syscall_cancel_arch)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ lwz r0,0(r3)
+ andi. r0,r0,TCB_CANCELED_BITMASK
+ bne 1f
+
+ /* Issue a 6 argument syscall, the nr [r4] being the syscall
+ number. */
+ mr r0,r4
+ mr r3,r5
+ mr r4,r6
+ mr r5,r7
+ mr r6,r8
+ mr r7,r9
+ mr r8,r10
+
+#if defined(USE_PPC_SVC) && defined(__powerpc64__)
+ CHECK_SCV_SUPPORT r9 0f
+
+ stdu r1, -SCV_FRAME_SIZE(r1)
+ cfi_adjust_cfa_offset (SCV_FRAME_SIZE)
+ .machine "push"
+ .machine "power9"
+ scv 0
+ .machine "pop"
+ .globl __syscall_cancel_arch_end_svc
+__syscall_cancel_arch_end_svc:
+ ld r9, SCV_FRAME_SIZE + FRAME_LR_SAVE(r1)
+ mtlr r9
+ addi r1, r1, SCV_FRAME_SIZE
+ cfi_restore (lr)
+ li r9, -4095
+ cmpld r3, r9
+ bnslr+
+ neg r3,r3
+ blr
+0:
+#endif
+ sc
+ .globl __syscall_cancel_arch_end_sc
+__syscall_cancel_arch_end_sc:
+ bnslr+
+ neg r3,r3
+ blr
+
+ /* Although the __syscall_do_cancel do not return, we need to stack
+ being set correctly for unwind. */
+1:
+ TAIL_CALL_NO_RETURN (__syscall_do_cancel)
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysconf.c b/sysdeps/unix/sysv/linux/powerpc/sysconf.c
index f769a21..7d2b00b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysconf.c
+++ b/sysdeps/unix/sysv/linux/powerpc/sysconf.c
@@ -1,5 +1,5 @@
/* Get system-specific information at run-time. Linux/powerpc version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.c b/sysdeps/unix/sysv/linux/powerpc/sysdep.c
index a7a55c0..21d48cff 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysdep.c
+++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/sysdep.h
index a69b7db..929784d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysdep.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sysdep.h
@@ -1,5 +1,5 @@
/* Syscall definitions, Linux PowerPC generic version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,6 +32,18 @@
#undef SYS_ify
#define SYS_ify(syscall_name) __NR_##syscall_name
+#define tostring(s) #s
+#define stringify(s) tostring(s)
+
+#ifdef _ARCH_PWR4
+/* Power4 and later cpus introduced a faster instruction to copy one
+ CR field, rather than the slower microcoded mfcr which copies all
+ CR fields. */
+# define MFCR0(REG) "mfocrf " stringify(REG) ",0x80"
+#else
+# define MFCR0(REG) "mfcr " stringify(REG)
+#endif
+
/* Define a macro which expands inline into the wrapper code for a system
call. This use is for internal calls that do not need to handle errors
normally. It will never touch errno. This returns just what the kernel
@@ -52,7 +64,7 @@
__asm__ __volatile__ \
("mtctr %0\n\t" \
"bctrl\n\t" \
- "mfcr %0\n\t" \
+ MFCR0(%0) "\n\t" \
"0:" \
: "+r" (r0), "+r" (r3), "+r" (r4), "+r" (r5), "+r" (r6), \
"+r" (r7), "+r" (r8) \
@@ -83,11 +95,10 @@
"scv 0\n\t" \
".machine \"pop\"\n\t" \
"0:" \
- : "=&r" (r0), \
- "=&r" (r3), "=&r" (r4), "=&r" (r5), \
- "=&r" (r6), "=&r" (r7), "=&r" (r8) \
- : ASM_INPUT_##nr \
- : "r9", "r10", "r11", "r12", \
+ : "+r" (r0), \
+ "+r" (r3), "+r" (r4), "+r" (r5), \
+ "+r" (r6), "+r" (r7), "+r" (r8) \
+ : : "r9", "r10", "r11", "r12", \
"cr0", "cr1", "cr5", "cr6", "cr7", \
"xer", "lr", "ctr", "memory"); \
r3; \
@@ -97,13 +108,12 @@
({ \
__asm__ __volatile__ \
("sc\n\t" \
- "mfcr %0\n\t" \
+ MFCR0(%0) "\n\t" \
"0:" \
- : "=&r" (r0), \
- "=&r" (r3), "=&r" (r4), "=&r" (r5), \
- "=&r" (r6), "=&r" (r7), "=&r" (r8) \
- : ASM_INPUT_##nr \
- : "r9", "r10", "r11", "r12", \
+ : "+r" (r0), \
+ "+r" (r3), "+r" (r4), "+r" (r5), \
+ "+r" (r6), "+r" (r7), "+r" (r8) \
+ : : "r9", "r10", "r11", "r12", \
"xer", "cr0", "ctr", "memory"); \
r0 & (1 << 28) ? -r3 : r3; \
})
@@ -199,14 +209,6 @@
__illegally_sized_syscall_arg6 (); \
r8 = _arg6
-#define ASM_INPUT_0 "0" (r0)
-#define ASM_INPUT_1 ASM_INPUT_0, "1" (r3)
-#define ASM_INPUT_2 ASM_INPUT_1, "2" (r4)
-#define ASM_INPUT_3 ASM_INPUT_2, "3" (r5)
-#define ASM_INPUT_4 ASM_INPUT_3, "4" (r6)
-#define ASM_INPUT_5 ASM_INPUT_4, "5" (r7)
-#define ASM_INPUT_6 ASM_INPUT_5, "6" (r8)
-
/* List of system calls which are supported as vsyscalls. */
#define VDSO_NAME "LINUX_2.6.15"
#define VDSO_HASH 123718565
@@ -223,5 +225,6 @@
#define HAVE_TIME_VSYSCALL "__kernel_time"
#define HAVE_GETTIMEOFDAY_VSYSCALL "__kernel_gettimeofday"
#define HAVE_GET_TBFREQ "__kernel_get_tbfreq"
+#define HAVE_GETRANDOM_VSYSCALL "__kernel_getrandom"
#endif /* _LINUX_POWERPC_SYSDEP_H */
diff --git a/sysdeps/unix/sysv/linux/powerpc/termios_arch.h b/sysdeps/unix/sysv/linux/powerpc/termios_arch.h
new file mode 100644
index 0000000..20025f2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/termios_arch.h
@@ -0,0 +1,26 @@
+/* Architectural parameters for Linux termios - Alpha/PowerPC version
+
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef TERMIOS_INTERNALS_H
+# error "<termios_arch.h> should only be included from <termios_internals.h>"
+#endif
+
+#define _TERMIOS2_NCCS 19
+#define _HAVE_TERMIOS2_C_CC_BEFORE_C_LINE 1
+#define _HAVE_STRUCT_OLD_TERMIOS 0
diff --git a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c
index 455a244..4298cab 100644
--- a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c
+++ b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_timebase_freq() for architecture changes
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
index 6610ac1..a720c54 100644
--- a/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
+++ b/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
@@ -1,5 +1,5 @@
/* Check __ppc_get_timebase_freq() for architecture changes
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c b/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c
index 31d055f..2dd4770 100644
--- a/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c
+++ b/sysdeps/unix/sysv/linux/powerpc/test-powerpc-linux-sysconf.c
@@ -1,5 +1,5 @@
/* Check use of sysconf() for cache geometries.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/time.c b/sysdeps/unix/sysv/linux/powerpc/time.c
index 96ae60b..41c09c7 100644
--- a/sysdeps/unix/sysv/linux/powerpc/time.c
+++ b/sysdeps/unix/sysv/linux/powerpc/time.c
@@ -1,5 +1,5 @@
/* time system call for Linux/PowerPC.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/powerpc/tst-hwcap-tunables.c b/sysdeps/unix/sysv/linux/powerpc/tst-hwcap-tunables.c
index f2fee35..2b0dc45 100644
--- a/sysdeps/unix/sysv/linux/powerpc/tst-hwcap-tunables.c
+++ b/sysdeps/unix/sysv/linux/powerpc/tst-hwcap-tunables.c
@@ -1,5 +1,5 @@
/* Tests for powerpc GLIBC_TUNABLES=glibc.cpu.hwcaps filter.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ppoll.c b/sysdeps/unix/sysv/linux/ppoll.c
index 39e7800..8067050 100644
--- a/sysdeps/unix/sysv/linux/ppoll.c
+++ b/sysdeps/unix/sysv/linux/ppoll.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ppoll_chk.c b/sysdeps/unix/sysv/linux/ppoll_chk.c
index 1a4a793..3a1cb5e 100644
--- a/sysdeps/unix/sysv/linux/ppoll_chk.c
+++ b/sysdeps/unix/sysv/linux/ppoll_chk.c
@@ -1,5 +1,5 @@
/* Fortify ppoll implementation. Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pread.c b/sysdeps/unix/sysv/linux/pread.c
index ff2c5da..b3bb0dc 100644
--- a/sysdeps/unix/sysv/linux/pread.c
+++ b/sysdeps/unix/sysv/linux/pread.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pread64.c b/sysdeps/unix/sysv/linux/pread64.c
index fd55c8b..5fbf14b 100644
--- a/sysdeps/unix/sysv/linux/pread64.c
+++ b/sysdeps/unix/sysv/linux/pread64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pread64_nocancel.c b/sysdeps/unix/sysv/linux/pread64_nocancel.c
index bb685f2..a050f4f 100644
--- a/sysdeps/unix/sysv/linux/pread64_nocancel.c
+++ b/sysdeps/unix/sysv/linux/pread64_nocancel.c
@@ -1,5 +1,5 @@
/* Linux pread64() syscall implementation -- non-cancellable.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/preadv.c b/sysdeps/unix/sysv/linux/preadv.c
index c58ee98..0887090 100644
--- a/sysdeps/unix/sysv/linux/preadv.c
+++ b/sysdeps/unix/sysv/linux/preadv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/preadv2.c b/sysdeps/unix/sysv/linux/preadv2.c
index 55f9603..7a39aff 100644
--- a/sysdeps/unix/sysv/linux/preadv2.c
+++ b/sysdeps/unix/sysv/linux/preadv2.c
@@ -1,5 +1,5 @@
/* Linux implementation of preadv2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/preadv64.c b/sysdeps/unix/sysv/linux/preadv64.c
index 3386fdb..6039fdf 100644
--- a/sysdeps/unix/sysv/linux/preadv64.c
+++ b/sysdeps/unix/sysv/linux/preadv64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/preadv64v2.c b/sysdeps/unix/sysv/linux/preadv64v2.c
index 2dd52ef..2effbef 100644
--- a/sysdeps/unix/sysv/linux/preadv64v2.c
+++ b/sysdeps/unix/sysv/linux/preadv64v2.c
@@ -1,5 +1,5 @@
/* Linux implementation of preadv2 (LFS version).
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/prlimit.c b/sysdeps/unix/sysv/linux/prlimit.c
index 1188b3a..65b9f01 100644
--- a/sysdeps/unix/sysv/linux/prlimit.c
+++ b/sysdeps/unix/sysv/linux/prlimit.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/prlimit64.c b/sysdeps/unix/sysv/linux/prlimit64.c
index f34f536..199d639 100644
--- a/sysdeps/unix/sysv/linux/prlimit64.c
+++ b/sysdeps/unix/sysv/linux/prlimit64.c
@@ -1,5 +1,5 @@
/* Get/set resource limits. Linux specific syscall.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/process_vm_readv.c b/sysdeps/unix/sysv/linux/process_vm_readv.c
index 23e6b08..47f9857 100644
--- a/sysdeps/unix/sysv/linux/process_vm_readv.c
+++ b/sysdeps/unix/sysv/linux/process_vm_readv.c
@@ -1,5 +1,5 @@
/* process_vm_readv - Linux specific syscall.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/process_vm_writev.c b/sysdeps/unix/sysv/linux/process_vm_writev.c
index 308e9ed..09b50e6 100644
--- a/sysdeps/unix/sysv/linux/process_vm_writev.c
+++ b/sysdeps/unix/sysv/linux/process_vm_writev.c
@@ -1,5 +1,5 @@
/* process_vm_writev - Linux specific syscall.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/procutils.c b/sysdeps/unix/sysv/linux/procutils.c
index 86d3d37..7399345 100644
--- a/sysdeps/unix/sysv/linux/procutils.c
+++ b/sysdeps/unix/sysv/linux/procutils.c
@@ -1,5 +1,5 @@
/* Utilities functions to read/parse Linux procfs and sysfs.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/procutils.h b/sysdeps/unix/sysv/linux/procutils.h
index acf1ec5..7a90187 100644
--- a/sysdeps/unix/sysv/linux/procutils.h
+++ b/sysdeps/unix/sysv/linux/procutils.h
@@ -1,5 +1,5 @@
/* Utilities functions to read/parse Linux procfs and sysfs.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/prof-freq.c b/sysdeps/unix/sysv/linux/prof-freq.c
index 5b35c1a..ec6effa 100644
--- a/sysdeps/unix/sysv/linux/prof-freq.c
+++ b/sysdeps/unix/sysv/linux/prof-freq.c
@@ -1,5 +1,5 @@
/* Determine realtime clock frequency.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/profil-counter.h b/sysdeps/unix/sysv/linux/profil-counter.h
index 8da7f59..85359fd 100644
--- a/sysdeps/unix/sysv/linux/profil-counter.h
+++ b/sysdeps/unix/sysv/linux/profil-counter.h
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Linux version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pselect.c b/sysdeps/unix/sysv/linux/pselect.c
index f973726..6c50b54 100644
--- a/sysdeps/unix/sysv/linux/pselect.c
+++ b/sysdeps/unix/sysv/linux/pselect.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pselect32.c b/sysdeps/unix/sysv/linux/pselect32.c
index 228f551..551fc6c 100644
--- a/sysdeps/unix/sysv/linux/pselect32.c
+++ b/sysdeps/unix/sysv/linux/pselect32.c
@@ -1,5 +1,5 @@
/* Synchronous I/O multiplexing. Linux 32-bit time fallback.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ptrace.c b/sysdeps/unix/sysv/linux/ptrace.c
index ed3c3a9..5b74846 100644
--- a/sysdeps/unix/sysv/linux/ptrace.c
+++ b/sysdeps/unix/sysv/linux/ptrace.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ptsname.c b/sysdeps/unix/sysv/linux/ptsname.c
index 98e1ba4..c8455cf 100644
--- a/sysdeps/unix/sysv/linux/ptsname.c
+++ b/sysdeps/unix/sysv/linux/ptsname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwrite.c b/sysdeps/unix/sysv/linux/pwrite.c
index 812e650..864d2b3 100644
--- a/sysdeps/unix/sysv/linux/pwrite.c
+++ b/sysdeps/unix/sysv/linux/pwrite.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwrite64.c b/sysdeps/unix/sysv/linux/pwrite64.c
index ea83423..c1388b0 100644
--- a/sysdeps/unix/sysv/linux/pwrite64.c
+++ b/sysdeps/unix/sysv/linux/pwrite64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwritev.c b/sysdeps/unix/sysv/linux/pwritev.c
index d2bbbc1..a277df4 100644
--- a/sysdeps/unix/sysv/linux/pwritev.c
+++ b/sysdeps/unix/sysv/linux/pwritev.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwritev2.c b/sysdeps/unix/sysv/linux/pwritev2.c
index 7bdbe57..29c0e90 100644
--- a/sysdeps/unix/sysv/linux/pwritev2.c
+++ b/sysdeps/unix/sysv/linux/pwritev2.c
@@ -1,5 +1,5 @@
/* Linux implementation of pwritev2.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwritev64.c b/sysdeps/unix/sysv/linux/pwritev64.c
index 465f329..9593512 100644
--- a/sysdeps/unix/sysv/linux/pwritev64.c
+++ b/sysdeps/unix/sysv/linux/pwritev64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/pwritev64v2.c b/sysdeps/unix/sysv/linux/pwritev64v2.c
index 58263d0..8328bc7 100644
--- a/sysdeps/unix/sysv/linux/pwritev64v2.c
+++ b/sysdeps/unix/sysv/linux/pwritev64v2.c
@@ -1,5 +1,5 @@
/* Linux implementation of pwritev2 (LFS version).
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/read.c b/sysdeps/unix/sysv/linux/read.c
index b0afd24..cb2f22e 100644
--- a/sysdeps/unix/sysv/linux/read.c
+++ b/sysdeps/unix/sysv/linux/read.c
@@ -1,5 +1,5 @@
/* Linux read syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/read_nocancel.c b/sysdeps/unix/sysv/linux/read_nocancel.c
index 3e2e440..38c1d38 100644
--- a/sysdeps/unix/sysv/linux/read_nocancel.c
+++ b/sysdeps/unix/sysv/linux/read_nocancel.c
@@ -1,5 +1,5 @@
/* Linux read syscall implementation -- non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/readahead.c b/sysdeps/unix/sysv/linux/readahead.c
index c744bf4..9661cbf 100644
--- a/sysdeps/unix/sysv/linux/readahead.c
+++ b/sysdeps/unix/sysv/linux/readahead.c
@@ -1,5 +1,5 @@
/* Provide kernel hint to read ahead.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/readdir.c b/sysdeps/unix/sysv/linux/readdir.c
index 33bae4b..abd1ec5 100644
--- a/sysdeps/unix/sysv/linux/readdir.c
+++ b/sysdeps/unix/sysv/linux/readdir.c
@@ -1,5 +1,5 @@
/* Read a directory. Linux no-LFS version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/readdir64.c b/sysdeps/unix/sysv/linux/readdir64.c
index e6f5108..f4b2cc0 100644
--- a/sysdeps/unix/sysv/linux/readdir64.c
+++ b/sysdeps/unix/sysv/linux/readdir64.c
@@ -1,5 +1,5 @@
/* Read a directory. Linux LFS version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,17 +26,13 @@
#undef __readdir
#undef readdir
-/* Read a directory entry from DIRP. */
-struct dirent64 *
-__readdir64 (DIR *dirp)
+/* Read a directory entry from DIRP. No locking. */
+static struct dirent64 *
+__readdir64_unlocked (DIR *dirp)
{
struct dirent64 *dp;
int saved_errno = errno;
-#if IS_IN (libc)
- __libc_lock_lock (dirp->lock);
-#endif
-
if (dirp->offset >= dirp->size)
{
/* We've emptied out our buffer. Refill it. */
@@ -53,9 +49,6 @@ __readdir64 (DIR *dirp)
do not set errno in that case, to indicate success. */
if (bytes == 0 || errno == ENOENT)
__set_errno (saved_errno);
-#if IS_IN (libc)
- __libc_lock_unlock (dirp->lock);
-#endif
return NULL;
}
dirp->size = (size_t) bytes;
@@ -68,10 +61,16 @@ __readdir64 (DIR *dirp)
dirp->offset += dp->d_reclen;
dirp->filepos = dp->d_off;
-#if IS_IN (libc)
- __libc_lock_unlock (dirp->lock);
-#endif
+ return dp;
+}
+/* Read a directory entry from DIRP. */
+struct dirent64 *
+__readdir64 (DIR *dirp)
+{
+ __libc_lock_lock (dirp->lock);
+ struct dirent64 *dp = __readdir64_unlocked (dirp);
+ __libc_lock_unlock (dirp->lock);
return dp;
}
libc_hidden_def (__readdir64)
@@ -99,45 +98,54 @@ __old_readdir64 (DIR *dirp)
struct __old_dirent64 *dp;
int saved_errno = errno;
-#if IS_IN (libc)
__libc_lock_lock (dirp->lock);
-#endif
- if (dirp->offset >= dirp->size)
+ while (1)
{
- /* We've emptied out our buffer. Refill it. */
+ errno = 0;
+ struct dirent64 *newdp = __readdir64_unlocked (dirp);
+ if (newdp == NULL)
+ {
+ if (errno == 0 && dirp->errcode != 0)
+ __set_errno (dirp->errcode);
+ else if (errno == 0)
+ __set_errno (saved_errno);
+ dp = NULL;
+ break;
+ }
- size_t maxread = dirp->allocation;
- ssize_t bytes;
+ /* Convert to the target layout. Use a separate struct and
+ memcpy to side-step aliasing issues. */
+ struct __old_dirent64 result;
+ result.d_ino = newdp->d_ino;
+ result.d_off = newdp->d_off;
+ result.d_reclen = newdp->d_reclen;
+ result.d_type = newdp->d_type;
- bytes = __old_getdents64 (dirp->fd, dirp->data, maxread);
- if (bytes <= 0)
+ /* Check for ino_t overflow. */
+ if (__glibc_unlikely (result.d_ino != newdp->d_ino))
{
- /* Linux may fail with ENOENT on some file systems if the
- directory inode is marked as dead (deleted). POSIX
- treats this as a regular end-of-directory condition, so
- do not set errno in that case, to indicate success. */
- if (bytes == 0 || errno == ENOENT)
- __set_errno (saved_errno);
-#if IS_IN (libc)
- __libc_lock_unlock (dirp->lock);
-#endif
- return NULL;
+ dirp->errcode = ENAMETOOLONG;
+ continue;
}
- dirp->size = (size_t) bytes;
- /* Reset the offset into the buffer. */
- dirp->offset = 0;
- }
+ /* Overwrite the fixed-sized part. */
+ dp = (struct __old_dirent64 *) newdp;
+ memcpy (dp, &result, offsetof (struct __old_dirent64, d_name));
- dp = (struct __old_dirent64 *) &dirp->data[dirp->offset];
- dirp->offset += dp->d_reclen;
- dirp->filepos = dp->d_off;
+ /* Move the name. */
+ _Static_assert (offsetof (struct __old_dirent64, d_name)
+ <= offsetof (struct dirent64, d_name),
+ "old struct must be smaller");
+ if (offsetof (struct __old_dirent64, d_name)
+ != offsetof (struct dirent64, d_name))
+ memmove (dp->d_name, newdp->d_name, strlen (newdp->d_name) + 1);
-#if IS_IN (libc)
- __libc_lock_unlock (dirp->lock);
-#endif
+ __set_errno (saved_errno);
+ break;
+ }
+ __libc_lock_unlock (dirp->lock);
return dp;
}
libc_hidden_def (__old_readdir64)
diff --git a/sysdeps/unix/sysv/linux/readdir64_r.c b/sysdeps/unix/sysv/linux/readdir64_r.c
index e87882e..862e569 100644
--- a/sysdeps/unix/sysv/linux/readdir64_r.c
+++ b/sysdeps/unix/sysv/linux/readdir64_r.c
@@ -1,5 +1,5 @@
/* Read a directory in reentrant mode. Linux LFS version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -37,7 +37,7 @@ __readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result)
__libc_lock_lock (dirp->lock);
- do
+ while (1)
{
if (dirp->offset >= dirp->size)
{
@@ -79,26 +79,21 @@ __readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result)
dirp->filepos = dp->d_off;
- if (reclen > offsetof (struct dirent64, d_name) + NAME_MAX + 1)
+ if (reclen <= offsetof (struct dirent64, d_name) + NAME_MAX + 1)
+ break;
+
+ /* The record is very long. It could still fit into the
+ caller-supplied buffer if we can skip padding at the end. */
+ size_t namelen = _D_EXACT_NAMLEN (dp);
+ if (namelen <= NAME_MAX)
{
- /* The record is very long. It could still fit into the
- caller-supplied buffer if we can skip padding at the
- end. */
- size_t namelen = _D_EXACT_NAMLEN (dp);
- if (namelen <= NAME_MAX)
- reclen = offsetof (struct dirent64, d_name) + namelen + 1;
- else
- {
- /* The name is too long. Ignore this file. */
- dirp->errcode = ENAMETOOLONG;
- dp->d_ino = 0;
- continue;
- }
+ reclen = offsetof (struct dirent64, d_name) + namelen + 1;
+ break;
}
- /* Skip deleted and ignored files. */
+ /* The name is too long. Ignore this file. */
+ dirp->errcode = ENAMETOOLONG;
}
- while (dp->d_ino == 0);
if (dp != NULL)
{
@@ -135,91 +130,37 @@ attribute_compat_text_section
__old_readdir64_r (DIR *dirp, struct __old_dirent64 *entry,
struct __old_dirent64 **result)
{
- struct __old_dirent64 *dp;
- size_t reclen;
- const int saved_errno = errno;
- int ret;
-
- __libc_lock_lock (dirp->lock);
-
- do
+ while (1)
{
- if (dirp->offset >= dirp->size)
- {
- /* We've emptied out our buffer. Refill it. */
-
- size_t maxread = dirp->allocation;
- ssize_t bytes;
-
- maxread = dirp->allocation;
-
- bytes = __old_getdents64 (dirp->fd, dirp->data, maxread);
- if (bytes <= 0)
- {
- /* On some systems getdents fails with ENOENT when the
- open directory has been rmdir'd already. POSIX.1
- requires that we treat this condition like normal EOF. */
- if (bytes < 0 && errno == ENOENT)
- {
- bytes = 0;
- __set_errno (saved_errno);
- }
- if (bytes < 0)
- dirp->errcode = errno;
-
- dp = NULL;
- break;
- }
- dirp->size = (size_t) bytes;
+ struct dirent64 new_entry;
+ struct dirent64 *newp;
+ int ret = __readdir64_r (dirp, &new_entry, &newp);
- /* Reset the offset into the buffer. */
- dirp->offset = 0;
+ if (ret != 0)
+ return ret;
+ else if (newp == NULL)
+ {
+ *result = NULL;
+ return 0;
}
-
- dp = (struct __old_dirent64 *) &dirp->data[dirp->offset];
-
- reclen = dp->d_reclen;
-
- dirp->offset += reclen;
-
- dirp->filepos = dp->d_off;
-
- if (reclen > offsetof (struct __old_dirent64, d_name) + NAME_MAX + 1)
+ else
{
- /* The record is very long. It could still fit into the
- caller-supplied buffer if we can skip padding at the
- end. */
- size_t namelen = _D_EXACT_NAMLEN (dp);
- if (namelen <= NAME_MAX)
- reclen = offsetof (struct __old_dirent64, d_name) + namelen + 1;
- else
+ entry->d_ino = newp->d_ino;
+ if (entry->d_ino != newp->d_ino)
{
- /* The name is too long. Ignore this file. */
- dirp->errcode = ENAMETOOLONG;
- dp->d_ino = 0;
+ dirp->errcode = EOVERFLOW;
continue;
}
+ size_t namelen = strlen (newp->d_name);
+ entry->d_off = newp->d_off;
+ entry->d_reclen = (offsetof (struct __old_dirent64, d_name)
+ + namelen + 1);
+ entry->d_type = newp->d_type;
+ memcpy (entry->d_name, newp->d_name, namelen + 1);
+ *result = entry;
+ return 0;
}
-
- /* Skip deleted and ignored files. */
}
- while (dp->d_ino == 0);
-
- if (dp != NULL)
- {
- *result = memcpy (entry, dp, reclen);
- entry->d_reclen = reclen;
- ret = 0;
- }
- else
- {
- *result = NULL;
- ret = dirp->errcode;
- }
-
- __libc_lock_unlock (dirp->lock);
-
- return ret;
}
compat_symbol (libc, __old_readdir64_r, readdir64_r, GLIBC_2_1);
diff --git a/sysdeps/unix/sysv/linux/readdir_r.c b/sysdeps/unix/sysv/linux/readdir_r.c
index ffd5262..742317f 100644
--- a/sysdeps/unix/sysv/linux/readdir_r.c
+++ b/sysdeps/unix/sysv/linux/readdir_r.c
@@ -1,5 +1,5 @@
/* Read a directory in reentrant mode. Linux no-LFS version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,14 +25,22 @@ __readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result)
{
struct dirent *dp;
size_t reclen;
+ int saved_errno = errno;
__libc_lock_lock (dirp->lock);
while (1)
{
+ /* If errno is changed from 0, the NULL return value indicates
+ an actual error. It overrides a pending ENAMETOOLONG error. */
+ __set_errno (0);
dp = __readdir_unlocked (dirp);
if (dp == NULL)
- break;
+ {
+ if (errno != 0)
+ dirp->errcode = errno;
+ break;
+ }
reclen = dp->d_reclen;
if (reclen <= offsetof (struct dirent, d_name) + NAME_MAX + 1)
@@ -61,6 +69,7 @@ __readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result)
__libc_lock_unlock (dirp->lock);
+ __set_errno (saved_errno);
return dp != NULL ? 0 : dirp->errcode;
}
diff --git a/sysdeps/unix/sysv/linux/readlink.c b/sysdeps/unix/sysv/linux/readlink.c
index bb75d20..b7ef989 100644
--- a/sysdeps/unix/sysv/linux/readlink.c
+++ b/sysdeps/unix/sysv/linux/readlink.c
@@ -1,5 +1,5 @@
/* Read value of a symbolic link. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area-fallback.c
index 67975cf..c93ad2a 100644
--- a/sysdeps/unix/sysv/linux/readonly-area.c
+++ b/sysdeps/unix/sysv/linux/readonly-area-fallback.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,11 +23,8 @@
#include <string.h>
#include "libio/libioP.h"
-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable.
- Return -1 if it is writable. */
-
-int
-__readonly_area (const char *ptr, size_t size)
+enum readonly_error_type
+__readonly_area_fallback (const void *ptr, size_t size)
{
const void *ptr_end = ptr + size;
@@ -42,11 +39,11 @@ __readonly_area (const char *ptr, size_t size)
to the /proc filesystem if it is set[ug]id. There has
been no willingness to change this in the kernel so
far. */
- || errno == EACCES
- /* Process has reached the maximum number of open files. */
- || errno == EMFILE)
- return 1;
- return -1;
+ || errno == EACCES)
+ return readonly_procfs_inaccessible;
+ /* Process has reached the maximum number of open files or another
+ unusual error. */
+ return readonly_procfs_open_fail;
}
/* We need no locking. */
@@ -98,7 +95,5 @@ __readonly_area (const char *ptr, size_t size)
fclose (fp);
free (line);
- /* If the whole area between ptr and ptr_end is covered by read-only
- VMAs, return 1. Otherwise return -1. */
- return size == 0 ? 1 : -1;
+ return size == 0 ? readonly_noerror : readonly_area_writable;
}
diff --git a/sysdeps/unix/sysv/linux/readv.c b/sysdeps/unix/sysv/linux/readv.c
index 3eae7e8..8b5c5f1 100644
--- a/sysdeps/unix/sysv/linux/readv.c
+++ b/sysdeps/unix/sysv/linux/readv.c
@@ -1,5 +1,5 @@
/* Linux implementation for readv syscall.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/reboot.c b/sysdeps/unix/sysv/linux/reboot.c
index 2dbf723..b693751 100644
--- a/sysdeps/unix/sysv/linux/reboot.c
+++ b/sysdeps/unix/sysv/linux/reboot.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/recv.c b/sysdeps/unix/sysv/linux/recv.c
index 6ff79b1..24ee8f7 100644
--- a/sysdeps/unix/sysv/linux/recv.c
+++ b/sysdeps/unix/sysv/linux/recv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/recvfrom.c b/sysdeps/unix/sysv/linux/recvfrom.c
index a235355..fd47d31 100644
--- a/sysdeps/unix/sysv/linux/recvfrom.c
+++ b/sysdeps/unix/sysv/linux/recvfrom.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/recvmmsg.c b/sysdeps/unix/sysv/linux/recvmmsg.c
index 16136f5..3b00bb2 100644
--- a/sysdeps/unix/sysv/linux/recvmmsg.c
+++ b/sysdeps/unix/sysv/linux/recvmmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/recvmsg.c b/sysdeps/unix/sysv/linux/recvmsg.c
index 034526e..5b4d0e1 100644
--- a/sysdeps/unix/sysv/linux/recvmsg.c
+++ b/sysdeps/unix/sysv/linux/recvmsg.c
@@ -1,5 +1,5 @@
/* Linux recvmsg syscall wrapper.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/rename.c b/sysdeps/unix/sysv/linux/rename.c
index 583dcd4..76f7558 100644
--- a/sysdeps/unix/sysv/linux/rename.c
+++ b/sysdeps/unix/sysv/linux/rename.c
@@ -1,5 +1,5 @@
/* Linux implementation for rename function.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/renameat.c b/sysdeps/unix/sysv/linux/renameat.c
index c9a014d..d090ea4 100644
--- a/sysdeps/unix/sysv/linux/renameat.c
+++ b/sysdeps/unix/sysv/linux/renameat.c
@@ -1,5 +1,5 @@
/* Linux implementation for renameat function.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/renameat2.c b/sysdeps/unix/sysv/linux/renameat2.c
index 0d08eca..ca4c9d7 100644
--- a/sysdeps/unix/sysv/linux/renameat2.c
+++ b/sysdeps/unix/sysv/linux/renameat2.c
@@ -1,5 +1,5 @@
/* Linux implementation for renameat2 function.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/rewinddir.c b/sysdeps/unix/sysv/linux/rewinddir.c
index af85000..40b5e10 100644
--- a/sysdeps/unix/sysv/linux/rewinddir.c
+++ b/sysdeps/unix/sysv/linux/rewinddir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/atomic-machine.h b/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
index 90283d9..569f434 100644
--- a/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
@@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. RISC-V version.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/environments.h b/sysdeps/unix/sysv/linux/riscv/bits/environments.h
index 1017bf3..652a77b 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h b/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
index 8e9bf76..3300b74 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux / RISC-V.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/procfs.h b/sysdeps/unix/sysv/linux/riscv/bits/procfs.h
index 21ae5dc..ba081d7 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. RISC-V version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/rseq.h b/sysdeps/unix/sysv/linux/riscv/bits/rseq.h
new file mode 100644
index 0000000..8ba8e6c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/riscv/bits/rseq.h
@@ -0,0 +1,44 @@
+/* Restartable Sequences Linux riscv architecture header.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <bits/endian.h>
+
+#ifndef _SYS_RSEQ_H
+# error "Never use <bits/rseq.h> directly; include <sys/rseq.h> instead."
+#endif
+
+/* RSEQ_SIG is a signature required before each abort handler code.
+
+ It is a 32-bit value that maps to actual architecture code compiled
+ into applications and libraries. It needs to be defined for each
+ architecture. When choosing this value, it needs to be taken into
+ account that generating invalid instructions may have ill effects on
+ tools like objdump, and may also have impact on the CPU speculative
+ execution efficiency in some cases.
+
+ Select the instruction "csrw mhartid, x0" as the RSEQ_SIG. Unlike
+ other architectures, the ebreak instruction has no immediate field for
+ distinguishing purposes. Hence, ebreak is not suitable as RSEQ_SIG.
+ "csrw mhartid, x0" can also satisfy the RSEQ requirement because it
+ is an uncommon instruction and will raise an illegal instruction
+ exception when executed in all modes. */
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define RSEQ_SIG 0xf1401073
+#else
+/* RSEQ is currently only supported on Little-Endian. */
+#endif
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h b/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
index 2f3ee3a..0329651 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
@@ -1,5 +1,5 @@
/* Machine-dependent signal context structure for Linux. RISC-V version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/time64.h b/sysdeps/unix/sysv/linux/riscv/bits/time64.h
index 3f967fe..1275475 100644
--- a/sysdeps/unix/sysv/linux/riscv/bits/time64.h
+++ b/sysdeps/unix/sysv/linux/riscv/bits/time64.h
@@ -1,5 +1,5 @@
/* bits/time64.h -- underlying types for __time64_t. RISC-V version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/clone.S b/sysdeps/unix/sysv/linux/riscv/clone.S
index b9c843e..1362dd9 100644
--- a/sysdeps/unix/sysv/linux/riscv/clone.S
+++ b/sysdeps/unix/sysv/linux/riscv/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. RISC-V version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/clone3.S b/sysdeps/unix/sysv/linux/riscv/clone3.S
index c81ee2a..34513c6 100644
--- a/sysdeps/unix/sysv/linux/riscv/clone3.S
+++ b/sysdeps/unix/sysv/linux/riscv/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/RISC-V version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/riscv/dl-cache.h b/sysdeps/unix/sysv/linux/riscv/dl-cache.h
index 4b6e50f..6e09679 100644
--- a/sysdeps/unix/sysv/linux/riscv/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/riscv/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/flush-icache.c b/sysdeps/unix/sysv/linux/riscv/flush-icache.c
index a7f959a..368e027 100644
--- a/sysdeps/unix/sysv/linux/riscv/flush-icache.c
+++ b/sysdeps/unix/sysv/linux/riscv/flush-icache.c
@@ -1,5 +1,5 @@
/* RISC-V instruction cache flushing VDSO calls
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/riscv/getcontext.S b/sysdeps/unix/sysv/linux/riscv/getcontext.S
index b449d06..86e7a8f 100644
--- a/sysdeps/unix/sysv/linux/riscv/getcontext.S
+++ b/sysdeps/unix/sysv/linux/riscv/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/hwprobe.c b/sysdeps/unix/sysv/linux/riscv/hwprobe.c
index 9159045..bc7f6f3 100644
--- a/sysdeps/unix/sysv/linux/riscv/hwprobe.c
+++ b/sysdeps/unix/sysv/linux/riscv/hwprobe.c
@@ -1,5 +1,5 @@
/* RISC-V hardware feature probing support on Linux
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -23,13 +23,13 @@
#include <sysdep-vdso.h>
int __riscv_hwprobe (struct riscv_hwprobe *pairs, size_t pair_count,
- size_t cpu_count, unsigned long int *cpus,
+ size_t cpusetsize, __RISCV_HWPROBE_CPUS_TYPE cpus,
unsigned int flags)
{
int r;
r = INTERNAL_VSYSCALL (riscv_hwprobe, 5, pairs, pair_count,
- cpu_count, cpus, flags);
+ cpusetsize, cpus.__ul, flags);
/* Negate negative errno values to match pthreads API. */
return -r;
diff --git a/sysdeps/unix/sysv/linux/riscv/kernel-features.h b/sysdeps/unix/sysv/linux/riscv/kernel-features.h
index 022be51..dce5083 100644
--- a/sysdeps/unix/sysv/linux/riscv/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/riscv/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. RISC-V version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/makecontext.c b/sysdeps/unix/sysv/linux/riscv/makecontext.c
index ef8fcb1..3da27dd 100644
--- a/sysdeps/unix/sysv/linux/riscv/makecontext.c
+++ b/sysdeps/unix/sysv/linux/riscv/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context. RISC-V version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/multiarch/ifunc-impl-list.c b/sysdeps/unix/sysv/linux/riscv/multiarch/ifunc-impl-list.c
index 9f806d7..1c1deca 100644
--- a/sysdeps/unix/sysv/linux/riscv/multiarch/ifunc-impl-list.c
+++ b/sysdeps/unix/sysv/linux/riscv/multiarch/ifunc-impl-list.c
@@ -1,5 +1,5 @@
/* Enumerate available IFUNC implementations of a function. RISCV version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/multiarch/memcpy.c b/sysdeps/unix/sysv/linux/riscv/multiarch/memcpy.c
index 51d8ace..8544f54 100644
--- a/sysdeps/unix/sysv/linux/riscv/multiarch/memcpy.c
+++ b/sysdeps/unix/sysv/linux/riscv/multiarch/memcpy.c
@@ -1,6 +1,6 @@
/* Multiple versions of memcpy.
All versions must be listed in ifunc-impl-list.c.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/readelflib.c b/sysdeps/unix/sysv/linux/riscv/readelflib.c
index 42a6c04..cf9d0a5 100644
--- a/sysdeps/unix/sysv/linux/riscv/readelflib.c
+++ b/sysdeps/unix/sysv/linux/riscv/readelflib.c
@@ -1,5 +1,5 @@
/* Support for reading ELF files.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h b/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h
index eb9e57b..1bae763 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/arch-syscall.h
@@ -91,6 +91,7 @@
#define __NR_gettid 178
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -119,6 +120,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_llseek 62
#define __NR_lookup_dcookie 18
@@ -166,6 +168,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -205,6 +208,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat2 276
#define __NR_request_key 218
#define __NR_restart_syscall 128
@@ -262,6 +266,7 @@
#define __NR_setsockopt 208
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
index 6397a9c..1771a23 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist
@@ -2512,3 +2512,22 @@ GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
GLIBC_2.40 __riscv_hwprobe F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
index 248ca38..9342294 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
@@ -1068,3 +1068,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h b/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h
index 1eac18e..1a1ebf8 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h
@@ -95,6 +95,7 @@
#define __NR_gettimeofday 169
#define __NR_getuid 174
#define __NR_getxattr 8
+#define __NR_getxattrat 464
#define __NR_init_module 105
#define __NR_inotify_add_watch 27
#define __NR_inotify_init1 26
@@ -124,6 +125,7 @@
#define __NR_listen 201
#define __NR_listmount 458
#define __NR_listxattr 11
+#define __NR_listxattrat 465
#define __NR_llistxattr 12
#define __NR_lookup_dcookie 18
#define __NR_lremovexattr 15
@@ -173,6 +175,7 @@
#define __NR_nfsservctl 42
#define __NR_open_by_handle_at 265
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 56
#define __NR_openat2 437
#define __NR_perf_event_open 241
@@ -212,6 +215,7 @@
#define __NR_recvmsg 212
#define __NR_remap_file_pages 234
#define __NR_removexattr 14
+#define __NR_removexattrat 466
#define __NR_renameat2 276
#define __NR_request_key 218
#define __NR_restart_syscall 128
@@ -271,6 +275,7 @@
#define __NR_settimeofday 170
#define __NR_setuid 146
#define __NR_setxattr 5
+#define __NR_setxattrat 463
#define __NR_shmat 196
#define __NR_shmctl 195
#define __NR_shmdt 197
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
index 71bbf94..4b48352 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
@@ -2712,3 +2712,22 @@ GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
GLIBC_2.40 __riscv_hwprobe F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
index c8f976c..76e74c9 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
@@ -1165,3 +1165,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/riscv/setcontext.S b/sysdeps/unix/sysv/linux/riscv/setcontext.S
index 716b8e7..a2de57b 100644
--- a/sysdeps/unix/sysv/linux/riscv/setcontext.S
+++ b/sysdeps/unix/sysv/linux/riscv/setcontext.S
@@ -1,5 +1,5 @@
/* Set current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h b/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
index 2fd695b..d373867 100644
--- a/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
@@ -1,5 +1,5 @@
/* RISC-V definitions for signal handling calling conventions.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/swapcontext.S b/sysdeps/unix/sysv/linux/riscv/swapcontext.S
index 2255cca..bf5754c 100644
--- a/sysdeps/unix/sysv/linux/riscv/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/riscv/swapcontext.S
@@ -1,5 +1,5 @@
/* Save and set current context.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h b/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
index 2ff14c7..c27e495 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
@@ -1,5 +1,5 @@
/* RISC-V instruction cache flushing interface
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h b/sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h
index 8ecb43b..40415aa 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/hwprobe.h
@@ -1,5 +1,5 @@
/* RISC-V architecture probe interface
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -21,6 +21,7 @@
#define _SYS_HWPROBE_H 1
#include <features.h>
+#include <sched.h>
#include <stddef.h>
#include <errno.h>
#ifdef __has_include
@@ -63,22 +64,39 @@ struct riscv_hwprobe {
__BEGIN_DECLS
-extern int __riscv_hwprobe (struct riscv_hwprobe *__pairs, size_t __pair_count,
- size_t __cpu_count, unsigned long int *__cpus,
+#if defined __cplusplus || !__GNUC_PREREQ (2, 7)
+# define __RISCV_HWPROBE_CPUS_TYPE cpu_set_t *
+#else
+/* The fourth argument to __riscv_hwprobe should be a null pointer or a
+ pointer to a cpu_set_t (either the fixed-size type or allocated with
+ CPU_ALLOC). However, early versions of this header file used the
+ argument type unsigned long int *. The transparent union allows
+ the argument to be either cpu_set_t * or unsigned long int * for
+ compatibility. The older header file requiring unsigned long int *
+ can be identified by the lack of the __RISCV_HWPROBE_CPUS_TYPE macro.
+ In C++ and with compilers that do not support transparent unions, the
+ argument type must be cpu_set_t *. */
+typedef union {
+ cpu_set_t *__cs;
+ unsigned long int *__ul;
+} __RISCV_HWPROBE_CPUS_TYPE __attribute__ ((__transparent_union__));
+# define __RISCV_HWPROBE_CPUS_TYPE __RISCV_HWPROBE_CPUS_TYPE
+#endif
+
+extern int __riscv_hwprobe (struct riscv_hwprobe *__pairs,
+ size_t __pair_count, size_t __cpusetsize,
+ __RISCV_HWPROBE_CPUS_TYPE __cpus,
unsigned int __flags)
- __nonnull ((1)) __wur
- __fortified_attr_access (__read_write__, 1, 2)
- __fortified_attr_access (__read_only__, 4, 3);
+ __THROW __nonnull ((1)) __attr_access ((__read_write__, 1, 2));
-/* A pointer to the __riscv_hwprobe vDSO function is passed as the second
+/* A pointer to the __riscv_hwprobe function is passed as the second
argument to ifunc selector routines. Include a function pointer type for
convenience in calling the function in those settings. */
-typedef int (*__riscv_hwprobe_t) (struct riscv_hwprobe *__pairs, size_t __pair_count,
- size_t __cpu_count, unsigned long int *__cpus,
+typedef int (*__riscv_hwprobe_t) (struct riscv_hwprobe *__pairs,
+ size_t __pair_count, size_t __cpusetsize,
+ __RISCV_HWPROBE_CPUS_TYPE __cpus,
unsigned int __flags)
- __nonnull ((1)) __wur
- __fortified_attr_access (__read_write__, 1, 2)
- __fortified_attr_access (__read_only__, 4, 3);
+ __nonnull ((1)) __attr_access ((__read_write__, 1, 2));
/* Helper function usable from ifunc selectors that probes a single key. */
static __inline int
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h b/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
index bf6a1b4..a572ec6 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
@@ -1,5 +1,5 @@
/* struct ucontext definition, RISC-V version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/sys/user.h b/sysdeps/unix/sysv/linux/riscv/sys/user.h
index 563ed86..4796e25 100644
--- a/sysdeps/unix/sysv/linux/riscv/sys/user.h
+++ b/sysdeps/unix/sysv/linux/riscv/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/syscall.c b/sysdeps/unix/sysv/linux/riscv/syscall.c
index 5fc2695..67eb411 100644
--- a/sysdeps/unix/sysv/linux/riscv/syscall.c
+++ b/sysdeps/unix/sysv/linux/riscv/syscall.c
@@ -1,5 +1,5 @@
/* system call interface. Linux/RISC-V version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/syscall_cancel.S b/sysdeps/unix/sysv/linux/riscv/syscall_cancel.S
new file mode 100644
index 0000000..70339a3
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/riscv/syscall_cancel.S
@@ -0,0 +1,67 @@
+/* Cancellable syscall wrapper. Linux/riscv version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+#ifdef SHARED
+ .option pic
+#else
+ .option nopic
+#endif
+
+ENTRY (__syscall_cancel_arch)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ lw t1, 0(a0)
+ /* if (*ch & CANCELED_BITMASK) */
+ andi t1, t1, TCB_CANCELED_BITMASK
+ bne t1, zero, 1f
+
+ mv t3, a1
+ mv a0, a2
+ mv a1, a3
+ mv a2, a4
+ mv a3, a5
+ mv a4, a6
+ mv a5, a7
+ mv a7, t3
+ scall
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ ret
+
+1:
+ addi sp, sp, -16
+ cfi_def_cfa_offset (16)
+ REG_S ra, (16-SZREG)(sp)
+ cfi_offset (ra, -SZREG)
+ call __syscall_do_cancel
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/riscv/sysconf.c b/sysdeps/unix/sysv/linux/riscv/sysconf.c
index cd79ec3..47b7b20 100644
--- a/sysdeps/unix/sysv/linux/riscv/sysconf.c
+++ b/sysdeps/unix/sysv/linux/riscv/sysconf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.S b/sysdeps/unix/sysv/linux/riscv/sysdep.S
index b782251..b50671b 100644
--- a/sysdeps/unix/sysv/linux/riscv/sysdep.S
+++ b/sysdeps/unix/sysv/linux/riscv/sysdep.S
@@ -1,5 +1,5 @@
/* syscall error handlers
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h
index ee015df..05e0e05 100644
--- a/sysdeps/unix/sysv/linux/riscv/sysdep.h
+++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h
@@ -145,11 +145,12 @@
# define HAVE_CLOCK_GETRES64_VSYSCALL "__vdso_clock_getres"
# define HAVE_CLOCK_GETTIME64_VSYSCALL "__vdso_clock_gettime"
# define HAVE_GETTIMEOFDAY_VSYSCALL "__vdso_gettimeofday"
+# define HAVE_GETRANDOM_VSYSCALL "__vdso_getrandom"
# else
# define VDSO_NAME "LINUX_5.4"
# define VDSO_HASH 61765876
-/* RV32 does not support the gettime VDSO syscalls. */
+/* RV32 does not support the gettime and getrandom VDSO syscalls. */
# endif
# define HAVE_CLONE3_WRAPPER 1
diff --git a/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h b/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h
index a99322f..d0955be 100644
--- a/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h
+++ b/sysdeps/unix/sysv/linux/riscv/ucontext-macros.h
@@ -1,5 +1,5 @@
/* Macros for ucontext routines.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/riscv/vfork.S b/sysdeps/unix/sysv/linux/riscv/vfork.S
index 20af45b..1e39b7a 100644
--- a/sysdeps/unix/sysv/linux/riscv/vfork.S
+++ b/sysdeps/unix/sysv/linux/riscv/vfork.S
@@ -1,5 +1,5 @@
/* vfork for Linux, RISC-V version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/rmdir.c b/sysdeps/unix/sysv/linux/rmdir.c
index fba4bda..0a220a6 100644
--- a/sysdeps/unix/sysv/linux/rmdir.c
+++ b/sysdeps/unix/sysv/linux/rmdir.c
@@ -1,5 +1,5 @@
/* Delete a directory. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/rseq-internal.h b/sysdeps/unix/sysv/linux/rseq-internal.h
index 7ea935b..d2ab4cb 100644
--- a/sysdeps/unix/sysv/linux/rseq-internal.h
+++ b/sysdeps/unix/sysv/linux/rseq-internal.h
@@ -1,5 +1,5 @@
/* Restartable Sequences internal API. Linux implementation.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -24,46 +24,111 @@
#include <stdbool.h>
#include <stdio.h>
#include <sys/rseq.h>
+#include <ldsodefs.h>
+#include <thread_pointer.h>
+#include <rseq-access.h>
-/* 32 is the initially required value for the area size. The
- actually used rseq size may be less (20 bytes initially). */
+/* rseq area registered with the kernel. Use a custom definition here to
+ isolate from the system provided header which could lack some fields of the
+ Extended ABI.
+
+ This is only used to get the field offsets and sizes, it should never be
+ used for direct object allocations.
+
+ Access to fields of the Extended ABI beyond the 20 bytes of the original ABI
+ (after 'flags') must be gated by a check of the feature size. */
+struct rseq_area
+{
+ /* Original ABI. */
+ uint32_t cpu_id_start;
+ uint32_t cpu_id;
+ uint64_t rseq_cs;
+ uint32_t flags;
+ /* Extended ABI. */
+ uint32_t node_id;
+ uint32_t mm_cid;
+ /* Flexible array member to discourage direct object allocations. */
+ char end[];
+};
+
+/* Minimum size of the rseq area allocation required by the syscall. The
+ actually used rseq feature size may be less (20 bytes initially). */
#define RSEQ_AREA_SIZE_INITIAL 32
+
+/* Minimum used feature size of the rseq area. */
#define RSEQ_AREA_SIZE_INITIAL_USED 20
-/* The variables are in .data.relro but are not yet write-protected. */
+/* Maximum currently used feature size of the rseq area. */
+#define RSEQ_AREA_SIZE_MAX_USED 28
+
+/* Minimum alignment of the rseq area. */
+#define RSEQ_MIN_ALIGN 32
+
+/* Alignment requirement of the rseq area.
+ Populated from the auxiliary vector with a minimum of '32'.
+ In .data.relro but not yet write-protected. */
+extern size_t _rseq_align attribute_hidden;
+
+/* Size of the active features in the rseq area.
+ Populated from the auxiliary vector with a minimum of '20'.
+ Set to '0' on registration failure of the main thread.
+ In .data.relro but not yet write-protected. */
extern unsigned int _rseq_size attribute_hidden;
+
+/* Offset from the thread pointer to the rseq area, always set to allow
+ checking the registration status by reading the 'cpu_id' field.
+ In .data.relro but not yet write-protected. */
extern ptrdiff_t _rseq_offset attribute_hidden;
+/* We want to use rtld_hidden_proto in order to call the internal aliases
+ of __rseq_size and __rseq_offset from ld.so. This avoids dynamic symbol
+ binding at run time for both variables. */
+rtld_hidden_proto (__rseq_size)
+rtld_hidden_proto (__rseq_offset)
+
+/* Returns a pointer to the current thread rseq area. */
+static inline struct rseq_area *
+RSEQ_SELF (void)
+{
+ return (struct rseq_area *) ((char *) __thread_pointer () + __rseq_offset);
+}
+
#ifdef RSEQ_SIG
static inline bool
rseq_register_current_thread (struct pthread *self, bool do_rseq)
{
if (do_rseq)
{
- unsigned int size;
-#if IS_IN (rtld)
- /* Use the hidden symbol in ld.so. */
- size = _rseq_size;
-#else
- size = __rseq_size;
-#endif
+ unsigned int size = __rseq_size;
+
+ /* The feature size can be smaller than the minimum rseq area size of 32
+ bytes accepted by the syscall, if this is the case, bump the size of
+ the registration to the minimum. The 'extra TLS' block is always at
+ least 32 bytes. */
if (size < RSEQ_AREA_SIZE_INITIAL)
- /* The initial implementation used only 20 bytes out of 32,
- but still expected size 32. */
size = RSEQ_AREA_SIZE_INITIAL;
- int ret = INTERNAL_SYSCALL_CALL (rseq, &self->rseq_area,
- size, 0, RSEQ_SIG);
+
+ /* Initialize the whole rseq area to zero prior to registration. */
+ memset (RSEQ_SELF (), 0, size);
+
+ /* Set the cpu_id field to RSEQ_CPU_ID_UNINITIALIZED, this is checked by
+ the kernel at registration when CONFIG_DEBUG_RSEQ is enabled. */
+ RSEQ_SETMEM (cpu_id, RSEQ_CPU_ID_UNINITIALIZED);
+
+ int ret = INTERNAL_SYSCALL_CALL (rseq, RSEQ_SELF (), size, 0, RSEQ_SIG);
if (!INTERNAL_SYSCALL_ERROR_P (ret))
return true;
}
- THREAD_SETMEM (self, rseq_area.cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
+ /* When rseq is disabled by tunables or the registration fails, inform
+ userspace by setting 'cpu_id' to RSEQ_CPU_ID_REGISTRATION_FAILED. */
+ RSEQ_SETMEM (cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
return false;
}
#else /* RSEQ_SIG */
static inline bool
rseq_register_current_thread (struct pthread *self, bool do_rseq)
{
- THREAD_SETMEM (self, rseq_area.cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
+ RSEQ_SETMEM (cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
return false;
}
#endif /* RSEQ_SIG */
diff --git a/sysdeps/unix/sysv/linux/s390/bits/elfclass.h b/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
index cab779a..6867016 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/environments.h b/sysdeps/unix/sysv/linux/s390/bits/environments.h
index 0798747..55cf387 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
index 6f460a6..b113426 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/hwcap.h b/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
index 453408b..277c371 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
@@ -1,5 +1,5 @@
/* Defines for bits in AT_HWCAP.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h b/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h
index db10952..192d39b 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/procfs-extra.h
@@ -1,5 +1,5 @@
/* Extra sys/procfs.h definitions. S/390 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h b/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h
index 3e35ff7..34736c0 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. S/390 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs.h b/sysdeps/unix/sysv/linux/s390/bits/procfs.h
index fe13bc2..36f2d80 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. S/390 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/rseq.h b/sysdeps/unix/sysv/linux/s390/bits/rseq.h
index b39472d..e56d877 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux s390 architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
index 6b790e9..8853310 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
@@ -1,5 +1,5 @@
/* Definitions for 31 & 64 bit S/390 sigaction.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/statfs.h b/sysdeps/unix/sysv/linux/s390/bits/statfs.h
index b367674..e8c2beb 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/statfs.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/statfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h b/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h
index e5c9024..c71a537 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/timesize.h b/sysdeps/unix/sysv/linux/s390/bits/timesize.h
index d128fc3..f50aad7 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/s390.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
index 7451fa6..2bbf72f 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmp.h b/sysdeps/unix/sysv/linux/s390/bits/utmp.h
index b657583..1296193 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/utmp.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/utmp.h
@@ -1,5 +1,5 @@
/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
index 1f72a73..347f67f 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
@@ -1,5 +1,5 @@
/* Structures and definitions for the user accounting database. GNU version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/dl-procinfo.h b/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
deleted file mode 100644
index bcae03e..0000000
--- a/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Linux/s390 version of processor capability information handling macros.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _DL_S390_PROCINFO_H
-#define _DL_S390_PROCINFO_H 1
-#include <sysdeps/s390/dl-procinfo.h>
-#include <ldsodefs.h>
-
-
-#undef _dl_procinfo
-static inline int
-__attribute__ ((unused))
-_dl_procinfo (unsigned int type, unsigned long int word)
-{
- /* This table should match the information from arch/s390/kernel/setup.c
- in the kernel sources. */
- int i;
-
- /* Fallback to generic output mechanism. */
- if (type != AT_HWCAP)
- return -1;
-
- _dl_printf ("AT_HWCAP: ");
-
- for (i = 0; i < _DL_HWCAP_COUNT; ++i)
- if (word & (1UL << i))
- _dl_printf (" %s", _dl_s390_cap_flags[i]);
-
- _dl_printf ("\n");
-
- return 0;
-}
-#endif
diff --git a/sysdeps/unix/sysv/linux/s390/elision-conf.c b/sysdeps/unix/sysv/linux/s390/elision-conf.c
index 08b9028..32b9b3a 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-conf.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-conf.c
@@ -1,5 +1,5 @@
/* Lock elision tunable parameters.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,7 +20,8 @@
#include <pthreadP.h>
#include <elision-conf.h>
#include <unistd.h>
-#include <dl-procinfo.h>
+#include <ldsodefs.h>
+#include <sys/auxv.h>
#define TUNABLE_NAMESPACE elision
#include <elf/dl-tunables.h>
diff --git a/sysdeps/unix/sysv/linux/s390/elision-conf.h b/sysdeps/unix/sysv/linux/s390/elision-conf.h
index f0812c4..90845de 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-conf.h
+++ b/sysdeps/unix/sysv/linux/s390/elision-conf.h
@@ -1,5 +1,5 @@
/* Lock elision tunable parameters.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/elision-lock.c b/sysdeps/unix/sysv/linux/s390/elision-lock.c
index d3de233..b22e6cd 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-lock.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-lock.c
@@ -1,5 +1,5 @@
/* Elided pthread mutex lock.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/elision-timed.c b/sysdeps/unix/sysv/linux/s390/elision-timed.c
index bef1aa4..2611e9c 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-timed.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-timed.c
@@ -1,5 +1,5 @@
/* Lock elision timed lock.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/elision-trylock.c b/sysdeps/unix/sysv/linux/s390/elision-trylock.c
index fa03a7a..1aa99d8 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-trylock.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-trylock.c
@@ -1,5 +1,5 @@
/* Elided pthread mutex trylock.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/elision-unlock.c b/sysdeps/unix/sysv/linux/s390/elision-unlock.c
index 388509f..11e96ab 100644
--- a/sysdeps/unix/sysv/linux/s390/elision-unlock.c
+++ b/sysdeps/unix/sysv/linux/s390/elision-unlock.c
@@ -1,5 +1,5 @@
/* Commit an elided pthread lock.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/htm.h b/sysdeps/unix/sysv/linux/s390/htm.h
index a0038ab..bf1a89c 100644
--- a/sysdeps/unix/sysv/linux/s390/htm.h
+++ b/sysdeps/unix/sysv/linux/s390/htm.h
@@ -1,7 +1,7 @@
/* Shared HTM header. Work around false transactional execution facility
intrinsics.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/ipc_priv.h b/sysdeps/unix/sysv/linux/s390/ipc_priv.h
index 50bca10..27d20ef 100644
--- a/sysdeps/unix/sysv/linux/s390/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/s390/ipc_priv.h
@@ -1,5 +1,5 @@
/* Arch-specific SysV IPC definitions for Linux. s390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
index 5f6ae39..1eedb36 100644
--- a/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
+++ b/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
@@ -1,5 +1,5 @@
/* Clean up stack frames unwound by longjmp. Linux/s390 version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/kernel-features.h b/sysdeps/unix/sysv/linux/s390/kernel-features.h
index 79363f9..4d9f223 100644
--- a/sysdeps/unix/sysv/linux/s390/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/s390/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. S/390 version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/ldconfig.h b/sysdeps/unix/sysv/linux/s390/ldconfig.h
index 147ca09..c15c0ea 100644
--- a/sysdeps/unix/sysv/linux/s390/ldconfig.h
+++ b/sysdeps/unix/sysv/linux/s390/ldconfig.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/libpthread-compat.c b/sysdeps/unix/sysv/linux/s390/libpthread-compat.c
index 2645dfc..04c0780 100644
--- a/sysdeps/unix/sysv/linux/s390/libpthread-compat.c
+++ b/sysdeps/unix/sysv/linux/s390/libpthread-compat.c
@@ -1,5 +1,5 @@
/* Placeholder definitions to pull in removed symbol versions. s390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
index 6a415ab..71195c5 100644
--- a/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/mmap_call.h b/sysdeps/unix/sysv/linux/s390/mmap_call.h
index cd32a50..46e987f 100644
--- a/sysdeps/unix/sysv/linux/s390/mmap_call.h
+++ b/sysdeps/unix/sysv/linux/s390/mmap_call.h
@@ -1,5 +1,5 @@
/* mmap - map files or devices into memory. Linux/s390 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/readelflib.c b/sysdeps/unix/sysv/linux/s390/readelflib.c
index 39f12eb..8642189 100644
--- a/sysdeps/unix/sysv/linux/s390/readelflib.c
+++ b/sysdeps/unix/sysv/linux/s390/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
index 4f933fa..7c09b21 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S b/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
index 17f2432..a309d47 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h b/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h
index 464eca5..f77f39f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h
@@ -136,6 +136,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 227
+#define __NR_getxattrat 464
#define __NR_idle 112
#define __NR_init_module 128
#define __NR_inotify_add_watch 285
@@ -173,6 +174,7 @@
#define __NR_listen 363
#define __NR_listmount 458
#define __NR_listxattr 230
+#define __NR_listxattrat 465
#define __NR_llistxattr 231
#define __NR_lookup_dcookie 110
#define __NR_lremovexattr 234
@@ -230,6 +232,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 336
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 288
#define __NR_openat2 437
#define __NR_pause 29
@@ -279,6 +282,7 @@
#define __NR_recvmsg 372
#define __NR_remap_file_pages 267
#define __NR_removexattr 233
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 295
#define __NR_renameat2 347
@@ -355,6 +359,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 224
+#define __NR_setxattrat 463
#define __NR_shmat 397
#define __NR_shmctl 396
#define __NR_shmdt 398
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
index a7a8632..e8dec24 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S b/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S
index 1ea633a..5467be5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/s390x version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
index ef2319a..a2a3061 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
index fc32ae1..4b37ba9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
index 59be826..e31c0a4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
index 68c88fc..dc8cf02 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
index b202b4a..ccfa3ca 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
index 4bb59a6..c8d3999 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
index 2f48010..1979a5c 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
index dc9a1c6..d0e0109 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
index 866c5b6..644cf43 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
index 1fb355a..75bf740 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c b/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
index 541fc06..952a229 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index a7467e2..f0decc7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -3136,6 +3136,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index 81f186f..be2d177 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1292,3 +1292,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c b/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c
index 83c98b5..630e477 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libutil-compat.c
@@ -1,5 +1,5 @@
/* Placeholder compatibility symbols for libutil. s390 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/login.c b/sysdeps/unix/sysv/linux/s390/s390-32/login.c
index fe81bd8..9697d80 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/login.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/login.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/login32.c b/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
index 8c4d5fe..556184a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c b/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
index e969ed8..b46592a 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h b/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h
index 4588d69..3f888e5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. s390 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c b/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
index 4e7cd9f..4d0969e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/posix_fadvise64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c b/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
index 51f0062..c7dd975 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
index f3cd54f..2c6c273 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
index 4ef003b..32faa22 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S b/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
index b2b79cc..1e59e60 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S b/sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S
new file mode 100644
index 0000000..54db44f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/syscall_cancel.S
@@ -0,0 +1,62 @@
+/* Cancellable syscall wrapper. Linux/s390 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+ENTRY (__syscall_cancel_arch)
+ stm %r6,%r7,24(%r15)
+ cfi_offset (%r6, -72)
+ cfi_offset (%r7, -68)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ tm 3(%r2),TCB_CANCELED_BITMASK
+ jne 1f
+
+ /* Issue a 6 argument syscall, the nr [%r1] being the syscall
+ number. */
+ lr %r1,%r3
+ lr %r2,%r4
+ lr %r3,%r5
+ lr %r4,%r6
+ lm %r5,%r7,96(%r15)
+ svc 0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ lm %r6,%r7,24(%r15)
+ cfi_remember_state
+ cfi_restore (%r7)
+ cfi_restore (%r6)
+ br %r14
+1:
+ cfi_restore_state
+ jg __syscall_do_cancel
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
index d77c5bf..011f47e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
index 215b44e..f8d9290 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
index 9f8e944..0a8bd01 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
index 5c5a825..de282dc 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
index 6899fd8..4cba24b 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
index acf9137..bc88317 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
index 66b5a4c..39729a4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
index 30037f2..c7d4388 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
@@ -1,5 +1,5 @@
/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
index 8fb5bd2..060b8a0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
index 39ee486..71928a5 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
index ff4786e..5f0a094 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
@@ -1,5 +1,5 @@
/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S b/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
index cdb4a64..91293f4 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
index 6564824..f2c7f68 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S b/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
index 6214700..2ffa0d0 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h b/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h
index 5784270..65d6644 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h
@@ -114,6 +114,7 @@
#define __NR_gettimeofday 78
#define __NR_getuid 199
#define __NR_getxattr 227
+#define __NR_getxattrat 464
#define __NR_idle 112
#define __NR_init_module 128
#define __NR_inotify_add_watch 285
@@ -148,6 +149,7 @@
#define __NR_listen 363
#define __NR_listmount 458
#define __NR_listxattr 230
+#define __NR_listxattrat 465
#define __NR_llistxattr 231
#define __NR_lookup_dcookie 110
#define __NR_lremovexattr 234
@@ -202,6 +204,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 336
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 288
#define __NR_openat2 437
#define __NR_pause 29
@@ -248,6 +251,7 @@
#define __NR_recvmsg 372
#define __NR_remap_file_pages 267
#define __NR_removexattr 233
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 295
#define __NR_renameat2 347
@@ -313,6 +317,7 @@
#define __NR_settimeofday 79
#define __NR_setuid 213
#define __NR_setxattr 224
+#define __NR_setxattrat 463
#define __NR_shmat 397
#define __NR_shmctl 396
#define __NR_shmdt 398
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
index c552a6b..5bf1e36 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
@@ -1,5 +1,5 @@
/* Wrapper around clone system call. 64 bit S/390 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/clone3.S b/sysdeps/unix/sysv/linux/s390/s390-64/clone3.S
index 70ae7f1..9190256 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/clone3.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/s390x version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h b/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
index e8dbadd..0367b51 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S
index 8b1f002..4300079 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
index fd1cb29..da8a2bf 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -2929,6 +2929,25 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index ee54f8d..7d7ba26 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1292,3 +1292,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c b/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
index 986194c..c679cfe 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h b/sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h
index b477ba8..1537df1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. s390x version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S
index 4949945..fa5203e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S b/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S
index 87ce4e8..23fa20d 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S b/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
index 171104a..56ddb91 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S b/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S
new file mode 100644
index 0000000..e592ffa
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscall_cancel.S
@@ -0,0 +1,62 @@
+/* Cancellable syscall wrapper. Linux/s390x version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ __syscall_arg_t nr,
+ __syscall_arg_t arg1,
+ __syscall_arg_t arg2,
+ __syscall_arg_t arg3,
+ __syscall_arg_t arg4,
+ __syscall_arg_t arg5,
+ __syscall_arg_t arg6) */
+
+ENTRY (__syscall_cancel_arch)
+ stmg %r6,%r7,48(%r15)
+ cfi_offset (%r6, -112)
+ cfi_offset (%r7, -104)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ tm 3(%r2),TCB_CANCELED_BITMASK
+ jne 1f
+
+ /* Issue a 6 argument syscall, the nr [%r1] being the syscall
+ number. */
+ lgr %r1,%r3
+ lgr %r2,%r4
+ lgr %r3,%r5
+ lgr %r4,%r6
+ lmg %r5,%r7,160(%r15)
+ svc 0
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ lmg %r6,%r7,48(%r15)
+ cfi_remember_state
+ cfi_restore (%r7)
+ cfi_restore (%r6)
+ br %r14
+1:
+ cfi_restore_state
+ jg __syscall_do_cancel
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
index 024e58d..fb3d155 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
index 885ab81..a282e12 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
@@ -1,5 +1,5 @@
/* Assembler macros for 64 bit S/390.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h
index d70186d..70c1037 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. s390x version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
index e8f4cdf..d4abd5e 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h b/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
index 8c9d52c..6ce7229 100644
--- a/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sys/elf.h b/sysdeps/unix/sysv/linux/s390/sys/elf.h
index f49abfa..1e3581b 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
index fa99d50..3d10f44 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/S390 version.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
index cc373cd..dd0b2ef 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sys/user.h b/sysdeps/unix/sysv/linux/s390/sys/user.h
index ced029e..86cd391 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/user.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/s390/sysconf.c b/sysdeps/unix/sysv/linux/s390/sysconf.c
index ca25822..dcb335a 100644
--- a/sysdeps/unix/sysv/linux/s390/sysconf.c
+++ b/sysdeps/unix/sysv/linux/s390/sysconf.c
@@ -1,5 +1,5 @@
/* Get system parameters, e.g. cache information. S390/S390x version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,8 +17,9 @@
<https://www.gnu.org/licenses/>. */
#include <unistd.h>
-#include <dl-procinfo.h>
#include <cpu-features.h>
+#include <ldsodefs.h>
+#include <sys/auxv.h>
static long int linux_sysconf (int name);
@@ -65,7 +66,7 @@ get_cache_info (int level, int attr, int type)
return 0L;
}
- if (!S390_IS_Z10 (features->stfle_bits))
+ if (!S390_IS_Z10 (features->stfle_orig))
{
/* We are at least on a z9 machine.
Return 256byte for LINESIZE for L1 d/i-cache,
diff --git a/sysdeps/unix/sysv/linux/s390/sysdep.h b/sysdeps/unix/sysv/linux/s390/sysdep.h
index 9b3000c..c802980 100644
--- a/sysdeps/unix/sysv/linux/s390/sysdep.h
+++ b/sysdeps/unix/sysv/linux/s390/sysdep.h
@@ -1,5 +1,5 @@
/* Syscall definitions, Linux s390 version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -72,6 +72,7 @@
#ifdef __s390x__
#define HAVE_CLOCK_GETRES64_VSYSCALL "__kernel_clock_getres"
#define HAVE_CLOCK_GETTIME64_VSYSCALL "__kernel_clock_gettime"
+#define HAVE_GETRANDOM_VSYSCALL "__kernel_getrandom"
#else
#define HAVE_CLOCK_GETRES_VSYSCALL "__kernel_clock_getres"
#define HAVE_CLOCK_GETTIME_VSYSCALL "__kernel_clock_gettime"
diff --git a/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c b/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c
index d9d2663..1f873bf 100644
--- a/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c
+++ b/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c
@@ -1,5 +1,5 @@
/* Testing s390x PTRACE_SINGLEBLOCK ptrace request.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/safe-fatal.h b/sysdeps/unix/sysv/linux/safe-fatal.h
index f6011bf..57fc27f 100644
--- a/sysdeps/unix/sysv/linux/safe-fatal.h
+++ b/sysdeps/unix/sysv/linux/safe-fatal.h
@@ -1,5 +1,5 @@
/* Crash the process immediately, without possibility of deadlock. Linux.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/scandir64.c b/sysdeps/unix/sysv/linux/scandir64.c
index 5ab87b4..28523ae 100644
--- a/sysdeps/unix/sysv/linux/scandir64.c
+++ b/sysdeps/unix/sysv/linux/scandir64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sched_getaffinity.c b/sysdeps/unix/sysv/linux/sched_getaffinity.c
index f4c0e38..1c66beb 100644
--- a/sysdeps/unix/sysv/linux/sched_getaffinity.c
+++ b/sysdeps/unix/sysv/linux/sched_getaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sched_getattr.c b/sysdeps/unix/sysv/linux/sched_getattr.c
new file mode 100644
index 0000000..a0497e4
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sched_getattr.c
@@ -0,0 +1,27 @@
+/* Reading scheduling policy and attributes.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <sysdep.h>
+
+int
+sched_getattr (pid_t pid, struct sched_attr *attr, unsigned int size,
+ unsigned int flags)
+{
+ return INLINE_SYSCALL_CALL (sched_getattr, pid, attr, size, flags);
+}
diff --git a/sysdeps/unix/sysv/linux/sched_getcpu.c b/sysdeps/unix/sysv/linux/sched_getcpu.c
index 72a3360..828b651 100644
--- a/sysdeps/unix/sysv/linux/sched_getcpu.c
+++ b/sysdeps/unix/sysv/linux/sched_getcpu.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,6 +19,7 @@
#include <sched.h>
#include <sysdep.h>
#include <sysdep-vdso.h>
+#include <rseq-internal.h>
static int
vsyscall_sched_getcpu (void)
@@ -36,6 +37,6 @@ vsyscall_sched_getcpu (void)
int
sched_getcpu (void)
{
- int cpu_id = THREAD_GETMEM_VOLATILE (THREAD_SELF, rseq_area.cpu_id);
+ int cpu_id = RSEQ_GETMEM_ONCE (cpu_id);
return __glibc_likely (cpu_id >= 0) ? cpu_id : vsyscall_sched_getcpu ();
}
diff --git a/sysdeps/unix/sysv/linux/sched_rr_gi.c b/sysdeps/unix/sysv/linux/sched_rr_gi.c
index 2dde512..590cf43 100644
--- a/sysdeps/unix/sysv/linux/sched_rr_gi.c
+++ b/sysdeps/unix/sysv/linux/sched_rr_gi.c
@@ -1,5 +1,5 @@
/* sched_rr_get_interval -- get the scheduler's SCHED_RR policy time interval.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sched_setaffinity.c b/sysdeps/unix/sysv/linux/sched_setaffinity.c
index 21f6620..38f3287 100644
--- a/sysdeps/unix/sysv/linux/sched_setaffinity.c
+++ b/sysdeps/unix/sysv/linux/sched_setaffinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/sched_setattr.c
index 7dcf478..d6b6117 100644
--- a/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h
+++ b/sysdeps/unix/sysv/linux/sched_setattr.c
@@ -1,5 +1,5 @@
-/* Linux kernel struct rt_sigframe declaration for Nios II.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Setting scheduling policy and attributes.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,11 +16,11 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-/* This structure must have the same shape as the Linux kernel
- equivalent. */
+#include <sched.h>
+#include <sysdep.h>
-struct kernel_rt_sigframe
+int
+sched_setattr (pid_t pid, struct sched_attr *attr, unsigned int flags)
{
- siginfo_t info;
- ucontext_t uc;
-};
+ return INLINE_SYSCALL_CALL (sched_setattr, pid, attr, flags);
+}
diff --git a/sysdeps/unix/sysv/linux/scsi/scsi.h b/sysdeps/unix/sysv/linux/scsi/scsi.h
index 5079c07..d72d6a0 100644
--- a/sysdeps/unix/sysv/linux/scsi/scsi.h
+++ b/sysdeps/unix/sysv/linux/scsi/scsi.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h b/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
index e56d17d..6b0bf05 100644
--- a/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
+++ b/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/scsi/sg.h b/sysdeps/unix/sysv/linux/scsi/sg.h
index 1dcda67..ed787b3 100644
--- a/sysdeps/unix/sysv/linux/scsi/sg.h
+++ b/sysdeps/unix/sysv/linux/scsi/sg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/seekdir.c b/sysdeps/unix/sysv/linux/seekdir.c
index 5200587..facd2f9 100644
--- a/sysdeps/unix/sysv/linux/seekdir.c
+++ b/sysdeps/unix/sysv/linux/seekdir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/select.c b/sysdeps/unix/sysv/linux/select.c
index a75245c..f7b1077 100644
--- a/sysdeps/unix/sysv/linux/select.c
+++ b/sysdeps/unix/sysv/linux/select.c
@@ -1,5 +1,5 @@
/* Linux select implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/semctl.c b/sysdeps/unix/sysv/linux/semctl.c
index c57fcea..feaf3fc 100644
--- a/sysdeps/unix/sysv/linux/semctl.c
+++ b/sysdeps/unix/sysv/linux/semctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/semget.c b/sysdeps/unix/sysv/linux/semget.c
index 26d0046..ae311e6 100644
--- a/sysdeps/unix/sysv/linux/semget.c
+++ b/sysdeps/unix/sysv/linux/semget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/semop.c b/sysdeps/unix/sysv/linux/semop.c
index 33f2ba5..52d79e5 100644
--- a/sysdeps/unix/sysv/linux/semop.c
+++ b/sysdeps/unix/sysv/linux/semop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/semtimedop.c b/sysdeps/unix/sysv/linux/semtimedop.c
index 181289f..6478a11 100644
--- a/sysdeps/unix/sysv/linux/semtimedop.c
+++ b/sysdeps/unix/sysv/linux/semtimedop.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/send.c b/sysdeps/unix/sysv/linux/send.c
index 20dc6ea..68cdd40 100644
--- a/sysdeps/unix/sysv/linux/send.c
+++ b/sysdeps/unix/sysv/linux/send.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sendfile.c b/sysdeps/unix/sysv/linux/sendfile.c
index a93d057..990a26a 100644
--- a/sysdeps/unix/sysv/linux/sendfile.c
+++ b/sysdeps/unix/sysv/linux/sendfile.c
@@ -1,5 +1,5 @@
/* Transfer data between file descriptors. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sendfile64.c b/sysdeps/unix/sysv/linux/sendfile64.c
index a49aeac..a7e60c7 100644
--- a/sysdeps/unix/sysv/linux/sendfile64.c
+++ b/sysdeps/unix/sysv/linux/sendfile64.c
@@ -1,5 +1,5 @@
/* Transfer data between file descriptors. Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sendmmsg.c b/sysdeps/unix/sysv/linux/sendmmsg.c
index 50e084d..0c86002 100644
--- a/sysdeps/unix/sysv/linux/sendmmsg.c
+++ b/sysdeps/unix/sysv/linux/sendmmsg.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sendmsg.c b/sysdeps/unix/sysv/linux/sendmsg.c
index 45c59ec..81d2c8b 100644
--- a/sysdeps/unix/sysv/linux/sendmsg.c
+++ b/sysdeps/unix/sysv/linux/sendmsg.c
@@ -1,5 +1,5 @@
/* Compatibility implementation of sendmsg.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sendto.c b/sysdeps/unix/sysv/linux/sendto.c
index 4fb227d..dde1296 100644
--- a/sysdeps/unix/sysv/linux/sendto.c
+++ b/sysdeps/unix/sysv/linux/sendto.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/set-freeres-os.h b/sysdeps/unix/sysv/linux/set-freeres-os.h
index 041d061..1c96ca1 100644
--- a/sysdeps/unix/sysv/linux/set-freeres-os.h
+++ b/sysdeps/unix/sysv/linux/set-freeres-os.h
@@ -1,5 +1,5 @@
/* System specific resource deallocation. Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setegid.c b/sysdeps/unix/sysv/linux/setegid.c
index 4a60853..aa87a85 100644
--- a/sysdeps/unix/sysv/linux/setegid.c
+++ b/sysdeps/unix/sysv/linux/setegid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/seteuid.c b/sysdeps/unix/sysv/linux/seteuid.c
index 64d3c84..7b78d60 100644
--- a/sysdeps/unix/sysv/linux/seteuid.c
+++ b/sysdeps/unix/sysv/linux/seteuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setgid.c b/sysdeps/unix/sysv/linux/setgid.c
index 51d4df8..b848ead 100644
--- a/sysdeps/unix/sysv/linux/setgid.c
+++ b/sysdeps/unix/sysv/linux/setgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setgroups.c b/sysdeps/unix/sysv/linux/setgroups.c
index be68f0c..2fd1dc5 100644
--- a/sysdeps/unix/sysv/linux/setgroups.c
+++ b/sysdeps/unix/sysv/linux/setgroups.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setipv4sourcefilter.c b/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
index 8009ad0..98c2edd 100644
--- a/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
+++ b/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
@@ -1,5 +1,5 @@
/* Set IPv4 source filter. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setitimer.c b/sysdeps/unix/sysv/linux/setitimer.c
index 2a2d59f..9478ffa 100644
--- a/sysdeps/unix/sysv/linux/setitimer.c
+++ b/sysdeps/unix/sysv/linux/setitimer.c
@@ -1,5 +1,5 @@
/* setitimer -- Set the state of an interval timer. Linux/32 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setregid.c b/sysdeps/unix/sysv/linux/setregid.c
index 2e89677..6df2687 100644
--- a/sysdeps/unix/sysv/linux/setregid.c
+++ b/sysdeps/unix/sysv/linux/setregid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setresgid.c b/sysdeps/unix/sysv/linux/setresgid.c
index 6b44503..07dbc45 100644
--- a/sysdeps/unix/sysv/linux/setresgid.c
+++ b/sysdeps/unix/sysv/linux/setresgid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setresuid.c b/sysdeps/unix/sysv/linux/setresuid.c
index 3339779..3c7e543 100644
--- a/sysdeps/unix/sysv/linux/setresuid.c
+++ b/sysdeps/unix/sysv/linux/setresuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setreuid.c b/sysdeps/unix/sysv/linux/setreuid.c
index a3889b3..e40dd9f 100644
--- a/sysdeps/unix/sysv/linux/setreuid.c
+++ b/sysdeps/unix/sysv/linux/setreuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setrlimit.c b/sysdeps/unix/sysv/linux/setrlimit.c
index 3be6f96..b635d7e 100644
--- a/sysdeps/unix/sysv/linux/setrlimit.c
+++ b/sysdeps/unix/sysv/linux/setrlimit.c
@@ -1,5 +1,5 @@
/* Linux setrlimit implementation (32 bits off_t).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setrlimit64.c b/sysdeps/unix/sysv/linux/setrlimit64.c
index 084700c..d62ea94 100644
--- a/sysdeps/unix/sysv/linux/setrlimit64.c
+++ b/sysdeps/unix/sysv/linux/setrlimit64.c
@@ -1,5 +1,5 @@
/* Linux setrlimit64 implementation (64 bits off_t).
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setsockopt.c b/sysdeps/unix/sysv/linux/setsockopt.c
index e483c13..95734bd 100644
--- a/sysdeps/unix/sysv/linux/setsockopt.c
+++ b/sysdeps/unix/sysv/linux/setsockopt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setsourcefilter.c b/sysdeps/unix/sysv/linux/setsourcefilter.c
index 316f637..6fbd04c 100644
--- a/sysdeps/unix/sysv/linux/setsourcefilter.c
+++ b/sysdeps/unix/sysv/linux/setsourcefilter.c
@@ -1,5 +1,5 @@
/* Set source filter. Linux version.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/settimeofday.c b/sysdeps/unix/sysv/linux/settimeofday.c
index 4235dc8..c74aaf2 100644
--- a/sysdeps/unix/sysv/linux/settimeofday.c
+++ b/sysdeps/unix/sysv/linux/settimeofday.c
@@ -1,5 +1,5 @@
/* settimeofday -- set system time - Linux version supporting 64 bit time.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -26,9 +26,9 @@ int
__settimeofday64 (const struct __timeval64 *tv, const struct timezone *tz)
{
/* Backwards compatibility for setting the UTC offset. */
- if (__glibc_unlikely (tz != 0))
+ if (__glibc_unlikely (tz != NULL))
{
- if (tv != 0)
+ if (tv != NULL)
{
__set_errno (EINVAL);
return -1;
diff --git a/sysdeps/unix/sysv/linux/settimezone.c b/sysdeps/unix/sysv/linux/settimezone.c
index 1f7b157..0505533 100644
--- a/sysdeps/unix/sysv/linux/settimezone.c
+++ b/sysdeps/unix/sysv/linux/settimezone.c
@@ -1,5 +1,5 @@
/* Obsolete set system time. Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setuid.c b/sysdeps/unix/sysv/linux/setuid.c
index 39d5e0c..c76beb6 100644
--- a/sysdeps/unix/sysv/linux/setuid.c
+++ b/sysdeps/unix/sysv/linux/setuid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/setvmaname.c b/sysdeps/unix/sysv/linux/setvmaname.c
index 8612efe..ea93a5f 100644
--- a/sysdeps/unix/sysv/linux/setvmaname.c
+++ b/sysdeps/unix/sysv/linux/setvmaname.c
@@ -1,5 +1,5 @@
/* Utilities functions to name memory mappings.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,6 +22,33 @@
#include <sysdep.h>
#include <elf/dl-tunables.h>
+static enum {
+ decorate_unknown = -1,
+ decorate_off,
+ decorate_on
+} decorate_maps = decorate_unknown;
+
+bool
+__is_decorate_maps_enabled (void)
+{
+ switch (atomic_load_relaxed (&decorate_maps))
+ {
+ case decorate_unknown:
+ if (TUNABLE_GET (glibc, mem, decorate_maps, int32_t, NULL) != 0)
+ {
+ atomic_store_relaxed (&decorate_maps, decorate_on);
+ return true;
+ }
+ atomic_store_relaxed (&decorate_maps, decorate_off);
+ return false;
+ case decorate_off:
+ return false;
+ case decorate_on:
+ return true;
+ }
+ __builtin_unreachable ();
+}
+
/* If PR_SET_VMA_ANON_NAME is not supported by the kernel, prctl returns
EINVAL. However, it also returns the same error for invalid argument.
Since it is an internal-only API, it assumes well formatted input:
@@ -31,19 +58,13 @@
void
__set_vma_name (void *start, size_t len, const char *name)
{
- static int prctl_supported = 1;
- if (atomic_load_relaxed (&prctl_supported) == 0)
- return;
-
- /* Set the prctl as not supported to avoid checking the tunable on every
- call. */
- if (TUNABLE_GET (glibc, mem, decorate_maps, int32_t, NULL) != 0)
+ if (__is_decorate_maps_enabled ())
{
int r = INTERNAL_SYSCALL_CALL (prctl, PR_SET_VMA, PR_SET_VMA_ANON_NAME,
- start, len, name);
- if (r == 0 || r != -EINVAL)
- return;
+ start, len, name);
+
+ /* Disable further attempts if not supported by the kernel. */
+ if (r == -EINVAL)
+ atomic_store_relaxed (&decorate_maps, decorate_off);
}
- atomic_store_relaxed (&prctl_supported, 0);
- return;
}
diff --git a/sysdeps/unix/sysv/linux/setvmaname.h b/sysdeps/unix/sysv/linux/setvmaname.h
index bf57351..48643d0 100644
--- a/sysdeps/unix/sysv/linux/setvmaname.h
+++ b/sysdeps/unix/sysv/linux/setvmaname.h
@@ -1,5 +1,5 @@
/* Utilities functions to name memory mappings.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -19,9 +19,17 @@
#ifndef __SETVMANAME_H
#define __SETVMANAME_H
+/* Maximum supported name from initial kernel support, not exported
+ by user API. */
+#define ANON_VMA_NAME_MAX_LEN 80
+
/* Set the NAME to the anonymous memory map START with size of LEN.
It assumes well-formatted input. */
#if IS_IN(libc) || IS_IN(rtld)
+#include <stdbool.h>
+
+bool __is_decorate_maps_enabled (void) attribute_hidden;
+
void __set_vma_name (void *start, size_t len, const char *name)
attribute_hidden;
#else
diff --git a/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
index f61db0b..4a7748b 100644
--- a/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/adaptive_spin_count.h b/sysdeps/unix/sysv/linux/sh/adaptive_spin_count.h
index 604dd62..ae5d5ee 100644
--- a/sysdeps/unix/sysv/linux/sh/adaptive_spin_count.h
+++ b/sysdeps/unix/sysv/linux/sh/adaptive_spin_count.h
@@ -1,5 +1,5 @@
/* Maximum adaptive spin count default for sh.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/arch-syscall.h b/sysdeps/unix/sysv/linux/sh/arch-syscall.h
index 165ba01..5948ab0 100644
--- a/sysdeps/unix/sysv/linux/sh/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/sh/arch-syscall.h
@@ -133,6 +133,7 @@
#define __NR_getuid 24
#define __NR_getuid32 199
#define __NR_getxattr 229
+#define __NR_getxattrat 464
#define __NR_init_module 128
#define __NR_inotify_add_watch 291
#define __NR_inotify_init 290
@@ -166,6 +167,7 @@
#define __NR_listen 343
#define __NR_listmount 458
#define __NR_listxattr 232
+#define __NR_listxattrat 465
#define __NR_llistxattr 233
#define __NR_lookup_dcookie 253
#define __NR_lremovexattr 236
@@ -226,6 +228,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 360
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 295
#define __NR_openat2 437
#define __NR_pause 29
@@ -274,6 +277,7 @@
#define __NR_recvmsg 356
#define __NR_remap_file_pages 257
#define __NR_removexattr 235
+#define __NR_removexattrat 466
#define __NR_rename 38
#define __NR_renameat 302
#define __NR_renameat2 371
@@ -346,6 +350,7 @@
#define __NR_setuid 23
#define __NR_setuid32 213
#define __NR_setxattr 226
+#define __NR_setxattrat 463
#define __NR_sgetmask 68
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/sh/atomic-machine.h b/sysdeps/unix/sysv/linux/sh/atomic-machine.h
index 1639280..fc37d6d 100644
--- a/sysdeps/unix/sysv/linux/sh/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/sh/atomic-machine.h
@@ -1,5 +1,5 @@
/* Atomic operations used inside libc. Linux/SH version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index ff6e6b1..fb30341 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2828,6 +2828,25 @@ GLIBC_2.4 sys_errlist D 0x210
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index b21a3ba..5b0b080 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/sh/bits/fcntl.h b/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
index 64a6ddb..00b9051 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/SH.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h b/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h
index 220d887..7a45982 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. SH version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/sh/bits/procfs.h b/sysdeps/unix/sysv/linux/sh/bits/procfs.h
index 621070b..b1a45ac 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. SH version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/bits/shmlba.h b/sysdeps/unix/sysv/linux/sh/bits/shmlba.h
index c3a9edf..7765d6a 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. SH version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h b/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h
index d47cd7b..107d833 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat. Linux/sh version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/bits/timesize.h b/sysdeps/unix/sysv/linux/sh/bits/timesize.h
index abc59d7..173bfe8 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/sh.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/bits/typesizes.h b/sysdeps/unix/sysv/linux/sh/bits/typesizes.h
index 06321f9..22857ac 100644
--- a/sysdeps/unix/sysv/linux/sh/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/sh/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. SH version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/clone.S b/sysdeps/unix/sysv/linux/sh/clone.S
index 355a542..a2961ba 100644
--- a/sysdeps/unix/sysv/linux/sh/clone.S
+++ b/sysdeps/unix/sysv/linux/sh/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/kernel-features.h b/sysdeps/unix/sysv/linux/sh/kernel-features.h
index 320faa6..dabf64b 100644
--- a/sysdeps/unix/sysv/linux/sh/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sh/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. SH version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 449d92b..d716673 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2825,6 +2825,25 @@ GLIBC_2.4 sys_errlist D 0x210
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index b21a3ba..5b0b080 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -878,3 +878,75 @@ GLIBC_2.40 logp1f32 F
GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h b/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
index f808a74..8e35e2f 100644
--- a/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
+++ b/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/makecontext.S b/sysdeps/unix/sysv/linux/sh/makecontext.S
index d20a630..482eaa2 100644
--- a/sysdeps/unix/sysv/linux/sh/makecontext.S
+++ b/sysdeps/unix/sysv/linux/sh/makecontext.S
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/pointer_guard.h b/sysdeps/unix/sysv/linux/sh/pointer_guard.h
index 3eba9eb..17334e3 100644
--- a/sysdeps/unix/sysv/linux/sh/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/sh/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. Generic (no-op) version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S b/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
index 55e91df..b954915 100644
--- a/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S b/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
index e66802a..0caa08c 100644
--- a/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S b/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
index ef33095..ad4bf05 100644
--- a/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S b/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
index c890ce0..329a790 100644
--- a/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -67,6 +67,8 @@ ENTRY(__getcontext)
add #(oFPUL+4-124),r0
sts.l fpul, @-r0
sts.l fpscr, @-r0
+ mov #0, r6
+ lds r6, fpscr
frchg
fmov.s fr15, @-r0
fmov.s fr14, @-r0
@@ -101,6 +103,10 @@ ENTRY(__getcontext)
fmov.s fr2, @-r0
fmov.s fr1, @-r0
fmov.s fr0, @-r0
+ mov r4, r0
+ add #124, r0
+ add #(oFPSCR-124), r0
+ lds.l @r0+, fpscr
#endif /* __SH_FPU_ANY__ */
/* sigprocmask (SIG_BLOCK, NULL, &uc->uc_sigmask). */
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S b/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
index 0cd12af..60aff78 100644
--- a/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -50,6 +50,8 @@ ENTRY(__setcontext)
.Lsetcontext_restore:
#ifdef __SH_FPU_ANY__
+ mov #0, r9
+ lds r9, fpscr
mov r8, r0
add #(oFR0),r0
fmov.s @r0+, fr0
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S b/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
index a8e9028..6cf88f2 100644
--- a/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -67,6 +67,8 @@ ENTRY(__swapcontext)
add #(oFPUL+4-124),r0
sts.l fpul, @-r0
sts.l fpscr, @-r0
+ mov #0, r9
+ lds r9, fpscr
frchg
fmov.s fr15, @-r0
fmov.s fr14, @-r0
diff --git a/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
index 3cd9ca9..0790e60 100644
--- a/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
index 19fa2f9..6d3e2bd 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sys/user.h b/sysdeps/unix/sysv/linux/sh/sys/user.h
index 8cbaf1a..c2000e4 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/user.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/syscall.S b/sysdeps/unix/sysv/linux/sh/syscall.S
index 8b122e2..28c0b41 100644
--- a/sysdeps/unix/sysv/linux/sh/syscall.S
+++ b/sysdeps/unix/sysv/linux/sh/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/syscall_cancel.S b/sysdeps/unix/sysv/linux/sh/syscall_cancel.S
new file mode 100644
index 0000000..3a088ef
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sh/syscall_cancel.S
@@ -0,0 +1,126 @@
+/* Cancellable syscall wrapper. Linux/sh version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ long int nr,
+ long int arg1,
+ long int arg2,
+ long int arg3,
+ long int arg4,
+ long int arg5,
+ long int arg6) */
+
+ENTRY (__syscall_cancel_arch)
+
+#ifdef SHARED
+ mov.l r12,@-r15
+ cfi_def_cfa_offset (4)
+ cfi_offset (12, -4)
+ mova L(GT),r0
+ mov.l L(GT),r12
+ sts.l pr,@-r15
+ cfi_def_cfa_offset (8)
+ cfi_offset (17, -8)
+ add r0,r12
+#else
+ sts.l pr,@-r15
+ cfi_def_cfa_offset (4)
+ cfi_offset (17, -4)
+#endif
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ mov.l @r4,r0
+ tst #TCB_CANCELED_BITMASK,r0
+ bf/s 1f
+
+ /* Issue a 6 argument syscall. */
+ mov r5,r3
+ mov r6,r4
+ mov r7,r5
+#ifdef SHARED
+ mov.l @(8,r15),r6
+ mov.l @(12,r15),r7
+ mov.l @(16,r15),r0
+ mov.l @(20,r15),r1
+#else
+ mov.l @(4,r15),r6
+ mov.l @(8,r15),r7
+ mov.l @(12,r15),r0
+ mov.l @(16,r15),r1
+#endif
+ trapa #0x16
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ /* The additional or is a workaround for a hardware issue:
+ http://documentation.renesas.com/eng/products/mpumcu/tu/tnsh7456ae.pdf
+ */
+ or r0,r0
+ or r0,r0
+ or r0,r0
+ or r0,r0
+ or r0,r0
+
+ lds.l @r15+,pr
+ cfi_remember_state
+ cfi_restore (17)
+#ifdef SHARED
+ cfi_def_cfa_offset (4)
+ rts
+ mov.l @r15+,r12
+ cfi_def_cfa_offset (0)
+ cfi_restore (12)
+ .align 1
+1:
+ cfi_restore_state
+ mov.l L(SC),r1
+ bsrf r1
+L(M):
+ nop
+
+ .align 2
+L(GT):
+ .long _GLOBAL_OFFSET_TABLE_
+L(SC):
+ .long __syscall_do_cancel-(L(M)+2)
+#else
+ cfi_def_cfa_offset (0)
+ rts
+ nop
+
+ .align 1
+1:
+ cfi_restore_state
+ mov.l 2f,r1
+ jsr @r1
+ nop
+
+ .align 2
+2:
+ .long __syscall_do_cancel
+#endif
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.S b/sysdeps/unix/sysv/linux/sh/sysdep.S
index d5d8c5e..db898e9 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.S
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.h b/sysdeps/unix/sysv/linux/sh/sysdep.h
index a394a1e..93c5b51 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sh/vfork.S b/sysdeps/unix/sysv/linux/sh/vfork.S
index b92cfe7..3400190 100644
--- a/sysdeps/unix/sysv/linux/sh/vfork.S
+++ b/sysdeps/unix/sysv/linux/sh/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/shmat.c b/sysdeps/unix/sysv/linux/shmat.c
index 3f6e0b9..06a8981 100644
--- a/sysdeps/unix/sysv/linux/shmat.c
+++ b/sysdeps/unix/sysv/linux/shmat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/shmctl.c b/sysdeps/unix/sysv/linux/shmctl.c
index 5f13b57..2e8faaf 100644
--- a/sysdeps/unix/sysv/linux/shmctl.c
+++ b/sysdeps/unix/sysv/linux/shmctl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/shmdt.c b/sysdeps/unix/sysv/linux/shmdt.c
index 60d54ca..56c27c9 100644
--- a/sysdeps/unix/sysv/linux/shmdt.c
+++ b/sysdeps/unix/sysv/linux/shmdt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/shmget.c b/sysdeps/unix/sysv/linux/shmget.c
index 8f47aed..e27e9a2 100644
--- a/sysdeps/unix/sysv/linux/shmget.c
+++ b/sysdeps/unix/sysv/linux/shmget.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/shutdown.c b/sysdeps/unix/sysv/linux/shutdown.c
index 987ab66..29d8968 100644
--- a/sysdeps/unix/sysv/linux/shutdown.c
+++ b/sysdeps/unix/sysv/linux/shutdown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/siglist-compat.h b/sysdeps/unix/sysv/linux/siglist-compat.h
index e3b647b..6c49820 100644
--- a/sysdeps/unix/sysv/linux/siglist-compat.h
+++ b/sysdeps/unix/sysv/linux/siglist-compat.h
@@ -1,5 +1,5 @@
/* Compatibility signal numbers and their names symbols. Linux version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/signalfd.c b/sysdeps/unix/sysv/linux/signalfd.c
index 55724b8..0235386 100644
--- a/sysdeps/unix/sysv/linux/signalfd.c
+++ b/sysdeps/unix/sysv/linux/signalfd.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigpending.c b/sysdeps/unix/sysv/linux/sigpending.c
index 08e0779..d877e3a 100644
--- a/sysdeps/unix/sysv/linux/sigpending.c
+++ b/sysdeps/unix/sysv/linux/sigpending.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigprocmask.c b/sysdeps/unix/sysv/linux/sigprocmask.c
index b426aa2..481870d 100644
--- a/sysdeps/unix/sysv/linux/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/sigprocmask.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigqueue.c b/sysdeps/unix/sysv/linux/sigqueue.c
index 37d910c..274eb5a 100644
--- a/sysdeps/unix/sysv/linux/sigqueue.c
+++ b/sysdeps/unix/sysv/linux/sigqueue.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigset-cvt-mask.h b/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
index 939e5d0..286e95e 100644
--- a/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
+++ b/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
@@ -1,6 +1,6 @@
/* Convert between lowlevel sigmask and libc representation of sigset_t.
Linux version.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigsetops.h b/sysdeps/unix/sysv/linux/sigsetops.h
index 33db4f7..f4abf83 100644
--- a/sysdeps/unix/sysv/linux/sigsetops.h
+++ b/sysdeps/unix/sysv/linux/sigsetops.h
@@ -1,5 +1,5 @@
/* __sigset_t manipulators. Linux version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigstack.c b/sysdeps/unix/sysv/linux/sigstack.c
index ec9e29f..b75453b 100644
--- a/sysdeps/unix/sysv/linux/sigstack.c
+++ b/sysdeps/unix/sysv/linux/sigstack.c
@@ -1,5 +1,5 @@
/* Emulate sigstack function using sigaltstack.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c
index 4a5de2b..7a9da02 100644
--- a/sysdeps/unix/sysv/linux/sigsuspend.c
+++ b/sysdeps/unix/sysv/linux/sigsuspend.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c
index 3da4e8e..ad76628 100644
--- a/sysdeps/unix/sysv/linux/sigtimedwait.c
+++ b/sysdeps/unix/sysv/linux/sigtimedwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sigwait.c b/sysdeps/unix/sysv/linux/sigwait.c
index 37de8db..7809945 100644
--- a/sysdeps/unix/sysv/linux/sigwait.c
+++ b/sysdeps/unix/sysv/linux/sigwait.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@ __sigwait (const sigset_t *set, int *sig)
siginfo_t si;
int ret;
do
- ret = __sigtimedwait (set, &si, 0);
+ ret = __sigtimedwait (set, &si, NULL);
/* Applications do not expect sigwait to return with EINTR, and the
error code is not specified by POSIX. */
while (ret < 0 && errno == EINTR);
diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c
index dba25bd..a7e2f15 100644
--- a/sysdeps/unix/sysv/linux/sigwaitinfo.c
+++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
int
__sigwaitinfo (const sigset_t *set, siginfo_t *info)
{
- return __sigtimedwait (set, info, 0);
+ return __sigtimedwait (set, info, NULL);
}
libc_hidden_def (__sigwaitinfo)
diff --git a/sysdeps/unix/sysv/linux/single-thread.h b/sysdeps/unix/sysv/linux/single-thread.h
index b651860..eecaa2d 100644
--- a/sysdeps/unix/sysv/linux/single-thread.h
+++ b/sysdeps/unix/sysv/linux/single-thread.h
@@ -1,5 +1,5 @@
/* Single thread optimization, Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sizes.h b/sysdeps/unix/sysv/linux/sizes.h
index ee95da2..2b6099f 100644
--- a/sysdeps/unix/sysv/linux/sizes.h
+++ b/sysdeps/unix/sysv/linux/sizes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/socket-constants-time64.h b/sysdeps/unix/sysv/linux/socket-constants-time64.h
index 1a62054..fc7b2fc 100644
--- a/sysdeps/unix/sysv/linux/socket-constants-time64.h
+++ b/sysdeps/unix/sysv/linux/socket-constants-time64.h
@@ -1,5 +1,5 @@
/* Compat socket constants used in 64-bit compat code.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/socket.c b/sysdeps/unix/sysv/linux/socket.c
index 2cd2626..4ec2b4d 100644
--- a/sysdeps/unix/sysv/linux/socket.c
+++ b/sysdeps/unix/sysv/linux/socket.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/socketcall.h b/sysdeps/unix/sysv/linux/socketcall.h
index 537fa43..44131c2 100644
--- a/sysdeps/unix/sysv/linux/socketcall.h
+++ b/sysdeps/unix/sysv/linux/socketcall.h
@@ -1,5 +1,5 @@
/* ID for functions called via socketcall system call.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -88,14 +88,33 @@
sc_ret; \
})
-
-#define SOCKETCALL_CANCEL(name, args...) \
- ({ \
- int oldtype = LIBC_CANCEL_ASYNC (); \
- long int sc_ret = __SOCKETCALL (SOCKOP_##name, args); \
- LIBC_CANCEL_RESET (oldtype); \
- sc_ret; \
- })
+#define __SOCKETCALL_CANCEL1(__name, __a1) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [1]) { (long int) __a1 }))
+#define __SOCKETCALL_CANCEL2(__name, __a1, __a2) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [2]) { (long int) __a1, (long int) __a2 }))
+#define __SOCKETCALL_CANCEL3(__name, __a1, __a2, __a3) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [3]) { (long int) __a1, (long int) __a2, (long int) __a3 }))
+#define __SOCKETCALL_CANCEL4(__name, __a1, __a2, __a3, __a4) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [4]) { (long int) __a1, (long int) __a2, (long int) __a3, \
+ (long int) __a4 }))
+#define __SOCKETCALL_CANCEL5(__name, __a1, __a2, __a3, __a4, __a5) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [5]) { (long int) __a1, (long int) __a2, (long int) __a3, \
+ (long int) __a4, (long int) __a5 }))
+#define __SOCKETCALL_CANCEL6(__name, __a1, __a2, __a3, __a4, __a5, __a6) \
+ SYSCALL_CANCEL (socketcall, __name, \
+ ((long int [6]) { (long int) __a1, (long int) __a2, (long int) __a3, \
+ (long int) __a4, (long int) __a5, (long int) __a6 }))
+
+#define __SOCKETCALL_CANCEL(...) __SOCKETCALL_DISP (__SOCKETCALL_CANCEL,\
+ __VA_ARGS__)
+
+#define SOCKETCALL_CANCEL(name, args...) \
+ __SOCKETCALL_CANCEL (SOCKOP_##name, args)
#endif /* sys/socketcall.h */
diff --git a/sysdeps/unix/sysv/linux/socketpair.c b/sysdeps/unix/sysv/linux/socketpair.c
index 8cd4301..4f2ae22 100644
--- a/sysdeps/unix/sysv/linux/socketpair.c
+++ b/sysdeps/unix/sysv/linux/socketpair.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/Versions b/sysdeps/unix/sysv/linux/sparc/Versions
index f127bdf..7dd61a5 100644
--- a/sysdeps/unix/sysv/linux/sparc/Versions
+++ b/sysdeps/unix/sysv/linux/sparc/Versions
@@ -29,6 +29,10 @@ libc {
__getshmlba;
}
+ GLIBC_2.42 {
+ tcgetattr;
+ tcsetattr;
+ }
GLIBC_PRIVATE {
# nptl/pthread_cond_timedwait.c uses INTERNAL_VSYSCALL(clock_gettime).
__vdso_clock_gettime;
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/environments.h b/sysdeps/unix/sysv/linux/sparc/bits/environments.h
index d31d5c2..d8339e6 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/epoll.h b/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
index fbc003f..2e22144 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/errno.h b/sysdeps/unix/sysv/linux/sparc/bits/errno.h
index dc57434..dfe616c 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/errno.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/errno.h
@@ -1,5 +1,5 @@
/* Error constants. Linux/Sparc specific version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h b/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
index abd23b4..2a3de66 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
index 3beeb4b..654a96d 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/SPARC.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/inotify.h b/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
index a2b90b6..209f178 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h b/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h
index a0b47b5..1a95466 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h b/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h
index 8f78a55..68a56c7 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h
@@ -1,5 +1,5 @@
/* struct ipc_perm definition. Linux/sparc version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/mman.h b/sysdeps/unix/sysv/linux/sparc/bits/mman.h
index 679c389..4075b18 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/SPARC version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/poll.h b/sysdeps/unix/sysv/linux/sparc/bits/poll.h
index 70f88fa..8ad8c4a 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/poll.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/poll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h b/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h
index 21d365a..95d6c1a 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/procfs-extra.h
@@ -1,5 +1,5 @@
/* Extra sys/procfs.h definitions. SPARC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h b/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h
index 615716e..f992909 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. SPARC version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/procfs.h b/sysdeps/unix/sysv/linux/sparc/bits/procfs.h
index 72952ad..487d6b5 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. SPARC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h b/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h
index c6f736c..9ffb7f5 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/pthread_stack_min.h
@@ -1,5 +1,5 @@
/* Definition of PTHREAD_STACK_MIN. Linux/SPARC version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/resource.h b/sysdeps/unix/sysv/linux/sparc/bits/resource.h
index 7711e84..193c946 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/resource.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/resource.h
@@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Linux/SPARC version.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h b/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
index 66aa299..3f959dd 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h b/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h
index a35859f..4cb2df5 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/shmlba.h
@@ -1,5 +1,5 @@
/* Define SHMLBA. SPARC version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
index 06b36fe..f5bc349 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
@@ -1,5 +1,5 @@
/* The proper definitions for Linux/SPARC sigaction.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h b/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
index c9ae8b6..64784cb 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h b/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
index 0a45883..4df5b87 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h b/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h
index ab4373f..6abf08b 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h
@@ -1,5 +1,5 @@
/* Signal number definitions. Linux/SPARC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h b/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
index b065216..25102e3 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
@@ -1,5 +1,5 @@
/* sigstack, sigaltstack definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h b/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h
index e7a6b68..98aec92 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/socket-constants.h
@@ -1,5 +1,5 @@
/* Socket constants which vary among Linux architectures. Version for SPARC.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h b/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
index e60a88a..e4da461 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
@@ -1,5 +1,5 @@
/* Define enum __socket_type for Linux/SPARC.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h b/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h
index fcab5f4..622b8e1 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
index 87be92c..75803d6 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
@@ -1,5 +1,5 @@
/* termios c_cc symbolic constant definitions. Linux/sparc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h
index d434456..ff342c3 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_oflag.h
@@ -1,5 +1,5 @@
/* termios output mode definitions. Linux/sparc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-cbaud.h
index b9b94a4..34eba18 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-cbaud.h
@@ -1,5 +1,5 @@
/* termios baud rate selection definitions. Linux/sparc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,30 +17,29 @@
<https://www.gnu.org/licenses/>. */
#ifndef _TERMIOS_H
-# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+# error "Never include <bits/termios-cbaud.h> directly; use <termios.h> instead."
#endif
#ifdef __USE_MISC
# define CBAUD 0x0000100f
# define CBAUDEX 0x00001000
-# define CIBAUD 0x100f0000 /* input baud rate (not used) */
-# define CMSPAR 0x40000000 /* mark or space (stick) parity */
-# define CRTSCTS 0x80000000 /* flow control */
+# define CIBAUD 0x100f0000 /* input baud rate */
+# define IBSHIFT 16
#endif
-#define B57600 0x00001001
-#define B115200 0x00001002
-#define B230400 0x00001003
-#define B460800 0x00001004
-#define B76800 0x00001005
-#define B153600 0x00001006
-#define B307200 0x00001007
-#define B614400 0x00001008
-#define B921600 0x00001009
-#define B500000 0x0000100a
-#define B576000 0x0000100b
-#define B1000000 0x0000100c
-#define B1152000 0x0000100d
-#define B1500000 0x0000100e
-#define B2000000 0x0000100f
-#define __MAX_BAUD B2000000
+#define __B57600 0x00001001
+#define __B115200 0x00001002
+#define __B230400 0x00001003
+#define __B460800 0x00001004
+#define __B76800 0x00001005
+#define __B153600 0x00001006
+#define __B307200 0x00001007
+#define __B614400 0x00001008
+#define __B921600 0x00001009
+#define __B500000 0x0000100a
+#define __B576000 0x0000100b
+#define __B1000000 0x0000100c
+#define __B1152000 0x0000100d
+#define __B1500000 0x0000100e
+#define __B2000000 0x0000100f
+#define __BOTHER 0x00001000
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h
deleted file mode 100644
index c7cdc8c..0000000
--- a/sysdeps/unix/sysv/linux/sparc/bits/termios-struct.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* struct termios definition. Linux/sparc version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _TERMIOS_H
-# error "Never include <bits/termios-struct.h> directly; use <termios.h> instead."
-#endif
-
-#define NCCS 17
-struct termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
-#define _HAVE_STRUCT_TERMIOS_C_ISPEED 0
-#define _HAVE_STRUCT_TERMIOS_C_OSPEED 0
- };
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h b/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
index 532f325..e381e97 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/timesize.h b/sysdeps/unix/sysv/linux/sparc/bits/timesize.h
index 4ba7e22..ea129aa 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, Linux/sparc.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
index ed8d47c..60b8dbe 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
@@ -1,5 +1,5 @@
/* Linux/SPARC implementation of the SysV message struct msqid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h
index b9e729b..95d66ca 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* Sparc implementation of the semaphore struct semid_ds
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h
index 7885d2a..1289e5a 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_shmid_ds.h
@@ -1,5 +1,5 @@
/* Linux/SPARC implementation of the shared memory struct shmid_ds.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
index 9f3842a..97e9641 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/SPARC version.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/brk_call.h b/sysdeps/unix/sysv/linux/sparc/brk_call.h
index 167295c..99361c9 100644
--- a/sysdeps/unix/sysv/linux/sparc/brk_call.h
+++ b/sysdeps/unix/sysv/linux/sparc/brk_call.h
@@ -1,5 +1,5 @@
/* Invoke the brk system call. Sparc version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/dl-cache.h b/sysdeps/unix/sysv/linux/sparc/dl-cache.h
index cb6cc56..b1e39aa 100644
--- a/sysdeps/unix/sysv/linux/sparc/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/sparc/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/errlist-compat-data.h b/sysdeps/unix/sysv/linux/sparc/errlist-compat-data.h
index c390163..9006f08 100644
--- a/sysdeps/unix/sysv/linux/sparc/errlist-compat-data.h
+++ b/sysdeps/unix/sysv/linux/sparc/errlist-compat-data.h
@@ -1,5 +1,5 @@
/* Linux sys_errlist compat symbol definitions. Sparc version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/getrlimit64.c b/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
index f17b1a2..fc52b7d 100644
--- a/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
@@ -1,5 +1,5 @@
/* Linux getrlimit64 sparc32 implementation (64 bits rlim_t).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/getshmlba.c b/sysdeps/unix/sysv/linux/sparc/getshmlba.c
index 9f502f1..cfadee7 100644
--- a/sysdeps/unix/sysv/linux/sparc/getshmlba.c
+++ b/sysdeps/unix/sysv/linux/sparc/getshmlba.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
index f7efbae..24423db 100644
--- a/sysdeps/unix/sysv/linux/sparc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sparc/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. SPARC version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/kernel_termios.h b/sysdeps/unix/sysv/linux/sparc/kernel_termios.h
deleted file mode 100644
index 61b7e84..0000000
--- a/sysdeps/unix/sysv/linux/sparc/kernel_termios.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _KERNEL_TERMIOS_H
-#define _KERNEL_TERMIOS_H 1
-/* The following corresponds to the values from the Linux 2.1.20 kernel. */
-
-/* We need the definition of tcflag_t, cc_t, and speed_t. */
-#include <termios.h>
-
-#define __KERNEL_NCCS 17
-
-struct __kernel_termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[__KERNEL_NCCS]; /* control characters */
- };
-
-#define _HAVE_C_ISPEED 0
-#define _HAVE_C_OSPEED 0
-
-#endif /* kernel_termios.h */
diff --git a/sysdeps/unix/sysv/linux/sparc/librt-compat.c b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
index 2dcad0a..22b3ba1 100644
--- a/sysdeps/unix/sysv/linux/sparc/librt-compat.c
+++ b/sysdeps/unix/sysv/linux/sparc/librt-compat.c
@@ -1,5 +1,5 @@
/* Placeholder definitions to pull in removed symbol versions. sparc version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/profil-counter.h b/sysdeps/unix/sysv/linux/sparc/profil-counter.h
index ef40359..715a361 100644
--- a/sysdeps/unix/sysv/linux/sparc/profil-counter.h
+++ b/sysdeps/unix/sysv/linux/sparc/profil-counter.h
@@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Linux/Sparc64 version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/readelflib.c b/sysdeps/unix/sysv/linux/sparc/readelflib.c
index afd5d7c..7f3dcab 100644
--- a/sysdeps/unix/sysv/linux/sparc/readelflib.c
+++ b/sysdeps/unix/sysv/linux/sparc/readelflib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h b/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h
index 871558d..31c0bbc 100644
--- a/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h
+++ b/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h
@@ -1,5 +1,5 @@
/* Compat socket constants used in 64-bit compat code.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
index fb77639..7fbe3c2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h b/sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h
index 3bad6f1..85828a8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h
@@ -136,6 +136,7 @@
#define __NR_getuid 24
#define __NR_getuid32 44
#define __NR_getxattr 172
+#define __NR_getxattrat 464
#define __NR_init_module 190
#define __NR_inotify_add_watch 152
#define __NR_inotify_init 151
@@ -171,6 +172,7 @@
#define __NR_listen 354
#define __NR_listmount 458
#define __NR_listxattr 178
+#define __NR_listxattrat 465
#define __NR_llistxattr 179
#define __NR_lookup_dcookie 208
#define __NR_lremovexattr 182
@@ -228,6 +230,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 333
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 284
#define __NR_openat2 437
#define __NR_pause 29
@@ -279,6 +282,7 @@
#define __NR_recvmsg 113
#define __NR_remap_file_pages 192
#define __NR_removexattr 181
+#define __NR_removexattrat 466
#define __NR_rename 128
#define __NR_renameat 291
#define __NR_renameat2 345
@@ -351,6 +355,7 @@
#define __NR_setuid 23
#define __NR_setuid32 87
#define __NR_setxattr 169
+#define __NR_setxattrat 463
#define __NR_sgetmask 199
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h b/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h
index 8104f46..71d4332 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. SPARC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
index c9cf9bb..79af157 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,11 @@
ENTRY (__clone)
save %sp,-96,%sp
save %sp,-96,%sp
+#ifdef __sparcv9
flushw
+#else
+ ta 3
+#endif
restore
cfi_def_cfa_register(%fp)
cfi_window_save
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
index 4004c4e..d9d2ce8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index e615be7..6deedf2 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -3157,6 +3157,27 @@ GLIBC_2.4 wcstold F
GLIBC_2.4 wcstold_l F
GLIBC_2.4 wprintf F
GLIBC_2.4 wscanf F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc_sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc32/libc_sigaction.c
index 96e2fe9..e232731 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc_sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 sigaction call for Linux/SPARC.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index 15c958e..8107101 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1299,3 +1299,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c b/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
index 62013c4..7954b9c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/pointer_guard.h b/sysdeps/unix/sysv/linux/sparc/sparc32/pointer_guard.h
index ab106f6..e6ad73c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. 32-bit SPARC version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
index e86d641..fbc9aa7 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
index 6fcc2f9..187ec3e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigreturn_stub.S b/sysdeps/unix/sysv/linux/sparc/sparc32/sigreturn_stub.S
index 21d36c5..358c844 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigreturn_stub.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigreturn_stub.S
@@ -1,5 +1,5 @@
/* Sigreturn stub function used on sa_restore field.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
index 56abf67..01a138c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S b/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
index 2ae0854..082e1a3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/syscall_cancel.S b/sysdeps/unix/sysv/linux/sparc/sparc32/syscall_cancel.S
new file mode 100644
index 0000000..6bdd87d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/syscall_cancel.S
@@ -0,0 +1,80 @@
+/* Cancellable syscall wrapper. Linux/sparc32 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ long int nr,
+ long int arg1,
+ long int arg2,
+ long int arg3,
+ long int arg4,
+ long int arg5,
+ long int arg6) */
+
+ENTRY (__syscall_cancel_arch)
+ save %sp, -96, %sp
+
+ cfi_window_save
+ cfi_register (%o7, %i7)
+ cfi_def_cfa_register (%fp)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ ld [%i0], %g2
+ andcc %g2, TCB_CANCELED_BITMASK, %g0
+#ifdef __sparcv9
+ bne,pn %icc, 2f
+#else
+ bne 2f
+#endif
+ /* Issue a 6 argument syscall. */
+ mov %i2, %o0
+ mov %i3, %o1
+ mov %i4, %o2
+ mov %i5, %o3
+ ld [%fp+92], %o4
+ ld [%fp+96], %o5
+ mov %i1, %g1
+ ta 0x10
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ bcc 1f
+ nop
+ sub %g0, %o0, %o0
+1:
+ mov %o0, %i0
+#ifdef __sparcv9
+ return %i7+8
+ nop
+#else
+ jmp %i7+8
+ restore
+#endif
+
+2:
+ call __syscall_do_cancel, 0
+ nop
+ nop
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
index d2d68f5..9ad5192 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -107,6 +107,7 @@ ENTRY(name); \
#else /* __ASSEMBLER__ */
#define __SYSCALL_STRING \
+ "mov %[scn], %%g1;" \
"ta 0x10;" \
"bcc 1f;" \
" nop;" \
@@ -114,7 +115,7 @@ ENTRY(name); \
"1:"
#define __SYSCALL_CLOBBERS \
- "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
+ "g1", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S b/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
index e124b28..8e578d1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
index 8379e0f..7b98592 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S b/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
index fa521a9..5c82694 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h b/sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h
index 98e1437..d83ecd1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h
@@ -121,6 +121,7 @@
#define __NR_gettimeofday 116
#define __NR_getuid 24
#define __NR_getxattr 172
+#define __NR_getxattrat 464
#define __NR_init_module 190
#define __NR_inotify_add_watch 152
#define __NR_inotify_init 151
@@ -154,6 +155,7 @@
#define __NR_listen 354
#define __NR_listmount 458
#define __NR_listxattr 178
+#define __NR_listxattrat 465
#define __NR_llistxattr 179
#define __NR_lookup_dcookie 208
#define __NR_lremovexattr 182
@@ -209,6 +211,7 @@
#define __NR_open 5
#define __NR_open_by_handle_at 333
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 284
#define __NR_openat2 437
#define __NR_pause 29
@@ -257,6 +260,7 @@
#define __NR_recvmsg 113
#define __NR_remap_file_pages 192
#define __NR_removexattr 181
+#define __NR_removexattrat 466
#define __NR_rename 128
#define __NR_renameat 291
#define __NR_renameat2 345
@@ -320,6 +324,7 @@
#define __NR_settimeofday 122
#define __NR_setuid 23
#define __NR_setxattr 169
+#define __NR_setxattrat 463
#define __NR_sgetmask 199
#define __NR_shmat 397
#define __NR_shmctl 396
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
index 8104f46..71d4332 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h
@@ -1,5 +1,5 @@
/* Properties of long double type. SPARC version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
index 370d51f..7800d0e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
index 4f807b6..b990ff8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
index 13d4b28..e793120 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h b/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
index 9c1944e..468b987 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
@@ -1,5 +1,5 @@
/* Old SysV permission definition for Linux. x86_64 version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/kstat_cp.h b/sysdeps/unix/sysv/linux/sparc/sparc64/kstat_cp.h
index 2aff560..8f4f9f8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/kstat_cp.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/kstat_cp.h
@@ -1,5 +1,5 @@
/* Struct kernel_stat64 to stat64. Linux/SPARC version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
index bd36431..1ce22bf 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -2793,6 +2793,27 @@ GLIBC_2.4 sys_errlist D 0x430
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 tcgetattr F
+GLIBC_2.42 tcsetattr F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc_sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc64/libc_sigaction.c
index 4f92302..4f0ca3d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc_sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 sigaction call for Linux/SPARC64.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index bf608f5..418ed9d 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1189,3 +1189,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
index 5c0ab82..033137f 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
index ca2248d..6539387 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/pointer_guard.h b/sysdeps/unix/sysv/linux/sparc/sparc64/pointer_guard.h
index d7b6899..ab17055 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. 64-bit SPARC version.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
index 644a4bb..f65717b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
index 6366af4..ceba233 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
index 2eb8ff6..1f70503 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigreturn_stub.S b/sysdeps/unix/sysv/linux/sparc/sparc64/sigreturn_stub.S
index 8c9fbbf..02e37d8 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigreturn_stub.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigreturn_stub.S
@@ -1,5 +1,5 @@
/* Sigreturn stub function used on sa_restore field.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
index cf74c66..380cf64 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
index ddd515d..662954b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
index 0d0d3d1..7d5d211 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall_cancel.S b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall_cancel.S
new file mode 100644
index 0000000..59765fe
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall_cancel.S
@@ -0,0 +1,74 @@
+/* Cancellable syscall wrapper. Linux/sparc64 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+ .register %g2, #scratch
+
+/* long int __syscall_cancel_arch (int *cancelhandling,
+ long int nr,
+ long int arg1,
+ long int arg2,
+ long int arg3,
+ long int arg4,
+ long int arg5,
+ long int arg6) */
+
+ENTRY (__syscall_cancel_arch)
+ save %sp, -176, %sp
+
+ cfi_window_save
+ cfi_register (%o7, %i7)
+ cfi_def_cfa_register (%fp)
+
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ lduw [%i0], %g2
+ andcc %g2, TCB_CANCELED_BITMASK, %g0
+ bne,pn %xcc, 2f
+ /* Issue a 6 argument syscall. */
+ mov %i2, %o0
+ mov %i3, %o1
+ mov %i4, %o2
+ mov %i5, %o3
+ ldx [%fp + STACK_BIAS + 176], %o4
+ ldx [%fp + STACK_BIAS + 184], %o5
+ mov %i1, %g1
+ ta 0x6d
+
+ .global __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+
+ bcc,pt %xcc, 1f
+ nop
+ sub %g0, %o0, %o0
+1:
+ mov %o0, %i0
+ return %i7+8
+ nop
+
+2:
+ call __syscall_do_cancel, 0
+ nop
+ nop
+
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
index 9604742..1781dec 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -106,6 +106,7 @@ ENTRY(name); \
#else /* __ASSEMBLER__ */
#define __SYSCALL_STRING \
+ "mov %[scn], %%g1;" \
"ta 0x6d;" \
"bcc,pt %%xcc, 1f;" \
" nop;" \
@@ -113,7 +114,7 @@ ENTRY(name); \
"1:"
#define __SYSCALL_CLOBBERS \
- "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
+ "g1", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
"f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
"f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
"f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h
index 59de36a..f271cad 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. sparc64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h b/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
index c41a932..0723904 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S b/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
index 46084c6..53ffecb 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c b/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
index 144e608..7aedf24 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c b/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
index 027000a..eb210d0 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
index 20da43b..29b6422 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/SPARC version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
index 1061b39..42c864c 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/user.h b/sysdeps/unix/sysv/linux/sparc/sys/user.h
index 44e9c09..7bbe4dc 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/user.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sparc/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sysdep.h
index dcabb57..0051f8b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sparc/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -50,97 +50,109 @@
#undef INTERNAL_SYSCALL_NCS
#define INTERNAL_SYSCALL_NCS(name, nr, args...) \
- internal_syscall##nr(__SYSCALL_STRING, name, args)
+ _internal_syscall##nr(__SYSCALL_STRING, "p", name, args)
-#define internal_syscall0(string,name,dummy...) \
+#define _internal_syscall0(string,nc,name,dummy...) \
({ \
- register long int __g1 __asm__ ("g1") = (name); \
register long __o0 __asm__ ("o0"); \
+ long int _name = (long int) (name); \
__asm __volatile (string : "=r" (__o0) : \
- "r" (__g1) : \
+ [scn] nc (_name) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall0(string,name,args...) \
+ _internal_syscall0(string, "i", name, args)
-#define internal_syscall1(string,name,arg1) \
+#define _internal_syscall1(string,nc,name,arg1) \
({ \
long int _arg1 = (long int) (arg1); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0) : \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall1(string,name,args...) \
+ _internal_syscall1(string, "i", name, args)
-#define internal_syscall2(string,name,arg1,arg2) \
+#define _internal_syscall2(string,nc,name,arg1,arg2) \
({ \
long int _arg1 = (long int) (arg1); \
long int _arg2 = (long int) (arg2); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0), "r" (__o1) : \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name), "r" (__o1) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall2(string,name,args...) \
+ _internal_syscall2(string, "i", name, args)
-#define internal_syscall3(string,name,arg1,arg2,arg3) \
+#define _internal_syscall3(string,nc,name,arg1,arg2,arg3) \
({ \
long int _arg1 = (long int) (arg1); \
long int _arg2 = (long int) (arg2); \
long int _arg3 = (long int) (arg3); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
register long int __o2 __asm__ ("o2") = _arg3; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0), "r" (__o1), \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name), "r" (__o1), \
"r" (__o2) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall3(string,name,args...) \
+ _internal_syscall3(string, "i", name, args)
-#define internal_syscall4(string,name,arg1,arg2,arg3,arg4) \
+#define _internal_syscall4(string,nc,name,arg1,arg2,arg3,arg4) \
({ \
long int _arg1 = (long int) (arg1); \
long int _arg2 = (long int) (arg2); \
long int _arg3 = (long int) (arg3); \
long int _arg4 = (long int) (arg4); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
register long int __o2 __asm__ ("o2") = _arg3; \
register long int __o3 __asm__ ("o3") = _arg4; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0), "r" (__o1), \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name), "r" (__o1), \
"r" (__o2), "r" (__o3) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall4(string,name,args...) \
+ _internal_syscall4(string, "i", name, args)
-#define internal_syscall5(string,name,arg1,arg2,arg3,arg4,arg5) \
+#define _internal_syscall5(string,nc,name,arg1,arg2,arg3,arg4,arg5) \
({ \
long int _arg1 = (long int) (arg1); \
long int _arg2 = (long int) (arg2); \
long int _arg3 = (long int) (arg3); \
long int _arg4 = (long int) (arg4); \
long int _arg5 = (long int) (arg5); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
register long int __o2 __asm__ ("o2") = _arg3; \
register long int __o3 __asm__ ("o3") = _arg4; \
register long int __o4 __asm__ ("o4") = _arg5; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0), "r" (__o1), \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name), "r" (__o1), \
"r" (__o2), "r" (__o3), "r" (__o4) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall5(string,name,args...) \
+ _internal_syscall5(string, "i", name, args)
-#define internal_syscall6(string,name,arg1,arg2,arg3,arg4,arg5,arg6) \
+#define _internal_syscall6(string,nc,name,arg1,arg2,arg3,arg4,arg5,arg6)\
({ \
long int _arg1 = (long int) (arg1); \
long int _arg2 = (long int) (arg2); \
@@ -148,20 +160,22 @@
long int _arg4 = (long int) (arg4); \
long int _arg5 = (long int) (arg5); \
long int _arg6 = (long int) (arg6); \
- register long int __g1 __asm__("g1") = (name); \
+ long int _name = (long int) (name); \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
register long int __o2 __asm__ ("o2") = _arg3; \
register long int __o3 __asm__ ("o3") = _arg4; \
register long int __o4 __asm__ ("o4") = _arg5; \
register long int __o5 __asm__ ("o5") = _arg6; \
- __asm __volatile (string : "=r" (__o0) : \
- "r" (__g1), "0" (__o0), "r" (__o1), \
+ __asm __volatile (string : "+r" (__o0) : \
+ [scn] nc (_name), "r" (__o1), \
"r" (__o2), "r" (__o3), "r" (__o4), \
"r" (__o5) : \
__SYSCALL_CLOBBERS); \
__o0; \
})
+#define internal_syscall6(string,name,args...) \
+ _internal_syscall6(string, "i", name, args)
#define INLINE_CLONE_SYSCALL(arg1,arg2,arg3,arg4,arg5) \
({ \
@@ -170,15 +184,15 @@
long int _arg3 = (long int) (arg3); \
long int _arg4 = (long int) (arg4); \
long int _arg5 = (long int) (arg5); \
+ long int _name = __NR_clone; \
register long int __o0 __asm__ ("o0") = _arg1; \
register long int __o1 __asm__ ("o1") = _arg2; \
register long int __o2 __asm__ ("o2") = _arg3; \
register long int __o3 __asm__ ("o3") = _arg4; \
register long int __o4 __asm__ ("o4") = _arg5; \
- register long int __g1 __asm__ ("g1") = __NR_clone; \
__asm __volatile (__SYSCALL_STRING : \
"=r" (__o0), "=r" (__o1) : \
- "r" (__g1), "0" (__o0), "1" (__o1), \
+ [scn] "i" (_name), "0" (__o0), "1" (__o1), \
"r" (__o2), "r" (__o3), "r" (__o4) : \
__SYSCALL_CLOBBERS); \
if (__glibc_unlikely ((unsigned long int) (__o0) > -4096UL)) \
diff --git a/sysdeps/unix/sysv/linux/sparc/termios_arch.h b/sysdeps/unix/sysv/linux/sparc/termios_arch.h
new file mode 100644
index 0000000..f3b3f65
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/termios_arch.h
@@ -0,0 +1,34 @@
+/* Architectural parameters for Linux termios - SPARC version
+
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _TERMIOS2_NCCS 19
+#define _HAVE_TERMIOS2_C_CC_BEFORE_C_LINE 0
+
+#define _HAVE_STRUCT_OLD_TERMIOS 1
+
+#define OLD_NCCS 17
+struct old_termios
+{
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[OLD_NCCS]; /* control characters */
+};
diff --git a/sysdeps/unix/sysv/linux/spawn_int_def.h b/sysdeps/unix/sysv/linux/spawn_int_def.h
index 604f3fb..524b320 100644
--- a/sysdeps/unix/sysv/linux/spawn_int_def.h
+++ b/sysdeps/unix/sysv/linux/spawn_int_def.h
@@ -1,5 +1,5 @@
/* Internal definitions for posix_spawn functionality. Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/spawnattr_getcgroup_np.c b/sysdeps/unix/sysv/linux/spawnattr_getcgroup_np.c
index c8f2a80..27e6664 100644
--- a/sysdeps/unix/sysv/linux/spawnattr_getcgroup_np.c
+++ b/sysdeps/unix/sysv/linux/spawnattr_getcgroup_np.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/spawnattr_setcgroup_np.c b/sysdeps/unix/sysv/linux/spawnattr_setcgroup_np.c
index 1299c48..cd17ace 100644
--- a/sysdeps/unix/sysv/linux/spawnattr_setcgroup_np.c
+++ b/sysdeps/unix/sysv/linux/spawnattr_setcgroup_np.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
index f57e928..eca1a84 100644
--- a/sysdeps/unix/sysv/linux/spawni.c
+++ b/sysdeps/unix/sysv/linux/spawni.c
@@ -1,5 +1,5 @@
/* POSIX spawn interface. Linux version.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -115,7 +115,7 @@ __spawni_child (void *arguments)
memset (&sa, '\0', sizeof (sa));
sigset_t hset;
- __sigprocmask (SIG_BLOCK, 0, &hset);
+ __sigprocmask (SIG_BLOCK, NULL, &hset);
for (int sig = 1; sig < _NSIG; ++sig)
{
if ((attr->__flags & POSIX_SPAWN_SETSIGDEF)
@@ -129,7 +129,7 @@ __spawni_child (void *arguments)
sa.sa_handler = SIG_IGN;
else
{
- __libc_sigaction (sig, 0, &sa);
+ __libc_sigaction (sig, NULL, &sa);
if (sa.sa_handler == SIG_IGN || sa.sa_handler == SIG_DFL)
continue;
sa.sa_handler = SIG_DFL;
@@ -138,7 +138,7 @@ __spawni_child (void *arguments)
else
continue;
- __libc_sigaction (sig, &sa, 0);
+ __libc_sigaction (sig, &sa, NULL);
}
#ifdef _POSIX_PRIORITY_SCHEDULING
@@ -172,7 +172,7 @@ __spawni_child (void *arguments)
goto fail;
/* Execute the file actions. */
- if (file_actions != 0)
+ if (file_actions != NULL)
{
int cnt;
struct rlimit64 fdlimit;
@@ -383,7 +383,11 @@ __spawnix (int *pid, const char *file,
args.pidfd = 0;
args.xflags = xflags;
- internal_signal_block_all (&args.oldmask);
+ /* Avoid the potential issues if caller sets a SIG_IGN for SIGABRT, calls
+ abort, and another thread issues posix_spawn just after the sigaction
+ returns. With default options (not setting POSIX_SPAWN_SETSIGDEF), the
+ process can still see SIG_DFL for SIGABRT, where it should be SIG_IGN. */
+ __abort_lock_rdlock (&args.oldmask);
/* The clone flags used will create a new child that will run in the same
memory space (CLONE_VM) and the execution of calling thread will be
@@ -474,7 +478,7 @@ __spawnix (int *pid, const char *file,
if ((ec == 0) && (pid != NULL))
*pid = use_pidfd ? args.pidfd : new_pid;
- internal_signal_restore_set (&args.oldmask);
+ __abort_lock_unlock (&args.oldmask);
__pthread_setcancelstate (state, NULL);
diff --git a/sysdeps/unix/sysv/linux/speed.c b/sysdeps/unix/sysv/linux/speed.c
index 2753b02..4efb0de 100644
--- a/sysdeps/unix/sysv/linux/speed.c
+++ b/sysdeps/unix/sysv/linux/speed.c
@@ -1,5 +1,5 @@
/* `struct termios' speed frobnication functions. Linux version.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -16,82 +16,351 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <stddef.h>
-#include <errno.h>
-#include <termios.h>
-#include <sysdep.h>
+#include <termios_internals.h>
-/* This is a gross hack around a kernel bug. If the cfsetispeed functions
- is called with the SPEED argument set to zero this means use the same
- speed as for output. But we don't have independent input and output
- speeds and therefore cannot record this.
+/* Conversions between legacy c_cflag fields and actual baud rates */
- We use an unused bit in the `c_iflag' field to keep track of this
- use of `cfsetispeed'. The value here must correspond to the one used
- in `tcsetattr.c'. */
-#define IBAUD0 020000000000
+/* These expressions may seem complicated; the _cbix() macro
+ compresses the CBAUD field into an index in the range 0-31. On most
+ Linux platforms, the CBAUD field is 5 bits, but the topmost bit
+ indicated by CBAUDEX, is discontinous with the rest.
+
+ The resulting masks look like:
+
+ Alpha PowerPC others
+
+ CBAUD 0x001f 0x00ff 0x100f
+ CBAUDEX 0x0000 0x0010 0x1000
+
+ LOWCBAUD 0x001f 0x000f 0x000f
+ CBAUDMASK 0x001f 0x001f 0x100f
+
+ CBAUDMASK is used to test for invalid values passed to the
+ compatibility functions or in termios::c_cflag on PowerPC.
+
+ The divide-multiply sequence in the _cbix() macro gets converted
+ to shift and masks as necessary by the compiler. */
+
+#define LOWCBAUD (CBAUD & (CBAUDEX-1))
+#define _cbix(x) (((x) & LOWCBAUD) | \
+ (CBAUDEX ? ((x) & CBAUDEX)/CBAUDEX * (LOWCBAUD+1) : 0))
+#define CBAUDMASK (LOWCBAUD | CBAUDEX)
+
+/* Compile time sanity checks for broken CBAUD or CIBAUD definitions */
+#if CIBAUD != (CBAUD << IBSHIFT)
+# error "CIBAUD should == CBAUD << IBSHIFT"
+#elif CBAUDEX & (CBAUDEX-1)
+# error "CBAUDEX should either be 0 or a single bit"
+#elif !(CBAUD & 1)
+# error "The CBAUD field should start at bit 0"
+#elif CBAUDEX & ~CBAUD
+# error "CBAUD should include the CBAUDEX bit"
+#endif
+
+speed_t
+___cbaud_to_speed (tcflag_t c_cflag, speed_t other)
+{
+ static const speed_t cbaudix_to_speed [] =
+ {
+ [0 ... _cbix(CBAUDMASK)] = -1,
+ [_cbix(__B0)] = 0,
+ [_cbix(__B50)] = 50,
+ [_cbix(__B75)] = 75,
+ [_cbix(__B110)] = 110,
+ [_cbix(__B134)] = 134,
+ [_cbix(__B150)] = 150,
+ [_cbix(__B200)] = 200,
+ [_cbix(__B300)] = 300,
+ [_cbix(__B600)] = 600,
+ [_cbix(__B1200)] = 1200,
+ [_cbix(__B1800)] = 1800,
+ [_cbix(__B2400)] = 2400,
+ [_cbix(__B4800)] = 4800,
+ [_cbix(__B9600)] = 9600,
+ [_cbix(__B19200)] = 19200,
+ [_cbix(__B38400)] = 38400,
+ [_cbix(__B57600)] = 57600,
+ [_cbix(__B115200)] = 115200,
+ [_cbix(__B230400)] = 230400,
+ [_cbix(__B460800)] = 460800,
+ [_cbix(__B500000)] = 500000,
+ [_cbix(__B576000)] = 576000,
+ [_cbix(__B921600)] = 921600,
+ [_cbix(__B1000000)] = 1000000,
+ [_cbix(__B1152000)] = 1152000,
+ [_cbix(__B1500000)] = 1500000,
+ [_cbix(__B2000000)] = 2000000,
+#ifdef __B7200
+ [_cbix(__B7200)] = 7200,
+#endif
+#ifdef __B14400
+ [_cbix(__B14400)] = 14400,
+#endif
+#ifdef __B28800
+ [_cbix(__B28800)] = 28800,
+#endif
+#ifdef __B76800
+ [_cbix(__B76800)] = 76800,
+#endif
+#ifdef __B153600
+ [_cbix(__B153600)] = 153600,
+#endif
+#ifdef __B307200
+ [_cbix(__B307200)] = 307200,
+#endif
+#ifdef __B614400
+ [_cbix(__B614400)] = 614400,
+#endif
+#ifdef __B2500000
+ [_cbix(__B2500000)] = 2500000,
+#endif
+#ifdef __B3000000
+ [_cbix(__B3000000)] = 3000000,
+#endif
+#ifdef __B3500000
+ [_cbix(__B3500000)] = 3500000,
+#endif
+#ifdef __B4000000
+ [_cbix(__B4000000)] = 4000000,
+#endif
+ };
+ speed_t speed;
+
+ if (c_cflag & (tcflag_t)(~CBAUDMASK))
+ return other;
+
+ speed = cbaudix_to_speed[_cbix(c_cflag)];
+ return speed == (speed_t)-1 ? other : speed;
+}
+
+tcflag_t
+___speed_to_cbaud (speed_t speed)
+{
+ switch (speed) {
+ case 0:
+ return __B0;
+ case 50:
+ return __B50;
+ case 75:
+ return __B75;
+ case 110:
+ return __B110;
+ case 134:
+ return __B134;
+ case 150:
+ return __B150;
+ case 200:
+ return __B200;
+ case 300:
+ return __B300;
+ case 600:
+ return __B600;
+ case 1200:
+ return __B1200;
+ case 1800:
+ return __B1800;
+ case 2400:
+ return __B2400;
+ case 4800:
+ return __B4800;
+ case 9600:
+ return __B9600;
+ case 19200:
+ return __B19200;
+ case 38400:
+ return __B38400;
+ case 57600:
+ return __B57600;
+ case 115200:
+ return __B115200;
+ case 230400:
+ return __B230400;
+ case 460800:
+ return __B460800;
+ case 500000:
+ return __B500000;
+ case 576000:
+ return __B576000;
+ case 921600:
+ return __B921600;
+ case 1000000:
+ return __B1000000;
+ case 1152000:
+ return __B1152000;
+ case 1500000:
+ return __B1500000;
+ case 2000000:
+ return __B2000000;
+#ifdef __B76800
+ case 76800:
+ return __B76800;
+#endif
+#ifdef __B153600
+ case 153600:
+ return __B153600;
+#endif
+#ifdef __B307200
+ case 307200:
+ return __B307200;
+#endif
+#ifdef __B614400
+ case 614400:
+ return __B614400;
+#endif
+#ifdef __B2500000
+ case 2500000:
+ return __B2500000;
+#endif
+#ifdef __B3000000
+ case 3000000:
+ return __B3000000;
+#endif
+#ifdef __B3500000
+ case 3500000:
+ return __B3500000;
+#endif
+#ifdef __B4000000
+ case 4000000:
+ return __B4000000;
+#endif
+ default:
+ return __BOTHER;
+ }
+}
+
+
+/* Canonicalize the representation of speed fields in a kernel
+ termios2 structure. Specifically, if there is a valid legacy cbaud
+ representation (not __BOTHER), use it and propagate the
+ corresponding speed value to ispeed/ospeed, otherwise the other way
+ around if possible. Finally, if the input speed is zero, copy the
+ output speed to the input speed.
+
+ The kernel doesn't do this canonicalization, which can affect
+ legacy utilities, so do it here.
+
+ This is used by tcgetattr() and tcsetattr(). */
+void
+___termios2_canonicalize_speeds (struct termios2 *k_termios_p)
+{
+ k_termios_p->c_ospeed =
+ ___cbaud_to_speed (cbaud (k_termios_p->c_cflag), k_termios_p->c_ospeed);
+ k_termios_p->c_ispeed =
+ ___cbaud_to_speed (cibaud (k_termios_p->c_cflag), k_termios_p->c_ispeed);
+
+ if (!k_termios_p->c_ispeed)
+ k_termios_p->c_ispeed = k_termios_p->c_ospeed;
+
+ k_termios_p->c_cflag &= ~(CBAUD | CIBAUD);
+ k_termios_p->c_cflag |= ___speed_to_cbaud (k_termios_p->c_ospeed);
+ k_termios_p->c_cflag |= ___speed_to_cbaud (k_termios_p->c_ispeed) << IBSHIFT;
+}
/* Return the output baud rate stored in *TERMIOS_P. */
speed_t
-cfgetospeed (const struct termios *termios_p)
+__cfgetospeed (const struct termios *termios_p)
{
- return termios_p->c_cflag & (CBAUD | CBAUDEX);
+ return termios_p->c_ospeed;
}
+libc_hidden_def (__cfgetospeed)
+versioned_symbol (libc, __cfgetospeed, cfgetospeed, GLIBC_2_42);
-/* Return the input baud rate stored in *TERMIOS_P.
- Although for Linux there is no difference between input and output
- speed, the numerical 0 is a special case for the input baud rate. It
- should set the input baud rate to the output baud rate. */
+/* Return the input baud rate stored in *TERMIOS_P. */
speed_t
-cfgetispeed (const struct termios *termios_p)
+__cfgetispeed (const struct termios *termios_p)
{
- return ((termios_p->c_iflag & IBAUD0)
- ? 0 : termios_p->c_cflag & (CBAUD | CBAUDEX));
+ return termios_p->c_ispeed;
}
+libc_hidden_def (__cfgetispeed)
+versioned_symbol (libc, __cfgetispeed, cfgetispeed, GLIBC_2_42);
/* Set the output baud rate stored in *TERMIOS_P to SPEED. */
int
-cfsetospeed (struct termios *termios_p, speed_t speed)
+__cfsetospeed (struct termios *termios_p, speed_t speed)
{
- if ((speed & ~CBAUD) != 0
- && (speed < B57600 || speed > __MAX_BAUD))
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+ tcflag_t cbaud = ___speed_to_cbaud (speed);
-#if _HAVE_STRUCT_TERMIOS_C_OSPEED
termios_p->c_ospeed = speed;
+ termios_p->c_cflag &= ~CBAUD;
+ termios_p->c_cflag |= cbaud;
+
+ return 0;
+}
+libc_hidden_def (__cfsetospeed)
+versioned_symbol (libc, __cfsetospeed, cfsetospeed, GLIBC_2_42);
+
+/* Set the input baud rate stored in *TERMIOS_P to SPEED. */
+int
+__cfsetispeed (struct termios *termios_p, speed_t speed)
+{
+ tcflag_t cbaud = ___speed_to_cbaud (speed);
+
+ termios_p->c_ispeed = speed;
+ termios_p->c_cflag &= ~CIBAUD;
+ termios_p->c_cflag |= cbaud << IBSHIFT;
+
+ return 0;
+}
+libc_hidden_def (__cfsetispeed)
+versioned_symbol (libc, __cfsetispeed, cfsetispeed, GLIBC_2_42);
+
+#if _TERMIOS_OLD_COMPAT
+
+/* Legacy versions which returns cbaud-encoded speed_t values */
+
+speed_t
+attribute_compat_text_section
+__old_cfgetospeed (const old_termios_t *termios_p)
+{
+ return cbaud (termios_p->c_cflag);
+}
+compat_symbol (libc, __old_cfgetospeed, cfgetospeed, GLIBC_2_0);
+
+speed_t
+attribute_compat_text_section
+__old_cfgetispeed (const old_termios_t *termios_p)
+{
+ return cibaud (termios_p->c_cflag);
+}
+compat_symbol (libc, __old_cfgetispeed, cfgetispeed, GLIBC_2_0);
+
+int
+attribute_compat_text_section
+__old_cfsetospeed (old_termios_t *termios_p, speed_t speed)
+{
+ speed_t real_speed = ___cbaud_to_speed (speed, -1);
+ if (real_speed == (speed_t)-1)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+#if !_HAVE_STRUCT_OLD_TERMIOS
+ /* Otherwise this field doesn't exist in old_termios_t */
+ termios_p->c_ospeed = real_speed;
#endif
- termios_p->c_cflag &= ~(CBAUD | CBAUDEX);
+ termios_p->c_cflag &= ~CBAUD;
termios_p->c_cflag |= speed;
return 0;
}
-libc_hidden_def (cfsetospeed)
+compat_symbol (libc, __old_cfsetospeed, cfsetospeed, GLIBC_2_0);
-
-/* Set the input baud rate stored in *TERMIOS_P to SPEED.
- Although for Linux there is no difference between input and output
- speed, the numerical 0 is a special case for the input baud rate. It
- should set the input baud rate to the output baud rate. */
int
-cfsetispeed (struct termios *termios_p, speed_t speed)
+attribute_compat_text_section
+__old_cfsetispeed (old_termios_t *termios_p, speed_t speed)
{
- if ((speed & ~CBAUD) != 0
- && (speed < B57600 || speed > __MAX_BAUD))
+ speed_t real_speed = ___cbaud_to_speed (speed, -1);
+ if (real_speed == (speed_t)-1)
return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
-#if _HAVE_STRUCT_TERMIOS_C_ISPEED
- termios_p->c_ispeed = speed;
+#if !_HAVE_STRUCT_OLD_TERMIOS
+ /* Otherwise this field doesn't exist in old_termios_t */
+ termios_p->c_ispeed = real_speed;
#endif
- if (speed == 0)
- termios_p->c_iflag |= IBAUD0;
- else
- {
- termios_p->c_iflag &= ~IBAUD0;
- termios_p->c_cflag &= ~(CBAUD | CBAUDEX);
- termios_p->c_cflag |= speed;
- }
+ termios_p->c_cflag &= ~CIBAUD;
+ termios_p->c_cflag |= speed << IBSHIFT;
return 0;
}
-libc_hidden_def (cfsetispeed)
+compat_symbol (libc, __old_cfsetispeed, cfsetispeed, GLIBC_2_0);
+
+#endif /* _TERMIOS_OLD_COMPAT */
diff --git a/sysdeps/unix/sysv/linux/splice.c b/sysdeps/unix/sysv/linux/splice.c
index ab39620..9a34238 100644
--- a/sysdeps/unix/sysv/linux/splice.c
+++ b/sysdeps/unix/sysv/linux/splice.c
@@ -1,5 +1,5 @@
/* Splice data to/from a pipe Linux implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/startup.h b/sysdeps/unix/sysv/linux/startup.h
index 0092753..0b11bc0 100644
--- a/sysdeps/unix/sysv/linux/startup.h
+++ b/sysdeps/unix/sysv/linux/startup.h
@@ -1,5 +1,5 @@
/* Linux definitions of functions used by static libc main startup.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/stat.c b/sysdeps/unix/sysv/linux/stat.c
index 21364f6..ce5175b 100644
--- a/sysdeps/unix/sysv/linux/stat.c
+++ b/sysdeps/unix/sysv/linux/stat.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/stat64.c b/sysdeps/unix/sysv/linux/stat64.c
index 4c8e175..61b6f5e 100644
--- a/sysdeps/unix/sysv/linux/stat64.c
+++ b/sysdeps/unix/sysv/linux/stat64.c
@@ -1,5 +1,5 @@
/* Get file status. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/stat_t64_cp.c b/sysdeps/unix/sysv/linux/stat_t64_cp.c
index 3a07b78..a409f95 100644
--- a/sysdeps/unix/sysv/linux/stat_t64_cp.c
+++ b/sysdeps/unix/sysv/linux/stat_t64_cp.c
@@ -1,5 +1,5 @@
/* Struct stat/stat64 to stat/stat64 conversion for Linux.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/stat_t64_cp.h b/sysdeps/unix/sysv/linux/stat_t64_cp.h
index 176b995..7f34f78 100644
--- a/sysdeps/unix/sysv/linux/stat_t64_cp.h
+++ b/sysdeps/unix/sysv/linux/stat_t64_cp.h
@@ -1,5 +1,5 @@
/* Copy to/from struct stat with and without 64-bit time_t support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statfs.c b/sysdeps/unix/sysv/linux/statfs.c
index 5330063..74b0538 100644
--- a/sysdeps/unix/sysv/linux/statfs.c
+++ b/sysdeps/unix/sysv/linux/statfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statfs64.c b/sysdeps/unix/sysv/linux/statfs64.c
index 477dc12..fa26fa8 100644
--- a/sysdeps/unix/sysv/linux/statfs64.c
+++ b/sysdeps/unix/sysv/linux/statfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statvfs.c b/sysdeps/unix/sysv/linux/statvfs.c
index 724468c..4c7d6fc 100644
--- a/sysdeps/unix/sysv/linux/statvfs.c
+++ b/sysdeps/unix/sysv/linux/statvfs.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statvfs64.c b/sysdeps/unix/sysv/linux/statvfs64.c
index 561e916..7ede175 100644
--- a/sysdeps/unix/sysv/linux/statvfs64.c
+++ b/sysdeps/unix/sysv/linux/statvfs64.c
@@ -1,5 +1,5 @@
/* Return information about the filesystem on which FILE resides.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statx.c b/sysdeps/unix/sysv/linux/statx.c
index a6295a1..9581ed1 100644
--- a/sysdeps/unix/sysv/linux/statx.c
+++ b/sysdeps/unix/sysv/linux/statx.c
@@ -1,5 +1,5 @@
/* Linux statx implementation.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statx_cp.c b/sysdeps/unix/sysv/linux/statx_cp.c
index ecddf6c..1afe840 100644
--- a/sysdeps/unix/sysv/linux/statx_cp.c
+++ b/sysdeps/unix/sysv/linux/statx_cp.c
@@ -1,5 +1,5 @@
/* Struct statx to stat/stat64 conversion for Linux.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/statx_cp.h b/sysdeps/unix/sysv/linux/statx_cp.h
index ee73a77..13f680c 100644
--- a/sysdeps/unix/sysv/linux/statx_cp.h
+++ b/sysdeps/unix/sysv/linux/statx_cp.h
@@ -1,5 +1,5 @@
/* Struct statx to stat/stat64 conversion for Linux.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/struct_stat_time64.h b/sysdeps/unix/sysv/linux/struct_stat_time64.h
index 52797de..c2efdff 100644
--- a/sysdeps/unix/sysv/linux/struct_stat_time64.h
+++ b/sysdeps/unix/sysv/linux/struct_stat_time64.h
@@ -1,5 +1,5 @@
/* Struct stat with 64-bit time support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/symlink.c b/sysdeps/unix/sysv/linux/symlink.c
index 8fe2c88..ebcb8f4 100644
--- a/sysdeps/unix/sysv/linux/symlink.c
+++ b/sysdeps/unix/sysv/linux/symlink.c
@@ -1,5 +1,5 @@
/* Make a new name for a file. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sync_file_range.c b/sysdeps/unix/sysv/linux/sync_file_range.c
index 2a71d10..2c9f780 100644
--- a/sysdeps/unix/sysv/linux/sync_file_range.c
+++ b/sysdeps/unix/sysv/linux/sync_file_range.c
@@ -1,5 +1,5 @@
/* Selective file content synch'ing.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/acct.h b/sysdeps/unix/sysv/linux/sys/acct.h
index ab2bfb0..509b7ec 100644
--- a/sysdeps/unix/sysv/linux/sys/acct.h
+++ b/sysdeps/unix/sysv/linux/sys/acct.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/epoll.h b/sysdeps/unix/sysv/linux/sys/epoll.h
index 45e546f..42dbe70 100644
--- a/sysdeps/unix/sysv/linux/sys/epoll.h
+++ b/sysdeps/unix/sysv/linux/sys/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/eventfd.h b/sysdeps/unix/sysv/linux/sys/eventfd.h
index 32cd267..e236cba 100644
--- a/sysdeps/unix/sysv/linux/sys/eventfd.h
+++ b/sysdeps/unix/sysv/linux/sys/eventfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/fanotify.h b/sysdeps/unix/sysv/linux/sys/fanotify.h
index f2e712b..d5a9afe 100644
--- a/sysdeps/unix/sysv/linux/sys/fanotify.h
+++ b/sysdeps/unix/sysv/linux/sys/fanotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/fsuid.h b/sysdeps/unix/sysv/linux/sys/fsuid.h
index d51a395..3113985 100644
--- a/sysdeps/unix/sysv/linux/sys/fsuid.h
+++ b/sysdeps/unix/sysv/linux/sys/fsuid.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/inotify.h b/sysdeps/unix/sysv/linux/sys/inotify.h
index 566302a..8b23422 100644
--- a/sysdeps/unix/sysv/linux/sys/inotify.h
+++ b/sysdeps/unix/sysv/linux/sys/inotify.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/kd.h b/sysdeps/unix/sysv/linux/sys/kd.h
index 231c058..675dcd7 100644
--- a/sysdeps/unix/sysv/linux/sys/kd.h
+++ b/sysdeps/unix/sysv/linux/sys/kd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/klog.h b/sysdeps/unix/sysv/linux/sys/klog.h
index 189dd80..c3c62ed 100644
--- a/sysdeps/unix/sysv/linux/sys/klog.h
+++ b/sysdeps/unix/sysv/linux/sys/klog.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h
index e5964b5..b549e75 100644
--- a/sysdeps/unix/sysv/linux/sys/mount.h
+++ b/sysdeps/unix/sysv/linux/sys/mount.h
@@ -1,5 +1,5 @@
/* Header file for mounting/unmount Linux filesystems.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -121,7 +121,7 @@ enum
MS_ACTIVE = 1 << 30,
#define MS_ACTIVE MS_ACTIVE
#undef MS_NOUSER
- MS_NOUSER = 1 << 31
+ MS_NOUSER = 1U << 31
#define MS_NOUSER MS_NOUSER
};
diff --git a/sysdeps/unix/sysv/linux/sys/pci.h b/sysdeps/unix/sysv/linux/sys/pci.h
index dd55553..400338c 100644
--- a/sysdeps/unix/sysv/linux/sys/pci.h
+++ b/sysdeps/unix/sysv/linux/sys/pci.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/personality.h b/sysdeps/unix/sysv/linux/sys/personality.h
index 40635ba..3f8971d 100644
--- a/sysdeps/unix/sysv/linux/sys/personality.h
+++ b/sysdeps/unix/sysv/linux/sys/personality.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/pidfd.h b/sysdeps/unix/sysv/linux/sys/pidfd.h
index 9f88d29..e6fc024 100644
--- a/sysdeps/unix/sysv/linux/sys/pidfd.h
+++ b/sysdeps/unix/sysv/linux/sys/pidfd.h
@@ -1,5 +1,5 @@
/* Wrapper for file descriptors that refers to a process functions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,6 +20,7 @@
#include <fcntl.h>
#include <bits/types/siginfo_t.h>
+#include <sys/ioctl.h>
#define PIDFD_NONBLOCK O_NONBLOCK
#define PIDFD_THREAD O_EXCL
@@ -28,6 +29,19 @@
#define PIDFD_SIGNAL_THREAD_GROUP (1UL << 1)
#define PIDFD_SIGNAL_PROCESS_GROUP (1UL << 2)
+#define PIDFS_IOCTL_MAGIC 0xFF
+
+#define PIDFD_GET_CGROUP_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 1)
+#define PIDFD_GET_IPC_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 2)
+#define PIDFD_GET_MNT_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 3)
+#define PIDFD_GET_NET_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 4)
+#define PIDFD_GET_PID_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 5)
+#define PIDFD_GET_PID_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 6)
+#define PIDFD_GET_TIME_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 7)
+#define PIDFD_GET_TIME_FOR_CHILDREN_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 8)
+#define PIDFD_GET_USER_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 9)
+#define PIDFD_GET_UTS_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 10)
+
/* Returns a file descriptor that refers to the process PID. The
close-on-exec is set on the file descriptor. */
extern int pidfd_open (__pid_t __pid, unsigned int __flags) __THROW;
diff --git a/sysdeps/unix/sysv/linux/sys/prctl.h b/sysdeps/unix/sysv/linux/sys/prctl.h
index 79a9b31..d2cdf15 100644
--- a/sysdeps/unix/sysv/linux/sys/prctl.h
+++ b/sysdeps/unix/sysv/linux/sys/prctl.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/procfs.h b/sysdeps/unix/sysv/linux/sys/procfs.h
index d5ec3bf..5de91f6 100644
--- a/sysdeps/unix/sysv/linux/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/sys/procfs.h
@@ -1,5 +1,5 @@
/* Definitions for core files and libthread_db. Generic Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h
index 6622c9c..d2ac671 100644
--- a/sysdeps/unix/sysv/linux/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/sys/quota.h b/sysdeps/unix/sysv/linux/sys/quota.h
index 8121148..83a8653 100644
--- a/sysdeps/unix/sysv/linux/sys/quota.h
+++ b/sysdeps/unix/sysv/linux/sys/quota.h
@@ -1,5 +1,5 @@
/* This just represents the non-kernel parts of <linux/quota.h>.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/raw.h b/sysdeps/unix/sysv/linux/sys/raw.h
index 65fce10..5dfa9bd 100644
--- a/sysdeps/unix/sysv/linux/sys/raw.h
+++ b/sysdeps/unix/sysv/linux/sys/raw.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/reboot.h b/sysdeps/unix/sysv/linux/sys/reboot.h
index feda785..dc46766 100644
--- a/sysdeps/unix/sysv/linux/sys/reboot.h
+++ b/sysdeps/unix/sysv/linux/sys/reboot.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/rseq.h b/sysdeps/unix/sysv/linux/sys/rseq.h
index b8afab8..38fdb27 100644
--- a/sysdeps/unix/sysv/linux/sys/rseq.h
+++ b/sysdeps/unix/sysv/linux/sys/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences exported symbols. Linux header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -152,6 +152,17 @@ struct rseq
Inhibit instruction sequence block restart on migration for
this thread. */
uint32_t flags;
+ /* Restartable sequences node_id field. Updated by the kernel. Read by
+ user-space with single-copy atomicity semantics. This field should only
+ be read by the thread which registered this data structure. Aligned on
+ 32-bit. Contains the current NUMA node ID. */
+ uint32_t node_id;
+ /* Restartable sequences mm_cid field. Updated by the kernel. Read by
+ user-space with single-copy atomicity semantics. This field should only
+ be read by the thread which registered this data structure. Aligned on
+ 32-bit. Contains the current thread's concurrency ID (allocated
+ uniquely within a memory map). */
+ uint32_t mm_cid;
} __attribute__ ((__aligned__ (32)));
#endif /* __GLIBC_HAVE_KERNEL_RSEQ */
diff --git a/sysdeps/unix/sysv/linux/sys/signalfd.h b/sysdeps/unix/sysv/linux/sys/signalfd.h
index 26313f9..736bbe0 100644
--- a/sysdeps/unix/sysv/linux/sys/signalfd.h
+++ b/sysdeps/unix/sysv/linux/sys/signalfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/swap.h b/sysdeps/unix/sysv/linux/sys/swap.h
index 5b06adb..6e53956 100644
--- a/sysdeps/unix/sysv/linux/sys/swap.h
+++ b/sysdeps/unix/sysv/linux/sys/swap.h
@@ -1,5 +1,5 @@
/* Calls to enable and disable swapping on specified locations. Linux version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/syscall.h b/sysdeps/unix/sysv/linux/sys/syscall.h
index 259d7a7..781f178 100644
--- a/sysdeps/unix/sysv/linux/sys/syscall.h
+++ b/sysdeps/unix/sysv/linux/sys/syscall.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/sysinfo.h b/sysdeps/unix/sysv/linux/sys/sysinfo.h
index e6a7cb9..e32d2de 100644
--- a/sysdeps/unix/sysv/linux/sys/sysinfo.h
+++ b/sysdeps/unix/sysv/linux/sys/sysinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/timerfd.h b/sysdeps/unix/sysv/linux/sys/timerfd.h
index f66ece3..3c181a7 100644
--- a/sysdeps/unix/sysv/linux/sys/timerfd.h
+++ b/sysdeps/unix/sysv/linux/sys/timerfd.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sys/timex.h b/sysdeps/unix/sysv/linux/sys/timex.h
index 568748d..db67ca2 100644
--- a/sysdeps/unix/sysv/linux/sys/timex.h
+++ b/sysdeps/unix/sysv/linux/sys/timex.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/syscall-names.list b/sysdeps/unix/sysv/linux/syscall-names.list
index 7871f93..bde20e4 100644
--- a/sysdeps/unix/sysv/linux/syscall-names.list
+++ b/sysdeps/unix/sysv/linux/syscall-names.list
@@ -1,5 +1,5 @@
# List of all known Linux system calls.
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
@@ -21,8 +21,8 @@
# This file can list all potential system calls. The names are only
# used if the installed kernel headers also provide them.
-# The list of system calls is current as of Linux 6.10.
-kernel 6.10
+# The list of system calls is current as of Linux 6.15.
+kernel 6.15
FAST_atomic_update
FAST_cmpxchg
@@ -198,6 +198,7 @@ getuid
getuid32
getunwind
getxattr
+getxattrat
getxgid
getxpid
getxuid
@@ -241,6 +242,7 @@ linkat
listen
listmount
listxattr
+listxattrat
llistxattr
llseek
lock
@@ -314,6 +316,7 @@ olduname
open
open_by_handle_at
open_tree
+open_tree_attr
openat
openat2
or1k_atomic
@@ -482,6 +485,7 @@ recvmmsg_time64
recvmsg
remap_file_pages
removexattr
+removexattrat
rename
renameat
renameat2
@@ -572,6 +576,7 @@ settimeofday
setuid
setuid32
setxattr
+setxattrat
sgetmask
shmat
shmctl
@@ -653,6 +658,7 @@ uname
unlink
unlinkat
unshare
+uretprobe
uselib
userfaultfd
usr26
diff --git a/sysdeps/unix/sysv/linux/syscall.c b/sysdeps/unix/sysv/linux/syscall.c
index 3cff1d9..50496c7 100644
--- a/sysdeps/unix/sysv/linux/syscall.c
+++ b/sysdeps/unix/sysv/linux/syscall.c
@@ -1,5 +1,5 @@
/* Indirect system call. Linux generic implementation.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/syscall_cancel.c b/sysdeps/unix/sysv/linux/syscall_cancel.c
new file mode 100644
index 0000000..2af7245
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/syscall_cancel.c
@@ -0,0 +1,73 @@
+/* Pthread cancellation syscall bridge. Default Linux version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <pthreadP.h>
+
+#warning "This implementation should be use just as reference or for bootstrapping"
+
+/* This is the generic version of the cancellable syscall code which
+ adds the label guards (__syscall_cancel_arch_{start,end}) used on SIGCANCEL
+ handler to check if the cancelled syscall have side-effects that need to be
+ returned to the caller.
+
+ This implementation should be used as a reference one to document the
+ implementation constraints:
+
+ 1. The __syscall_cancel_arch_start should point just before the test
+ that thread is already cancelled,
+ 2. The __syscall_cancel_arch_end should point to the immediate next
+ instruction after the syscall one.
+ 3. It should return the syscall value or a negative result if is has
+ failed, similar to INTERNAL_SYSCALL_CALL.
+
+ The __syscall_cancel_arch_end one is because the kernel will signal
+ interrupted syscall with side effects by setting the signal frame program
+ counter (on the ucontext_t third argument from SA_SIGINFO signal handler)
+ right after the syscall instruction.
+
+ For some architecture, the INTERNAL_SYSCALL_NCS macro use more instructions
+ to get the error condition from kernel (as for powerpc and sparc that
+ checks for the conditional register), or uses an out of the line helper
+ (ARM thumb), or uses a kernel helper gate (i686 or ia64). In this case
+ the architecture should either adjust the macro or provide a custom
+ __syscall_cancel_arch implementation. */
+
+long int
+__syscall_cancel_arch (volatile int *ch, __syscall_arg_t nr,
+ __syscall_arg_t a1, __syscall_arg_t a2,
+ __syscall_arg_t a3, __syscall_arg_t a4,
+ __syscall_arg_t a5, __syscall_arg_t a6
+ __SYSCALL_CANCEL7_ARG_DEF)
+{
+#define ADD_LABEL(__label) \
+ asm volatile ( \
+ ".global " __label "\t\n" \
+ __label ":\n");
+
+ ADD_LABEL ("__syscall_cancel_arch_start");
+ if (__glibc_unlikely (*ch & CANCELED_BITMASK))
+ __syscall_do_cancel();
+
+ long int result = INTERNAL_SYSCALL_NCS_CALL (nr, a1, a2, a3, a4, a5, a6
+ __SYSCALL_CANCEL7_ARG7);
+ ADD_LABEL ("__syscall_cancel_arch_end");
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result)))
+ return -INTERNAL_SYSCALL_ERRNO (result);
+ return result;
+}
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index 9ac42c3..f1cfe8d 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -102,8 +102,8 @@ name_to_handle_at EXTRA name_to_handle_at i:isppi name_to_handle_at
setns EXTRA setns i:ii setns
memfd_create EXTRA memfd_create i:si memfd_create
-pkey_alloc EXTRA pkey_alloc i:ii pkey_alloc
-pkey_free EXTRA pkey_free i:i pkey_free
+pkey_alloc EXTRA pkey_alloc i:ii __pkey_alloc pkey_alloc
+pkey_free EXTRA pkey_free i:i __pkey_free pkey_free
gettid EXTRA gettid Ei: __gettid gettid
tgkill EXTRA tgkill i:iii __tgkill tgkill
close_range - close_range i:iii __close_range close_range
diff --git a/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h b/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h
index 2a4a1eb..6cbd0b6 100644
--- a/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h
+++ b/sysdeps/unix/sysv/linux/sysconf-pthread_stack_min.h
@@ -1,5 +1,5 @@
/* __get_pthread_stack_min (). Linux version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sysconf-sigstksz.h b/sysdeps/unix/sysv/linux/sysconf-sigstksz.h
index 884d27f..c4e51e3 100644
--- a/sysdeps/unix/sysv/linux/sysconf-sigstksz.h
+++ b/sysdeps/unix/sysv/linux/sysconf-sigstksz.h
@@ -1,5 +1,5 @@
/* sysconf_sigstksz (). Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sysconf.c b/sysdeps/unix/sysv/linux/sysconf.c
index 009ca9d..1245b2a 100644
--- a/sysdeps/unix/sysv/linux/sysconf.c
+++ b/sysdeps/unix/sysv/linux/sysconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about a file. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sysctl.c b/sysdeps/unix/sysv/linux/sysctl.c
index 903e89c..4412382 100644
--- a/sysdeps/unix/sysv/linux/sysctl.c
+++ b/sysdeps/unix/sysv/linux/sysctl.c
@@ -1,5 +1,5 @@
/* sysctl function stub.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sysdep-cancel.h b/sysdeps/unix/sysv/linux/sysdep-cancel.h
index c48a50f..96c9a90 100644
--- a/sysdeps/unix/sysv/linux/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/sysdep-cancel.h
@@ -1,5 +1,5 @@
/* Single-thread optimization definitions. Linux version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -21,17 +21,5 @@
#define _SYSDEP_CANCEL_H
#include <sysdep.h>
-#include <tls.h>
-#include <errno.h>
-
-/* Set cancellation mode to asynchronous. */
-extern int __pthread_enable_asynccancel (void);
-libc_hidden_proto (__pthread_enable_asynccancel)
-#define LIBC_CANCEL_ASYNC() __pthread_enable_asynccancel ()
-
-/* Reset to previous cancellation mode. */
-extern void __pthread_disable_asynccancel (int oldtype);
-libc_hidden_proto (__pthread_disable_asynccancel)
-#define LIBC_CANCEL_RESET(oldtype) __pthread_disable_asynccancel (oldtype)
#endif
diff --git a/sysdeps/unix/sysv/linux/sysdep-vdso.h b/sysdeps/unix/sysv/linux/sysdep-vdso.h
index 2f53ada..5a338718 100644
--- a/sysdeps/unix/sysv/linux/sysdep-vdso.h
+++ b/sysdeps/unix/sysv/linux/sysdep-vdso.h
@@ -1,5 +1,5 @@
/* vDSO common definition for Linux.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/sysdep.h b/sysdeps/unix/sysv/linux/sysdep.h
index bf260a7..1385082 100644
--- a/sysdeps/unix/sysv/linux/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tcdrain.c b/sysdeps/unix/sysv/linux/tcdrain.c
index 34f8c73..8acd418 100644
--- a/sysdeps/unix/sysv/linux/tcdrain.c
+++ b/sysdeps/unix/sysv/linux/tcdrain.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tcflow.c b/sysdeps/unix/sysv/linux/tcflow.c
index 810a2eb..afc44e6 100644
--- a/sysdeps/unix/sysv/linux/tcflow.c
+++ b/sysdeps/unix/sysv/linux/tcflow.c
@@ -1,5 +1,5 @@
/* tcflow -- Suspend or restart transmission on termios file descriptor.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tcflush.c b/sysdeps/unix/sysv/linux/tcflush.c
index 68b0548..587b0b9 100644
--- a/sysdeps/unix/sysv/linux/tcflush.c
+++ b/sysdeps/unix/sysv/linux/tcflush.c
@@ -1,5 +1,5 @@
/* tcflush -- Flush pending data on termios file descriptor. Linux version.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tcgetattr.c b/sysdeps/unix/sysv/linux/tcgetattr.c
index 68e0637..ca17569 100644
--- a/sysdeps/unix/sysv/linux/tcgetattr.c
+++ b/sysdeps/unix/sysv/linux/tcgetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,66 +15,56 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <errno.h>
-#include <string.h>
-#include <termios.h>
-#include <unistd.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sysdep.h>
-
-/* The difference here is that the termios structure used in the
- kernel is not the same as we use in the libc. Therefore we must
- translate it here. */
-#include <kernel_termios.h>
+#include <termios_internals.h>
/* Put the state of FD into *TERMIOS_P. */
int
__tcgetattr (int fd, struct termios *termios_p)
{
- struct __kernel_termios k_termios;
- int retval;
-
- retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios);
+ struct termios2 k_termios;
+ long int retval = INLINE_SYSCALL_CALL (ioctl, fd, TCGETS2, &k_termios);
- if (__glibc_likely (retval == 0))
+ if (__glibc_likely (retval != -1))
{
- termios_p->c_iflag = k_termios.c_iflag;
- termios_p->c_oflag = k_termios.c_oflag;
- termios_p->c_cflag = k_termios.c_cflag;
- termios_p->c_lflag = k_termios.c_lflag;
- termios_p->c_line = k_termios.c_line;
-#if _HAVE_STRUCT_TERMIOS_C_ISPEED
-# if _HAVE_C_ISPEED
- termios_p->c_ispeed = k_termios.c_ispeed;
-# else
- termios_p->c_ispeed = k_termios.c_cflag & (CBAUD | CBAUDEX);
-# endif
-#endif
-#if _HAVE_STRUCT_TERMIOS_C_OSPEED
-# if _HAVE_C_OSPEED
+ ___termios2_canonicalize_speeds (&k_termios);
+
+ memset (termios_p, 0, sizeof (*termios_p));
+ termios_p->c_iflag = k_termios.c_iflag;
+ termios_p->c_oflag = k_termios.c_oflag;
+ termios_p->c_cflag = k_termios.c_cflag;
+ termios_p->c_lflag = k_termios.c_lflag;
+ termios_p->c_line = k_termios.c_line;
termios_p->c_ospeed = k_termios.c_ospeed;
-# else
- termios_p->c_ospeed = k_termios.c_cflag & (CBAUD | CBAUDEX);
-# endif
-#endif
- if (sizeof (cc_t) == 1 || _POSIX_VDISABLE == 0
- || (unsigned char) _POSIX_VDISABLE == (unsigned char) -1)
- memset (__mempcpy (&termios_p->c_cc[0], &k_termios.c_cc[0],
- __KERNEL_NCCS * sizeof (cc_t)),
- _POSIX_VDISABLE, (NCCS - __KERNEL_NCCS) * sizeof (cc_t));
- else
- {
- memcpy (&termios_p->c_cc[0], &k_termios.c_cc[0],
- __KERNEL_NCCS * sizeof (cc_t));
+ termios_p->c_ispeed = k_termios.c_ispeed;
- for (size_t cnt = __KERNEL_NCCS; cnt < NCCS; ++cnt)
- termios_p->c_cc[cnt] = _POSIX_VDISABLE;
- }
+ copy_c_cc (termios_p->c_cc, NCCS, k_termios.c_cc, _TERMIOS2_NCCS);
}
return retval;
}
-
libc_hidden_def (__tcgetattr)
+
+#if _TERMIOS_OLD_COMPAT && _HAVE_STRUCT_OLD_TERMIOS
+
+versioned_symbol (libc, __tcgetattr, tcgetattr, GLIBC_2_42);
+
+/* Legacy version for shorter struct termios */
+int
+attribute_compat_text_section
+__old_tcgetattr (int fd, old_termios_t *termios_p)
+{
+ struct termios new_termios;
+ int retval = __tcgetattr (fd, &new_termios);
+ if (__glibc_likely (retval != -1))
+ {
+ memcpy (termios_p, &new_termios, sizeof (*termios_p));
+ }
+ return retval;
+}
+compat_symbol (libc, __old_tcgetattr, tcgetattr, GLIBC_2_0);
+
+#else
+
weak_alias (__tcgetattr, tcgetattr)
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/tcsendbrk.c b/sysdeps/unix/sysv/linux/tcsendbrk.c
index 0ad1323..738a582 100644
--- a/sysdeps/unix/sysv/linux/tcsendbrk.c
+++ b/sysdeps/unix/sysv/linux/tcsendbrk.c
@@ -1,5 +1,5 @@
/* Send break to terminal.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcsetattr.c
index aea74d3..4f07a03 100644
--- a/sysdeps/unix/sysv/linux/tcsetattr.c
+++ b/sysdeps/unix/sysv/linux/tcsetattr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -15,67 +15,94 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
-#include <errno.h>
-#include <string.h>
-#include <termios.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sysdep.h>
-
-/* The difference here is that the termios structure used in the
- kernel is not the same as we use in the libc. Therefore we must
- translate it here. */
-#include <kernel_termios.h>
-
-
-/* This is a gross hack around a kernel bug. If the cfsetispeed functions
- is called with the SPEED argument set to zero this means use the same
- speed as for output. But we don't have independent input and output
- speeds and therefore cannot record this.
-
- We use an unused bit in the `c_iflag' field to keep track of this
- use of `cfsetispeed'. The value here must correspond to the one used
- in `speed.c'. */
-#define IBAUD0 020000000000
+#include <termios_internals.h>
+#define static_assert_equal(x,y) _Static_assert ((x) == (y), #x " != " #y)
/* Set the state of FD to *TERMIOS_P. */
int
__tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
{
- struct __kernel_termios k_termios;
- unsigned long int cmd;
+ struct termios2 k_termios;
+ unsigned long cmd;
- switch (optional_actions)
- {
- case TCSANOW:
- cmd = TCSETS;
- break;
- case TCSADRAIN:
- cmd = TCSETSW;
- break;
- case TCSAFLUSH:
- cmd = TCSETSF;
- break;
- default:
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
- }
+ memset (&k_termios, 0, sizeof k_termios);
- k_termios.c_iflag = termios_p->c_iflag & ~IBAUD0;
+ k_termios.c_iflag = termios_p->c_iflag;
k_termios.c_oflag = termios_p->c_oflag;
k_termios.c_cflag = termios_p->c_cflag;
k_termios.c_lflag = termios_p->c_lflag;
- k_termios.c_line = termios_p->c_line;
-#if _HAVE_C_ISPEED && _HAVE_STRUCT_TERMIOS_C_ISPEED
- k_termios.c_ispeed = termios_p->c_ispeed;
-#endif
-#if _HAVE_C_OSPEED && _HAVE_STRUCT_TERMIOS_C_OSPEED
+ k_termios.c_line = termios_p->c_line;
+
k_termios.c_ospeed = termios_p->c_ospeed;
-#endif
- memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0],
- __KERNEL_NCCS * sizeof (cc_t));
+ k_termios.c_ispeed = termios_p->c_ispeed;
+
+ ___termios2_canonicalize_speeds (&k_termios);
+
+ copy_c_cc (k_termios.c_cc, _TERMIOS2_NCCS, termios_p->c_cc, NCCS);
+
+ /*
+ * Choose the proper ioctl number to invoke.
+ *
+ * Alpha got TCSETS2 late (Linux 4.20), but has the same structure
+ * format, and it only needs TCSETS2 if either it needs to use
+ * __BOTHER or split speed. All other architectures have TCSETS2 as
+ * far back as the current glibc supports. Calling TCSETS with
+ * __BOTHER causes unpredictable results on old Alpha kernels and
+ * could even crash them.
+ */
+ static_assert_equal(TCSADRAIN, TCSANOW + 1);
+ static_assert_equal(TCSAFLUSH, TCSANOW + 2);
+ static_assert_equal(TCSETSW2, TCSETS2 + 1);
+ static_assert_equal(TCSETSF2, TCSETS2 + 2);
+ static_assert_equal(TCSETSW, TCSETS + 1);
+ static_assert_equal(TCSETSF, TCSETS + 2);
+
+ cmd = (long)optional_actions - TCSANOW;
+ if (cmd > 2)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ if (__ASSUME_TERMIOS2 ||
+ k_termios.c_ospeed != k_termios.c_ispeed ||
+ cbaud (k_termios.c_cflag) == __BOTHER)
+ {
+ cmd += TCSETS2;
+ }
+ else
+ {
+ cmd += TCSETS;
+ k_termios.c_cflag &= ~CIBAUD;
+ }
+
+ return INLINE_SYSCALL_CALL (ioctl, fd, cmd, &k_termios);
+}
+libc_hidden_def (__tcsetattr)
+
+#if _HAVE_STRUCT_OLD_TERMIOS && _TERMIOS_OLD_COMPAT
+
+versioned_symbol (libc, __tcsetattr, tcsetattr, GLIBC_2_42);
- return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios);
+/* Legacy version for shorter struct termios without speed fields */
+int
+attribute_compat_text_section
+__old_tcsetattr (int fd, int optional_actions, const old_termios_t *termios_p)
+{
+ struct termios new_termios;
+
+ memset (&new_termios, 0, sizeof (new_termios));
+ new_termios.c_iflag = termios_p->c_iflag;
+ new_termios.c_oflag = termios_p->c_oflag;
+ new_termios.c_cflag = termios_p->c_cflag;
+ new_termios.c_lflag = termios_p->c_lflag;
+ new_termios.c_line = termios_p->c_line;
+ copy_c_cc(new_termios.c_cc, NCCS, termios_p->c_cc, OLD_NCCS);
+
+ return __tcsetattr (fd, optional_actions, &new_termios);
}
+compat_symbol (libc, __old_tcsetattr, tcsetattr, GLIBC_2_0);
+
+#else
+
weak_alias (__tcsetattr, tcsetattr)
-libc_hidden_def (tcsetattr)
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/tee.c b/sysdeps/unix/sysv/linux/tee.c
index 50f6d05..f3fa57f 100644
--- a/sysdeps/unix/sysv/linux/tee.c
+++ b/sysdeps/unix/sysv/linux/tee.c
@@ -1,5 +1,5 @@
/* Linux duplicating pipe content implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/telldir.c b/sysdeps/unix/sysv/linux/telldir.c
index c8dff30..039d377 100644
--- a/sysdeps/unix/sysv/linux/telldir.c
+++ b/sysdeps/unix/sysv/linux/telldir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/termio.h b/sysdeps/unix/sysv/linux/termio.h
deleted file mode 100644
index 0e610f0..0000000
--- a/sysdeps/unix/sysv/linux/termio.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/* Compatible <termio.h> for old `struct termio' ioctl interface.
- This is obsolete; use the POSIX.1 `struct termios' interface
- defined in <termios.h> instead. */
-
-#include <termios.h>
-#include <sys/ioctl.h>
diff --git a/sysdeps/unix/sysv/linux/termios_arch.h b/sysdeps/unix/sysv/linux/termios_arch.h
new file mode 100644
index 0000000..8dbf420
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/termios_arch.h
@@ -0,0 +1,23 @@
+/* Architectural parameters for Linux termios - generic version
+
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _TERMIOS2_NCCS 19
+#define _HAVE_TERMIOS2_C_CC_BEFORE_C_LINE 0
+
+#define _HAVE_STRUCT_OLD_TERMIOS 0
diff --git a/sysdeps/unix/sysv/linux/termios_internals.h b/sysdeps/unix/sysv/linux/termios_internals.h
new file mode 100644
index 0000000..e8dbfe7
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/termios_internals.h
@@ -0,0 +1,143 @@
+/* termios functions internal implementation header for Linux
+
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef TERMIOS_INTERNALS_H
+#define TERMIOS_INTERNALS_H 1
+
+#include <stddef.h>
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sysdep.h>
+#include <shlib-compat.h>
+
+#include <termios_arch.h>
+
+/* ---- Kernel interface definitions ---- */
+
+/* The the termios2 structure used in the kernel interfaces is not the
+ same as the termios structure we use in the libc. Therefore we
+ must translate it here. */
+
+struct termios2
+{
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+#if _HAVE_TERMIOS2_C_CC_BEFORE_C_LINE
+ cc_t c_cc[_TERMIOS2_NCCS]; /* control characters */
+ cc_t c_line; /* line discipline */
+#else
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[_TERMIOS2_NCCS]; /* control characters */
+#endif
+ speed_t c_ispeed; /* input speed */
+ speed_t c_ospeed; /* output speed */
+};
+
+/* Alpha got termios2 late, but TCGETS has exactly the same structure
+ format and function as TCGETS2. On all other platforms, the termios2
+ interface exists as far back as this version of glibc supports.
+
+ For TCSETS* it is more complicated; this is handled in tcsetattr.c.
+
+ Some other architectures only have the equivalent of the termios2
+ interface, in which case the old ioctl names are the only ones
+ presented, but are equivalent to the new ones. */
+#ifndef TCGETS2
+# define TCGETS2 TCGETS
+# define TCSETS2 TCSETS
+# define TCSETSW2 TCSETSW
+# define TCSETSF2 TCSETSF
+#elif !__ASSUME_TERMIOS2
+/* Hack for Alpha */
+# undef TCGETS2
+# define TCGETS2 TCGETS
+#endif
+
+/* ---- Application interface definitions ---- */
+
+/*
+ * Should old speed_t and struct termios (if applicable) compatibility
+ * functions be included?
+ */
+#define _TERMIOS_OLD_COMPAT SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_42)
+
+/*
+ * Old struct termios (without c_ispeed and c_ospeed fields) if
+ * applicable. The new struct termios *must* be binary identical up to
+ * the sizeof the old structure.
+ *
+ * This only applies to SPARC and MIPS; for other architectures the
+ * new and old speed_t interfaces both use the same struct termios.
+ */
+#if _HAVE_STRUCT_OLD_TERMIOS
+typedef struct old_termios old_termios_t;
+#else
+# define OLD_NCCS NCCS
+typedef struct termios old_termios_t;
+#endif
+
+/* ---- Internal function definitions ---- */
+
+/*
+ * Copy a set of c_cc fields of possibly different width. If the target
+ * field is longer, then fill with _POSIX_VDISABLE == -1.
+ */
+static inline void
+copy_c_cc (cc_t *to, size_t nto, const cc_t *from, size_t nfrom)
+{
+ if (nto < nfrom)
+ nfrom = nto;
+
+ to = __mempcpy (to, from, nfrom * sizeof(cc_t));
+ if (nto > nfrom)
+ memset (to, _POSIX_VDISABLE, (nto - nfrom) * sizeof(cc_t));
+}
+
+/* Extract the output and input legacy speed fields from c_cflag. */
+static inline tcflag_t
+cbaud (tcflag_t c_cflag)
+{
+ return c_cflag & CBAUD;
+}
+
+static inline tcflag_t
+cibaud (tcflag_t c_cflag)
+{
+ return cbaud (c_cflag >> IBSHIFT);
+}
+
+extern speed_t
+___cbaud_to_speed (tcflag_t c_cflag, speed_t other)
+ __attribute_const__ attribute_hidden;
+
+extern tcflag_t
+___speed_to_cbaud (speed_t speed)
+ __attribute_const__ attribute_hidden;
+
+extern void
+___termios2_canonicalize_speeds (struct termios2 *k_termios_p)
+ attribute_hidden;
+
+#endif /* TERMIOS_INTERNALS_H */
diff --git a/sysdeps/unix/sysv/linux/test-errno-linux.c b/sysdeps/unix/sysv/linux/test-errno-linux.c
index de8188e..3150deb 100644
--- a/sysdeps/unix/sysv/linux/test-errno-linux.c
+++ b/sysdeps/unix/sysv/linux/test-errno-linux.c
@@ -1,7 +1,7 @@
/* Test that failing system calls do set errno to the correct value.
Linux sycalls version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/thrd_priv.h b/sysdeps/unix/sysv/linux/thrd_priv.h
index dbf4472..394991d 100644
--- a/sysdeps/unix/sysv/linux/thrd_priv.h
+++ b/sysdeps/unix/sysv/linux/thrd_priv.h
@@ -1,5 +1,5 @@
/* Internal C11 threads definitions - linux version
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/thrd_sleep.c b/sysdeps/unix/sysv/linux/thrd_sleep.c
index f78776b..2dbc44f 100644
--- a/sysdeps/unix/sysv/linux/thrd_sleep.c
+++ b/sysdeps/unix/sysv/linux/thrd_sleep.c
@@ -1,5 +1,5 @@
/* C11 threads thread sleep implementation - Linux variant.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/time-clockid.h b/sysdeps/unix/sysv/linux/time-clockid.h
index ae5bb5d..2397e2d 100644
--- a/sysdeps/unix/sysv/linux/time-clockid.h
+++ b/sysdeps/unix/sysv/linux/time-clockid.h
@@ -1,5 +1,5 @@
/* System specific time definitions. Generic Version.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/time.c b/sysdeps/unix/sysv/linux/time.c
index f8b0cee..5a72481 100644
--- a/sysdeps/unix/sysv/linux/time.c
+++ b/sysdeps/unix/sysv/linux/time.c
@@ -1,5 +1,5 @@
/* time -- Get number of seconds since Epoch. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -33,11 +33,10 @@ time_syscall (time_t *t)
}
# undef INIT_ARCH
-# define INIT_ARCH() \
- void *vdso_time = dl_vdso_vsym (HAVE_TIME_VSYSCALL);
+# define INIT_ARCH()
libc_ifunc (time,
- vdso_time ? VDSO_IFUNC_RET (vdso_time)
- : (void *) time_syscall);
+ GLRO(dl_vdso_time) != NULL ? VDSO_IFUNC_RET (GLRO(dl_vdso_time))
+ : (void *) time_syscall);
# else
time_t
diff --git a/sysdeps/unix/sysv/linux/timer_create.c b/sysdeps/unix/sysv/linux/timer_create.c
index 2c505a5..ca377a6 100644
--- a/sysdeps/unix/sysv/linux/timer_create.c
+++ b/sysdeps/unix/sysv/linux/timer_create.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_delete.c b/sysdeps/unix/sysv/linux/timer_delete.c
index ad397e5..69f26b2 100644
--- a/sysdeps/unix/sysv/linux/timer_delete.c
+++ b/sysdeps/unix/sysv/linux/timer_delete.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_getoverr.c b/sysdeps/unix/sysv/linux/timer_getoverr.c
index dd7ad4c..676c244 100644
--- a/sysdeps/unix/sysv/linux/timer_getoverr.c
+++ b/sysdeps/unix/sysv/linux/timer_getoverr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c
index cc7ddd3..ff3141f 100644
--- a/sysdeps/unix/sysv/linux/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/timer_gettime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_routines.c b/sysdeps/unix/sysv/linux/timer_routines.c
index 344033d..b2affaa 100644
--- a/sysdeps/unix/sysv/linux/timer_routines.c
+++ b/sysdeps/unix/sysv/linux/timer_routines.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_settime.c b/sysdeps/unix/sysv/linux/timer_settime.c
index 8986462..d53b858 100644
--- a/sysdeps/unix/sysv/linux/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/timer_settime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h
index 4af71ed..5fbe179 100644
--- a/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. Generic version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timerfd_gettime.c b/sysdeps/unix/sysv/linux/timerfd_gettime.c
index 9991a93..004387d 100644
--- a/sysdeps/unix/sysv/linux/timerfd_gettime.c
+++ b/sysdeps/unix/sysv/linux/timerfd_gettime.c
@@ -1,5 +1,5 @@
/* timerfd_gettime -- get the timer setting referred to by file descriptor.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timerfd_settime.c b/sysdeps/unix/sysv/linux/timerfd_settime.c
index 86c49d4..8a0b3d9 100644
--- a/sysdeps/unix/sysv/linux/timerfd_settime.c
+++ b/sysdeps/unix/sysv/linux/timerfd_settime.c
@@ -1,5 +1,5 @@
/* timerfd_settime -- start or stop the timer referred to by file descriptor.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/times.c b/sysdeps/unix/sysv/linux/times.c
index 9686065..2e29269 100644
--- a/sysdeps/unix/sysv/linux/times.c
+++ b/sysdeps/unix/sysv/linux/times.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timespec_get.c b/sysdeps/unix/sysv/linux/timespec_get.c
index 778d1e3..9ed49a6 100644
--- a/sysdeps/unix/sysv/linux/timespec_get.c
+++ b/sysdeps/unix/sysv/linux/timespec_get.c
@@ -1,5 +1,5 @@
/* timespec_get -- get system time - Linux version supporting 64 bit time.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/timespec_getres.c b/sysdeps/unix/sysv/linux/timespec_getres.c
index 2eef9e5..f1c915d 100644
--- a/sysdeps/unix/sysv/linux/timespec_getres.c
+++ b/sysdeps/unix/sysv/linux/timespec_getres.c
@@ -1,5 +1,5 @@
/* Get resolution of a time base.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tls-internal.c b/sysdeps/unix/sysv/linux/tls-internal.c
index 81ebcdf..acbfe06 100644
--- a/sysdeps/unix/sysv/linux/tls-internal.c
+++ b/sysdeps/unix/sysv/linux/tls-internal.c
@@ -1,5 +1,5 @@
/* Per-thread state. Linux version.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tls-internal.h b/sysdeps/unix/sysv/linux/tls-internal.h
index 8cb0d8a..5b84fdd 100644
--- a/sysdeps/unix/sysv/linux/tls-internal.h
+++ b/sysdeps/unix/sysv/linux/tls-internal.h
@@ -1,5 +1,5 @@
/* Per-thread state. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/truncate.c b/sysdeps/unix/sysv/linux/truncate.c
index 1e5e718..f6505d6 100644
--- a/sysdeps/unix/sysv/linux/truncate.c
+++ b/sysdeps/unix/sysv/linux/truncate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/truncate64.c b/sysdeps/unix/sysv/linux/truncate64.c
index 41b469b..799a81d 100644
--- a/sysdeps/unix/sysv/linux/truncate64.c
+++ b/sysdeps/unix/sysv/linux/truncate64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-adjtimex.c b/sysdeps/unix/sysv/linux/tst-adjtimex.c
index b0e7321..945d3d9 100644
--- a/sysdeps/unix/sysv/linux/tst-adjtimex.c
+++ b/sysdeps/unix/sysv/linux/tst-adjtimex.c
@@ -1,5 +1,5 @@
/* Test for adjtimex.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-affinity-pid.c b/sysdeps/unix/sysv/linux/tst-affinity-pid.c
index c8996ef..89bb771 100644
--- a/sysdeps/unix/sysv/linux/tst-affinity-pid.c
+++ b/sysdeps/unix/sysv/linux/tst-affinity-pid.c
@@ -1,5 +1,5 @@
/* Test for sched_getaffinity and sched_setaffinity, PID version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-affinity.c b/sysdeps/unix/sysv/linux/tst-affinity.c
index 218c02e..c0727b6 100644
--- a/sysdeps/unix/sysv/linux/tst-affinity.c
+++ b/sysdeps/unix/sysv/linux/tst-affinity.c
@@ -1,5 +1,5 @@
/* Single-threaded test for sched_getaffinity and sched_setaffinity.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-align-clone-internal.c b/sysdeps/unix/sysv/linux/tst-align-clone-internal.c
index aa06ee1..8753112 100644
--- a/sysdeps/unix/sysv/linux/tst-align-clone-internal.c
+++ b/sysdeps/unix/sysv/linux/tst-align-clone-internal.c
@@ -1,5 +1,5 @@
/* Verify that the clone child stack is properly aligned.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-align-clone.c b/sysdeps/unix/sysv/linux/tst-align-clone.c
index 1f39d81..d85375a 100644
--- a/sysdeps/unix/sysv/linux/tst-align-clone.c
+++ b/sysdeps/unix/sysv/linux/tst-align-clone.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clock_adjtime.c b/sysdeps/unix/sysv/linux/tst-clock_adjtime.c
index d37c06b..9eaf4b7 100644
--- a/sysdeps/unix/sysv/linux/tst-clock_adjtime.c
+++ b/sysdeps/unix/sysv/linux/tst-clock_adjtime.c
@@ -1,5 +1,5 @@
/* Test for clock_adjtime
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clock_gettime-clobber.c b/sysdeps/unix/sysv/linux/tst-clock_gettime-clobber.c
index a693de1..524707d 100644
--- a/sysdeps/unix/sysv/linux/tst-clock_gettime-clobber.c
+++ b/sysdeps/unix/sysv/linux/tst-clock_gettime-clobber.c
@@ -1,5 +1,5 @@
/* Check that clock_gettime does not clobber errno on success.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clone.c b/sysdeps/unix/sysv/linux/tst-clone.c
index 2bc7124..3e7a233 100644
--- a/sysdeps/unix/sysv/linux/tst-clone.c
+++ b/sysdeps/unix/sysv/linux/tst-clone.c
@@ -1,5 +1,5 @@
/* Test for proper error/errno handling in clone.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clone2-internal.c b/sysdeps/unix/sysv/linux/tst-clone2-internal.c
index babfeb5..12f7218 100644
--- a/sysdeps/unix/sysv/linux/tst-clone2-internal.c
+++ b/sysdeps/unix/sysv/linux/tst-clone2-internal.c
@@ -1,5 +1,5 @@
/* Test if CLONE_VM does not change pthread pid/tid field (BZ #19957)
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clone2.c b/sysdeps/unix/sysv/linux/tst-clone2.c
index 683a0d7..02cd539 100644
--- a/sysdeps/unix/sysv/linux/tst-clone2.c
+++ b/sysdeps/unix/sysv/linux/tst-clone2.c
@@ -1,5 +1,5 @@
/* Test if CLONE_VM does not change pthread pid/tid field (BZ #19957)
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-clone3-internal.c b/sysdeps/unix/sysv/linux/tst-clone3-internal.c
index 2f0b200..5a41560 100644
--- a/sysdeps/unix/sysv/linux/tst-clone3-internal.c
+++ b/sysdeps/unix/sysv/linux/tst-clone3-internal.c
@@ -1,5 +1,5 @@
/* Check if clone (CLONE_THREAD) does not call exit_group (BZ #21512)
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,7 +54,7 @@ f (void *a)
} while (0)
static inline int
-futex_wait (int *futexp, int val)
+futex_wait (_Atomic int *futexp, int val)
{
#ifdef __NR_futex
return syscall (__NR_futex, futexp, FUTEX_WAIT, val);
@@ -75,7 +75,7 @@ do_test (void)
/* Initialize with a known value. ctid is set to zero by the kernel after the
cloned thread has exited. */
#define CTID_INIT_VAL 1
- pid_t ctid = CTID_INIT_VAL;
+ _Atomic pid_t ctid = CTID_INIT_VAL;
pid_t tid;
struct clone_args clone_args =
diff --git a/sysdeps/unix/sysv/linux/tst-clone3.c b/sysdeps/unix/sysv/linux/tst-clone3.c
index 77b8731..98d56d5 100644
--- a/sysdeps/unix/sysv/linux/tst-clone3.c
+++ b/sysdeps/unix/sysv/linux/tst-clone3.c
@@ -1,5 +1,5 @@
/* Check if clone (CLONE_THREAD) does not call exit_group (BZ #21512)
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -54,7 +54,7 @@ f (void *a)
} while (0)
static inline int
-futex_wait (int *futexp, int val)
+futex_wait (_Atomic int *futexp, int val)
{
#ifdef __NR_futex
return syscall (__NR_futex, futexp, FUTEX_WAIT, val);
@@ -75,7 +75,7 @@ do_test (void)
/* Initialize with a known value. ctid is set to zero by the kernel after the
cloned thread has exited. */
#define CTID_INIT_VAL 1
- pid_t ctid = CTID_INIT_VAL;
+ _Atomic pid_t ctid = CTID_INIT_VAL;
pid_t tid;
#if _STACK_GROWS_DOWN
diff --git a/sysdeps/unix/sysv/linux/tst-epoll-ioctls.c b/sysdeps/unix/sysv/linux/tst-epoll-ioctls.c
index 618ecc4..1ad58c9 100644
--- a/sysdeps/unix/sysv/linux/tst-epoll-ioctls.c
+++ b/sysdeps/unix/sysv/linux/tst-epoll-ioctls.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux epoll ioctls.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-epoll.c b/sysdeps/unix/sysv/linux/tst-epoll.c
index 545f506..afe9d29 100644
--- a/sysdeps/unix/sysv/linux/tst-epoll.c
+++ b/sysdeps/unix/sysv/linux/tst-epoll.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux epoll_* wrappers.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-fallocate-common.c b/sysdeps/unix/sysv/linux/tst-fallocate-common.c
index 28970df..d066712 100644
--- a/sysdeps/unix/sysv/linux/tst-fallocate-common.c
+++ b/sysdeps/unix/sysv/linux/tst-fallocate-common.c
@@ -1,5 +1,5 @@
/* Basic fallocate test (no specific flags is checked).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-fallocate.c b/sysdeps/unix/sysv/linux/tst-fallocate.c
index e68e7da..95eb967 100644
--- a/sysdeps/unix/sysv/linux/tst-fallocate.c
+++ b/sysdeps/unix/sysv/linux/tst-fallocate.c
@@ -1,5 +1,5 @@
/* Basic fallocate test (no specific flags is checked).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-fallocate64.c b/sysdeps/unix/sysv/linux/tst-fallocate64.c
index 1b53cc2..c22325a 100644
--- a/sysdeps/unix/sysv/linux/tst-fallocate64.c
+++ b/sysdeps/unix/sysv/linux/tst-fallocate64.c
@@ -1,5 +1,5 @@
/* Basic fallocate64 test (no specific flags is checked).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-fanotify.c b/sysdeps/unix/sysv/linux/tst-fanotify.c
index 264b1de..e630544 100644
--- a/sysdeps/unix/sysv/linux/tst-fanotify.c
+++ b/sysdeps/unix/sysv/linux/tst-fanotify.c
@@ -1,5 +1,5 @@
/* Basic fanotify test.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c b/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c
index e61d67a..550a837 100644
--- a/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c
+++ b/sysdeps/unix/sysv/linux/tst-fdopendir-o_path.c
@@ -1,5 +1,5 @@
/* Check if fdopendir fails with file descriptor opened with O_PATH (BZ 30737)
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-getauxval.c b/sysdeps/unix/sysv/linux/tst-getauxval.c
index 7979030..daf1a09 100644
--- a/sysdeps/unix/sysv/linux/tst-getauxval.c
+++ b/sysdeps/unix/sysv/linux/tst-getauxval.c
@@ -1,5 +1,5 @@
/* Basic test for getauxval.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c b/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c
index 55362f6..8274958 100644
--- a/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c
+++ b/sysdeps/unix/sysv/linux/tst-getcwd-smallbuff.c
@@ -59,7 +59,7 @@ send_fd (const int sock, const int fd)
{
struct cmsghdr hdr;
char buf[CMSG_SPACE (sizeof (int))];
- } cmsgbuf = {0};
+ } cmsgbuf = { };
struct cmsghdr *cmsg;
struct iovec vec;
char ch = 'A';
@@ -92,7 +92,7 @@ recv_fd (const int sock)
{
struct cmsghdr hdr;
char buf[CMSG_SPACE(sizeof(int))];
- } cmsgbuf = {0};
+ } cmsgbuf = { };
struct cmsghdr *cmsg;
struct iovec vec;
ssize_t n;
diff --git a/sysdeps/unix/sysv/linux/tst-getdents64.c b/sysdeps/unix/sysv/linux/tst-getdents64.c
index 3dd22a4..cdbd9c9 100644
--- a/sysdeps/unix/sysv/linux/tst-getdents64.c
+++ b/sysdeps/unix/sysv/linux/tst-getdents64.c
@@ -1,5 +1,5 @@
/* Test for reading directories with getdents64.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,6 +30,7 @@
#include <sys/mman.h>
#include <unistd.h>
+#if __GNUC_PREREQ (5, 0)
/* Called by large_buffer_checks below. */
static void
large_buffer_check (int fd, char *large_buffer, size_t large_buffer_size)
@@ -85,6 +86,12 @@ do_test_large_size (void)
xclose (fd);
}
+#else
+static void
+do_test_large_size (void)
+{
+}
+#endif
static void
do_test_by_size (size_t buffer_size)
@@ -96,6 +103,8 @@ do_test_by_size (size_t buffer_size)
int fd = xopen (".", O_RDONLY | O_DIRECTORY, 0);
TEST_VERIFY (fd >= 0);
+ char *data = xposix_memalign (_Alignof (struct dirent64), buffer_size);
+
/* Perform two passes, with a rewind operating between passes. */
for (int pass = 0; pass < 2; ++pass)
{
@@ -104,23 +113,15 @@ do_test_by_size (size_t buffer_size)
while (true)
{
- /* Simple way to make sure that the memcpy below does not read
- non-existing data. */
- struct
- {
- char buffer[buffer_size];
- struct dirent64 pad;
- } data;
-
- ssize_t ret = getdents64 (fd, &data.buffer, sizeof (data.buffer));
+ ssize_t ret = getdents64 (fd, data, buffer_size);
if (ret < 0)
FAIL_EXIT1 ("getdents64: %m");
if (ret == 0)
break;
++read_count;
- char *current = data.buffer;
- char *end = data.buffer + ret;
+ char *current = data;
+ char *end = data + ret;
while (current != end)
{
struct dirent64 entry;
@@ -163,6 +164,8 @@ do_test_by_size (size_t buffer_size)
rewinddir (reference);
}
+ free (data);
+
xclose (fd);
closedir (reference);
}
diff --git a/sysdeps/unix/sysv/linux/tst-getpid1-internal.c b/sysdeps/unix/sysv/linux/tst-getpid1-internal.c
index 3f0d952..55bd615 100644
--- a/sysdeps/unix/sysv/linux/tst-getpid1-internal.c
+++ b/sysdeps/unix/sysv/linux/tst-getpid1-internal.c
@@ -1,5 +1,5 @@
/* Verify that the parent pid is unchanged by __clone_internal.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-gettid-kill.c b/sysdeps/unix/sysv/linux/tst-gettid-kill.c
index 01f439d..94a1221 100644
--- a/sysdeps/unix/sysv/linux/tst-gettid-kill.c
+++ b/sysdeps/unix/sysv/linux/tst-gettid-kill.c
@@ -1,5 +1,5 @@
/* Verify the interaction of kill and thread groups.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-gettid.c b/sysdeps/unix/sysv/linux/tst-gettid.c
index b992a58..7ee972a 100644
--- a/sysdeps/unix/sysv/linux/tst-gettid.c
+++ b/sysdeps/unix/sysv/linux/tst-gettid.c
@@ -1,5 +1,5 @@
/* Smoke test for the gettid system call.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-gettimeofday-clobber.c b/sysdeps/unix/sysv/linux/tst-gettimeofday-clobber.c
index 9699d9d..ee041d4 100644
--- a/sysdeps/unix/sysv/linux/tst-gettimeofday-clobber.c
+++ b/sysdeps/unix/sysv/linux/tst-gettimeofday-clobber.c
@@ -1,5 +1,5 @@
/* Check that gettimeofday does not clobber errno.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-glibcsyscalls.py b/sysdeps/unix/sysv/linux/tst-glibcsyscalls.py
index 034a67d..81ecdc9 100644
--- a/sysdeps/unix/sysv/linux/tst-glibcsyscalls.py
+++ b/sysdeps/unix/sysv/linux/tst-glibcsyscalls.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Consistency checks for glibc system call lists.
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-linux-mremap1.c b/sysdeps/unix/sysv/linux/tst-linux-mremap1.c
index 408e8af..a5dce5a 100644
--- a/sysdeps/unix/sysv/linux/tst-linux-mremap1.c
+++ b/sysdeps/unix/sysv/linux/tst-linux-mremap1.c
@@ -1,5 +1,5 @@
/* Test mremap with MREMAP_DONTUNMAP.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-memfd_create.c b/sysdeps/unix/sysv/linux/tst-memfd_create.c
index 7b8ddca..15811cb 100644
--- a/sysdeps/unix/sysv/linux/tst-memfd_create.c
+++ b/sysdeps/unix/sysv/linux/tst-memfd_create.c
@@ -1,5 +1,5 @@
/* Test for the memfd_create system call.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-misalign-clone.c b/sysdeps/unix/sysv/linux/tst-misalign-clone.c
index 55abd23..a653933 100644
--- a/sysdeps/unix/sysv/linux/tst-misalign-clone.c
+++ b/sysdeps/unix/sysv/linux/tst-misalign-clone.c
@@ -1,5 +1,5 @@
/* Verify that the clone wrapper properly aligns the child stack.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-mlock2.c b/sysdeps/unix/sysv/linux/tst-mlock2.c
index 3f2b708..e3e7959 100644
--- a/sysdeps/unix/sysv/linux/tst-mlock2.c
+++ b/sysdeps/unix/sysv/linux/tst-mlock2.c
@@ -1,5 +1,5 @@
/* Test the mlock2 function.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/tst-mman-consts.py b/sysdeps/unix/sysv/linux/tst-mman-consts.py
index a1137eb..24d5a23 100644
--- a/sysdeps/unix/sysv/linux/tst-mman-consts.py
+++ b/sysdeps/unix/sysv/linux/tst-mman-consts.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Test that glibc's sys/mman.h constants match the kernel's.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
@@ -33,7 +33,7 @@ def main():
help='C compiler (including options) to use')
args = parser.parse_args()
linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
- linux_version_glibc = (6, 10)
+ linux_version_glibc = (6, 13)
sys.exit(glibcextract.compare_macro_consts(
'#define _GNU_SOURCE 1\n'
'#include <sys/mman.h>\n',
diff --git a/sysdeps/unix/sysv/linux/tst-mount-compile.py b/sysdeps/unix/sysv/linux/tst-mount-compile.py
index ed24b29..1931b05 100755
--- a/sysdeps/unix/sysv/linux/tst-mount-compile.py
+++ b/sysdeps/unix/sysv/linux/tst-mount-compile.py
@@ -1,7 +1,7 @@
#!/usr/bin/python3
# Check if glibc provided sys/mount.h can be used along related kernel
# headers.
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py b/sysdeps/unix/sysv/linux/tst-mount-consts.py
index 675f179..9784775 100755
--- a/sysdeps/unix/sysv/linux/tst-mount-consts.py
+++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Test that glibc's sys/mount.h constants match the kernel's.
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
@@ -39,10 +39,10 @@ def main():
sys.exit (77)
linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
- # Constants in glibc were updated to match Linux v6.10. When glibc
+ # Constants in glibc were updated to match Linux v6.13. When glibc
# constants are updated this value should be updated to match the
# released kernel version from which the constants were taken.
- linux_version_glibc = (6, 10)
+ linux_version_glibc = (6, 13)
def check(cte, exclude=None):
return glibcextract.compare_macro_consts(
'#include <sys/mount.h>\n',
diff --git a/sysdeps/unix/sysv/linux/tst-mount.c b/sysdeps/unix/sysv/linux/tst-mount.c
index 5eb5548..40913c7 100644
--- a/sysdeps/unix/sysv/linux/tst-mount.c
+++ b/sysdeps/unix/sysv/linux/tst-mount.c
@@ -1,5 +1,5 @@
/* Basic tests for the new Linux API added on Linux 5.2.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/nios2/vfork.S b/sysdeps/unix/sysv/linux/tst-nolink-libc.c
index 897b637..817f377 100644
--- a/sysdeps/unix/sysv/linux/nios2/vfork.S
+++ b/sysdeps/unix/sysv/linux/tst-nolink-libc.c
@@ -1,5 +1,5 @@
-/* vfork for Nios II Linux.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Test program not linked against libc.so and not using any glibc functions.
+ Copyright (C) 2024 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,18 +17,9 @@
<https://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <tcb-offsets.h>
-ENTRY(__vfork)
-
- movi r4, 0x4111 /* (CLONE_VM | CLONE_VFORK | SIGCHLD) */
- mov r5, zero
- DO_CALL (clone, 2)
-
- bne r7, zero, SYSCALL_ERROR_LABEL
- ret
-
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-
-weak_alias (__vfork, vfork)
+void
+_start (void)
+{
+ INTERNAL_SYSCALL_CALL (exit_group, 0);
+}
diff --git a/sysdeps/unix/sysv/linux/tst-ntp_adjtime.c b/sysdeps/unix/sysv/linux/tst-ntp_adjtime.c
index d4e5a2a..f145525 100644
--- a/sysdeps/unix/sysv/linux/tst-ntp_adjtime.c
+++ b/sysdeps/unix/sysv/linux/tst-ntp_adjtime.c
@@ -1,5 +1,5 @@
/* Test for ntp_adjtime.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ntp_gettime.c b/sysdeps/unix/sysv/linux/tst-ntp_gettime.c
index fd67b55..7e33445 100644
--- a/sysdeps/unix/sysv/linux/tst-ntp_gettime.c
+++ b/sysdeps/unix/sysv/linux/tst-ntp_gettime.c
@@ -1,5 +1,5 @@
/* Test for ntp_gettime.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ntp_gettimex.c b/sysdeps/unix/sysv/linux/tst-ntp_gettimex.c
index feda890..0e8da20 100644
--- a/sysdeps/unix/sysv/linux/tst-ntp_gettimex.c
+++ b/sysdeps/unix/sysv/linux/tst-ntp_gettimex.c
@@ -1,5 +1,5 @@
/* Test for ntp_gettimex.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-o_path-locks.c b/sysdeps/unix/sysv/linux/tst-o_path-locks.c
index f085d0f..de794f9 100644
--- a/sysdeps/unix/sysv/linux/tst-o_path-locks.c
+++ b/sysdeps/unix/sysv/linux/tst-o_path-locks.c
@@ -1,5 +1,5 @@
/* Test that closing O_PATH descriptors does not release POSIX advisory locks.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c
index 484f7d7..da10d61 100644
--- a/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c
+++ b/sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c
@@ -1,6 +1,6 @@
/* Check non representable OFD locks regions in non-LFS mode for compat
mode (BZ #20251)
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
diff --git a/sysdeps/unix/sysv/linux/tst-ofdlocks.c b/sysdeps/unix/sysv/linux/tst-ofdlocks.c
index 2fa467a..aee1b66 100644
--- a/sysdeps/unix/sysv/linux/tst-ofdlocks.c
+++ b/sysdeps/unix/sysv/linux/tst-ofdlocks.c
@@ -1,5 +1,5 @@
/* Check non representable OFD locks regions in non-LFS mode (BZ #20251)
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
diff --git a/sysdeps/unix/sysv/linux/tst-personality.c b/sysdeps/unix/sysv/linux/tst-personality.c
index 5765f23..215284d 100644
--- a/sysdeps/unix/sysv/linux/tst-personality.c
+++ b/sysdeps/unix/sysv/linux/tst-personality.c
@@ -1,6 +1,6 @@
/* BZ #19408 linux personality syscall wrapper test.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-pidfd-consts.py b/sysdeps/unix/sysv/linux/tst-pidfd-consts.py
index 9824fd2..18010fe 100644
--- a/sysdeps/unix/sysv/linux/tst-pidfd-consts.py
+++ b/sysdeps/unix/sysv/linux/tst-pidfd-consts.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Test that glibc's sys/pidfd.h constants match the kernel's.
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
@@ -39,7 +39,7 @@ def main():
sys.exit (77)
linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
- linux_version_glibc = (6, 10)
+ linux_version_glibc = (6, 12)
sys.exit(glibcextract.compare_macro_consts(
'#include <sys/pidfd.h>\n',
'#include <asm/fcntl.h>\n'
diff --git a/sysdeps/unix/sysv/linux/tst-pidfd.c b/sysdeps/unix/sysv/linux/tst-pidfd.c
index 2222ed5..f7e0c5d 100644
--- a/sysdeps/unix/sysv/linux/tst-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-pidfd.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux pidfd interfaces.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-pidfd_getpid.c b/sysdeps/unix/sysv/linux/tst-pidfd_getpid.c
index ef62fbe..cbccf0b 100644
--- a/sysdeps/unix/sysv/linux/tst-pidfd_getpid.c
+++ b/sysdeps/unix/sysv/linux/tst-pidfd_getpid.c
@@ -1,5 +1,5 @@
/* Specific tests for Linux pidfd_getpid.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-pkey.c b/sysdeps/unix/sysv/linux/tst-pkey.c
index 297a7fb..1000d8f 100644
--- a/sysdeps/unix/sysv/linux/tst-pkey.c
+++ b/sysdeps/unix/sysv/linux/tst-pkey.c
@@ -1,5 +1,5 @@
/* Tests for memory protection keys.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -120,7 +120,7 @@ sigusr1_handler (int signum)
TEST_COMPARE (signum, SIGUSR1);
for (int i = 0; i < key_count; ++i)
TEST_VERIFY (pkey_get (keys[i]) == PKEY_DISABLE_ACCESS
- || pkey_get (keys[i]) == i);
+ || (pkey_get (keys[i]) & i) == i);
sigusr1_handler_ran = 1;
}
@@ -185,12 +185,13 @@ do_test (void)
xmunmap (page, pagesize);
}
+ /* Create thread before setting up key in the current thread. */
xpthread_barrier_init (&barrier, NULL, 2);
bool delayed_thread_check_access = true;
pthread_t delayed_thread = xpthread_create
(NULL, &delayed_thread_func, &delayed_thread_check_access);
- keys[0] = pkey_alloc (0, 0);
+ keys[0] = pkey_alloc (0, PKEY_UNRESTRICTED);
if (keys[0] < 0)
{
if (errno == ENOSYS)
@@ -212,19 +213,47 @@ do_test (void)
("glibc does not support memory protection keys");
FAIL_EXIT1 ("pkey_get: %m");
}
+
+ /* Check that initial rights that are set via pkey_alloc
+ can be accessed via pkey_get. */
+ {
+ int pkey = -1;
+ pkey = pkey_alloc (0, PKEY_DISABLE_ACCESS);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_ACCESS, PKEY_DISABLE_ACCESS);
+ pkey_free (pkey);
+ pkey = pkey_alloc (0, PKEY_DISABLE_WRITE);
+ TEST_COMPARE (pkey_get (pkey) & PKEY_DISABLE_WRITE, PKEY_DISABLE_WRITE);
+ pkey_free (pkey);
+ }
+
+ /* Check that unallocated pkey is not accepted by the
+ pkey_mprotect function. */
+ {
+ int pkey = -1;
+ pkey = pkey_alloc (0, PKEY_DISABLE_WRITE);
+ pkey_free (pkey);
+ int *page = xmmap (NULL, pagesize, PROT_NONE,
+ MAP_ANONYMOUS | MAP_PRIVATE, -1);
+ TEST_COMPARE (pkey_mprotect (page, pagesize, PROT_READ, pkey), -1);
+ TEST_COMPARE (errno, EINVAL);
+ xmunmap (page, pagesize);
+ }
+
for (int i = 1; i < key_count; ++i)
{
+ /* i == 1 corresponds to PKEY_DISABLE_ACCESS
+ i == 2 corresponds to PKEY_DISABLE_WRITE */
keys[i] = pkey_alloc (0, i);
if (keys[i] < 0)
FAIL_EXIT1 ("pkey_alloc (0, %d): %m", i);
/* pkey_alloc is supposed to change the current thread's access
rights for the new key. */
- TEST_COMPARE (pkey_get (keys[i]), i);
+ TEST_COMPARE (pkey_get (keys[i]) & i, i);
}
/* Check that all the keys have the expected access rights for the
current thread. */
for (int i = 0; i < key_count; ++i)
- TEST_COMPARE (pkey_get (keys[i]), i);
+ TEST_COMPARE (pkey_get (keys[i]) & i, i);
/* Allocate a test page for each key. */
for (int i = 0; i < key_count; ++i)
@@ -241,12 +270,12 @@ do_test (void)
pthread_barrier_wait (&barrier);
struct thread_result *result = xpthread_join (delayed_thread);
for (int i = 0; i < key_count; ++i)
- TEST_COMPARE (result->access_rights[i],
- PKEY_DISABLE_ACCESS);
+ TEST_COMPARE (result->access_rights[i] &
+ PKEY_DISABLE_ACCESS, PKEY_DISABLE_ACCESS);
struct thread_result *result2 = xpthread_join (result->next_thread);
for (int i = 0; i < key_count; ++i)
- TEST_COMPARE (result->access_rights[i],
- PKEY_DISABLE_ACCESS);
+ TEST_COMPARE (result->access_rights[i] &
+ PKEY_DISABLE_ACCESS, PKEY_DISABLE_ACCESS);
free (result);
free (result2);
}
@@ -257,12 +286,12 @@ do_test (void)
pthread_t get_thread = xpthread_create (NULL, get_thread_func, NULL);
struct thread_result *result = xpthread_join (get_thread);
for (int i = 0; i < key_count; ++i)
- TEST_COMPARE (result->access_rights[i], i);
+ TEST_COMPARE (result->access_rights[i] & i, i);
free (result);
}
for (int i = 0; i < key_count; ++i)
- TEST_COMPARE (pkey_get (keys[i]), i);
+ TEST_COMPARE (pkey_get (keys[i]) & i, i);
/* Check that in a signal handler, there is no access. */
xsignal (SIGUSR1, &sigusr1_handler);
@@ -281,7 +310,7 @@ do_test (void)
printf ("info: checking access for key %d, bits 0x%x\n",
i, pkey_get (keys[i]));
for (int j = 0; j < key_count; ++j)
- TEST_COMPARE (pkey_get (keys[j]), j);
+ TEST_COMPARE (pkey_get (keys[j]) & j, j);
if (i & PKEY_DISABLE_ACCESS)
{
TEST_VERIFY (!check_page_access (i, false));
@@ -304,7 +333,7 @@ do_test (void)
if (i == allowed_key)
{
if (do_write)
- TEST_COMPARE (pkey_set (keys[i], 0), 0);
+ TEST_COMPARE (pkey_set (keys[i], PKEY_UNRESTRICTED), 0);
else
TEST_COMPARE (pkey_set (keys[i], PKEY_DISABLE_WRITE), 0);
}
@@ -331,7 +360,7 @@ do_test (void)
inherit that access. */
for (int i = 0; i < key_count; ++i)
{
- TEST_COMPARE (pkey_set (keys[i], 0), 0);
+ TEST_COMPARE (pkey_set (keys[i], PKEY_UNRESTRICTED), 0);
TEST_VERIFY (check_page_access (i, false));
TEST_VERIFY (check_page_access (i, true));
}
@@ -355,7 +384,7 @@ do_test (void)
not what happens in practice. */
{
/* The limit is in place to avoid running indefinitely in case
- there many keys available. */
+ there are many keys available. */
int *keys_array = xcalloc (100000, sizeof (*keys_array));
int keys_allocated = 0;
while (keys_allocated < 100000)
diff --git a/sysdeps/unix/sysv/linux/tst-posix_spawn-setsid-pidfd.c b/sysdeps/unix/sysv/linux/tst-posix_spawn-setsid-pidfd.c
index 30edc58..1131050 100644
--- a/sysdeps/unix/sysv/linux/tst-posix_spawn-setsid-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-posix_spawn-setsid-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ppoll.c b/sysdeps/unix/sysv/linux/tst-ppoll.c
index 392eb32..a00b6b8 100644
--- a/sysdeps/unix/sysv/linux/tst-ppoll.c
+++ b/sysdeps/unix/sysv/linux/tst-ppoll.c
@@ -1,5 +1,5 @@
/* Test for ppoll timeout
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-prctl.c b/sysdeps/unix/sysv/linux/tst-prctl.c
index 337c502..137dd37 100644
--- a/sysdeps/unix/sysv/linux/tst-prctl.c
+++ b/sysdeps/unix/sysv/linux/tst-prctl.c
@@ -1,5 +1,5 @@
/* Smoke test for prctl.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-process_madvise.c b/sysdeps/unix/sysv/linux/tst-process_madvise.c
index 05599b1..34da3c4 100644
--- a/sysdeps/unix/sysv/linux/tst-process_madvise.c
+++ b/sysdeps/unix/sysv/linux/tst-process_madvise.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux process_madvise.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-process_mrelease.c b/sysdeps/unix/sysv/linux/tst-process_mrelease.c
index 35031bc..0c14a6a 100644
--- a/sysdeps/unix/sysv/linux/tst-process_mrelease.c
+++ b/sysdeps/unix/sysv/linux/tst-process_mrelease.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux process_mrelease.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-quota.c b/sysdeps/unix/sysv/linux/tst-quota.c
index 7c34f93..0205332 100644
--- a/sysdeps/unix/sysv/linux/tst-quota.c
+++ b/sysdeps/unix/sysv/linux/tst-quota.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-readdir64-compat.c b/sysdeps/unix/sysv/linux/tst-readdir64-compat.c
index 16c60d5..1075687 100644
--- a/sysdeps/unix/sysv/linux/tst-readdir64-compat.c
+++ b/sysdeps/unix/sysv/linux/tst-readdir64-compat.c
@@ -1,5 +1,5 @@
/* Test readdir64 compatibility symbol.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c b/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c
index 2d88c0d..a207b91 100644
--- a/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c
+++ b/sysdeps/unix/sysv/linux/tst-rlimit-infinity.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-disable-static.c b/sysdeps/unix/sysv/linux/tst-rseq-disable-static.c
new file mode 100644
index 0000000..2687d13
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-disable-static.c
@@ -0,0 +1 @@
+#include "tst-rseq-disable.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-disable.c b/sysdeps/unix/sysv/linux/tst-rseq-disable.c
index bbc655b..8e9c11f 100644
--- a/sysdeps/unix/sysv/linux/tst-rseq-disable.c
+++ b/sysdeps/unix/sysv/linux/tst-rseq-disable.c
@@ -1,5 +1,5 @@
/* Test disabling of rseq registration via tunable.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -26,32 +26,82 @@
#include <unistd.h>
#ifdef RSEQ_SIG
+# include <sys/auxv.h>
+# include <dl-tls.h>
+# include "tst-rseq.h"
+
+/* Used to test private registration with the rseq system call because glibc
+ rseq is disabled. */
+static __thread struct rseq local_rseq = {
+ .cpu_id = RSEQ_CPU_ID_REGISTRATION_FAILED,
+};
+
+/* Used to check if the address of the rseq area comes before or after the tls
+ blocks depending on the TLS model. */
+static __thread char tls_var __attribute__ ((tls_model ("initial-exec")));
/* Check that rseq can be registered and has not been taken by glibc. */
static void
check_rseq_disabled (void)
{
- struct pthread *pd = THREAD_SELF;
+ struct rseq *rseq_abi = (struct rseq *) ((char *) __thread_pointer () +
+ __rseq_offset);
+
+#if TLS_TCB_AT_TP
+ /* The rseq area block should come before the thread pointer and be at least
+ 32 bytes. */
+ TEST_VERIFY (__rseq_offset <= -RSEQ_AREA_SIZE_INITIAL);
+
+ /* The rseq area block should come before TLS variables. */
+ TEST_VERIFY ((intptr_t) rseq_abi < (intptr_t) &tls_var);
+#elif TLS_DTV_AT_TP
+ /* The rseq area block should come after the TCB, add the TLS block offset to
+ the rseq offset to get a value relative to the TCB and test that it's
+ non-negative. */
+ TEST_VERIFY (__rseq_offset + TLS_TP_OFFSET >= 0);
+
+ /* The rseq area block should come after TLS variables. */
+ TEST_VERIFY ((intptr_t) rseq_abi > (intptr_t) &tls_var);
+#else
+# error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
+#endif
+ /* __rseq_flags is unused and should always be '0'. */
TEST_COMPARE (__rseq_flags, 0);
- TEST_VERIFY ((char *) __thread_pointer () + __rseq_offset
- == (char *) &pd->rseq_area);
+
+ /* When rseq is not registered, __rseq_size should always be '0'. */
TEST_COMPARE (__rseq_size, 0);
- TEST_COMPARE ((int) pd->rseq_area.cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
- int ret = syscall (__NR_rseq, &pd->rseq_area, sizeof (pd->rseq_area),
- 0, RSEQ_SIG);
+ /* When rseq is not registered, the 'cpu_id' field should be set to
+ RSEQ_CPU_ID_REGISTRATION_FAILED. */
+ TEST_COMPARE ((int) rseq_abi->cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED);
+
+ /* Test a rseq registration which should succeed since the internal
+ registration is disabled. */
+ int ret = syscall (__NR_rseq, &local_rseq, RSEQ_AREA_SIZE_INITIAL, 0, RSEQ_SIG);
if (ret == 0)
{
- ret = syscall (__NR_rseq, &pd->rseq_area, sizeof (pd->rseq_area),
+ /* A successful registration should set the cpu id. */
+ TEST_VERIFY (local_rseq.cpu_id >= 0);
+
+ /* Test we can also unregister rseq. */
+ ret = syscall (__NR_rseq, &local_rseq, RSEQ_AREA_SIZE_INITIAL,
RSEQ_FLAG_UNREGISTER, RSEQ_SIG);
TEST_COMPARE (ret, 0);
- pd->rseq_area.cpu_id = RSEQ_CPU_ID_REGISTRATION_FAILED;
}
else
{
- TEST_VERIFY (errno != -EINVAL);
- TEST_VERIFY (errno != -EBUSY);
+ /* Check if we failed with EINVAL which would mean an invalid rseq flags,
+ a mis-aligned rseq area address or an incorrect rseq size. */
+ TEST_VERIFY (errno != EINVAL);
+
+ /* Check if we failed with EBUSY which means an existing rseq
+ registration. */
+ TEST_VERIFY (errno != EBUSY);
+
+ /* Check if we failed with EFAULT which means an invalid rseq area
+ address. */
+ TEST_VERIFY (errno != EFAULT);
}
}
@@ -71,6 +121,13 @@ proc_func (void *ignored)
static int
do_test (void)
{
+ printf ("info: __rseq_size: %u\n", __rseq_size);
+ printf ("info: __rseq_offset: %td\n", __rseq_offset);
+ printf ("info: __rseq_flags: %u\n", __rseq_flags);
+ printf ("info: getauxval (AT_RSEQ_FEATURE_SIZE): %ld\n",
+ getauxval (AT_RSEQ_FEATURE_SIZE));
+ printf ("info: getauxval (AT_RSEQ_ALIGN): %ld\n", getauxval (AT_RSEQ_ALIGN));
+
puts ("info: checking main thread");
check_rseq_disabled ();
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-nptl-static.c b/sysdeps/unix/sysv/linux/tst-rseq-nptl-static.c
new file mode 100644
index 0000000..6e2c923
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-nptl-static.c
@@ -0,0 +1 @@
+#include "tst-rseq-nptl.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-nptl.c b/sysdeps/unix/sysv/linux/tst-rseq-nptl.c
index b9f4984..bbe62f8 100644
--- a/sysdeps/unix/sysv/linux/tst-rseq-nptl.c
+++ b/sysdeps/unix/sysv/linux/tst-rseq-nptl.c
@@ -1,5 +1,5 @@
/* Restartable Sequences NPTL test.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -28,6 +28,11 @@
#include <sys/rseq.h>
#include <unistd.h>
+/* Set this in 'do_test' only so as to invoke the destructor test in
+ the test process only and not 'support_test_main' parent. Otherwise
+ the test harness may hang in the destructor if something goes wrong. */
+static int run_destructor_test;
+
#ifdef RSEQ_SIG
# include <array_length.h>
# include <errno.h>
@@ -236,6 +241,9 @@ do_rseq_test (void)
static void __attribute__ ((destructor))
do_rseq_destructor_test (void)
{
+ if (!run_destructor_test)
+ return;
+
/* Cannot use deferred failure reporting after main returns. */
if (do_rseq_test ())
FAIL_EXIT1 ("rseq not registered within destructor");
@@ -254,6 +262,7 @@ do_rseq_test (void)
static int
do_test (void)
{
+ run_destructor_test = 1;
return do_rseq_test ();
}
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-static.c b/sysdeps/unix/sysv/linux/tst-rseq-static.c
new file mode 100644
index 0000000..1d97f3b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-static.c
@@ -0,0 +1 @@
+#include "tst-rseq.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096-static.c b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096-static.c
new file mode 100644
index 0000000..5ad2853
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096-static.c
@@ -0,0 +1 @@
+#include "tst-rseq-tls-range.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096.c b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096.c
new file mode 100644
index 0000000..5ad2853
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-4096.c
@@ -0,0 +1 @@
+#include "tst-rseq-tls-range.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-tls-range-mod.c b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-mod.c
new file mode 100644
index 0000000..165e468
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-mod.c
@@ -0,0 +1 @@
+__thread int mod_thread_var __attribute__ ((tls_model ("initial-exec")));
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-tls-range-static.c b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-static.c
new file mode 100644
index 0000000..5ad2853
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-tls-range-static.c
@@ -0,0 +1 @@
+#include "tst-rseq-tls-range.c"
diff --git a/sysdeps/unix/sysv/linux/tst-rseq-tls-range.c b/sysdeps/unix/sysv/linux/tst-rseq-tls-range.c
new file mode 100644
index 0000000..5891e5f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-rseq-tls-range.c
@@ -0,0 +1,195 @@
+/* Verify that TLS blocks and the rseq area do not overlap.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <array_length.h>
+#include <elf.h>
+#include <link.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <support/check.h>
+#include <support/xdlfcn.h>
+#include <sys/auxv.h>
+#include <sys/param.h>
+#include <sys/rseq.h>
+#include <thread_pointer.h>
+#include <unistd.h>
+
+/* Used to keep track of address ranges. The ranges are sorted and
+ then checked for overlap. */
+
+struct address_range
+{
+ const char *prefix;
+ const char *label;
+ uintptr_t start;
+ size_t length;
+};
+
+struct address_range ranges[20];
+size_t range_count;
+
+static void
+add_range (const char *prefix, const char *label,
+ const void *start, size_t length)
+{
+ TEST_VERIFY (start != NULL);
+ TEST_VERIFY (length > 0);
+ TEST_VERIFY_EXIT (range_count < array_length (ranges));
+ ranges[range_count].prefix = prefix;
+ ranges[range_count].label = label;
+ ranges[range_count].start = (uintptr_t) start;
+ ranges[range_count].length = length;
+ ++range_count;
+}
+
+static int
+range_compare (const void *a1, const void *b1)
+{
+ const struct address_range *a = a1;
+ const struct address_range *b = b1;
+ if (a->start < b->start)
+ return -1;
+ if (a->start > b->start)
+ return 1;
+ return 0;
+}
+
+static void
+check_for_overlap (void)
+{
+ qsort (ranges, range_count, sizeof (ranges[0]), range_compare);
+ uintptr_t previous_end = ranges[0].start + ranges[0].length - 1;
+ for (size_t i = 1; i < range_count; ++i)
+ {
+ uintptr_t this_end = ranges[i].start + ranges[i].length - 1;
+ if (ranges[i].start <= previous_end)
+ {
+ puts ("error: overlap between address ranges");
+ printf (" %s%s: [0x%lx, 0x%lx)\n",
+ ranges[i - 1].prefix, ranges[i - 1].label,
+ (unsigned long int) ranges[i - 1].start,
+ (unsigned long int) previous_end);
+ printf (" %s%s: [0x%lx, 0x%lx)\n",
+ ranges[i].prefix, ranges[i].label,
+ (unsigned long int) ranges[i].start,
+ (unsigned long int) this_end);
+ }
+ previous_end = this_end;
+ }
+}
+
+static void
+add_rseq (void)
+{
+ /* The initial size of 32 bytes is always allocated. The value
+ reported by __rseq_size does not include the alignment, which can
+ be larger than 32 if requested by the kernel through the
+ auxiliary vector. */
+ size_t size = 32;
+ if (__rseq_size > 0)
+ size = roundup (__rseq_size, MAX (getauxval (AT_RSEQ_ALIGN), 32));
+
+ printf ("info: adding rseq area of %zu bytes\n", size);
+ add_range ("", "rseq area",
+ (char *) __thread_pointer () + __rseq_offset, size);
+}
+
+/* These functions add the TLS data for all loaded modules to the
+ recorded address ranges. */
+
+static int
+dlip_callback (struct dl_phdr_info *info, size_t size, void *ignored)
+{
+ /* If the dynamic linker does not provide TLS address information,
+ there is nothing to register. */
+ if (info->dlpi_tls_data == NULL)
+ return 0;
+
+ for (int i = 0; i < info->dlpi_phnum; ++i)
+ {
+ if (info->dlpi_phdr[i].p_type == PT_TLS)
+ {
+ printf ("info: adding TLS range for \"%s\" (%zu bytes)\n",
+ info->dlpi_name, (size_t) info->dlpi_phdr[i].p_memsz);
+ add_range ("TLS for ",
+ info->dlpi_name[0] != '\0' ? info->dlpi_name : "main",
+ info->dlpi_tls_data, info->dlpi_phdr[i].p_memsz);
+ break;
+ }
+ }
+ return 0;
+}
+
+/* Returns true if any TLS ranges were found. */
+static void
+add_tls_ranges (void)
+{
+ dl_iterate_phdr (dlip_callback, NULL);
+}
+
+volatile __thread int thread_var __attribute__ ((aligned (MAIN_TLS_ALIGN)));
+
+static int
+do_test (void)
+{
+ void *original_brk = sbrk (0);
+ void *initial_allocation = malloc (16);
+
+ /* Ensure that the variable is not optimized away. */
+ thread_var = 0;
+
+ printf ("info: rseq area size: %u\n", __rseq_size);
+
+ puts ("info: checking address ranges with initially loaded modules");
+ add_range ("", "program break", original_brk, 1);
+ add_range ("", "malloc allocation", initial_allocation, 16);
+ add_rseq ();
+ add_tls_ranges ();
+ printf ("info: %zu ranges found\n", range_count);
+ check_for_overlap ();
+ range_count = 0;
+
+ puts ("info: checking address ranges after dlopen");
+ void *handle = xdlopen ("tst-rseq-tls-range-mod.so", RTLD_NOW);
+ int *mod_thread_var = xdlsym (handle, "mod_thread_var");
+ add_range ("", "program break", original_brk, 1);
+ add_range ("", "malloc allocation", initial_allocation, 16);
+ add_rseq ();
+ add_tls_ranges ();
+ {
+ bool found_objects = false;
+ for (size_t i = 0; i < range_count; ++i)
+ if (strchr (ranges[i].label, '/') != NULL)
+ found_objects = true;
+ if (!found_objects)
+ /* __tls_get_addr does not fully work with static dlopen.
+ Add some fall-back test data. */
+ add_range ("", "mod_thread_var",
+ mod_thread_var, sizeof (*mod_thread_var));
+ }
+ printf ("info: %zu ranges found\n", range_count);
+ check_for_overlap ();
+ xdlclose (handle);
+
+ free (initial_allocation);
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-rseq.c b/sysdeps/unix/sysv/linux/tst-rseq.c
index 08a9533..00181cf 100644
--- a/sysdeps/unix/sysv/linux/tst-rseq.c
+++ b/sysdeps/unix/sysv/linux/tst-rseq.c
@@ -1,5 +1,5 @@
/* Restartable Sequences single-threaded tests.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -19,6 +19,8 @@
not linked against libpthread. */
#include <support/check.h>
+#include <support/namespace.h>
+#include <support/xthread.h>
#include <stdio.h>
#include <sys/rseq.h>
#include <unistd.h>
@@ -32,23 +34,82 @@
# include <sys/auxv.h>
# include <thread_pointer.h>
# include <tls.h>
+# include <dl-tls.h>
+# include <sys/auxv.h>
# include "tst-rseq.h"
+/* Used to check if the address of the rseq area comes before or after the tls
+ blocks depending on the TLS model. */
+static __thread char tls_var __attribute__ ((tls_model ("initial-exec")));
+
static void
do_rseq_main_test (void)
{
- struct pthread *pd = THREAD_SELF;
+ size_t rseq_align = MAX (getauxval (AT_RSEQ_ALIGN), RSEQ_MIN_ALIGN);
+ size_t rseq_feature_size = MAX (getauxval (AT_RSEQ_FEATURE_SIZE),
+ RSEQ_AREA_SIZE_INITIAL_USED);
+ size_t rseq_alloc_size = roundup (MAX (rseq_feature_size,
+ RSEQ_AREA_SIZE_INITIAL_USED), rseq_align);
+ struct rseq *rseq_abi = __thread_pointer () + __rseq_offset;
TEST_VERIFY_EXIT (rseq_thread_registered ());
+
+ /* __rseq_flags is unused and should always be '0'. */
TEST_COMPARE (__rseq_flags, 0);
- TEST_VERIFY ((char *) __thread_pointer () + __rseq_offset
- == (char *) &pd->rseq_area);
- /* The current implementation only supports the initial size. */
- TEST_COMPARE (__rseq_size, 20);
+
+ /* When rseq is registered, __rseq_size should report the feature size. */
+ TEST_COMPARE (__rseq_size, rseq_feature_size);
+
+ /* When rseq is registered, the 'cpu_id' field should be set to a valid cpu
+ * number. */
+ TEST_VERIFY ((int32_t) rseq_abi->cpu_id >= 0);
+
+ /* The rseq area address must be aligned. */
+ TEST_VERIFY (((unsigned long) rseq_abi % rseq_align) == 0);
+
+#if TLS_TCB_AT_TP
+ /* The rseq area block should come before the thread pointer and be at least
+ 32 bytes. */
+ TEST_VERIFY (__rseq_offset <= -RSEQ_AREA_SIZE_INITIAL);
+
+ /* The rseq area block should come before TLS variables. */
+ TEST_VERIFY ((intptr_t) rseq_abi < (intptr_t) &tls_var);
+#elif TLS_DTV_AT_TP
+ /* The rseq area block should come after the TCB, add the TLS block offset to
+ the rseq offset to get a value relative to the TCB and test that it's
+ non-negative. */
+ TEST_VERIFY (__rseq_offset + TLS_TP_OFFSET >= 0);
+
+ /* The rseq area block should come after TLS variables. */
+ TEST_VERIFY ((intptr_t) rseq_abi > (intptr_t) &tls_var);
+#else
+# error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
+#endif
+
+ /* Test a rseq registration with the same arguments as the internal
+ registration which should fail with errno == EBUSY. */
+ TEST_VERIFY (((unsigned long) rseq_abi % rseq_align) == 0);
+ TEST_VERIFY (__rseq_size <= rseq_alloc_size);
+ int ret = syscall (__NR_rseq, rseq_abi, rseq_alloc_size, 0, RSEQ_SIG);
+ TEST_VERIFY (ret != 0);
+ TEST_COMPARE (errno, EBUSY);
+}
+
+static void *
+thread_func (void *ignored)
+{
+ do_rseq_main_test ();
+ return NULL;
}
static void
-do_rseq_test (void)
+proc_func (void *ignored)
+{
+ do_rseq_main_test ();
+}
+
+static int
+do_test (void)
{
if (!rseq_available ())
{
@@ -60,21 +121,27 @@ do_rseq_test (void)
printf ("info: getauxval (AT_RSEQ_FEATURE_SIZE): %ld\n",
getauxval (AT_RSEQ_FEATURE_SIZE));
printf ("info: getauxval (AT_RSEQ_ALIGN): %ld\n", getauxval (AT_RSEQ_ALIGN));
+
+ puts ("info: checking main thread");
+ do_rseq_main_test ();
+
+ puts ("info: checking main thread (2)");
do_rseq_main_test ();
+
+ puts ("info: checking new thread");
+ xpthread_join (xpthread_create (NULL, thread_func, NULL));
+
+ puts ("info: checking subprocess");
+ support_isolate_in_subprocess (proc_func, NULL);
+
+ return 0;
}
#else /* RSEQ_SIG */
-static void
-do_rseq_test (void)
-{
- FAIL_UNSUPPORTED ("glibc does not define RSEQ_SIG, skipping test");
-}
-#endif /* RSEQ_SIG */
-
static int
do_test (void)
{
- do_rseq_test ();
- return 0;
+ FAIL_UNSUPPORTED ("glibc does not define RSEQ_SIG, skipping test");
}
+#endif /* RSEQ_SIG */
#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-rseq.h b/sysdeps/unix/sysv/linux/tst-rseq.h
index dc60332..812accc 100644
--- a/sysdeps/unix/sysv/linux/tst-rseq.h
+++ b/sysdeps/unix/sysv/linux/tst-rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences tests header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -23,11 +23,12 @@
#include <syscall.h>
#include <sys/rseq.h>
#include <tls.h>
+#include <rseq-internal.h>
static inline bool
rseq_thread_registered (void)
{
- return THREAD_GETMEM_VOLATILE (THREAD_SELF, rseq_area.cpu_id) >= 0;
+ return RSEQ_GETMEM_ONCE (cpu_id) >= 0;
}
static inline int
diff --git a/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c
new file mode 100644
index 0000000..8a42d27
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c
@@ -0,0 +1,72 @@
+/* CPU Affinity inheritance test - sched_{gs}etaffinity.
+ Copyright The GNU Toolchain Authors.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* See top level comment in nptl/tst-skeleton-affinity-inheritance.c for a
+ description of this test. */
+
+#include <sched.h>
+#include <string.h>
+#include <stdio.h>
+#include <support/check.h>
+
+static void
+set_my_affinity (size_t size, const cpu_set_t *set)
+{
+ int ret = sched_setaffinity (0, size, set);
+
+ if (ret != 0)
+ FAIL ("sched_setaffinity returned %d (%s)", ret, strerror (ret));
+}
+
+static void
+verify_my_affinity (int nproc, int nproc_configured, size_t size,
+ const cpu_set_t *expected_set)
+{
+ cpu_set_t *set = CPU_ALLOC (nproc_configured);
+ cpu_set_t *xor_set = CPU_ALLOC (nproc_configured);
+
+ if (set == NULL || xor_set== NULL)
+ FAIL_EXIT1 ("verify_my_affinity: Failed to allocate cpuset: %m\n");
+
+ int ret = sched_getaffinity (0, size, set);
+ if (ret != 0)
+ FAIL ("sched_getaffinity returned %d (%s)", ret, strerror (ret));
+
+ CPU_XOR_S (size, xor_set, expected_set, set);
+
+ int cpucount = CPU_COUNT_S (size, xor_set);
+
+ if (cpucount > 0)
+ {
+ FAIL ("Affinity mask not inherited, "
+ "following %d CPUs mismatched in the expected and actual sets:\n",
+ cpucount);
+ for (int cur = 0; cur < nproc && cpucount >= 0; cur++)
+ if (CPU_ISSET_S (size, cur, xor_set))
+ {
+ printf ("%d ", cur);
+ cpucount--;
+ }
+ printf ("\n");
+ }
+
+ CPU_FREE (set);
+ CPU_FREE (xor_set);
+}
+
+#include <nptl/tst-skeleton-affinity-inheritance.c>
diff --git a/sysdeps/unix/sysv/linux/tst-sched-consts.py b/sysdeps/unix/sysv/linux/tst-sched-consts.py
new file mode 100644
index 0000000..da13c5e
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sched-consts.py
@@ -0,0 +1,56 @@
+#!/usr/bin/python3
+# Test that glibc's sched.h constants match the kernel's.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+#
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <https://www.gnu.org/licenses/>.
+
+import argparse
+import sys
+
+import glibcextract
+import glibcsyscalls
+
+
+def main():
+ """The main entry point."""
+ parser = argparse.ArgumentParser(
+ description="Test that glibc's sched.h constants "
+ "match the kernel's.")
+ parser.add_argument('--cc', metavar='CC',
+ help='C compiler (including options) to use')
+ args = parser.parse_args()
+ linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
+ linux_version_glibc = (6, 13)
+ sys.exit(glibcextract.compare_macro_consts(
+ '#define _GNU_SOURCE 1\n'
+ '#include <sched.h>\n',
+ '#define _GNU_SOURCE 1\n'
+ '#include <linux/sched.h>\n'
+ '#include <linux/sched/types.h>\n',
+ args.cc,
+ 'SCHED_.*',
+ # SCHED_ISO is reserved, but not implemented in the kernel.
+ # SCHED_OTHER is the standard name for SCHED_NORMAL.
+ # SCHED_FLAG_ALL will receive more and more flags, so
+ # exposing it to userspace does not seem useful.
+ 'SCHED_ISO'
+ '|SCHED_OTHER'
+ '|SCHED_FLAG_ALL',
+ linux_version_glibc > linux_version_headers,
+ linux_version_headers > linux_version_glibc))
+
+if __name__ == '__main__':
+ main()
diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c b/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c
new file mode 100644
index 0000000..4600be9
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sched_setattr-thread.c
@@ -0,0 +1,116 @@
+/* Test for sched_setattr, sched_getattr involving multiple threads.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+
+#include <stddef.h>
+#include <stdio.h>
+#include <support/check.h>
+#include <support/xthread.h>
+#include <unistd.h>
+
+enum { initial_nice_value = 15 };
+
+/* Check that thread TID has nice value EXPECTED. */
+static void
+check_nice_value (int tid, int expected)
+{
+ struct sched_attr attr;
+ if (sched_getattr (tid, &attr, sizeof (attr), 0) != 0)
+ FAIL_EXIT1 ("sched_getattr (%d) failed: %m", tid);
+ TEST_COMPARE (attr.sched_policy, SCHED_OTHER);
+ int nice_value = attr.sched_nice;
+ if (attr.sched_nice != expected)
+ FAIL_EXIT1 ("thread %d: expected nice value %d, got %d"
+ " (called from thread %d)",
+ tid, expected, nice_value, (int) gettid ());
+ printf ("info: thread %d: nice value %d (called from thread %d)\n",
+ tid, nice_value, (int) gettid ());
+}
+
+/* Set the nice value for TID to VALUE. */
+static void
+set_nice_value (int tid, int value)
+{
+ struct sched_attr attr =
+ {
+ .size = sizeof (attr),
+ .sched_policy = SCHED_OTHER,
+ .sched_nice = value,
+ };
+ if (sched_setattr (tid, &attr, 0) != 0)
+ FAIL_EXIT1 ("sched_setattr (%d) failed: %m", tid);
+}
+
+static pthread_barrier_t barrier;
+
+static void *
+thread_routine (void *nice_value_ptr)
+{
+ int nice_value = *(int *) nice_value_ptr;
+ /* Check that the nice value was inherited. */
+ check_nice_value (gettid (), initial_nice_value);
+ xpthread_barrier_wait (&barrier);
+ /* Main thread sets nice value. */
+ xpthread_barrier_wait (&barrier);
+ check_nice_value (gettid (), nice_value);
+ set_nice_value (gettid (), nice_value + 2);
+ xpthread_barrier_wait (&barrier);
+ /* Main thread sets checks value. */
+ xpthread_barrier_wait (&barrier);
+ return NULL;
+}
+
+static int
+do_test (void)
+{
+ if (nice (initial_nice_value) != initial_nice_value)
+ FAIL_UNSUPPORTED ("cannot set nice value to initial_nice_value: %m");
+
+ xpthread_barrier_init (&barrier, NULL, 3);
+
+ check_nice_value (0, initial_nice_value);
+ check_nice_value (gettid (), initial_nice_value);
+
+ int nice0 = initial_nice_value + 1;
+ pthread_t thr0 = xpthread_create (NULL, thread_routine, &nice0);
+ int nice1 = initial_nice_value + 2;
+ pthread_t thr1 = xpthread_create (NULL, thread_routine, &nice1);
+ check_nice_value (pthread_gettid_np (thr0), initial_nice_value);
+ check_nice_value (pthread_gettid_np (thr1), initial_nice_value);
+ xpthread_barrier_wait (&barrier);
+ set_nice_value (pthread_gettid_np (thr0), nice0);
+ check_nice_value (pthread_gettid_np (thr0), nice0);
+ check_nice_value (pthread_gettid_np (thr1), initial_nice_value);
+ set_nice_value (pthread_gettid_np (thr1), nice1);
+ check_nice_value (pthread_gettid_np (thr0), nice0);
+ check_nice_value (pthread_gettid_np (thr1), nice1);
+ xpthread_barrier_wait (&barrier);
+ /* Threads set nice value. */
+ xpthread_barrier_wait (&barrier);
+ check_nice_value (pthread_gettid_np (thr0), nice0 + 2);
+ check_nice_value (pthread_gettid_np (thr1), nice1 + 2);
+ xpthread_barrier_wait (&barrier);
+
+ TEST_VERIFY (xpthread_join (thr1) == NULL);
+ TEST_VERIFY (xpthread_join (thr0) == NULL);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-sched_setattr.c b/sysdeps/unix/sysv/linux/tst-sched_setattr.c
new file mode 100644
index 0000000..bf8d9af
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sched_setattr.c
@@ -0,0 +1,96 @@
+/* Tests for sched_setattr and sched_getattr.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+
+#include <errno.h>
+#include <stddef.h>
+#include <string.h>
+#include <support/check.h>
+#include <sys/resource.h>
+#include <unistd.h>
+
+/* Padding struct to detect unexpected writes. */
+union
+{
+ struct sched_attr attr;
+ /* Hopefully the kernel will never need as much. */
+ unsigned char padding[4096];
+} u;
+
+static int
+do_test (void)
+{
+ _Static_assert (SCHED_OTHER == SCHED_NORMAL,
+ "SCHED_OTHER, SCHED_NORMAL values");
+ TEST_VERIFY (sizeof (struct sched_attr) < sizeof (u));
+
+ /* Check that reading and re-applying the current policy works. */
+ memset (&u, 0xcc, sizeof (u));
+ /* Compiler barrier to bypass write access attribute. */
+ volatile unsigned int size = sizeof (u);
+ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0);
+ TEST_COMPARE (sched_setattr (0, &u.attr, 0), 0); /* Apply unchanged. */
+
+ /* Try to switch to the SCHED_OTHER policy. */
+ memset (&u, 0, sizeof (u));
+ u.attr.size = sizeof (u); /* With padding, kernel should accept zeroes. */
+ u.attr.sched_policy = SCHED_OTHER; /* Should be the default. */
+ {
+ errno = 0;
+ int prio = getpriority (PRIO_PROCESS, 0);
+ if (errno != 0)
+ prio = 0;
+ u.attr.sched_nice = prio;
+ }
+ TEST_COMPARE (sched_setattr (0, &u.attr, 0), 0);
+
+ /* Non-zero values not known to the kernel result in an E2BIG error. */
+ memset (&u, 0, sizeof (u));
+ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0);
+ u.padding[u.attr.size] = 0xcc;
+ u.attr.size = sizeof (u);
+ errno = 0;
+ TEST_COMPARE (sched_setattr (0, &u.attr, 0), -1);
+ TEST_COMPARE (errno, E2BIG);
+
+ memset (&u, 0xcc, sizeof (u));
+ TEST_COMPARE (sched_getattr (0, (struct sched_attr *) &u, size, 0), 0);
+ TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER);
+
+ /* Raise the niceless level to 19 and observe its effect. */
+ TEST_COMPARE (nice (19), 19);
+ TEST_COMPARE (sched_getattr (0, &u.attr, sizeof (u.attr), 0), 0);
+ TEST_COMPARE (u.attr.sched_policy, SCHED_OTHER);
+ TEST_COMPARE (u.attr.sched_nice, 19);
+
+ /* Invalid buffer arguments result in EINVAL (not EFAULT). */
+ {
+ errno = 0;
+ void *volatile null_pointer = NULL; /* compiler barrier. */
+ TEST_COMPARE (sched_setattr (0, null_pointer, 0), -1);
+ TEST_COMPARE (errno, EINVAL);
+ errno = 0;
+ TEST_COMPARE (sched_getattr (0, null_pointer, size, 0), -1);
+ TEST_COMPARE (errno, EINVAL);
+ }
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-scm_rights.c b/sysdeps/unix/sysv/linux/tst-scm_rights.c
index 23ccdad..99d4c8b 100644
--- a/sysdeps/unix/sysv/linux/tst-scm_rights.c
+++ b/sysdeps/unix/sysv/linux/tst-scm_rights.c
@@ -1,5 +1,5 @@
/* Smoke test for SCM_RIGHTS.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c b/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c
new file mode 100644
index 0000000..07c5434
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-sem_getvalue-affinity.c
@@ -0,0 +1,185 @@
+/* Test sem_getvalue across CPUs. Based on tst-skeleton-thread-affinity.c.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <semaphore.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <support/xthread.h>
+#include <sys/time.h>
+
+struct conf;
+static bool early_test (struct conf *);
+
+static int
+setaffinity (size_t size, const cpu_set_t *set)
+{
+ int ret = pthread_setaffinity_np (pthread_self (), size, set);
+ if (ret != 0)
+ {
+ errno = ret;
+ return -1;
+ }
+ return 0;
+}
+
+static int
+getaffinity (size_t size, cpu_set_t *set)
+{
+ int ret = pthread_getaffinity_np (pthread_self (), size, set);
+ if (ret != 0)
+ {
+ errno = ret;
+ return -1;
+ }
+ return 0;
+}
+
+#include "tst-skeleton-affinity.c"
+
+static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+static sem_t sem;
+
+static void *
+tf (void *arg)
+{
+ void *ret = NULL;
+ xpthread_mutex_lock (&lock);
+ int semval;
+ if (sem_getvalue (&sem, &semval) != 0)
+ {
+ printf ("sem_getvalue failed: %m\n");
+ ret = (void *) 1;
+ }
+ else if (semval != 12345)
+ {
+ printf ("sem_getvalue returned %d not 12345\n", semval);
+ ret = (void *) 1;
+ }
+ xpthread_mutex_unlock (&lock);
+ return ret;
+}
+
+static int
+stop_and_join_threads (struct conf *conf, cpu_set_t *set,
+ pthread_t *pinned_first, pthread_t *pinned_last)
+{
+ int failed = 0;
+ for (pthread_t *p = pinned_first; p < pinned_last; ++p)
+ {
+ int cpu = p - pinned_first;
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), set))
+ continue;
+
+ void *retval = (void *) 1;
+ int ret = pthread_join (*p, &retval);
+ if (ret != 0)
+ {
+ printf ("error: Failed to join thread %d: %s\n", cpu, strerror (ret));
+ fflush (stdout);
+ /* Cannot shut down cleanly with threads still running. */
+ abort ();
+ }
+ if (retval != NULL)
+ failed = 1;
+ }
+ return failed;
+}
+
+static bool
+early_test (struct conf *conf)
+{
+ int ret;
+ ret = sem_init (&sem, 0, 12345);
+ if (ret != 0)
+ {
+ printf ("error: sem_init failed: %m\n");
+ return false;
+ }
+ xpthread_mutex_lock (&lock);
+ pthread_t *pinned_threads
+ = calloc (conf->last_cpu + 1, sizeof (*pinned_threads));
+ cpu_set_t *initial_set = CPU_ALLOC (conf->set_size);
+ cpu_set_t *scratch_set = CPU_ALLOC (conf->set_size);
+
+ if (pinned_threads == NULL || initial_set == NULL || scratch_set == NULL)
+ {
+ puts ("error: Memory allocation failure");
+ return false;
+ }
+ if (getaffinity (CPU_ALLOC_SIZE (conf->set_size), initial_set) < 0)
+ {
+ printf ("error: pthread_getaffinity_np failed: %m\n");
+ return false;
+ }
+
+ pthread_attr_t attr;
+ ret = pthread_attr_init (&attr);
+ if (ret != 0)
+ {
+ printf ("error: pthread_attr_init failed: %s\n", strerror (ret));
+ return false;
+ }
+ support_set_small_thread_stack_size (&attr);
+
+ /* Spawn a thread pinned to each available CPU. */
+ for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
+ {
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set))
+ continue;
+ CPU_ZERO_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ CPU_SET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ ret = pthread_attr_setaffinity_np
+ (&attr, CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ if (ret != 0)
+ {
+ printf ("error: pthread_attr_setaffinity_np for CPU %d failed: %s\n",
+ cpu, strerror (ret));
+ stop_and_join_threads (conf, initial_set,
+ pinned_threads, pinned_threads + cpu);
+ return false;
+ }
+ ret = pthread_create (pinned_threads + cpu, &attr,
+ tf, (void *) (uintptr_t) cpu);
+ if (ret != 0)
+ {
+ printf ("error: pthread_create for CPU %d failed: %s\n",
+ cpu, strerror (ret));
+ stop_and_join_threads (conf, initial_set,
+ pinned_threads, pinned_threads + cpu);
+ return false;
+ }
+ }
+
+ /* Main thread. */
+ xpthread_mutex_unlock (&lock);
+ int failed = stop_and_join_threads (conf, initial_set,
+ pinned_threads,
+ pinned_threads + conf->last_cpu + 1);
+
+ printf ("info: Main thread ran on %d CPU(s) of %d available CPU(s)\n",
+ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set),
+ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), initial_set));
+
+ pthread_attr_destroy (&attr);
+ CPU_FREE (scratch_set);
+ CPU_FREE (initial_set);
+ free (pinned_threads);
+ return failed == 0;
+}
diff --git a/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c b/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c
index ea375f9..f895641 100644
--- a/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c
+++ b/sysdeps/unix/sysv/linux/tst-sigcontext-get_pc.c
@@ -1,5 +1,5 @@
/* Test that the GET_PC macro is consistent with the unwinder.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-signal-numbers.py b/sysdeps/unix/sysv/linux/tst-signal-numbers.py
index 0e05036..fed2125 100644
--- a/sysdeps/unix/sysv/linux/tst-signal-numbers.py
+++ b/sysdeps/unix/sysv/linux/tst-signal-numbers.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Test that glibc's signal numbers match the kernel's.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sigtimedwait.c b/sysdeps/unix/sysv/linux/tst-sigtimedwait.c
index c2cb795..bfdc14b 100644
--- a/sysdeps/unix/sysv/linux/tst-sigtimedwait.c
+++ b/sysdeps/unix/sysv/linux/tst-sigtimedwait.c
@@ -1,5 +1,5 @@
/* Test for sigtimedwait timeout.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
index 31a15b3..cf97c3f 100644
--- a/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
+++ b/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
@@ -1,5 +1,5 @@
/* Generic test case for CPU affinity functions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,6 +38,7 @@
#include <sched.h>
#include <stdbool.h>
#include <stdio.h>
+#include <support/test-driver.h>
/* CPU set configuration determined. Can be used from early_test. */
struct conf
@@ -157,7 +158,7 @@ test_size (const struct conf *conf, size_t size)
if (setaffinity (kernel_size, initial_set) < 0)
{
printf ("error: size %zu: setaffinity: %m\n", size);
- return true;
+ return false;
}
/* Use one-CPU set to test switching between CPUs. */
@@ -253,12 +254,12 @@ do_test (void)
if (getaffinity (sizeof (set), &set) < 0 && errno == ENOSYS)
{
puts ("warning: getaffinity not supported, test cannot run");
- return 0;
+ return EXIT_UNSUPPORTED;
}
if (sched_getcpu () < 0 && errno == ENOSYS)
{
puts ("warning: sched_getcpu not supported, test cannot run");
- return 0;
+ return EXIT_UNSUPPORTED;
}
}
diff --git a/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c b/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
index 5a1e844..cf43340 100644
--- a/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
+++ b/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
@@ -1,5 +1,5 @@
/* Generic test for CPU affinity functions, multi-threaded variant.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -45,10 +45,14 @@ static int still_running;
/* 0 if no scheduling failures, 1 if failures are encountered. */
static int failed;
+/* Used to synchronize the threads. */
+static pthread_barrier_t barrier;
+
static void *
thread_burn_one_cpu (void *closure)
{
int cpu = (uintptr_t) closure;
+ xpthread_barrier_wait (&barrier);
while (__atomic_load_n (&still_running, __ATOMIC_RELAXED) == 0)
{
int current = sched_getcpu ();
@@ -61,6 +65,11 @@ thread_burn_one_cpu (void *closure)
__atomic_store_n (&still_running, 1, __ATOMIC_RELAXED);
}
}
+ if (sched_yield () != 0)
+ {
+ printf ("error: sched_yield() failed for cpu %d\n", cpu);
+ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED);
+ }
return NULL;
}
@@ -78,6 +87,7 @@ thread_burn_any_cpu (void *closure)
{
struct burn_thread *param = closure;
+ xpthread_barrier_wait (&barrier);
/* Schedule this thread around a bit to see if it lands on another
CPU. Run this for 2 seconds, once with sched_yield, once
without. */
@@ -99,7 +109,11 @@ thread_burn_any_cpu (void *closure)
CPU_SET_S (cpu, CPU_ALLOC_SIZE (param->conf->set_size),
param->seen_set);
if (pass == 1)
- sched_yield ();
+ if (sched_yield () != 0)
+ {
+ printf ("error: sched_yield() failed for cpu %d\n", cpu);
+ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED);
+ }
}
}
return NULL;
@@ -156,6 +170,7 @@ early_test (struct conf *conf)
= calloc (conf->last_cpu + 1, sizeof (*other_threads));
cpu_set_t *initial_set = CPU_ALLOC (conf->set_size);
cpu_set_t *scratch_set = CPU_ALLOC (conf->set_size);
+ int num_available_cpus = 0;
if (pinned_threads == NULL || other_threads == NULL
|| initial_set == NULL || scratch_set == NULL)
@@ -172,6 +187,7 @@ early_test (struct conf *conf)
{
if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set))
continue;
+ num_available_cpus ++;
other_threads[cpu].conf = conf;
other_threads[cpu].initial_set = initial_set;
other_threads[cpu].thread = cpu;
@@ -194,6 +210,15 @@ early_test (struct conf *conf)
}
support_set_small_thread_stack_size (&attr);
+ /* This count assumes that all the threads below are created
+ successfully, and call pthread_barrier_wait(). If any threads
+ fail to be created, this function will return FALSE (failure) and
+ the waiting threads will eventually time out the whole test.
+ This is acceptable because we're not testing thread creation and
+ assume all threads will be created, and failure here implies a
+ failure outside the test's scope. */
+ xpthread_barrier_init (&barrier, NULL, num_available_cpus * 2 + 1);
+
/* Spawn a thread pinned to each available CPU. */
for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
{
@@ -245,6 +270,15 @@ early_test (struct conf *conf)
}
}
+ /* Test that sched_yield() works correctly in the main thread. This
+ also gives the kernel an opportunity to run the other threads,
+ randomizing thread startup a bit. */
+ if (sched_yield () != 0)
+ {
+ printf ("error: sched_yield() failed for main thread\n");
+ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED);
+ }
+
/* Main thread. */
struct burn_thread main_thread;
main_thread.conf = conf;
diff --git a/sysdeps/unix/sysv/linux/tst-socket-consts.py b/sysdeps/unix/sysv/linux/tst-socket-consts.py
index e5eab91..b7b916a 100644
--- a/sysdeps/unix/sysv/linux/tst-socket-consts.py
+++ b/sysdeps/unix/sysv/linux/tst-socket-consts.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Test that glibc's sys/socket.h SO_* constants match the kernel's.
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-socket-timestamp-compat.c b/sysdeps/unix/sysv/linux/tst-socket-timestamp-compat.c
index e0fb28d..1b073c3 100644
--- a/sysdeps/unix/sysv/linux/tst-socket-timestamp-compat.c
+++ b/sysdeps/unix/sysv/linux/tst-socket-timestamp-compat.c
@@ -1,5 +1,5 @@
/* Check recvmsg/recvmmsg 64-bit timestamp support.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -76,7 +76,7 @@ do_recvmsg_ancillary (bool use_multi_call, struct mmsghdr *mmhdr,
static void
do_test_large_buffer (bool mc)
{
- struct mmsghdr mmhdr = { 0 };
+ struct mmsghdr mmhdr = { };
/* It should be large enough for either timeval/timespec and the
64 time type as well. */
@@ -147,7 +147,7 @@ do_test_large_buffer (bool mc)
static void
do_test_small_buffer (bool mc)
{
- struct mmsghdr mmhdr = { 0 };
+ struct mmsghdr mmhdr = { };
/* Enable 32 bit timeval precision and check if no 64 bit timeval stamp
is created. */
diff --git a/sysdeps/unix/sysv/linux/tst-socket-timestamp.c b/sysdeps/unix/sysv/linux/tst-socket-timestamp.c
index e5981f0..f8c849c 100644
--- a/sysdeps/unix/sysv/linux/tst-socket-timestamp.c
+++ b/sysdeps/unix/sysv/linux/tst-socket-timestamp.c
@@ -1,5 +1,5 @@
/* Check recvmsg/recvmmsg 64-bit timestamp support.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn-cgroup.c b/sysdeps/unix/sysv/linux/tst-spawn-cgroup.c
index 3b9516f..b85dc5c 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn-cgroup.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn-cgroup.c
@@ -1,5 +1,5 @@
/* Tests for posix_spawn cgroup extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn-chdir-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn-chdir-pidfd.c
index 94ed155..7aed4a5 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn-chdir-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn-chdir-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn-pidfd.c
index 81ae548..58edbaa 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn-pidfd.h b/sysdeps/unix/sysv/linux/tst-spawn-pidfd.h
index 25e402a..94007a8 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn-pidfd.h
+++ b/sysdeps/unix/sysv/linux/tst-spawn-pidfd.h
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn2-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn2-pidfd.c
index 28d7071..5b22285 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn2-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn2-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn3-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn3-pidfd.c
index bddaf9c..5e55e70 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn3-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn3-pidfd.c
@@ -1,5 +1,5 @@
/* Check posix_spawn add file actions.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn4-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn4-pidfd.c
index 12e2a50..8146a21 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn4-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn4-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn5-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn5-pidfd.c
index fb3ef0a..7b279c7 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn5-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn5-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn6-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn6-pidfd.c
index c227ff0..f789219 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn6-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn6-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-spawn7-pidfd.c b/sysdeps/unix/sysv/linux/tst-spawn7-pidfd.c
index 912ef59..a2a87ca 100644
--- a/sysdeps/unix/sysv/linux/tst-spawn7-pidfd.c
+++ b/sysdeps/unix/sysv/linux/tst-spawn7-pidfd.c
@@ -1,5 +1,5 @@
/* Tests for spawn pidfd extension.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sync_file_range.c b/sysdeps/unix/sysv/linux/tst-sync_file_range.c
index fdbceab..ccd05df 100644
--- a/sysdeps/unix/sysv/linux/tst-sync_file_range.c
+++ b/sysdeps/unix/sysv/linux/tst-sync_file_range.c
@@ -1,5 +1,5 @@
/* Basic sync_file_range (not specific flag is checked).
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-syscall-list.sh b/sysdeps/unix/sysv/linux/tst-syscall-list.sh
index 89d67b8..7bea4eb 100644
--- a/sysdeps/unix/sysv/linux/tst-syscall-list.sh
+++ b/sysdeps/unix/sysv/linux/tst-syscall-list.sh
@@ -1,6 +1,6 @@
#!/bin/bash
# Consistency checks for the system call list
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-syscall-restart.c b/sysdeps/unix/sysv/linux/tst-syscall-restart.c
new file mode 100644
index 0000000..73ca66a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-syscall-restart.c
@@ -0,0 +1,112 @@
+/* Test if a syscall is correctly restarted.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <support/xsignal.h>
+#include <support/check.h>
+#include <support/process_state.h>
+#include <support/xunistd.h>
+#include <support/xthread.h>
+#include <sys/wait.h>
+
+static int
+check_pid (pid_t pid)
+{
+ /* Wait until the child has called pause and it blocking on kernel. */
+ support_process_state_wait (pid, support_process_state_sleeping);
+
+ TEST_COMPARE (kill (pid, SIGSTOP), 0);
+
+ /* Adding process_state_tracing_stop ('t') allows the test to work under
+ trace programs such as ptrace. */
+ support_process_state_wait (pid, support_process_state_stopped
+ | support_process_state_tracing_stop);
+
+ TEST_COMPARE (kill (pid, SIGCONT), 0);
+
+ enum support_process_state state
+ = support_process_state_wait (pid, support_process_state_sleeping
+ | support_process_state_zombie);
+
+ TEST_COMPARE (state, support_process_state_sleeping);
+
+ TEST_COMPARE (kill (pid, SIGTERM), 0);
+
+ siginfo_t info;
+ TEST_COMPARE (waitid (P_PID, pid, &info, WEXITED), 0);
+ TEST_COMPARE (info.si_signo, SIGCHLD);
+ TEST_COMPARE (info.si_code, CLD_KILLED);
+ TEST_COMPARE (info.si_status, SIGTERM);
+ TEST_COMPARE (info.si_pid, pid);
+
+ return 0;
+}
+
+static void *
+tf (void *closure)
+{
+ pause ();
+ return NULL;
+}
+
+static void
+child_mt (void)
+{
+ /* Let only the created thread to handle signals. */
+ sigset_t set;
+ sigfillset (&set);
+ xpthread_sigmask (SIG_BLOCK, &set, NULL);
+
+ sigdelset (&set, SIGSTOP);
+ sigdelset (&set, SIGCONT);
+ sigdelset (&set, SIGTERM);
+
+ pthread_attr_t attr;
+ xpthread_attr_init (&attr);
+ TEST_COMPARE (pthread_attr_setsigmask_np (&attr, &set), 0);
+
+ xpthread_join (xpthread_create (&attr, tf, NULL));
+}
+
+static void
+do_test_syscall (bool multithread)
+{
+ pid_t pid = xfork ();
+ if (pid == 0)
+ {
+ if (multithread)
+ child_mt ();
+ else
+ pause ();
+ _exit (127);
+ }
+
+ check_pid (pid);
+}
+
+static int
+do_test (void)
+{
+ /* Check for both single and multi thread, since they use different syscall
+ mechanisms. */
+ do_test_syscall (false);
+ do_test_syscall (true);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c
index 56925a0..29bf7c2 100644
--- a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c
+++ b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max-uapi.c
@@ -1,5 +1,5 @@
/* Check IOV_MAX definition: Helper function to capture UAPI header value.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c
index 62dbcc6..c8ff044 100644
--- a/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c
+++ b/sysdeps/unix/sysv/linux/tst-sysconf-iov_max.c
@@ -1,5 +1,5 @@
/* Check IOV_MAX definition for consistency (bug 22321).
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sysvmsg-linux.c b/sysdeps/unix/sysv/linux/tst-sysvmsg-linux.c
index be10bc3..ffaaf80 100644
--- a/sysdeps/unix/sysv/linux/tst-sysvmsg-linux.c
+++ b/sysdeps/unix/sysv/linux/tst-sysvmsg-linux.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux SYSV message queue extensions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sysvsem-linux.c b/sysdeps/unix/sysv/linux/tst-sysvsem-linux.c
index a8ed91e..94ec947 100644
--- a/sysdeps/unix/sysv/linux/tst-sysvsem-linux.c
+++ b/sysdeps/unix/sysv/linux/tst-sysvsem-linux.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux SYSV semaphore extensions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c b/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c
index 5f2082b..27e6961 100644
--- a/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c
+++ b/sysdeps/unix/sysv/linux/tst-sysvshm-linux.c
@@ -1,5 +1,5 @@
/* Basic tests for Linux SYSV shared memory extensions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-termios-linux.c b/sysdeps/unix/sysv/linux/tst-termios-linux.c
new file mode 100644
index 0000000..e4b0c8b
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-termios-linux.c
@@ -0,0 +1,592 @@
+/* Linux termios regression tests
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <termios.h>
+#include <unistd.h>
+
+#include <shlib-compat.h>
+#include <array_length.h>
+
+#include <support/check.h>
+#include <support/namespace.h>
+#include <support/support.h>
+#include <support/temp_file.h>
+#include <support/test-driver.h>
+#include <support/tty.h>
+
+/* Evaluate an expression and make sure errno did not get set; return
+ the value of the expression */
+#define CHECKERR(expr) \
+ ({ \
+ errno = 0; \
+ const __typeof (expr) _val = (expr); \
+ TEST_COMPARE(errno, 0); \
+ _val; \
+ })
+
+/* Evaluate an expression and verify that is return a specific value,
+ as well as errno not having been set. */
+#define VERIFY(expr,val) TEST_COMPARE(CHECKERR(expr), val)
+/* Check for zero and errno not set */
+#define CHECKZERO(expr) VERIFY(expr, 0)
+
+/* Table of legacy speed constants */
+
+#define BOGUS ((speed_t)-1)
+#define ANY ((speed_t)-2)
+
+struct cbaud_table
+{
+ speed_t speed;
+ speed_t cbaud;
+ const char *name;
+};
+
+static const struct cbaud_table cbaud_table [] =
+{
+ { 0, __B0, "__B0" },
+ { 50, __B50, "__B50" },
+ { 75, __B75, "__B75" },
+ { 110, __B110, "__B110" },
+ { 134, __B134, "__B134" },
+ { 150, __B150, "__B150" },
+ { 200, __B200, "__B200" },
+ { 300, __B300, "__B300" },
+ { 600, __B600, "__B600" },
+ { 1200, __B1200, "__B1200" },
+ { 1800, __B1800, "__B1800" },
+ { 2400, __B2400, "__B2400" },
+ { 4800, __B4800, "__B4800" },
+#ifdef __B7200
+ { 7200, __B7200, "__B7200" },
+#endif
+ { 9600, __B9600, "__B9600" },
+#ifdef __B14400
+ { 14400, __B14400, "__B14400" },
+#endif
+ { 19200, __B19200, "__B19200" },
+#ifdef __B28800
+ { 28800, __B28800, "__B28800" },
+#endif
+ { 38400, __B38400, "__B38400" },
+ { 57600, __B57600, "__B57600" },
+#ifdef __B76800
+ { 76800, __B76800, "__B76800" },
+#endif
+ { 115200, __B115200, "__B115200" },
+#ifdef __B153600
+ { 153600, __B153600, "__B153600" },
+#endif
+ { 230400, __B230400, "__B230400" },
+#ifdef __B307200
+ { 307200, __B307200, "__B307200" },
+#endif
+ { 460800, __B460800, "__B460800" },
+ { 500000, __B500000, "__B500000" },
+ { 576000, __B576000, "__B576000" },
+#ifdef __B614400
+ { 614400, __B614400, "__B614400" },
+#endif
+ { 921600, __B921600, "__B921600" },
+ { 1000000, __B1000000, "__B1000000" },
+ { 1152000, __B1152000, "__B1152000" },
+ { 1500000, __B1500000, "__B1500000" },
+ { 2000000, __B2000000, "__B2000000" },
+#ifdef __B2500000
+ { 2500000, __B2500000, "__B2500000" },
+#endif
+#ifdef __B3000000
+ { 3000000, __B3000000, "__B3000000" },
+#endif
+#ifdef __B3500000
+ { 3500000, __B3500000, "__B3500000" },
+#endif
+#ifdef __B4000000
+ { 4000000, __B4000000, "__B4000000" },
+#endif
+ { ANY, __BOTHER, "__BOTHER" },
+ { BOGUS, BOGUS, "invalid" }
+};
+
+/* List of common speeds to test */
+
+static const speed_t test_speeds [] =
+{
+ 0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400,
+ 4800, 7200, 9600, 14400, 19200, 28800, 33600, 38400, 57600,
+ 76800, 115200, 153600, 230400, 307200, 460800, 500000,
+ 576000, 614400, 921600, 1000000, 1152000, 1500000, 2000000,
+ 2500000, 3000000, 3500000, 4000000, 5000000, 10000000
+};
+
+/* Speed function tests */
+
+/* These intentionally are a separate implementation from speed.c;
+ these should be "trivially correct" and don't need to be optimized
+ in any way */
+
+/* Returns __BOTHER if there is no legacy value for this speed */
+static speed_t speed_to_cbaud (speed_t speed)
+{
+ const struct cbaud_table *ct;
+ for (ct = cbaud_table; ct->speed != ANY; ct++)
+ {
+ if (ct->speed == speed)
+ break;
+ }
+ return ct->cbaud;
+}
+
+/* Returns ANY if cbaud is __BOTHER, or BOGUS if invalid */
+static speed_t cbaud_to_speed (speed_t cbaud)
+{
+ const struct cbaud_table *ct;
+ for (ct = cbaud_table; ct->cbaud != BOGUS; ct++)
+ {
+ if (ct->cbaud == cbaud)
+ break;
+ }
+ return ct->speed;
+}
+
+static const char *cbaud_name (speed_t cbaud)
+{
+ const struct cbaud_table *ct;
+ for (ct = cbaud_table; ct->cbaud != BOGUS; ct++)
+ {
+ if (ct->cbaud == cbaud)
+ break;
+ }
+ return ct->name;
+}
+
+static int check_speed (speed_t expected, speed_t speed, speed_t cbaud,
+ speed_t cfspeed, baud_t cfbaud, char io)
+{
+ speed_t want_cbaud;
+ cbaud &= CBAUD;
+
+ if (expected != ANY && speed != expected)
+ FAIL_RET ("c_%cspeed = %u, expected %u", io, speed, expected);
+
+ if (cfspeed != speed)
+ FAIL_RET ("cfget%cspeed = %u, expected %u", io, cfspeed, speed);
+
+ if (cfbaud != cfspeed)
+ FAIL_RET ("cfget%cbaud = %u, but cfget%cspeed = %u",
+ io, cfbaud, io, cfspeed);
+
+ want_cbaud = speed_to_cbaud (speed);
+
+ if (cbaud != want_cbaud)
+ FAIL_RET ("c_%cspeed = %u: %s = %s (%06o), should be %s (%06o)",
+ io, speed,
+ io == 'o' ? "CBAUD" : "CIBAUD", cbaud_name (cbaud), cbaud,
+ cbaud_name (want_cbaud), want_cbaud);
+
+ return 0;
+}
+
+/* Validate that the speeds in the struct termios are properly normalized.
+ The difference is the handling of ispeed == 0. */
+
+/* Use this after cfset* () */
+static void check_speeds_cf (const struct termios *tio_p,
+ speed_t ospeed, speed_t ispeed)
+{
+ check_speed (ospeed, tio_p->c_ospeed, tio_p->c_cflag,
+ CHECKERR (cfgetospeed (tio_p)),
+ CHECKERR (cfgetobaud (tio_p)), 'o');
+ check_speed (ispeed, tio_p->c_ispeed, tio_p->c_cflag >> IBSHIFT,
+ CHECKERR (cfgetispeed (tio_p)),
+ CHECKERR (cfgetibaud (tio_p)), 'i');
+}
+
+/* Use this after tc[gs]etattr () */
+static void check_speeds_tc (int fd, speed_t ospeed, speed_t ispeed)
+{
+ struct termios tio;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ check_speeds_cf (&tio, ospeed, ispeed ? ispeed : ospeed);
+}
+
+/* For search and replace convenience */
+#define check_bauds_cf check_speeds_cf
+#define check_bauds_tc check_speeds_tc
+
+/* Common routine for setting speeds, with checking */
+static void
+set_speeds (int fd, speed_t ospeed, speed_t ispeed)
+{
+ struct termios tio;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ CHECKZERO (cfsetospeed (&tio, ospeed));
+ CHECKZERO (cfsetispeed (&tio, ispeed));
+ check_speeds_cf (&tio, ospeed, ispeed);
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, ospeed, ispeed ? ispeed : ospeed);
+}
+
+/* Actual tests */
+
+typedef void (*speed_test_t)(int ttyfd, speed_t speed);
+static void
+run_speed_test (int fd, speed_test_t test);
+
+/* New interface cfset*speed test */
+static void
+new_cfspeed_test (int fd, speed_t speed)
+{
+ struct termios tio;
+ speed_t old_ospeed, old_ispeed;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ old_ospeed = CHECKERR (cfgetospeed (&tio));
+ old_ispeed = CHECKERR (cfgetispeed (&tio));
+
+ /* Check initial normalization */
+ check_speeds_cf (&tio, old_ospeed, old_ispeed);
+
+ /* Check cfset*speed normalization */
+ CHECKZERO (cfsetospeed (&tio, speed));
+ check_speeds_cf (&tio, speed, old_ispeed);
+ CHECKZERO (cfsetispeed (&tio, speed));
+ check_speeds_cf (&tio, speed, speed);
+ CHECKZERO (cfsetospeed (&tio, old_ospeed));
+ check_speeds_cf (&tio, old_ospeed, speed);
+ CHECKZERO (cfsetispeed (&tio, B0));
+ check_speeds_cf (&tio, old_ospeed, B0);
+ CHECKZERO (cfsetspeed (&tio, speed));
+ check_speeds_cf (&tio, speed, speed);
+ CHECKZERO (cfsetospeed (&tio, old_ospeed));
+ CHECKZERO (cfsetispeed (&tio, old_ispeed));
+ check_speeds_cf (&tio, old_ospeed, old_ispeed);
+}
+
+/* New interface cfset*speed test with tcsetattr */
+static void
+new_tcspeed_test (int fd, speed_t speed)
+{
+ struct termios tio;
+ speed_t old_ospeed, old_ispeed;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ old_ospeed = CHECKERR (cfgetospeed (&tio));
+ old_ispeed = CHECKERR (cfgetispeed (&tio));
+
+ /* Check initial normalization */
+ check_speeds_cf (&tio, old_ospeed, old_ispeed);
+
+ /* Check cfset*speed normalization */
+ CHECKZERO (cfsetospeed (&tio, speed));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, speed, old_ispeed);
+ CHECKZERO (cfsetispeed (&tio, speed));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, speed, speed);
+ CHECKZERO (cfsetospeed (&tio, old_ospeed));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, old_ospeed, speed);
+ CHECKZERO (cfsetispeed (&tio, B0));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, old_ospeed, B0);
+ CHECKZERO (cfsetspeed (&tio, speed));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, speed, speed);
+ CHECKZERO (cfsetospeed (&tio, old_ospeed));
+ CHECKZERO (cfsetispeed (&tio, old_ispeed));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_speeds_tc (fd, old_ospeed, old_ispeed);
+}
+
+/* New interface cfset*baud test */
+static void
+new_cfbaud_test (int fd, baud_t baud)
+{
+ struct termios tio;
+ baud_t old_obaud, old_ibaud;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ old_obaud = CHECKERR (cfgetobaud (&tio));
+ old_ibaud = CHECKERR (cfgetibaud (&tio));
+
+ /* Check initial normalization */
+ check_bauds_cf (&tio, old_obaud, old_ibaud);
+
+ /* Check cfset*baud normalization */
+ CHECKZERO (cfsetobaud (&tio, baud));
+ check_bauds_cf (&tio, baud, old_ibaud);
+ CHECKZERO (cfsetibaud (&tio, baud));
+ check_bauds_cf (&tio, baud, baud);
+ CHECKZERO (cfsetobaud (&tio, old_obaud));
+ check_bauds_cf (&tio, old_obaud, baud);
+ CHECKZERO (cfsetibaud (&tio, B0));
+ check_bauds_cf (&tio, old_obaud, B0);
+ CHECKZERO (cfsetbaud (&tio, baud));
+ check_bauds_cf (&tio, baud, baud);
+ CHECKZERO (cfsetobaud (&tio, old_obaud));
+ CHECKZERO (cfsetibaud (&tio, old_ibaud));
+ check_bauds_cf (&tio, old_obaud, old_ibaud);
+}
+
+/* New interface cfset*baud test with tcsetattr */
+static void
+new_tcbaud_test (int fd, baud_t baud)
+{
+ struct termios tio;
+ baud_t old_obaud, old_ibaud;
+
+ CHECKZERO (tcgetattr (fd, &tio));
+ old_obaud = CHECKERR (cfgetobaud (&tio));
+ old_ibaud = CHECKERR (cfgetibaud (&tio));
+
+ /* Check initial normalization */
+ check_bauds_cf (&tio, old_obaud, old_ibaud);
+
+ /* Check cfset*baud normalization */
+ CHECKZERO (cfsetobaud (&tio, baud));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, baud, old_ibaud);
+ CHECKZERO (cfsetibaud (&tio, baud));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, baud, baud);
+ CHECKZERO (cfsetobaud (&tio, old_obaud));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, old_obaud, baud);
+ CHECKZERO (cfsetibaud (&tio, B0));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, old_obaud, B0);
+ CHECKZERO (cfsetbaud (&tio, baud));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, baud, baud);
+ CHECKZERO (cfsetobaud (&tio, old_obaud));
+ CHECKZERO (cfsetibaud (&tio, old_ibaud));
+ CHECKZERO (tcsetattr (fd, TCSANOW, &tio));
+ check_bauds_tc (fd, old_obaud, old_ibaud);
+}
+
+/*
+ * Old interface tests. This depends critically on the new struct
+ * termios being guaranteed to be a superset of the legacy struct
+ * termios.
+ */
+#if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_42)
+extern int __old_cfsetospeed (struct termios *tio_p, speed_t speed);
+compat_symbol_reference (libc, __old_cfsetospeed, cfsetospeed, GLIBC_2_0);
+extern int __old_cfsetispeed (struct termios *tio_p, speed_t speed);
+compat_symbol_reference (libc, __old_cfsetispeed, cfsetispeed, GLIBC_2_0);
+extern speed_t __old_cfgetospeed (const struct termios *tio_p);
+compat_symbol_reference (libc, __old_cfgetospeed, cfgetospeed, GLIBC_2_0);
+extern speed_t __old_cfgetispeed (const struct termios *tio_p);
+compat_symbol_reference (libc, __old_cfgetispeed, cfgetispeed, GLIBC_2_0);
+extern int __old_tcsetattr (int fd, int act, const struct termios *tio_p);
+compat_symbol_reference (libc, __old_tcsetattr, tcsetattr, GLIBC_2_0);
+extern int __old_tcgetattr (int fd, struct termios *tio_p);
+compat_symbol_reference (libc, __old_tcgetattr, tcgetattr, GLIBC_2_0);
+
+static int old_tcsetattr (int fd, const struct termios *tio_p)
+{
+ struct termios old_tio = *tio_p;
+
+ /* Deliberately corrupt c_ispeed and c_ospeed */
+ old_tio.c_ispeed = 0xdeadbeef;
+ old_tio.c_ospeed = 0xfeedface;
+ return __old_tcsetattr (fd, TCSANOW, &old_tio);
+}
+static int old_tcgetattr (int fd, struct termios *tio_p)
+{
+ int rv;
+ memset (tio_p, 0xde, sizeof *tio_p);
+ rv = __old_tcgetattr (fd, tio_p);
+ if (rv)
+ return rv;
+
+ /* Deliberately corrupt c_ispeed and c_ospeed */
+ tio_p->c_ispeed = 0xdeadbeef;
+ tio_p->c_ospeed = 0xfeedface;
+ return 0;
+}
+
+/* Old interface test. This relies on the new struct termios always
+ being a binary superset of the old one.
+ This doesn't bother testing split speed, since that never worked
+ on the old glibc. */
+static void
+old_tcspeed_test (int fd, speed_t speed)
+{
+ struct termios tio;
+ speed_t cbaud;
+
+ if (!speed)
+ return; /* Skip B0 for this test */
+
+ cbaud = speed_to_cbaud (speed);
+ if (cbaud == __BOTHER)
+ return;
+
+ CHECKZERO (old_tcgetattr (fd, &tio));
+ CHECKZERO (__old_cfsetospeed (&tio, cbaud));
+ VERIFY (__old_cfgetospeed (&tio), cbaud);
+ CHECKZERO (__old_cfsetispeed (&tio, cbaud));
+ VERIFY (__old_cfgetispeed (&tio), cbaud);
+ CHECKZERO (old_tcsetattr (fd, &tio));
+ check_speeds_tc (fd, speed, speed);
+}
+
+/* Verify that invalid CBAUD values return error for the old interfaces */
+static void
+old_invalid_speeds_test (int fd)
+{
+ struct termios tio;
+ speed_t cbaud;
+
+ for (cbaud = 0 ; cbaud ; cbaud > 0xffff ? (cbaud <<= 1) : cbaud++) {
+ speed_t realspeed;
+ realspeed = (cbaud & ~CBAUD) ? BOGUS : cbaud_to_speed (cbaud);
+ if (realspeed >= ANY)
+ {
+ int rv;
+
+ errno = 0;
+ rv = __old_cfsetospeed (&tio, cbaud);
+ if (rv != -1 || errno != EINVAL)
+ FAIL("__old_cfsetospeed() accepted invalid value %06o", cbaud);
+
+ errno = 0;
+ rv = __old_cfsetispeed (&tio, cbaud);
+ if (rv != -1 || errno != EINVAL)
+ FAIL("__old_cfsetispeed() accepted invalid value %06o", cbaud);
+ }
+ else
+ {
+ CHECKZERO (__old_cfsetospeed (&tio, cbaud));
+ VERIFY (__old_cfgetospeed (&tio), cbaud);
+ CHECKZERO (__old_cfsetispeed (&tio, cbaud));
+ VERIFY (__old_cfgetispeed (&tio), cbaud);
+ if (cbaud)
+ {
+ CHECKZERO (old_tcsetattr (fd, &tio));
+ check_speeds_tc (fd, realspeed, realspeed);
+ }
+ }
+ }
+}
+
+static void
+compat_tests (int fd)
+{
+ run_speed_test (fd, old_tcspeed_test);
+ old_invalid_speeds_test (fd);
+}
+#else /* No TEST_COMPAT */
+#define compat_tests(fd) ((void)(fd))
+#endif
+
+static void
+run_speed_test (int fd, speed_test_t test)
+{
+ unsigned short seed [3] = { 0x1234, 0x5678, 0x9abc };
+ struct speeds {
+ speed_t ospeed, ispeed;
+ };
+ static const struct speeds initial_speeds [] = {
+ { 2400, 2400 }, /* Standard speed, non-split */
+ { 123456, 123456 }, /* Nonstandard speed, non-split */
+ { 75, 1200 }, /* Standard split speeds */
+ { 9600, 456789 }, /* One standard, one nonstandard */
+ { 54321, 1234567890 } /* Nonstandard, one very high */
+ };
+
+ array_foreach_const (is, initial_speeds)
+ {
+ /* Set up initial conditions */
+ set_speeds (fd, is->ospeed, is->ispeed);
+
+ /* Test all common speeds */
+ array_foreach_const (ts, test_speeds)
+ test (fd, *ts);
+
+ /* Test pseudorandom speeds; array_length(test_speeds)
+ here is an arbitrary value */
+ const size_t random_test_count = array_length(test_speeds);
+ for (size_t i = 0 ; i < random_test_count ; i++)
+ test (fd, (speed_t) jrand48 (seed));
+
+ /* Test power-of-2 speeds */
+ for (speed_t s = 1 ; s ; s <<= 1)
+ test (fd, s);
+
+ /* Test power of 2 multiples of 75; 75 << 25 is the maximum below 2^32 */
+ for (int i = 0 ; i < 26 ; i++)
+ test (fd, (speed_t)75 << i);
+ }
+}
+
+static void
+run_speed_tests (int fd)
+{
+ /* Test proper canonicalization using the new interface */
+ run_speed_test (fd, new_cfspeed_test);
+ run_speed_test (fd, new_tcspeed_test);
+
+ /* Try the new cfset*baud() functions */
+ run_speed_test (fd, new_cfbaud_test);
+ run_speed_test (fd, new_tcbaud_test);
+
+ /* Tests of the legacy functions */
+ compat_tests (fd);
+}
+
+/* test dispatch */
+
+static void
+run_in_chroot (void)
+{
+ /* Create a pty slave to use as a tty. Most of the termios settings,
+ including the speeds, have no impact on a pty, but they are still
+ settable like for any other tty, which makes them very convenient
+ for testing. */
+ int ptmfd, ttyfd;
+
+ support_openpty (&ptmfd, &ttyfd, NULL, NULL, NULL);
+ run_speed_tests (ttyfd);
+ close (ttyfd);
+ close (ptmfd);
+}
+
+static int
+do_test (void)
+{
+ support_become_root ();
+ run_in_chroot ();
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/sysdeps/unix/sysv/linux/tst-tgkill.c b/sysdeps/unix/sysv/linux/tst-tgkill.c
index 054bf7f..c489155 100644
--- a/sysdeps/unix/sysv/linux/tst-tgkill.c
+++ b/sysdeps/unix/sysv/linux/tst-tgkill.c
@@ -1,5 +1,5 @@
/* Smoke test for the tgkill system call.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-time-clobber.c b/sysdeps/unix/sysv/linux/tst-time-clobber.c
index b0e40b5..707d0d6 100644
--- a/sysdeps/unix/sysv/linux/tst-time-clobber.c
+++ b/sysdeps/unix/sysv/linux/tst-time-clobber.c
@@ -1,5 +1,5 @@
/* Check that time does not clobber errno.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-timerfd.c b/sysdeps/unix/sysv/linux/tst-timerfd.c
index 2e78c8f..7c89588 100644
--- a/sysdeps/unix/sysv/linux/tst-timerfd.c
+++ b/sysdeps/unix/sysv/linux/tst-timerfd.c
@@ -1,5 +1,5 @@
/* Test for timerfd related functions
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ttyname-common.c b/sysdeps/unix/sysv/linux/tst-ttyname-common.c
index 2f2a36d..d01c8a3 100644
--- a/sysdeps/unix/sysv/linux/tst-ttyname-common.c
+++ b/sysdeps/unix/sysv/linux/tst-ttyname-common.c
@@ -1,5 +1,5 @@
/* Common definitions for ttyname tests.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ttyname-direct.c b/sysdeps/unix/sysv/linux/tst-ttyname-direct.c
index 1ed87e7..87794ad 100644
--- a/sysdeps/unix/sysv/linux/tst-ttyname-direct.c
+++ b/sysdeps/unix/sysv/linux/tst-ttyname-direct.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tst-ttyname-namespace.c b/sysdeps/unix/sysv/linux/tst-ttyname-namespace.c
index 8d7a037..c003904 100644
--- a/sysdeps/unix/sysv/linux/tst-ttyname-namespace.c
+++ b/sysdeps/unix/sysv/linux/tst-ttyname-namespace.c
@@ -1,5 +1,5 @@
/* Tests for ttyname/ttyname_r with namespaces.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ttyname.c b/sysdeps/unix/sysv/linux/ttyname.c
index 55de841..9fb42f7 100644
--- a/sysdeps/unix/sysv/linux/ttyname.c
+++ b/sysdeps/unix/sysv/linux/ttyname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ttyname.h b/sysdeps/unix/sysv/linux/ttyname.h
index bf5fca9..eb5f2df 100644
--- a/sysdeps/unix/sysv/linux/ttyname.h
+++ b/sysdeps/unix/sysv/linux/ttyname.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ttyname_r.c b/sysdeps/unix/sysv/linux/ttyname_r.c
index 13b078d..72e5d98 100644
--- a/sysdeps/unix/sysv/linux/ttyname_r.c
+++ b/sysdeps/unix/sysv/linux/ttyname_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/tv32-compat.h b/sysdeps/unix/sysv/linux/tv32-compat.h
index b322dc3..a97fb38 100644
--- a/sysdeps/unix/sysv/linux/tv32-compat.h
+++ b/sysdeps/unix/sysv/linux/tv32-compat.h
@@ -1,5 +1,5 @@
/* Compatibility definitions for 'struct timeval' with 32-bit time_t.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/umount.c b/sysdeps/unix/sysv/linux/umount.c
index 97b3e29..865a47c 100644
--- a/sysdeps/unix/sysv/linux/umount.c
+++ b/sysdeps/unix/sysv/linux/umount.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/umount2.c b/sysdeps/unix/sysv/linux/umount2.c
index 2b37c15..4d84800 100644
--- a/sysdeps/unix/sysv/linux/umount2.c
+++ b/sysdeps/unix/sysv/linux/umount2.c
@@ -1,5 +1,5 @@
/* Unmount filesystem.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/unlink.c b/sysdeps/unix/sysv/linux/unlink.c
index 932cfcf..485f131 100644
--- a/sysdeps/unix/sysv/linux/unlink.c
+++ b/sysdeps/unix/sysv/linux/unlink.c
@@ -1,5 +1,5 @@
/* Delete a name and possibly the file it refers to. Linux version.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/unlockpt.c b/sysdeps/unix/sysv/linux/unlockpt.c
index be5f728..447b5fc 100644
--- a/sysdeps/unix/sysv/linux/unlockpt.c
+++ b/sysdeps/unix/sysv/linux/unlockpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/update-syscall-lists.py b/sysdeps/unix/sysv/linux/update-syscall-lists.py
index 2393e9c..5bc3c2c 100644
--- a/sysdeps/unix/sysv/linux/update-syscall-lists.py
+++ b/sysdeps/unix/sysv/linux/update-syscall-lists.py
@@ -1,6 +1,6 @@
#!/usr/bin/python3
# Regenerate <arch-syscall.h> and update syscall-names.list.
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/updwtmp.c b/sysdeps/unix/sysv/linux/updwtmp.c
index 1e4b5b3..015237c 100644
--- a/sysdeps/unix/sysv/linux/updwtmp.c
+++ b/sysdeps/unix/sysv/linux/updwtmp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/ustat.c b/sysdeps/unix/sysv/linux/ustat.c
index 0c2bcae..e1000aa 100644
--- a/sysdeps/unix/sysv/linux/ustat.c
+++ b/sysdeps/unix/sysv/linux/ustat.c
@@ -1,5 +1,5 @@
/* Get filesystem statistics (deprecated). Linux version.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/utime.c b/sysdeps/unix/sysv/linux/utime.c
index adb3145..eee1e8d 100644
--- a/sysdeps/unix/sysv/linux/utime.c
+++ b/sysdeps/unix/sysv/linux/utime.c
@@ -1,5 +1,5 @@
/* utime -- Change access and modification times of file. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/utimensat.c b/sysdeps/unix/sysv/linux/utimensat.c
index 991897f..b7190d2 100644
--- a/sysdeps/unix/sysv/linux/utimensat.c
+++ b/sysdeps/unix/sysv/linux/utimensat.c
@@ -1,5 +1,5 @@
/* Change access and modification times of open file. Linux version.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -75,9 +75,6 @@ int
__utimensat64 (int fd, const char *file, const struct __timespec64 tsp64[2],
int flags)
{
- if (file == NULL)
- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
-
return __utimensat64_helper (fd, file, &tsp64[0], flags);
}
diff --git a/sysdeps/unix/sysv/linux/utimes.c b/sysdeps/unix/sysv/linux/utimes.c
index a094457..9fbe53a 100644
--- a/sysdeps/unix/sysv/linux/utimes.c
+++ b/sysdeps/unix/sysv/linux/utimes.c
@@ -1,5 +1,5 @@
/* utimes -- Change access and modification times of file. Linux version.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/utmp_file.c b/sysdeps/unix/sysv/linux/utmp_file.c
index f2d23a5..70e3bc6 100644
--- a/sysdeps/unix/sysv/linux/utmp_file.c
+++ b/sysdeps/unix/sysv/linux/utmp_file.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/versionsort64.c b/sysdeps/unix/sysv/linux/versionsort64.c
index dc5863b..71177a5 100644
--- a/sysdeps/unix/sysv/linux/versionsort64.c
+++ b/sysdeps/unix/sysv/linux/versionsort64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/vmsplice.c b/sysdeps/unix/sysv/linux/vmsplice.c
index dc6e1b3..e05695c 100644
--- a/sysdeps/unix/sysv/linux/vmsplice.c
+++ b/sysdeps/unix/sysv/linux/vmsplice.c
@@ -1,5 +1,5 @@
/* Splice user pages into a pipe Linux implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/wait3.c b/sysdeps/unix/sysv/linux/wait3.c
index a06ca44..3d3d92e 100644
--- a/sysdeps/unix/sysv/linux/wait3.c
+++ b/sysdeps/unix/sysv/linux/wait3.c
@@ -1,5 +1,5 @@
/* Wait for process to change state, BSD style. Linux version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/wait4.c b/sysdeps/unix/sysv/linux/wait4.c
index 5dd0d3e..80e4d13 100644
--- a/sysdeps/unix/sysv/linux/wait4.c
+++ b/sysdeps/unix/sysv/linux/wait4.c
@@ -1,5 +1,5 @@
/* Wait for process to change state. Linux version.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/waitid.c b/sysdeps/unix/sysv/linux/waitid.c
index 13fed92..78dab22 100644
--- a/sysdeps/unix/sysv/linux/waitid.c
+++ b/sysdeps/unix/sysv/linux/waitid.c
@@ -1,5 +1,5 @@
/* Linux implementation of waitid.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/write.c b/sysdeps/unix/sysv/linux/write.c
index b689a9f..dd40926 100644
--- a/sysdeps/unix/sysv/linux/write.c
+++ b/sysdeps/unix/sysv/linux/write.c
@@ -1,5 +1,5 @@
/* Linux write syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/write_nocancel.c b/sysdeps/unix/sysv/linux/write_nocancel.c
index d16fda9..306bd28 100644
--- a/sysdeps/unix/sysv/linux/write_nocancel.c
+++ b/sysdeps/unix/sysv/linux/write_nocancel.c
@@ -1,5 +1,5 @@
/* Linux write syscall implementation -- non-cancellable.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/writev.c b/sysdeps/unix/sysv/linux/writev.c
index f06bcd5..7259592 100644
--- a/sysdeps/unix/sysv/linux/writev.c
+++ b/sysdeps/unix/sysv/linux/writev.c
@@ -1,5 +1,5 @@
/* Linux writev syscall implementation.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/arch-pkey.h b/sysdeps/unix/sysv/linux/x86/arch-pkey.h
index 0b6c556..b76497b 100644
--- a/sysdeps/unix/sysv/linux/x86/arch-pkey.h
+++ b/sysdeps/unix/sysv/linux/x86/arch-pkey.h
@@ -1,5 +1,5 @@
/* Helper functions for manipulating memory protection keys.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/environments.h b/sysdeps/unix/sysv/linux/x86/bits/environments.h
index dd7be14..66acb92 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/environments.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/epoll.h b/sysdeps/unix/sysv/linux/x86/bits/epoll.h
index a0279fc..03f3844 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/epoll.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/epoll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/fcntl.h b/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
index 9a3734c..63b76c9 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
@@ -1,5 +1,5 @@
/* O_*, F_*, FD_* bit values for Linux/x86.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h b/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
index 93a5494..4163314 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
@@ -1,5 +1,5 @@
/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/mman.h b/sysdeps/unix/sysv/linux/x86/bits/mman.h
index cd5ea8e..0da3ac6 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/mman.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/mman.h
@@ -1,5 +1,5 @@
/* Definitions for POSIX memory map interface. Linux/x86_64 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/platform/features.h b/sysdeps/unix/sysv/linux/x86/bits/platform/features.h
index 7704feb..84842c5 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/platform/features.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/platform/features.h
@@ -1,6 +1,6 @@
/* Inline functions for x86 CPU features.
This file is part of the GNU C Library.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -28,7 +28,7 @@ enum
x86_feature_1_shstk = 1U << 1
};
-static __inline__ _Bool
+static __inline__ bool
x86_cpu_cet_active (unsigned int __index)
{
#ifdef __x86_64__
diff --git a/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h b/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h
index a64328a..a2daf70 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/procfs-id.h
@@ -1,5 +1,5 @@
/* Types of pr_uid and pr_gid in struct elf_prpsinfo. x86 version.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/x86/bits/procfs.h b/sysdeps/unix/sysv/linux/x86/bits/procfs.h
index 18e37a1..afe295c 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/procfs.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/procfs.h
@@ -1,5 +1,5 @@
/* Types for registers for sys/procfs.h. x86 version.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/rseq.h b/sysdeps/unix/sysv/linux/x86/bits/rseq.h
index 3b76b12..0c19fdc 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/rseq.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/rseq.h
@@ -1,5 +1,5 @@
/* Restartable Sequences Linux x86 architecture header.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
index 773cc32..e852b9b 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h b/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h
index 810d656..7edc1f0 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/struct_stat.h
@@ -1,5 +1,5 @@
/* Definition for struct stat.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/timesize.h b/sysdeps/unix/sysv/linux/x86/bits/timesize.h
index 57d83ab..09aeb73 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/timesize.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/timesize.h
@@ -1,5 +1,5 @@
/* Bit size of the time_t type at glibc build time, x86-64 and x32 case.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h b/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h
index 81867c0..db1b94e 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/types/struct_semid_ds.h
@@ -1,5 +1,5 @@
/* x86 implementation of the semaphore struct semid_ds.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
index f4e2ec2..8ba6e7f 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/dl-hwcap2.h b/sysdeps/unix/sysv/linux/x86/dl-hwcap2.h
index b6bbedb..f1dd026 100644
--- a/sysdeps/unix/sysv/linux/x86/dl-hwcap2.h
+++ b/sysdeps/unix/sysv/linux/x86/dl-hwcap2.h
@@ -1,5 +1,5 @@
/* Handle AT_HWCAP2. Linux/x86 version.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86/dl-minsigstacksize.h b/sysdeps/unix/sysv/linux/x86/dl-minsigstacksize.h
index a097825..c299c17 100644
--- a/sysdeps/unix/sysv/linux/x86/dl-minsigstacksize.h
+++ b/sysdeps/unix/sysv/linux/x86/dl-minsigstacksize.h
@@ -1,5 +1,5 @@
/* Emulate AT_MINSIGSTKSZ. Linux/x86 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86/dl-sysdep.c b/sysdeps/unix/sysv/linux/x86/dl-sysdep.c
index d3eef75..b8a6f63 100644
--- a/sysdeps/unix/sysv/linux/x86/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/x86/dl-sysdep.c
@@ -1,5 +1,5 @@
/* Operating system support for run-time dynamic linker. X86 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elf-read-prop.h b/sysdeps/unix/sysv/linux/x86/elf-read-prop.h
index 5b34072..de0dd13 100644
--- a/sysdeps/unix/sysv/linux/x86/elf-read-prop.h
+++ b/sysdeps/unix/sysv/linux/x86/elf-read-prop.h
@@ -1,5 +1,5 @@
/* Support for GNU properties in ldconfig. x86 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-conf.c b/sysdeps/unix/sysv/linux/x86/elision-conf.c
index 0766306..cf120a9 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-conf.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-conf.c
@@ -1,5 +1,5 @@
/* elision-conf.c: Lock elision tunable parameters.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-conf.h b/sysdeps/unix/sysv/linux/x86/elision-conf.h
index 18d0ce0..6ba8810 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-conf.h
+++ b/sysdeps/unix/sysv/linux/x86/elision-conf.h
@@ -1,5 +1,5 @@
/* elision-conf.h: Lock elision tunable parameters.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-lock.c b/sysdeps/unix/sysv/linux/x86/elision-lock.c
index ecc653d..74e7482 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-lock.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-lock.c
@@ -1,5 +1,5 @@
/* elision-lock.c: Elided pthread mutex lock.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-timed.c b/sysdeps/unix/sysv/linux/x86/elision-timed.c
index e416c8d..50925f4 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-timed.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-timed.c
@@ -1,5 +1,5 @@
/* elision-timed.c: Lock elision timed lock.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-trylock.c b/sysdeps/unix/sysv/linux/x86/elision-trylock.c
index 94265d7..60c4311 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-trylock.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-trylock.c
@@ -1,5 +1,5 @@
/* elision-trylock.c: Lock eliding trylock for pthreads.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/elision-unlock.c b/sysdeps/unix/sysv/linux/x86/elision-unlock.c
index 81301c0..67dd1e6 100644
--- a/sysdeps/unix/sysv/linux/x86/elision-unlock.c
+++ b/sysdeps/unix/sysv/linux/x86/elision-unlock.c
@@ -1,5 +1,5 @@
/* elision-unlock.c: Commit an elided pthread lock.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/gettimeofday.c b/sysdeps/unix/sysv/linux/x86/gettimeofday.c
index 6051556..f41999c 100644
--- a/sysdeps/unix/sysv/linux/x86/gettimeofday.c
+++ b/sysdeps/unix/sysv/linux/x86/gettimeofday.c
@@ -1,5 +1,5 @@
/* gettimeofday - get the time. Linux/x86 version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/longjmp.c b/sysdeps/unix/sysv/linux/x86/longjmp.c
index 0f045e3..ad4df7a 100644
--- a/sysdeps/unix/sysv/linux/x86/longjmp.c
+++ b/sysdeps/unix/sysv/linux/x86/longjmp.c
@@ -1,5 +1,5 @@
/* __libc_siglongjmp for Linux/x86
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/pkey_get.c b/sysdeps/unix/sysv/linux/x86/pkey_get.c
index eb988a5..f0b4b3b 100644
--- a/sysdeps/unix/sysv/linux/x86/pkey_get.c
+++ b/sysdeps/unix/sysv/linux/x86/pkey_get.c
@@ -1,5 +1,5 @@
/* Reading the per-thread memory protection key, x86_64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,9 +18,10 @@
#include <arch-pkey.h>
#include <errno.h>
+#include <sys/mman.h>
int
-pkey_get (int key)
+__pkey_get (int key)
{
if (key < 0 || key > 15)
{
@@ -31,3 +32,5 @@ pkey_get (int key)
return (pkru >> (2 * key)) & 3;
return 0;
}
+libc_hidden_def (__pkey_get)
+weak_alias (__pkey_get, pkey_get)
diff --git a/sysdeps/unix/sysv/linux/x86/pkey_set.c b/sysdeps/unix/sysv/linux/x86/pkey_set.c
index 3fd2c95..76c8f05 100644
--- a/sysdeps/unix/sysv/linux/x86/pkey_set.c
+++ b/sysdeps/unix/sysv/linux/x86/pkey_set.c
@@ -1,5 +1,5 @@
/* Changing the per-thread memory protection key, x86_64 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,9 +18,10 @@
#include <arch-pkey.h>
#include <errno.h>
+#include <sys/mman.h>
int
-pkey_set (int key, unsigned int rights)
+__pkey_set (int key, unsigned int rights)
{
if (key < 0 || key > 15 || rights > 3)
{
@@ -33,3 +34,5 @@ pkey_set (int key, unsigned int rights)
pkey_write (pkru);
return 0;
}
+libc_hidden_def (__pkey_set)
+weak_alias (__pkey_set, pkey_set)
diff --git a/sysdeps/unix/sysv/linux/x86/setjmpP.h b/sysdeps/unix/sysv/linux/x86/setjmpP.h
index 1f50f3e..a103e5c 100644
--- a/sysdeps/unix/sysv/linux/x86/setjmpP.h
+++ b/sysdeps/unix/sysv/linux/x86/setjmpP.h
@@ -1,5 +1,5 @@
/* Internal header file for <setjmp.h>. Linux/x86 version.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/debugreg.h b/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
index 78ebdd6..f1b4c96 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/elf.h b/sysdeps/unix/sysv/linux/x86/sys/elf.h
index b38d423..e8108ef 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/io.h b/sysdeps/unix/sysv/linux/x86/sys/io.h
index 48cae99..d29f0fb 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/io.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/io.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/perm.h b/sysdeps/unix/sysv/linux/x86/sys/perm.h
index d5f097d..64c1748 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/perm.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/perm.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
index 8dee96c..9dea188 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/ptrace.h
@@ -1,5 +1,5 @@
/* `ptrace' debugger support interface. Linux/x86 version.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/x86/sys/reg.h b/sysdeps/unix/sysv/linux/x86/sys/reg.h
index f66b3aa..2b28b91 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/reg.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/reg.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
index 492ae83..1ef74a7 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/user.h b/sysdeps/unix/sysv/linux/x86/sys/user.h
index a8f3052..780ab1c 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/user.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sys/vm86.h b/sysdeps/unix/sysv/linux/x86/sys/vm86.h
index 52199ce..e5be645 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/vm86.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/vm86.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/sysconf.c b/sysdeps/unix/sysv/linux/x86/sysconf.c
index 6095a58..5405290 100644
--- a/sysdeps/unix/sysv/linux/x86/sysconf.c
+++ b/sysdeps/unix/sysv/linux/x86/sysconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about a file. Linux version.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/time.c b/sysdeps/unix/sysv/linux/x86/time.c
index 067af1f..0eb302d 100644
--- a/sysdeps/unix/sysv/linux/x86/time.c
+++ b/sysdeps/unix/sysv/linux/x86/time.c
@@ -1,5 +1,5 @@
/* time -- Get number of seconds since Epoch. Linux/x86 version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c b/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c
index 4f7aec2..4de6b8c 100644
--- a/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c
+++ b/sysdeps/unix/sysv/linux/x86/tst-saved_mask-1.c
@@ -1,5 +1,5 @@
/* Test that sigprocmask does not read from the unused part of jmpbuf.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h b/sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h
index 5d86e75..06fbae5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h
@@ -117,6 +117,7 @@
#define __NR_gettimeofday 96
#define __NR_getuid 102
#define __NR_getxattr 191
+#define __NR_getxattrat 464
#define __NR_init_module 175
#define __NR_inotify_add_watch 254
#define __NR_inotify_init 253
@@ -151,6 +152,7 @@
#define __NR_listen 50
#define __NR_listmount 458
#define __NR_listxattr 194
+#define __NR_listxattrat 465
#define __NR_llistxattr 195
#define __NR_lookup_dcookie 212
#define __NR_lremovexattr 198
@@ -205,6 +207,7 @@
#define __NR_open 2
#define __NR_open_by_handle_at 304
#define __NR_open_tree 428
+#define __NR_open_tree_attr 467
#define __NR_openat 257
#define __NR_openat2 437
#define __NR_pause 34
@@ -250,6 +253,7 @@
#define __NR_recvmsg 47
#define __NR_remap_file_pages 216
#define __NR_removexattr 197
+#define __NR_removexattrat 466
#define __NR_rename 82
#define __NR_renameat 264
#define __NR_renameat2 316
@@ -313,6 +317,7 @@
#define __NR_settimeofday 164
#define __NR_setuid 105
#define __NR_setxattr 188
+#define __NR_setxattrat 463
#define __NR_shmat 30
#define __NR_shmctl 31
#define __NR_shmdt 67
@@ -359,6 +364,7 @@
#define __NR_unlink 87
#define __NR_unlinkat 263
#define __NR_unshare 272
+#define __NR_uretprobe 335
#define __NR_uselib 134
#define __NR_userfaultfd 323
#define __NR_ustat 136
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
index aea7848..5648772 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -2744,6 +2744,25 @@ GLIBC_2.4 sys_errlist D 0x420
GLIBC_2.4 sys_nerr D 0x4
GLIBC_2.4 unlinkat F
GLIBC_2.4 unshare F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
GLIBC_2.5 inet6_opt_find F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 0ba4ef5..6719814 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1222,3 +1222,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h b/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
index be32183..cb08968 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
+++ b/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
@@ -1,5 +1,5 @@
/* Linux mmap system call. x86-64 version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h b/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h
index 8f8b9ba..75267a9 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h
+++ b/sysdeps/unix/sysv/linux/x86_64/64/timer_t_was_int_compat.h
@@ -1,5 +1,5 @@
/* timer_t/int compatibility transition. x86_64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/Makefile b/sysdeps/unix/sysv/linux/x86_64/Makefile
index fcbffd8..6938382 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Makefile
+++ b/sysdeps/unix/sysv/linux/x86_64/Makefile
@@ -67,7 +67,7 @@ $(objpfx)libx86-64-isa-level.so: $(objpfx)libx86-64-isa-level-1.so
cp $< $@
endif
-ifeq (yes,$(have-mamx-tile))
+ifeq (yesgnu2,$(have-mamx-tile)$(have-test-mtls-descriptor))
tests += \
tst-gnu2-tls2-amx \
# tests
@@ -87,10 +87,10 @@ $(objpfx)tst-gnu2-tls2-amx-mod0.so: $(libsupport)
$(objpfx)tst-gnu2-tls2-amx-mod1.so: $(libsupport)
$(objpfx)tst-gnu2-tls2-amx-mod2.so: $(libsupport)
-CFLAGS-tst-gnu2-tls2-amx.c += -mamx-tile
-CFLAGS-tst-gnu2-tls2-amx-mod0.c += -mamx-tile -mtls-dialect=gnu2
-CFLAGS-tst-gnu2-tls2-amx-mod1.c += -mamx-tile -mtls-dialect=gnu2
-CFLAGS-tst-gnu2-tls2-amx-mod2.c += -mamx-tile -mtls-dialect=gnu2
+CFLAGS-tst-gnu2-tls2-amx.c += -mamx-tile -DTEST_AMX
+CFLAGS-tst-gnu2-tls2-amx-mod0.c += -mamx-tile -DTEST_AMX -mtls-dialect=gnu2
+CFLAGS-tst-gnu2-tls2-amx-mod1.c += -mamx-tile -DTEST_AMX -mtls-dialect=gnu2
+CFLAGS-tst-gnu2-tls2-amx-mod2.c += -mamx-tile -DTEST_AMX -mtls-dialect=gnu2
endif
endif # $(subdir) == elf
diff --git a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
index 9d9732a..b73a18b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/__start_context.S b/sysdeps/unix/sysv/linux/x86_64/__start_context.S
index 742452d..293f3ba 100644
--- a/sysdeps/unix/sysv/linux/x86_64/__start_context.S
+++ b/sysdeps/unix/sysv/linux/x86_64/__start_context.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.c b/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.c
index 5bd1870..7e060e1 100644
--- a/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.c
+++ b/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.c
@@ -1,5 +1,5 @@
/* Helper function to allocate shadow stack.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.h b/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.h
index 2777ead..54d763e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.h
+++ b/sysdeps/unix/sysv/linux/x86_64/allocate-shadow-stack.h
@@ -1,5 +1,5 @@
/* Helper function to allocate shadow stack.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/clone.S b/sysdeps/unix/sysv/linux/x86_64/clone.S
index d0adc21..f3985e7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/clone.S
+++ b/sysdeps/unix/sysv/linux/x86_64/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/clone3.S b/sysdeps/unix/sysv/linux/x86_64/clone3.S
index 4cc19e0..3e26bd7 100644
--- a/sysdeps/unix/sysv/linux/x86_64/clone3.S
+++ b/sysdeps/unix/sysv/linux/x86_64/clone3.S
@@ -1,5 +1,5 @@
/* The clone3 syscall wrapper. Linux/x86-64 version.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/dl-cet.h b/sysdeps/unix/sysv/linux/x86_64/dl-cet.h
index b4f7e6c..773f573 100644
--- a/sysdeps/unix/sysv/linux/x86_64/dl-cet.h
+++ b/sysdeps/unix/sysv/linux/x86_64/dl-cet.h
@@ -1,5 +1,5 @@
/* Linux/x86-64 CET initializers function.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86_64/dl-plt-rewrite.h b/sysdeps/unix/sysv/linux/x86_64/dl-plt-rewrite.h
index ad637df..a28ac55 100644
--- a/sysdeps/unix/sysv/linux/x86_64/dl-plt-rewrite.h
+++ b/sysdeps/unix/sysv/linux/x86_64/dl-plt-rewrite.h
@@ -1,5 +1,5 @@
/* PLT rewrite helper function. Linux/x86-64 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h b/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h
deleted file mode 100644
index 7b45fe4..0000000
--- a/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#if IS_IN (ldconfig)
-# include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
-#else
-# include <sysdeps/x86/dl-procinfo.h>
-#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/get-cpuid-feature-leaf.c b/sysdeps/unix/sysv/linux/x86_64/get-cpuid-feature-leaf.c
index 39b3424..378c333 100644
--- a/sysdeps/unix/sysv/linux/x86_64/get-cpuid-feature-leaf.c
+++ b/sysdeps/unix/sysv/linux/x86_64/get-cpuid-feature-leaf.c
@@ -1,5 +1,5 @@
/* Get CPUID feature leaf. Linux/x86-64 version.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86_64/getcontext.S b/sysdeps/unix/sysv/linux/x86_64/getcontext.S
index e588a8c..9bf3d50 100644
--- a/sysdeps/unix/sysv/linux/x86_64/getcontext.S
+++ b/sysdeps/unix/sysv/linux/x86_64/getcontext.S
@@ -1,5 +1,5 @@
/* Save current context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/kernel-features.h b/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
index 2681e73..7778171 100644
--- a/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
@@ -1,6 +1,6 @@
/* Set flags signalling availability of kernel features based on given
kernel version number. x86-64 version.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
index 49c0c7a..ed5277e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
+++ b/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
@@ -1 +1 @@
-s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4\6 \264\4-x86-64\6 \2x32\4-x32\6"_
+s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\264\4-x86-64\6 \2\4\6 \2x32\4-x32\6"_
diff --git a/sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c b/sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c
index b39812f..812e023 100644
--- a/sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c
+++ b/sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c
@@ -1,5 +1,5 @@
/* POSIX.1 `sigaction' call for Linux/x86-64.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
extern void restore_rt (void) asm ("__restore_rt") attribute_hidden;
#define SET_SA_RESTORER(kact, act) \
- (kact)->sa_flags = (act)->sa_flags | SA_RESTORER; \
+ (kact)->sa_flags |= SA_RESTORER; \
(kact)->sa_restorer = &restore_rt
#define RESET_SA_RESTORER(act, kact) \
diff --git a/sysdeps/unix/sysv/linux/x86_64/makecontext.c b/sysdeps/unix/sysv/linux/x86_64/makecontext.c
index 8602a51..3a49aa6 100644
--- a/sysdeps/unix/sysv/linux/x86_64/makecontext.c
+++ b/sysdeps/unix/sysv/linux/x86_64/makecontext.c
@@ -1,5 +1,5 @@
/* Create new context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/pointer_guard.h b/sysdeps/unix/sysv/linux/x86_64/pointer_guard.h
index bc02c0a..9cf79a4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/pointer_guard.h
+++ b/sysdeps/unix/sysv/linux/x86_64/pointer_guard.h
@@ -1,5 +1,5 @@
/* Pointer obfuscation implenentation. x86-64 version.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/setcontext.S b/sysdeps/unix/sysv/linux/x86_64/setcontext.S
index d0bcd79..2d89f89 100644
--- a/sysdeps/unix/sysv/linux/x86_64/setcontext.S
+++ b/sysdeps/unix/sysv/linux/x86_64/setcontext.S
@@ -1,5 +1,5 @@
/* Install given context.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
index 408b730..4809abc 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/swapcontext.S b/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
index b2e0f19..559f66f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
@@ -1,5 +1,5 @@
/* Save current context and install the given one.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/syscall.S b/sysdeps/unix/sysv/linux/x86_64/syscall.S
index 43af808..b211a0b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/syscall.S
+++ b/sysdeps/unix/sysv/linux/x86_64/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S b/sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S
new file mode 100644
index 0000000..fdfe80a
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S
@@ -0,0 +1,57 @@
+/* Cancellable syscall wrapper. Linux/x86_64 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <descr-const.h>
+
+/* long int [rax] __syscall_cancel_arch (volatile int *cancelhandling [%rdi],
+ __syscall_arg_t nr [%rsi],
+ __syscall_arg_t arg1 [%rdx],
+ __syscall_arg_t arg2 [%rcx],
+ __syscall_arg_t arg3 [%r8],
+ __syscall_arg_t arg4 [%r9],
+ __syscall_arg_t arg5 [SP+8],
+ __syscall_arg_t arg6 [SP+16]) */
+
+ENTRY (__syscall_cancel_arch)
+ .globl __syscall_cancel_arch_start
+__syscall_cancel_arch_start:
+
+ /* if (*cancelhandling & CANCELED_BITMASK)
+ __syscall_do_cancel() */
+ mov (%rdi),%eax
+ testb $TCB_CANCELED_BITMASK, (%rdi)
+ jne __syscall_do_cancel
+
+ /* Issue a 6 argument syscall, the nr [%rax] being the syscall
+ number. */
+ mov %rdi,%r11
+ mov %rsi,%rax
+ mov %rdx,%rdi
+ mov %rcx,%rsi
+ mov %r8,%rdx
+ mov %r9,%r10
+ mov 8(%rsp),%r8
+ mov 16(%rsp),%r9
+ mov %r11,8(%rsp)
+ syscall
+
+ .globl __syscall_cancel_arch_end
+__syscall_cancel_arch_end:
+ ret
+END (__syscall_cancel_arch)
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.S b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
index a4ec142..3aa6226 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.S
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
index a2b021b..1d175df 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -376,6 +376,7 @@
# define HAVE_TIME_VSYSCALL "__vdso_time"
# define HAVE_GETCPU_VSYSCALL "__vdso_getcpu"
# define HAVE_CLOCK_GETRES64_VSYSCALL "__vdso_clock_getres"
+# define HAVE_GETRANDOM_VSYSCALL "__vdso_getrandom"
# define HAVE_CLONE3_WRAPPER 1
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-1.c b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-1.c
index e13c752..c9ad187 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-1.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-1.c
@@ -1,5 +1,5 @@
/* Test CET property note parser.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-2.c b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-2.c
index 5274a09..5b6675a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-2.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-2.c
@@ -1,5 +1,5 @@
/* Test CET property note parser for [BZ #23467].
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
extern void bar (void);
void
-__attribute__ ((noclone, noinline))
+__attribute_optimization_barrier__
test (void (*func_p) (void))
{
func_p ();
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-dep-2.S b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-dep-2.S
index 6a8dd8b..f1f00b4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-dep-2.S
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-cet-property-dep-2.S
@@ -1,5 +1,5 @@
/* Test CET property note parser.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-cet-setcontext-1.c b/sysdeps/unix/sysv/linux/x86_64/tst-cet-setcontext-1.c
index 388931f..4ec132f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-cet-setcontext-1.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-cet-setcontext-1.c
@@ -1,6 +1,6 @@
/* Check getcontext and setcontext on the context from makecontext
with shadow stack.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -30,7 +30,7 @@ static ucontext_t ctx[5];
static atomic_int done;
static void
-__attribute__((noinline, noclone))
+__attribute_optimization_barrier__
f2 (void)
{
printf ("start f2\n");
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-cet-vfork-1.c b/sysdeps/unix/sysv/linux/x86_64/tst-cet-vfork-1.c
index 56d7753..3e9fe4e 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-cet-vfork-1.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-cet-vfork-1.c
@@ -1,6 +1,6 @@
/* Verify that child of the vfork-calling function can't return when
shadow stack is in use.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +25,7 @@
#include <x86intrin.h>
#include <support/test-driver.h>
-__attribute__ ((noclone, noinline))
+__attribute_optimization_barrier__
static void
do_test_1 (void)
{
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c b/sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c
index 379dd47..9293ec5 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-glibc-hwcaps-2.c
@@ -1,5 +1,5 @@
/* Check ISA level on shared object in glibc-hwcaps subdirectories.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c
index ae4dd82..794a31f 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c
@@ -1,5 +1,5 @@
/* Test TLSDESC relocation with AMX.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,7 +27,7 @@ extern int arch_prctl (int, ...);
#define X86_XSTATE_TILEDATA_ID 18
/* Initialize tile config. */
-__attribute__ ((noinline, noclone))
+__attribute_optimization_barrier__
static void
init_tile_config (__tilecfg *tileinfo)
{
diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h
index 1845a3c..57c424a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h
+++ b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h
@@ -1,5 +1,5 @@
/* Test TLSDESC relocation with AMX.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/vfork.S b/sysdeps/unix/sysv/linux/x86_64/vfork.S
index 0d8732e..608394b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/vfork.S
+++ b/sysdeps/unix/sysv/linux/x86_64/vfork.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h b/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h
index 6c35068..135ef3d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h
@@ -111,6 +111,7 @@
#define __NR_gettimeofday 1073741920
#define __NR_getuid 1073741926
#define __NR_getxattr 1073742015
+#define __NR_getxattrat 1073742288
#define __NR_init_module 1073741999
#define __NR_inotify_add_watch 1073742078
#define __NR_inotify_init 1073742077
@@ -145,6 +146,7 @@
#define __NR_listen 1073741874
#define __NR_listmount 1073742282
#define __NR_listxattr 1073742018
+#define __NR_listxattrat 1073742289
#define __NR_llistxattr 1073742019
#define __NR_lookup_dcookie 1073742036
#define __NR_lremovexattr 1073742022
@@ -198,6 +200,7 @@
#define __NR_open 1073741826
#define __NR_open_by_handle_at 1073742128
#define __NR_open_tree 1073742252
+#define __NR_open_tree_attr 1073742291
#define __NR_openat 1073742081
#define __NR_openat2 1073742261
#define __NR_pause 1073741858
@@ -242,6 +245,7 @@
#define __NR_recvmsg 1073742343
#define __NR_remap_file_pages 1073742040
#define __NR_removexattr 1073742021
+#define __NR_removexattrat 1073742290
#define __NR_rename 1073741906
#define __NR_renameat 1073742088
#define __NR_renameat2 1073742140
@@ -305,6 +309,7 @@
#define __NR_settimeofday 1073741988
#define __NR_setuid 1073741929
#define __NR_setxattr 1073742012
+#define __NR_setxattrat 1073742287
#define __NR_shmat 1073741854
#define __NR_shmctl 1073741855
#define __NR_shmdt 1073741891
@@ -351,6 +356,7 @@
#define __NR_unlink 1073741911
#define __NR_unlinkat 1073742087
#define __NR_unshare 1073742096
+#define __NR_uretprobe 1073742159
#define __NR_userfaultfd 1073742147
#define __NR_ustat 1073741960
#define __NR_utime 1073741956
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
index efcda97..c05bfa4 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
@@ -1,5 +1,5 @@
/* arch_prctl call for Linux/x32.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h b/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
index df86a95..f181124 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
@@ -1,5 +1,5 @@
/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h
index 47fa8af..0a8348d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/fixup-asm-unistd.h
@@ -1,5 +1,5 @@
/* Regularize <asm/unistd.h> definitions. X32 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
index 4ab3681..25a39d0 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -2763,3 +2763,22 @@ GLIBC_2.39 stdc_trailing_zeros_ui F
GLIBC_2.39 stdc_trailing_zeros_ul F
GLIBC_2.39 stdc_trailing_zeros_ull F
GLIBC_2.39 stdc_trailing_zeros_us F
+GLIBC_2.41 sched_getattr F
+GLIBC_2.41 sched_setattr F
+GLIBC_2.42 __inet_ntop_chk F
+GLIBC_2.42 __inet_pton_chk F
+GLIBC_2.42 cfgetibaud F
+GLIBC_2.42 cfgetispeed F
+GLIBC_2.42 cfgetobaud F
+GLIBC_2.42 cfgetospeed F
+GLIBC_2.42 cfsetbaud F
+GLIBC_2.42 cfsetibaud F
+GLIBC_2.42 cfsetispeed F
+GLIBC_2.42 cfsetobaud F
+GLIBC_2.42 cfsetospeed F
+GLIBC_2.42 cfsetspeed F
+GLIBC_2.42 pthread_gettid_np F
+GLIBC_2.42 uabs F
+GLIBC_2.42 uimaxabs F
+GLIBC_2.42 ulabs F
+GLIBC_2.42 ullabs F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 4057115..1a1069a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1222,3 +1222,99 @@ GLIBC_2.40 logp1f32x F
GLIBC_2.40 logp1f64 F
GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
+GLIBC_2.41 acospi F
+GLIBC_2.41 acospif F
+GLIBC_2.41 acospif128 F
+GLIBC_2.41 acospif32 F
+GLIBC_2.41 acospif32x F
+GLIBC_2.41 acospif64 F
+GLIBC_2.41 acospif64x F
+GLIBC_2.41 acospil F
+GLIBC_2.41 asinpi F
+GLIBC_2.41 asinpif F
+GLIBC_2.41 asinpif128 F
+GLIBC_2.41 asinpif32 F
+GLIBC_2.41 asinpif32x F
+GLIBC_2.41 asinpif64 F
+GLIBC_2.41 asinpif64x F
+GLIBC_2.41 asinpil F
+GLIBC_2.41 atan2pi F
+GLIBC_2.41 atan2pif F
+GLIBC_2.41 atan2pif128 F
+GLIBC_2.41 atan2pif32 F
+GLIBC_2.41 atan2pif32x F
+GLIBC_2.41 atan2pif64 F
+GLIBC_2.41 atan2pif64x F
+GLIBC_2.41 atan2pil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
+GLIBC_2.41 cospi F
+GLIBC_2.41 cospif F
+GLIBC_2.41 cospif128 F
+GLIBC_2.41 cospif32 F
+GLIBC_2.41 cospif32x F
+GLIBC_2.41 cospif64 F
+GLIBC_2.41 cospif64x F
+GLIBC_2.41 cospil F
+GLIBC_2.41 sinpi F
+GLIBC_2.41 sinpif F
+GLIBC_2.41 sinpif128 F
+GLIBC_2.41 sinpif32 F
+GLIBC_2.41 sinpif32x F
+GLIBC_2.41 sinpif64 F
+GLIBC_2.41 sinpif64x F
+GLIBC_2.41 sinpil F
+GLIBC_2.41 tanpi F
+GLIBC_2.41 tanpif F
+GLIBC_2.41 tanpif128 F
+GLIBC_2.41 tanpif32 F
+GLIBC_2.41 tanpif32x F
+GLIBC_2.41 tanpif64 F
+GLIBC_2.41 tanpif64x F
+GLIBC_2.41 tanpil F
+GLIBC_2.42 compoundn F
+GLIBC_2.42 compoundnf F
+GLIBC_2.42 compoundnf128 F
+GLIBC_2.42 compoundnf32 F
+GLIBC_2.42 compoundnf32x F
+GLIBC_2.42 compoundnf64 F
+GLIBC_2.42 compoundnf64x F
+GLIBC_2.42 compoundnl F
+GLIBC_2.42 pown F
+GLIBC_2.42 pownf F
+GLIBC_2.42 pownf128 F
+GLIBC_2.42 pownf32 F
+GLIBC_2.42 pownf32x F
+GLIBC_2.42 pownf64 F
+GLIBC_2.42 pownf64x F
+GLIBC_2.42 pownl F
+GLIBC_2.42 powr F
+GLIBC_2.42 powrf F
+GLIBC_2.42 powrf128 F
+GLIBC_2.42 powrf32 F
+GLIBC_2.42 powrf32x F
+GLIBC_2.42 powrf64 F
+GLIBC_2.42 powrf64x F
+GLIBC_2.42 powrl F
+GLIBC_2.42 rootn F
+GLIBC_2.42 rootnf F
+GLIBC_2.42 rootnf128 F
+GLIBC_2.42 rootnf32 F
+GLIBC_2.42 rootnf32x F
+GLIBC_2.42 rootnf64 F
+GLIBC_2.42 rootnf64x F
+GLIBC_2.42 rootnl F
+GLIBC_2.42 rsqrt F
+GLIBC_2.42 rsqrtf F
+GLIBC_2.42 rsqrtf128 F
+GLIBC_2.42 rsqrtf32 F
+GLIBC_2.42 rsqrtf32x F
+GLIBC_2.42 rsqrtf64 F
+GLIBC_2.42 rsqrtf64x F
+GLIBC_2.42 rsqrtl F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
index 271d7e3..bf05c61 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
@@ -1,5 +1,5 @@
/* The lseek system call with 64-bit offset. Linux/x32 version.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/prctl.c b/sysdeps/unix/sysv/linux/x86_64/x32/prctl.c
index 4bf1b47..714fd28 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/prctl.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/prctl.c
@@ -1,5 +1,5 @@
/* prctl - Linux specific syscall. x86-64 x32 version.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/syscall_types.h b/sysdeps/unix/sysv/linux/x86_64/x32/syscall_types.h
new file mode 100644
index 0000000..3c12b56
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/syscall_types.h
@@ -0,0 +1,34 @@
+/* Types and macros used for syscall issuing. x86_64/x32 version.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _SYSCALL_TYPES_H
+#define _SYSCALL_TYPES_H
+
+#include <libc-diag.h>
+
+typedef long long int __syscall_arg_t;
+
+/* Syscall arguments for x32 follows x86_64 ABI, however pointers are 32 bits
+ should be zero extended. */
+#define __SSC(__x) \
+ ({ \
+ TYPEFY (__x, __tmp) = ARGIFY (__x); \
+ (__syscall_arg_t) __tmp; \
+ })
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
index f3f9c52..707261a 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/times.c b/sysdeps/unix/sysv/linux/x86_64/x32/times.c
index 67b6fc1..edeea37 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/times.c
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/times.c
@@ -1,5 +1,5 @@
/* Linux times. X32 version.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/xmknod.c b/sysdeps/unix/sysv/linux/xmknod.c
index 206843b..7677dbe 100644
--- a/sysdeps/unix/sysv/linux/xmknod.c
+++ b/sysdeps/unix/sysv/linux/xmknod.c
@@ -1,5 +1,5 @@
/* xmknod call using old-style Unix mknod system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/xmknodat.c b/sysdeps/unix/sysv/linux/xmknodat.c
index 0535b3d..a082c69 100644
--- a/sysdeps/unix/sysv/linux/xmknodat.c
+++ b/sysdeps/unix/sysv/linux/xmknodat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c
index fa327ca..c2c05b4 100644
--- a/sysdeps/unix/sysv/linux/xstat.c
+++ b/sysdeps/unix/sysv/linux/xstat.c
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,7 +38,7 @@ __xstat (int vers, const char *name, struct stat *buf)
{
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
int r = INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf, 0);
return r ?: stat_overflow (buf);
# else
diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
index aa63152..153a01c 100644
--- a/sysdeps/unix/sysv/linux/xstat64.c
+++ b/sysdeps/unix/sysv/linux/xstat64.c
@@ -1,5 +1,5 @@
/* xstat64 using Linux stat64 system call.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -67,7 +67,7 @@ ___xstat64 (int vers, const char *name, struct stat64 *buf)
#else
# if STAT_IS_KERNEL_STAT
/* New kABIs which uses generic pre 64-bit time Linux ABI,
- e.g. csky, nios2 */
+ e.g. csky. */
if (vers == _STAT_VER_KERNEL)
return INLINE_SYSCALL_CALL (fstatat64, AT_FDCWD, name, buf, 0);
# else
diff --git a/sysdeps/unix/sysv/linux/xstatconv.c b/sysdeps/unix/sysv/linux/xstatconv.c
index 8db6001..aaf766b 100644
--- a/sysdeps/unix/sysv/linux/xstatconv.c
+++ b/sysdeps/unix/sysv/linux/xstatconv.c
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/xstatconv.h b/sysdeps/unix/sysv/linux/xstatconv.h
index b9d7738..7f54dbe 100644
--- a/sysdeps/unix/sysv/linux/xstatconv.h
+++ b/sysdeps/unix/sysv/linux/xstatconv.h
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
diff --git a/sysdeps/unix/sysv/linux/xstatover.h b/sysdeps/unix/sysv/linux/xstatover.h
index 7aada3b..df7d74a 100644
--- a/sysdeps/unix/sysv/linux/xstatover.h
+++ b/sysdeps/unix/sysv/linux/xstatover.h
@@ -1,5 +1,5 @@
/* Overflow tests for stat, statfs, and lseek functions.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or