1 macro_rules! expand_align {
2     () => {
3         s! {
4             #[cfg_attr(any(target_pointer_width = "32",
5                            target_arch = "x86_64",
6                            target_arch = "powerpc64",
7                            target_arch = "mips64",
8                            target_arch = "s390x",
9                            target_arch = "sparc64",
10                            target_arch = "aarch64"),
11                        repr(align(4)))]
12             #[cfg_attr(not(any(target_pointer_width = "32",
13                                target_arch = "x86_64",
14                                target_arch = "powerpc64",
15                                target_arch = "mips64",
16                                target_arch = "s390x",
17                                target_arch = "sparc64",
18                                target_arch = "aarch64")),
19                        repr(align(8)))]
20             pub struct pthread_mutexattr_t {
21                 #[doc(hidden)]
22                 size: [u8; ::__SIZEOF_PTHREAD_MUTEXATTR_T],
23             }
24 
25             #[cfg_attr(any(target_env = "musl", target_pointer_width = "32"),
26                        repr(align(4)))]
27             #[cfg_attr(all(not(target_env = "musl"),
28                            target_pointer_width = "64"),
29                        repr(align(8)))]
30             pub struct pthread_rwlockattr_t {
31                 #[doc(hidden)]
32                 size: [u8; ::__SIZEOF_PTHREAD_RWLOCKATTR_T],
33             }
34 
35             #[repr(align(4))]
36             pub struct pthread_condattr_t {
37                 #[doc(hidden)]
38                 size: [u8; ::__SIZEOF_PTHREAD_CONDATTR_T],
39             }
40         }
41 
42         s_no_extra_traits! {
43             #[cfg_attr(all(target_env = "musl",
44                            target_pointer_width = "32"),
45                        repr(align(4)))]
46             #[cfg_attr(all(target_env = "musl",
47                            target_pointer_width = "64"),
48                        repr(align(8)))]
49             #[cfg_attr(all(not(target_env = "musl"),
50                            target_arch = "x86"),
51                        repr(align(4)))]
52             #[cfg_attr(all(not(target_env = "musl"),
53                            not(target_arch = "x86")),
54                        repr(align(8)))]
55             pub struct pthread_cond_t {
56                 #[doc(hidden)]
57                 size: [u8; ::__SIZEOF_PTHREAD_COND_T],
58             }
59 
60             #[cfg_attr(all(target_pointer_width = "32",
61                            any(target_arch = "mips",
62                                target_arch = "arm",
63                                target_arch = "hexagon",
64                                target_arch = "powerpc",
65                                target_arch = "sparc",
66                                target_arch = "x86_64",
67                                target_arch = "x86")),
68                        repr(align(4)))]
69             #[cfg_attr(any(target_pointer_width = "64",
70                            not(any(target_arch = "mips",
71                                    target_arch = "arm",
72                                    target_arch = "hexagon",
73                                    target_arch = "powerpc",
74                                    target_arch = "sparc",
75                                    target_arch = "x86_64",
76                                    target_arch = "x86"))),
77                        repr(align(8)))]
78             pub struct pthread_mutex_t {
79                 #[doc(hidden)]
80                 size: [u8; ::__SIZEOF_PTHREAD_MUTEX_T],
81             }
82 
83             #[cfg_attr(all(target_pointer_width = "32",
84                            any(target_arch = "mips",
85                                target_arch = "arm",
86                                target_arch = "hexagon",
87                                target_arch = "powerpc",
88                                target_arch = "sparc",
89                                target_arch = "x86_64",
90                                target_arch = "x86")),
91                        repr(align(4)))]
92             #[cfg_attr(any(target_pointer_width = "64",
93                            not(any(target_arch = "mips",
94                                    target_arch = "arm",
95                                    target_arch = "hexagon",
96                                    target_arch = "powerpc",
97                                    target_arch = "sparc",
98                                    target_arch = "x86_64",
99                                    target_arch = "x86"))),
100                        repr(align(8)))]
101             pub struct pthread_rwlock_t {
102                 size: [u8; ::__SIZEOF_PTHREAD_RWLOCK_T],
103             }
104         }
105     };
106 }
107