aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/riscv
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/riscv')
-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
38 files changed, 413 insertions, 43 deletions
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