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                           target_arch = "sparc",
52                           all(target_arch = "x86_64",
53                               target_pointer_width = "32")))]
54                 __align: [::c_long; 0],
55                 #[cfg(not(any(target_arch = "mips",
56                               target_arch = "arm",
57                               target_arch = "powerpc",
58                               target_arch = "sparc",
59                               all(target_arch = "x86_64",
60                                   target_pointer_width = "32"))))]
61                 __align: [::c_longlong; 0],
62                 size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T],
63             }
64 
65             pub struct pthread_rwlock_t {
66                 #[cfg(any(target_arch = "mips",
67                           target_arch = "arm",
68                           target_arch = "powerpc",
69                           target_arch = "sparc",
70                           all(target_arch = "x86_64",
71                               target_pointer_width = "32")))]
72                 __align: [::c_long; 0],
73                 #[cfg(not(any(target_arch = "mips",
74                               target_arch = "arm",
75                               target_arch = "powerpc",
76                               target_arch = "sparc",
77                               all(target_arch = "x86_64",
78                                   target_pointer_width = "32"))))]
79                 __align: [::c_longlong; 0],
80                 size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
81             }
82         }
83     };
84 }
85