diff options
author | Linus Färnstrand <faern@faern.net> | 2018-07-26 20:56:56 +0200 |
---|---|---|
committer | Linus Färnstrand <faern@faern.net> | 2018-07-29 18:54:45 +0200 |
commit | 41ca29f709edf9c7460fe9fc8951116c118e1b99 (patch) | |
tree | 4441a266a9bb413114b032db09c5131f9e18fe8f | |
parent | 5f38367da385b9e602a2d42833912ec927890a31 (diff) | |
download | rust-libc-41ca29f709edf9c7460fe9fc8951116c118e1b99.tar.gz |
Add align feature to sem_t struct
-rw-r--r-- | src/unix/notbsd/linux/mips/mod.rs | 5 | ||||
-rw-r--r-- | src/unix/notbsd/linux/other/mod.rs | 5 | ||||
-rw-r--r-- | src/unix/notbsd/linux/s390x.rs | 5 | ||||
-rw-r--r-- | src/unix/uclibc/mips/mips32.rs | 5 | ||||
-rw-r--r-- | src/unix/uclibc/mips/mips64.rs | 5 | ||||
-rw-r--r-- | src/unix/uclibc/x86_64/mod.rs | 5 |
6 files changed, 30 insertions, 0 deletions
diff --git a/src/unix/notbsd/linux/mips/mod.rs b/src/unix/notbsd/linux/mips/mod.rs index 833a3210cc..4c14d12ebc 100644 --- a/src/unix/notbsd/linux/mips/mod.rs +++ b/src/unix/notbsd/linux/mips/mod.rs @@ -21,11 +21,16 @@ s! { } // FIXME this is actually a union + #[cfg_attr(all(feature = "align", target_pointer_width = "32"), + repr(align(4)))] + #[cfg_attr(all(feature = "align", target_pointer_width = "64"), + repr(align(8)))] pub struct sem_t { #[cfg(target_pointer_width = "32")] __size: [::c_char; 16], #[cfg(target_pointer_width = "64")] __size: [::c_char; 32], + #[cfg(not(feature = "align"))] __align: [::c_long; 0], } diff --git a/src/unix/notbsd/linux/other/mod.rs b/src/unix/notbsd/linux/other/mod.rs index 6a326dd20e..93b710b8df 100644 --- a/src/unix/notbsd/linux/other/mod.rs +++ b/src/unix/notbsd/linux/other/mod.rs @@ -158,11 +158,16 @@ s! { } // FIXME this is actually a union + #[cfg_attr(all(feature = "align", target_pointer_width = "32"), + repr(align(4)))] + #[cfg_attr(all(feature = "align", target_pointer_width = "64"), + repr(align(8)))] pub struct sem_t { #[cfg(target_pointer_width = "32")] __size: [::c_char; 16], #[cfg(target_pointer_width = "64")] __size: [::c_char; 32], + #[cfg(not(feature = "align"))] __align: [::c_long; 0], } diff --git a/src/unix/notbsd/linux/s390x.rs b/src/unix/notbsd/linux/s390x.rs index 61745a36cf..5593222ea6 100644 --- a/src/unix/notbsd/linux/s390x.rs +++ b/src/unix/notbsd/linux/s390x.rs @@ -245,8 +245,13 @@ s! { } // FIXME this is actually a union + #[cfg_attr(all(feature = "align", target_pointer_width = "32"), + repr(align(4)))] + #[cfg_attr(all(feature = "align", target_pointer_width = "64"), + repr(align(8)))] pub struct sem_t { __size: [::c_char; 32], + #[cfg(not(feature = "align"))] __align: [::c_long; 0], } diff --git a/src/unix/uclibc/mips/mips32.rs b/src/unix/uclibc/mips/mips32.rs index 7ad547c0ae..dcbfcf8ff2 100644 --- a/src/unix/uclibc/mips/mips32.rs +++ b/src/unix/uclibc/mips/mips32.rs @@ -222,11 +222,16 @@ s! { } // FIXME this is actually a union + #[cfg_attr(all(feature = "align", target_pointer_width = "32"), + repr(align(4)))] + #[cfg_attr(all(feature = "align", target_pointer_width = "64"), + repr(align(8)))] pub struct sem_t { #[cfg(target_pointer_width = "32")] __size: [::c_char; 16], #[cfg(target_pointer_width = "64")] __size: [::c_char; 32], + #[cfg(not(feature = "align"))] __align: [::c_long; 0], } } diff --git a/src/unix/uclibc/mips/mips64.rs b/src/unix/uclibc/mips/mips64.rs index 79bac1fa8a..e35938b1fc 100644 --- a/src/unix/uclibc/mips/mips64.rs +++ b/src/unix/uclibc/mips/mips64.rs @@ -188,8 +188,13 @@ s! { } // FIXME this is actually a union + #[cfg_attr(all(feature = "align", target_pointer_width = "32"), + repr(align(4)))] + #[cfg_attr(all(feature = "align", target_pointer_width = "64"), + repr(align(8)))] pub struct sem_t { __size: [::c_char; 32], + #[cfg(not(feature = "align"))] __align: [::c_long; 0], } } diff --git a/src/unix/uclibc/x86_64/mod.rs b/src/unix/uclibc/x86_64/mod.rs index a8d5854348..dac910773b 100644 --- a/src/unix/uclibc/x86_64/mod.rs +++ b/src/unix/uclibc/x86_64/mod.rs @@ -205,11 +205,16 @@ s! { pub c_cc: [::cc_t; ::NCCS], } + #[cfg_attr(all(feature = "align", target_pointer_width = "32"), + repr(align(4)))] + #[cfg_attr(all(feature = "align", target_pointer_width = "64"), + repr(align(8)))] pub struct sem_t { // ToDo #[cfg(target_pointer_width = "32")] __size: [::c_char; 16], #[cfg(target_pointer_width = "64")] __size: [::c_char; 32], + #[cfg(not(feature = "align"))] __align: [::c_long; 0], } |