Skip to content

Commit 1d08488

Browse files
committed
musl: time64: change time_t type and structs
Change time_t type to i64 Change struct stat, msqid_ds and shmid_ds to reflect This commit follows upstream bminor/musl@3814333 and bminor/musl@d6dcfe4 It also implements a fix from bminor/musl@0fbd7d6
1 parent 615407f commit 1d08488

File tree

5 files changed

+526
-28
lines changed

5 files changed

+526
-28
lines changed

src/unix/linux_like/linux/musl/b32/arm/mod.rs

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ use crate::prelude::*;
44
pub type wchar_t = u32;
55

66
s! {
7+
pub struct __c_anonymous_timespec32 {
8+
__tv_sec: c_long,
9+
__tv_nsec: c_long,
10+
}
11+
712
pub struct stat {
813
pub st_dev: crate::dev_t,
914
__st_dev_padding: c_int,
@@ -17,12 +22,27 @@ s! {
1722
pub st_size: off_t,
1823
pub st_blksize: crate::blksize_t,
1924
pub st_blocks: crate::blkcnt_t,
25+
#[cfg(musl_time64)]
26+
__st_atim32: __c_anonymous_timespec32,
27+
#[cfg(musl_time64)]
28+
__st_mtim32: __c_anonymous_timespec32,
29+
#[cfg(musl_time64)]
30+
__st_ctim32: __c_anonymous_timespec32,
31+
#[cfg(musl_time64)]
32+
pub st_ino: crate::ino_t,
2033
pub st_atime: crate::time_t,
2134
pub st_atime_nsec: c_long,
35+
#[cfg(musl_time64)]
36+
__st_atim_pad: u32,
2237
pub st_mtime: crate::time_t,
2338
pub st_mtime_nsec: c_long,
39+
#[cfg(musl_time64)]
40+
__st_mtim_pad: u32,
2441
pub st_ctime: crate::time_t,
2542
pub st_ctime_nsec: c_long,
43+
#[cfg(musl_time64)]
44+
__st_ctim_pad: u32,
45+
#[cfg(not(musl_time64))]
2646
pub st_ino: crate::ino_t,
2747
}
2848

@@ -39,12 +59,27 @@ s! {
3959
pub st_size: off_t,
4060
pub st_blksize: crate::blksize_t,
4161
pub st_blocks: crate::blkcnt_t,
62+
#[cfg(musl_time64)]
63+
__st_atim32: __c_anonymous_timespec32,
64+
#[cfg(musl_time64)]
65+
__st_mtim32: __c_anonymous_timespec32,
66+
#[cfg(musl_time64)]
67+
__st_ctim32: __c_anonymous_timespec32,
68+
#[cfg(musl_time64)]
69+
pub st_ino: crate::ino_t,
4270
pub st_atime: crate::time_t,
4371
pub st_atime_nsec: c_long,
72+
#[cfg(musl_time64)]
73+
__st_atim_pad: u32,
4474
pub st_mtime: crate::time_t,
4575
pub st_mtime_nsec: c_long,
76+
#[cfg(musl_time64)]
77+
__st_mtim_pad: u32,
4678
pub st_ctime: crate::time_t,
4779
pub st_ctime_nsec: c_long,
80+
#[cfg(musl_time64)]
81+
__st_ctim_pad: u32,
82+
#[cfg(not(musl_time64))]
4883
pub st_ino: crate::ino_t,
4984
}
5085

@@ -77,34 +112,92 @@ s! {
77112
pub struct shmid_ds {
78113
pub shm_perm: crate::ipc_perm,
79114
pub shm_segsz: size_t,
115+
116+
#[cfg(musl_time64)]
117+
__shm_atime_lo: c_ulong,
118+
#[cfg(musl_time64)]
119+
__shm_atime_hi: c_ulong,
120+
#[cfg(musl_time64)]
121+
__shm_dtime_lo: c_ulong,
122+
#[cfg(musl_time64)]
123+
__shm_dtime_hi: c_ulong,
124+
#[cfg(musl_time64)]
125+
__msg_ctime_lo: c_ulong,
126+
#[cfg(musl_time64)]
127+
__msg_ctime_hi: c_ulong,
128+
129+
#[cfg(not(musl_time64))]
80130
pub shm_atime: crate::time_t,
131+
#[cfg(not(musl_time64))]
81132
__unused1: c_int,
133+
#[cfg(not(musl_time64))]
82134
pub shm_dtime: crate::time_t,
135+
#[cfg(not(musl_time64))]
83136
__unused2: c_int,
137+
#[cfg(not(musl_time64))]
84138
pub shm_ctime: crate::time_t,
139+
#[cfg(not(musl_time64))]
85140
__unused3: c_int,
141+
86142
pub shm_cpid: crate::pid_t,
87143
pub shm_lpid: crate::pid_t,
88144
pub shm_nattch: c_ulong,
89145
__pad1: c_ulong,
90146
__pad2: c_ulong,
147+
148+
#[cfg(musl_time64)]
149+
__pad3: c_ulong,
150+
#[cfg(musl_time64)]
151+
shm_atime: crate::time_t,
152+
#[cfg(musl_time64)]
153+
shm_dtime: crate::time_t,
154+
#[cfg(musl_time64)]
155+
shm_ctime: crate::time_t,
91156
}
92157

93158
pub struct msqid_ds {
94159
pub msg_perm: crate::ipc_perm,
160+
161+
#[cfg(musl_time64)]
162+
__msg_stime_lo: c_ulong,
163+
#[cfg(musl_time64)]
164+
__msg_stime_hi: c_ulong,
165+
#[cfg(musl_time64)]
166+
__msg_rtime_lo: c_ulong,
167+
#[cfg(musl_time64)]
168+
__msg_rtime_hi: c_ulong,
169+
#[cfg(musl_time64)]
170+
__msg_ctime_lo: c_ulong,
171+
#[cfg(musl_time64)]
172+
__msg_ctime_hi: c_ulong,
173+
174+
#[cfg(not(musl_time64))]
95175
pub msg_stime: crate::time_t,
176+
#[cfg(not(musl_time64))]
96177
__unused1: c_int,
178+
#[cfg(not(musl_time64))]
97179
pub msg_rtime: crate::time_t,
180+
#[cfg(not(musl_time64))]
98181
__unused2: c_int,
182+
#[cfg(not(musl_time64))]
99183
pub msg_ctime: crate::time_t,
184+
#[cfg(not(musl_time64))]
100185
__unused3: c_int,
186+
101187
pub __msg_cbytes: c_ulong,
102188
pub msg_qnum: crate::msgqnum_t,
103189
pub msg_qbytes: crate::msglen_t,
104190
pub msg_lspid: crate::pid_t,
105191
pub msg_lrpid: crate::pid_t,
106192
__pad1: c_ulong,
107193
__pad2: c_ulong,
194+
195+
#[cfg(musl_time64)]
196+
pub msg_stime: crate::time_t,
197+
#[cfg(musl_time64)]
198+
pub msg_rtime: crate::time_t,
199+
#[cfg(musl_time64)]
200+
pub msg_ctime: crate::time_t,
108201
}
109202

110203
pub struct mcontext_t {

0 commit comments

Comments
 (0)