diff options
author | Alistair Francis <alistair.francis@wdc.com> | 2019-06-25 16:32:38 -0700 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2020-09-13 20:34:10 +0300 |
commit | 91ea665b67504adc6f2cd2abc87c2986ca7bde2e (patch) | |
tree | a30cd6151ded39d6aa362e4be983dc7cef62dd6a | |
parent | RISC-V: Cleanup some of the sysdep.h code (diff) | |
download | glibc-91ea665b67504adc6f2cd2abc87c2986ca7bde2e.tar.gz glibc-91ea665b67504adc6f2cd2abc87c2986ca7bde2e.tar.bz2 glibc-91ea665b67504adc6f2cd2abc87c2986ca7bde2e.zip |
RISC-V: Use 64-bit-time syscall numbers with the 32-bit port
sysdep.h redefines only the syscall where the generic implementation
still does not have actual 64-bit time_t support:
/* Workarounds for generic code needing to handle 64-bit time_t. */
/* Fix sysdeps/unix/sysv/linux/clock_getcpuclockid.c. */
#define __NR_clock_getres __NR_clock_getres_time64
/* Fix sysdeps/nptl/lowlevellock-futex.h. */
#define __NR_futex __NR_futex_time64
[...]
This patch also adds a comment that it is a workaround to handle 64-bit
time_t and on each #define comment for which implementation it intends
to.
Reviewed-by: Maciej W. Rozycki <macro@wdc.com>
-rw-r--r-- | sysdeps/unix/sysv/linux/riscv/sysdep.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/riscv/sysdep.h b/sysdeps/unix/sysv/linux/riscv/sysdep.h index fbb3a02bbd..430fa23a58 100644 --- a/sysdeps/unix/sysv/linux/riscv/sysdep.h +++ b/sysdeps/unix/sysv/linux/riscv/sysdep.h @@ -25,6 +25,29 @@ #undef SYS_ify #define SYS_ify(syscall_name) __NR_##syscall_name +#if __WORDSIZE == 32 + +/* Workarounds for generic code needing to handle 64-bit time_t. */ + +/* Fix sysdeps/unix/sysv/linux/clock_getcpuclockid.c. */ +#define __NR_clock_getres __NR_clock_getres_time64 +/* Fix sysdeps/nptl/lowlevellock-futex.h. */ +#define __NR_futex __NR_futex_time64 +/* Fix sysdeps/unix/sysv/linux/pause.c. */ +#define __NR_ppoll __NR_ppoll_time64 +/* Fix sysdeps/unix/sysv/linux/select.c. */ +#define __NR_pselect6 __NR_pselect6_time64 +/* Fix sysdeps/unix/sysv/linux/recvmmsg.c. */ +#define __NR_recvmmsg __NR_recvmmsg_time64 +/* Fix sysdeps/unix/sysv/linux/sigtimedwait.c. */ +#define __NR_rt_sigtimedwait __NR_rt_sigtimedwait_time64 +/* Fix sysdeps/unix/sysv/linux/semtimedop.c. */ +#define __NR_semtimedop __NR_semtimedop_time64 +/* Hack sysdeps/unix/sysv/linux/generic/utimes.c. */ +#define __NR_utimensat __NR_utimensat_time64 + +#endif /* __WORDSIZE == 32 */ + #ifdef __ASSEMBLER__ # include <sys/asm.h> |