1- #define __LITTLE_ENDIAN 1234
2- #define __BIG_ENDIAN 4321
3- #define __USE_TIME_BITS64 1
4-
5- #define __BYTE_ORDER __LITTLE_ENDIAN
6-
7- #define __LONG_MAX __LONG_MAX__
8-
1+ /*
2+ * The .h version of this file is generated from the .h.in.
3+ * See update_alltypes.sh.
4+ */
95#define _Addr __PTRDIFF_TYPE__
106#define _Int64 __INT64_TYPE__
117#define _Reg __PTRDIFF_TYPE__
128
13- #if __GNUC__ >= 3
14- #if defined(__NEED_va_list ) && !defined(__DEFINED_va_list )
15- typedef __builtin_va_list va_list ;
16- #define __DEFINED_va_list
17- #endif
9+ #define __BYTE_ORDER 1234
10+ #define __LONG_MAX __LONG_MAX__
1811
19- #if defined(__NEED___isoc_va_list ) && !defined(__DEFINED___isoc_va_list )
20- typedef __builtin_va_list __isoc_va_list ;
21- #define __DEFINED___isoc_va_list
12+ #ifndef __cplusplus
13+ #if defined(__NEED_wchar_t ) && !defined(__DEFINED_wchar_t )
14+ typedef __WCHAR_TYPE__ wchar_t ;
15+ #define __DEFINED_wchar_t
2216#endif
2317
24- #else
25- #if defined(__NEED_va_list ) && !defined(__DEFINED_va_list )
26- typedef struct __va_list * va_list ;
27- #define __DEFINED_va_list
2818#endif
29-
30- #if defined(__NEED___isoc_va_list ) && !defined(__DEFINED___isoc_va_list )
31- typedef struct __va_list * __isoc_va_list ;
32- #define __DEFINED___isoc_va_list
19+ #if defined(__NEED_wint_t ) && !defined(__DEFINED_wint_t )
20+ typedef __WINT_TYPE__ wint_t ;
21+ #define __DEFINED_wint_t
3322#endif
3423
24+
25+ // XXX EMSCRIPTEN: ensure it's always 32-bits even in wasm64
26+ #if defined(__NEED_blkcnt_t ) && !defined(__DEFINED_blkcnt_t )
27+ typedef int blkcnt_t ;
28+ #define __DEFINED_blkcnt_t
3529#endif
3630
37- #ifndef __cplusplus
38- #ifdef __WCHAR_TYPE__
39- #if defined(__NEED_wchar_t ) && !defined(__DEFINED_wchar_t )
40- typedef __WCHAR_TYPE__ wchar_t ;
41- #define __DEFINED_wchar_t
31+ #if defined(__NEED_blksize_t ) && !defined(__DEFINED_blksize_t )
32+ typedef int blksize_t ;
33+ #define __DEFINED_blksize_t
4234#endif
4335
44- #else
45- #if defined(__NEED_wchar_t ) && !defined(__DEFINED_wchar_t )
46- typedef int wchar_t ;
47- #define __DEFINED_wchar_t
36+ #if defined(__NEED_clock_t ) && !defined(__DEFINED_clock_t )
37+ typedef int clock_t ;
38+ #define __DEFINED_clock_t
4839#endif
4940
41+ #if defined(__NEED_dev_t ) && !defined(__DEFINED_dev_t )
42+ typedef unsigned int dev_t ;
43+ #define __DEFINED_dev_t
5044#endif
45+
46+ #if defined(__NEED_suseconds_t ) && !defined(__DEFINED_suseconds_t )
47+ typedef int suseconds_t ;
48+ #define __DEFINED_suseconds_t
5149#endif
52- #if defined(__NEED_wint_t ) && !defined(__DEFINED_wint_t )
53- typedef __WINT_TYPE__ wint_t ;
54- #define __DEFINED_wint_t
50+
51+ #if defined(__NEED_wctype_t ) && !defined(__DEFINED_wctype_t )
52+ typedef unsigned int wctype_t ;
53+ #define __DEFINED_wctype_t
5554#endif
5655
5756
58- #if defined(__FLT_EVAL_METHOD__ ) && __FLT_EVAL_METHOD__ == 0
5957#if defined(__NEED_float_t ) && !defined(__DEFINED_float_t )
6058typedef float float_t ;
6159#define __DEFINED_float_t
@@ -66,76 +64,54 @@ typedef double double_t;
6664#define __DEFINED_double_t
6765#endif
6866
69- #else
70- #if defined(__NEED_float_t ) && !defined(__DEFINED_float_t )
71- typedef long double float_t ;
72- #define __DEFINED_float_t
73- #endif
7467
75- #if defined(__NEED_double_t ) && !defined(__DEFINED_double_t )
76- typedef long double double_t ;
77- #define __DEFINED_double_t
68+ #ifndef __cplusplus
69+ #if defined(__NEED_max_align_t ) && !defined(__DEFINED_max_align_t )
70+ typedef struct { _Alignas(8 ) long long __ll ; long double __ld ; } max_align_t ;
71+ #define __DEFINED_max_align_t
7872#endif
7973
74+ #elif defined(__GNUC__ )
75+ #if defined(__NEED_max_align_t ) && !defined(__DEFINED_max_align_t )
76+ typedef struct { __attribute__((__aligned__ (8 ))) long long __ll ; long double __ld ; } max_align_t ;
77+ #define __DEFINED_max_align_t
8078#endif
8179
82- #if defined(__NEED_time_t ) && !defined(__DEFINED_time_t )
83- typedef _Int64 time_t ;
84- #define __DEFINED_time_t
80+ #else
81+ #if defined(__NEED_max_align_t ) && !defined(__DEFINED_max_align_t )
82+ typedef struct { alignas(8 ) long long __ll ; long double __ld ; } max_align_t ;
83+ #define __DEFINED_max_align_t
8584#endif
8685
87- #if defined(__NEED_suseconds_t ) && !defined(__DEFINED_suseconds_t )
88- typedef int suseconds_t ; /* XXX EMSCRIPTEN: ensure it's always 32-bits even in wasm64 */
89- #define __DEFINED_suseconds_t
9086#endif
9187
92-
88+ // For canvas transfer implementation in Emscripten, use an extra control field
89+ // to pass a pointer to a string denoting the WebGL canvases to transfer.
9390#if defined(__NEED_pthread_attr_t ) && !defined(__DEFINED_pthread_attr_t )
94- typedef struct {
95- union {
96- int __i [10 ];
97- volatile int __vi [10 ];
98- unsigned long __s [10 ];
99- } __u ;
100- #ifdef __EMSCRIPTEN__
101- // For canvas transfer implementation in Emscripten, use an extra control field
102- // to pass a pointer to a string denoting the WebGL canvases to transfer.
103- const char * _a_transferredcanvases ;
104- #endif
105- } pthread_attr_t ;
91+ typedef struct { union { int __i [10 ]; volatile int __vi [10 ]; unsigned long __s [10 ]; } __u ; const char * _a_transferredcanvases ; } pthread_attr_t ;
10692#define __DEFINED_pthread_attr_t
10793#endif
10894
95+
96+ // TODO(kleisauke): Remove these two typedefs.
10997#if defined(__NEED_pthread_mutex_t ) && !defined(__DEFINED_pthread_mutex_t )
110- typedef struct { union { int __i [6 ]; volatile int __vi [6 ]; volatile void * __p [6 ]; } __u ; } pthread_mutex_t ;
98+ typedef struct { union { int __i [6 ]; volatile int __vi [6 ]; volatile void * /*volatile*/ __p [6 ]; } __u ; } pthread_mutex_t ;
11199#define __DEFINED_pthread_mutex_t
112100#endif
113101
114102#if defined(__NEED_mtx_t ) && !defined(__DEFINED_mtx_t )
115- typedef struct { union { int __i [6 ]; volatile int __vi [6 ]; volatile void * __p [6 ]; } __u ; } mtx_t ;
103+ typedef struct { union { int __i [6 ]; volatile int __vi [6 ]; volatile void * /*volatile*/ __p [6 ]; } __u ; } mtx_t ;
116104#define __DEFINED_mtx_t
117105#endif
118106
119- #if defined(__NEED_pthread_cond_t ) && !defined(__DEFINED_pthread_cond_t )
120- typedef struct { union { int __i [12 ]; volatile int __vi [12 ]; void * __p [12 ]; } __u ; } pthread_cond_t ;
121- #define __DEFINED_pthread_cond_t
122- #endif
123-
124- #if defined(__NEED_cnd_t ) && !defined(__DEFINED_cnd_t )
125- typedef struct { union { int __i [12 ]; volatile int __vi [12 ]; void * __p [12 ]; } __u ; } cnd_t ;
126- #define __DEFINED_cnd_t
127- #endif
128-
129- #if defined(__NEED_pthread_rwlock_t ) && !defined(__DEFINED_pthread_rwlock_t )
130- typedef struct { union { int __i [sizeof (long )== 8 ?14 :8 ]; volatile int __vi [sizeof (long )== 8 ?14 :8 ]; void * __p [sizeof (long )== 8 ?7 :8 ]; } __u ; } pthread_rwlock_t ;
131- #define __DEFINED_pthread_rwlock_t
132- #endif
133-
134- #if defined(__NEED_pthread_barrier_t ) && !defined(__DEFINED_pthread_barrier_t )
135- typedef struct { union { int __i [5 ]; volatile int __vi [5 ]; void * __p [5 ]; } __u ; } pthread_barrier_t ;
136- #define __DEFINED_pthread_barrier_t
137- #endif
138107
108+ // END EMSCRIPTEN-SPECIFIC DEFINITIONS
109+ //
110+ // Below here are the shared musl definitions. The emscripten-specific definitions above will take precedence
111+ // due to the `__DEFINED_` macro system.
112+ #define __LITTLE_ENDIAN 1234
113+ #define __BIG_ENDIAN 4321
114+ #define __USE_TIME_BITS64 1
139115
140116#if defined(__NEED_size_t ) && !defined(__DEFINED_size_t )
141117typedef unsigned _Addr size_t ;
@@ -172,29 +148,39 @@ typedef _Reg register_t;
172148#define __DEFINED_register_t
173149#endif
174150
151+ #if defined(__NEED_time_t ) && !defined(__DEFINED_time_t )
152+ typedef _Int64 time_t ;
153+ #define __DEFINED_time_t
154+ #endif
155+
156+ #if defined(__NEED_suseconds_t ) && !defined(__DEFINED_suseconds_t )
157+ typedef _Int64 suseconds_t ;
158+ #define __DEFINED_suseconds_t
159+ #endif
160+
175161
176162#if defined(__NEED_int8_t ) && !defined(__DEFINED_int8_t )
177163typedef signed char int8_t ;
178164#define __DEFINED_int8_t
179165#endif
180166
181167#if defined(__NEED_int16_t ) && !defined(__DEFINED_int16_t )
182- typedef short int16_t ;
168+ typedef signed short int16_t ;
183169#define __DEFINED_int16_t
184170#endif
185171
186172#if defined(__NEED_int32_t ) && !defined(__DEFINED_int32_t )
187- typedef int int32_t ;
173+ typedef signed int int32_t ;
188174#define __DEFINED_int32_t
189175#endif
190176
191177#if defined(__NEED_int64_t ) && !defined(__DEFINED_int64_t )
192- typedef _Int64 int64_t ;
178+ typedef signed _Int64 int64_t ;
193179#define __DEFINED_int64_t
194180#endif
195181
196182#if defined(__NEED_intmax_t ) && !defined(__DEFINED_intmax_t )
197- typedef _Int64 intmax_t ;
183+ typedef signed _Int64 intmax_t ;
198184#define __DEFINED_intmax_t
199185#endif
200186
@@ -250,17 +236,17 @@ typedef unsigned _Int64 ino_t;
250236#endif
251237
252238#if defined(__NEED_dev_t ) && !defined(__DEFINED_dev_t )
253- typedef unsigned int dev_t ;
239+ typedef unsigned _Int64 dev_t ;
254240#define __DEFINED_dev_t
255241#endif
256242
257243#if defined(__NEED_blksize_t ) && !defined(__DEFINED_blksize_t )
258- typedef int blksize_t ; /* XXX EMSCRIPTEN: ensure it's always 32-bits even in wasm64 */
244+ typedef long blksize_t ;
259245#define __DEFINED_blksize_t
260246#endif
261247
262248#if defined(__NEED_blkcnt_t ) && !defined(__DEFINED_blkcnt_t )
263- typedef int blkcnt_t ;
249+ typedef _Int64 blkcnt_t ;
264250#define __DEFINED_blkcnt_t
265251#endif
266252
@@ -274,13 +260,14 @@ typedef unsigned _Int64 fsfilcnt_t;
274260#define __DEFINED_fsfilcnt_t
275261#endif
276262
263+
277264#if defined(__NEED_wint_t ) && !defined(__DEFINED_wint_t )
278265typedef unsigned wint_t ;
279266#define __DEFINED_wint_t
280267#endif
281268
282269#if defined(__NEED_wctype_t ) && !defined(__DEFINED_wctype_t )
283- typedef unsigned int wctype_t ; /* XXX EMSCRIPTEN: ensure it's always 32-bits even in wasm64 */
270+ typedef unsigned long wctype_t ;
284271#define __DEFINED_wctype_t
285272#endif
286273
@@ -296,22 +283,17 @@ typedef int clockid_t;
296283#endif
297284
298285#if defined(__NEED_clock_t ) && !defined(__DEFINED_clock_t )
299- typedef int clock_t ; /* XXX EMSCRIPTEN: ensure it's always 32-bits even in wasm64 */
286+ typedef long clock_t ;
300287#define __DEFINED_clock_t
301288#endif
302289
303- #if defined(__NEED_max_align_t ) && !defined(__DEFINED_max_align_t )
304- typedef struct { long long __ll ; long double __ld ; } max_align_t ;
305- #define __DEFINED_max_align_t
306- #endif
307-
308290#if defined(__NEED_struct_timeval ) && !defined(__DEFINED_struct_timeval )
309291struct timeval { time_t tv_sec ; suseconds_t tv_usec ; };
310292#define __DEFINED_struct_timeval
311293#endif
312294
313295#if defined(__NEED_struct_timespec ) && !defined(__DEFINED_struct_timespec )
314- struct timespec { time_t tv_sec ; long tv_nsec ; };
296+ struct timespec { time_t tv_sec ; int : 8 * ( sizeof ( time_t ) - sizeof ( long )) * ( __BYTE_ORDER == 4321 ); long tv_nsec ; int : 8 * ( sizeof ( time_t ) - sizeof ( long )) * ( __BYTE_ORDER != 4321 ) ; };
315297#define __DEFINED_struct_timespec
316298#endif
317299
@@ -396,12 +378,28 @@ typedef struct { unsigned __attr[2]; } pthread_rwlockattr_t;
396378#endif
397379
398380
381+ #if defined(__NEED_struct__IO_FILE ) && !defined(__DEFINED_struct__IO_FILE )
382+ struct _IO_FILE { char __x ; };
383+ #define __DEFINED_struct__IO_FILE
384+ #endif
385+
399386#if defined(__NEED_FILE ) && !defined(__DEFINED_FILE )
400387typedef struct _IO_FILE FILE ;
401388#define __DEFINED_FILE
402389#endif
403390
404391
392+ #if defined(__NEED_va_list ) && !defined(__DEFINED_va_list )
393+ typedef __builtin_va_list va_list ;
394+ #define __DEFINED_va_list
395+ #endif
396+
397+ #if defined(__NEED___isoc_va_list ) && !defined(__DEFINED___isoc_va_list )
398+ typedef __builtin_va_list __isoc_va_list ;
399+ #define __DEFINED___isoc_va_list
400+ #endif
401+
402+
405403#if defined(__NEED_mbstate_t ) && !defined(__DEFINED_mbstate_t )
406404typedef struct __mbstate_t { unsigned __opaque1 , __opaque2 ; } mbstate_t ;
407405#define __DEFINED_mbstate_t
@@ -443,6 +441,42 @@ typedef unsigned short sa_family_t;
443441#endif
444442
445443
444+ #if defined(__NEED_pthread_attr_t ) && !defined(__DEFINED_pthread_attr_t )
445+ typedef struct { union { int __i [sizeof (long )== 8 ?14 :9 ]; volatile int __vi [sizeof (long )== 8 ?14 :9 ]; unsigned long __s [sizeof (long )== 8 ?7 :9 ]; } __u ; } pthread_attr_t ;
446+ #define __DEFINED_pthread_attr_t
447+ #endif
448+
449+ #if defined(__NEED_pthread_mutex_t ) && !defined(__DEFINED_pthread_mutex_t )
450+ typedef struct { union { int __i [sizeof (long )== 8 ?10 :6 ]; volatile int __vi [sizeof (long )== 8 ?10 :6 ]; volatile void * volatile __p [sizeof (long )== 8 ?5 :6 ]; } __u ; } pthread_mutex_t ;
451+ #define __DEFINED_pthread_mutex_t
452+ #endif
453+
454+ #if defined(__NEED_mtx_t ) && !defined(__DEFINED_mtx_t )
455+ typedef struct { union { int __i [sizeof (long )== 8 ?10 :6 ]; volatile int __vi [sizeof (long )== 8 ?10 :6 ]; volatile void * volatile __p [sizeof (long )== 8 ?5 :6 ]; } __u ; } mtx_t ;
456+ #define __DEFINED_mtx_t
457+ #endif
458+
459+ #if defined(__NEED_pthread_cond_t ) && !defined(__DEFINED_pthread_cond_t )
460+ typedef struct { union { int __i [12 ]; volatile int __vi [12 ]; void * __p [12 * sizeof (int )/sizeof (void * )]; } __u ; } pthread_cond_t ;
461+ #define __DEFINED_pthread_cond_t
462+ #endif
463+
464+ #if defined(__NEED_cnd_t ) && !defined(__DEFINED_cnd_t )
465+ typedef struct { union { int __i [12 ]; volatile int __vi [12 ]; void * __p [12 * sizeof (int )/sizeof (void * )]; } __u ; } cnd_t ;
466+ #define __DEFINED_cnd_t
467+ #endif
468+
469+ #if defined(__NEED_pthread_rwlock_t ) && !defined(__DEFINED_pthread_rwlock_t )
470+ typedef struct { union { int __i [sizeof (long )== 8 ?14 :8 ]; volatile int __vi [sizeof (long )== 8 ?14 :8 ]; void * __p [sizeof (long )== 8 ?7 :8 ]; } __u ; } pthread_rwlock_t ;
471+ #define __DEFINED_pthread_rwlock_t
472+ #endif
473+
474+ #if defined(__NEED_pthread_barrier_t ) && !defined(__DEFINED_pthread_barrier_t )
475+ typedef struct { union { int __i [sizeof (long )== 8 ?8 :5 ]; volatile int __vi [sizeof (long )== 8 ?8 :5 ]; void * __p [sizeof (long )== 8 ?4 :5 ]; } __u ; } pthread_barrier_t ;
476+ #define __DEFINED_pthread_barrier_t
477+ #endif
478+
479+
446480#undef _Addr
447481#undef _Int64
448482#undef _Reg
0 commit comments