1 macro_rules! expand_align {
2     () => {
3         s! {
4             pub struct pthread_mutexattr_t {
5                 #[cfg(any(target_arch = "x86_64",
6                           target_arch = "powerpc64",
7                           target_arch = "mips64",
8                           target_arch = "s390x",
9                           target_arch = "sparc64",
10                           all(target_arch = "aarch64",
11                               target_env = "musl")))]
12                 __align: [::c_int; 0],
13                 #[cfg(not(any(target_arch = "x86_64",
14                               target_arch = "powerpc64",
15                               target_arch = "mips64",
16                               target_arch = "s390x",
17                               target_arch = "sparc64",
18                               all(target_arch = "aarch64",
19                                   target_env = "musl"))))]
20                 __align: [::c_long; 0],
21                 size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T],
22             }
23 
24             pub struct pthread_rwlockattr_t {
25                 #[cfg(target_env = "musl")]
26                 __align: [::c_int; 0],
27                 #[cfg(not(target_env = "musl"))]
28                 __align: [::c_long; 0],
29                 size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T],
30             }
31 
32             pub struct pthread_condattr_t {
33                 __align: [::c_int; 0],
34                 size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T],
35             }
36         }
37 
38         s_no_extra_traits! {
39             pub struct pthread_cond_t {
40                 #[cfg(target_env = "musl")]
41                 __align: [*const ::c_void; 0],
42                 #[cfg(not(target_env = "musl"))]
43                 __align: [::c_longlong; 0],
44                 size: [u8; ::__SIZEOF_PTHREAD_COND_T],
45             }
46 
47             pub struct pthread_mutex_t {
48                 #[cfg(any(target_arch = "mips",
49                           target_arch = "arm",
50                           target_arch = "powerpc",
51                           all(target_arch = "x86_64",
52                               target_pointer_width = "32")))]
53                 __align: [::c_long; 0],
54                 #[cfg(not(any(target_arch = "mips",
55                               target_arch = "arm",
56                               target_arch = "powerpc",
57                               all(target_arch = "x86_64",
58                                   target_pointer_width = "32"))))]
59                 __align: [::c_longlong; 0],
60                 size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T],
61             }
62 
63             pub struct pthread_rwlock_t {
64                 #[cfg(any(target_arch = "mips",
65                           target_arch = "arm",
66                           target_arch = "powerpc",
67                           all(target_arch = "x86_64",
68                               target_pointer_width = "32")))]
69                 __align: [::c_long; 0],
70                 #[cfg(not(any(target_arch = "mips",
71                               target_arch = "arm",
72                               target_arch = "powerpc",
73                               all(target_arch = "x86_64",
74                                   target_pointer_width = "32"))))]
75                 __align: [::c_longlong; 0],
76                 size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
77             }
78         }
79     }
80 }
81