8686uid_t
8787*/
8888
89- version (CRuntime_Glibc )
89+ version (linux )
9090{
9191 static if ( __USE_FILE_OFFSET64 )
9292 {
@@ -108,71 +108,40 @@ version (CRuntime_Glibc)
108108 alias int pid_t ;
109109 // size_t (defined in core.stdc.stddef)
110110 alias c_long ssize_t ;
111- alias slong_t time_t ;
112111 alias uint uid_t ;
113- }
114- else version (CRuntime_Musl )
115- {
116- version (AArch64 )
117- {
118- alias int blksize_t ;
119- alias uint nlink_t ;
120- }
121- else version (MIPS64 )
122- {
123- alias c_long blksize_t ;
124- alias uint nlink_t ;
125- }
126- else version (RISCV64 )
127- {
128- alias int blksize_t ;
129- alias uint nlink_t ;
112+
113+ version (CRuntime_Musl )
114+ {
115+ /**
116+ * Musl versions before v1.2.0 (up to v1.1.24) had different
117+ * definitions for `time_t` for 32 bits.
118+ * This was changed to always be 64 bits in v1.2.0:
119+ * https://musl.libc.org/time64.html
120+ * This change was only for 32 bits system and
121+ * didn't affect 64 bits systems
122+ *
123+ * To check previous definitions, `grep` for `time_t` in `arch/`,
124+ * and the result should be (in v1.1.24):
125+ * ---
126+ * // arch/riscv64/bits/alltypes.h.in:20:TYPEDEF long time_t;
127+ * // arch/s390x/bits/alltypes.h.in:17:TYPEDEF long time_t;
128+ * // arch/sh/bits/alltypes.h.in:21:TYPEDEF long time_t;
129+ * ---
130+ *
131+ * In order to be compatible with old versions of Musl,
132+ * one can recompile druntime with `CRuntime_Musl_Pre_Time64`.
133+ */
134+ version (D_X32 )
135+ alias long time_t ;
136+ else version (CRuntime_Musl_Pre_Time64)
137+ alias c_long time_t ;
138+ else
139+ alias long time_t ;
130140 }
131141 else
132142 {
133- alias c_long blksize_t ;
134- alias c_ulong nlink_t ;
135- }
136- alias long dev_t ;
137- alias long blkcnt_t ;
138- alias ulong ino_t ;
139- alias long off_t ;
140- alias int pid_t ;
141- alias uint uid_t ;
142- alias uint gid_t ;
143-
144- /**
145- * Musl versions before v1.2.0 (up to v1.1.24) had different
146- * definitions for `time_t` for 32 bits.
147- * This was changed to always be 64 bits in v1.2.0:
148- * https://musl.libc.org/time64.html
149- * This change was only for 32 bits system and
150- * didn't affect 64 bits systems
151- *
152- * To check previous definitions, `grep` for `time_t` in `arch/`,
153- * and the result should be (in v1.1.24):
154- * ---
155- * // arch/riscv64/bits/alltypes.h.in:20:TYPEDEF long time_t;
156- * // arch/s390x/bits/alltypes.h.in:17:TYPEDEF long time_t;
157- * // arch/sh/bits/alltypes.h.in:21:TYPEDEF long time_t;
158- * ---
159- *
160- * In order to be compatible with old versions of Musl,
161- * one can recompile druntime with `CRuntime_Musl_Pre_Time64`.
162- */
163- version (D_X32 )
164- alias long time_t ;
165- else version (CRuntime_Musl_Pre_Time64)
166- alias c_long time_t ;
167- else
168- alias long time_t ;
169-
170- alias c_long clock_t ;
171- alias c_ulong pthread_t ;
172- version (D_LP64 )
173- alias c_long ssize_t ;
174- else
175- alias int ssize_t ;
143+ alias slong_t time_t ;
144+ }
176145}
177146else version (Darwin)
178147{
@@ -311,67 +280,6 @@ else version (Solaris)
311280 alias c_long time_t ;
312281 alias uint uid_t ;
313282}
314- else version (CRuntime_Bionic )
315- {
316- alias c_ulong blkcnt_t ;
317- alias c_ulong blksize_t ;
318- alias size_t dev_t ;
319- alias uint gid_t ;
320- alias c_ulong ino_t ;
321- alias c_long off_t ;
322- alias int pid_t ;
323- alias c_long ssize_t ;
324- alias c_long time_t ;
325- alias uint uid_t ;
326-
327- version (D_LP64 )
328- {
329- alias uint mode_t ;
330- alias uint nlink_t ;
331- }
332- else
333- {
334- alias ushort mode_t ;
335- alias ushort nlink_t ;
336- }
337- }
338- else version (CRuntime_UClibc )
339- {
340- static if ( __USE_FILE_OFFSET64 )
341- {
342- alias long blkcnt_t ;
343- alias ulong ino_t ;
344- alias long off_t ;
345- }
346- else
347- {
348- alias slong_t blkcnt_t ;
349- alias ulong_t ino_t ;
350- alias slong_t off_t ;
351- }
352-
353- version (D_LP64 )
354- {
355- alias ino_t ino64_t;
356- alias off_t off64_t;
357- }
358- else
359- {
360- alias ulong ino64_t;
361- alias long off64_t;
362- }
363-
364- alias slong_t blksize_t ;
365- alias c_ulong dev_t ;
366- alias uint gid_t ;
367- alias uint mode_t ;
368- alias uint nlink_t ;
369- alias int pid_t ;
370- // size_t (defined in core.stdc.stddef)
371- alias c_long ssize_t ;
372- alias slong_t time_t ;
373- alias uint uid_t ;
374- }
375283else
376284{
377285 static assert (false , " Unsupported platform" );
@@ -390,7 +298,7 @@ suseconds_t
390298useconds_t
391299*/
392300
393- version (CRuntime_Glibc )
301+ version (linux )
394302{
395303 static if ( __USE_FILE_OFFSET64 )
396304 {
@@ -483,53 +391,6 @@ else version (Solaris)
483391 alias id_t zoneid_t;
484392 alias id_t ctid_t;
485393}
486- else version (CRuntime_Bionic )
487- {
488- alias c_ulong fsblkcnt_t;
489- alias c_ulong fsfilcnt_t;
490- alias c_long clock_t ;
491- alias uint id_t ;
492- alias int key_t ;
493- alias c_long suseconds_t ;
494- alias uint useconds_t ; // Updated in Lollipop
495- }
496- else version (CRuntime_Musl )
497- {
498- static if ( __USE_FILE_OFFSET64 )
499- {
500- alias ulong fsblkcnt_t;
501- alias ulong fsfilcnt_t;
502- }
503- else
504- {
505- alias ulong_t fsblkcnt_t;
506- alias ulong_t fsfilcnt_t;
507- }
508- alias uint mode_t ;
509- alias uint id_t ;
510- version (D_X32 )
511- alias long susseconds_t;
512- else
513- alias c_long suseconds_t ;
514- }
515- else version (CRuntime_UClibc )
516- {
517- static if ( __USE_FILE_OFFSET64 )
518- {
519- alias ulong fsblkcnt_t;
520- alias ulong fsfilcnt_t;
521- }
522- else
523- {
524- alias ulong_t fsblkcnt_t;
525- alias ulong_t fsfilcnt_t;
526- }
527- alias slong_t clock_t ;
528- alias uint id_t ;
529- alias int key_t ;
530- alias slong_t suseconds_t ;
531- alias uint useconds_t ;
532- }
533394else
534395{
535396 static assert (false , " Unsupported platform" );
@@ -896,6 +757,8 @@ else version (CRuntime_Musl)
896757 }
897758
898759 alias int pthread_once_t ;
760+
761+ alias c_ulong pthread_t ;
899762}
900763else version (Darwin)
901764{
0 commit comments