History

y2038: add 64-bit time_t syscalls to all 32-bit architectures

This adds 21 new system calls on each ABI that has 32-bit time_t today. All of these have the exact same semantics as their existing counterparts, and the new ones all have macro names that end in 'time64' for clarification. This gets us to the point of being able to safely use a C library that has 64-bit time_t in user space. There are still a couple of loose ends to tie up in various areas of the code, but this is the big one, and should be entirely uncontroversial at this point. In particular, there are four system calls (getitimer, setitimer, waitid, and getrusage) that don't have a 64-bit counterpart yet, but these can all be safely implemented in the C library by wrapping around the existing system calls because the 32-bit time_t they pass only counts elapsed time, not time since the epoch. They will be dealt with later.

Arnd Bergmann committed 7 years ago

Commit 48166e61 parent d33c57719 files · +374 −2Browse files

Showing the changes to scripts (1 of 19 files). Show all

Unified · Split

scripts/checksyscalls.sh+40−0
@@ -84,6 +84,26 @@ cat << EOF · 83 unmodified lines
84#define __IGNORE_statfs6484#define __IGNORE_statfs64
85#define __IGNORE_llseek85#define __IGNORE_llseek
86#define __IGNORE_mmap286#define __IGNORE_mmap2
87#define __IGNORE_clock_gettime64
88#define __IGNORE_clock_settime64
89#define __IGNORE_clock_adjtime64
90#define __IGNORE_clock_getres_time64
91#define __IGNORE_clock_nanosleep_time64
92#define __IGNORE_timer_gettime64
93#define __IGNORE_timer_settime64
94#define __IGNORE_timerfd_gettime64
95#define __IGNORE_timerfd_settime64
96#define __IGNORE_utimensat_time64
97#define __IGNORE_pselect6_time64
98#define __IGNORE_ppoll_time64
99#define __IGNORE_io_pgetevents_time64
100#define __IGNORE_recvmmsg_time64
101#define __IGNORE_mq_timedsend_time64
102#define __IGNORE_mq_timedreceive_time64
103#define __IGNORE_semtimedop_time64
104#define __IGNORE_rt_sigtimedwait_time64
105#define __IGNORE_futex_time64
106#define __IGNORE_sched_rr_get_interval_time64
87#else107#else
88#define __IGNORE_sendfile108#define __IGNORE_sendfile
89#define __IGNORE_ftruncate109#define __IGNORE_ftruncate
@@ -98,6 +118,26 @@ cat << EOF · 8 unmodified lines
98#define __IGNORE_statfs118#define __IGNORE_statfs
99#define __IGNORE_lseek119#define __IGNORE_lseek
100#define __IGNORE_mmap120#define __IGNORE_mmap
121#define __IGNORE_clock_gettime
122#define __IGNORE_clock_settime
123#define __IGNORE_clock_adjtime
124#define __IGNORE_clock_getres
125#define __IGNORE_clock_nanosleep
126#define __IGNORE_timer_gettime
127#define __IGNORE_timer_settime
128#define __IGNORE_timerfd_gettime
129#define __IGNORE_timerfd_settime
130#define __IGNORE_utimensat
131#define __IGNORE_pselect6
132#define __IGNORE_ppoll
133#define __IGNORE_io_pgetevents
134#define __IGNORE_recvmmsg
135#define __IGNORE_mq_timedsend
136#define __IGNORE_mq_timedreceiv
137#define __IGNORE_semtimedop
138#define __IGNORE_rt_sigtimedwait
139#define __IGNORE_futex
140#define __IGNORE_sched_rr_get_interval
101#endif141#endif
102 142
103/* i386-specific or historical system calls */143/* i386-specific or historical system calls */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t