diff --git a/Cargo.toml b/Cargo.toml index 662d0ad65723efaf9ab81366598ba03c8054dc72..c1ff5da233e8274a91b928e699a74c3e6755939e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,6 +20,7 @@ appveyor = { repository = "rust-lang/libc", project_name = "rust-lang-libs/libc" [features] default = ["use_std"] use_std = [] +align = [] [workspace] members = ["libc-test"] diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 0aac98531a9215be21038da444f5acd9235827b5..267b98add97841cbb844677e3db7ea9ac5217ef4 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -166,8 +166,10 @@ s! { pub s_addr: in_addr_t, } + #[cfg_attr(feature = "align", repr(align(4)))] pub struct in6_addr { pub s6_addr: [u8; 16], + #[cfg(not(feature = "align"))] __align: [u32; 0], } diff --git a/src/redox/net.rs b/src/redox/net.rs index a545ba47951e05ce0f29c18004fac51da5a337fa..fcbb181c3297db5abcf16bbaecaf135d79b7fd41 100644 --- a/src/redox/net.rs +++ b/src/redox/net.rs @@ -9,8 +9,10 @@ s! { pub s_addr: in_addr_t, } + #[cfg_attr(feature = "align", repr(align(4)))] pub struct in6_addr { pub s6_addr: [u8; 16], + #[cfg(not(feature = "align"))] __align: [u32; 0], } diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 89cc1e33483b428a17fb5b62fb01d5e8ec1c1298..d0e054cc273b91ab9b2a9c339f9278b7c0245535 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -104,8 +104,10 @@ s! { pub s_addr: in_addr_t, } + #[cfg_attr(feature = "align", repr(align(4)))] pub struct in6_addr { pub s6_addr: [u8; 16], + #[cfg(not(feature = "align"))] __align: [u32; 0], } diff --git a/src/unix/uclibc/x86_64/mod.rs b/src/unix/uclibc/x86_64/mod.rs index bfd46447fdb60a6c18d57fd9de3e8bbdf152cb3c..a8d5854348cf2e001356c4b929601e8d2c4b28e1 100644 --- a/src/unix/uclibc/x86_64/mod.rs +++ b/src/unix/uclibc/x86_64/mod.rs @@ -133,6 +133,7 @@ s! { // // pub struct in6_addr { // pub s6_addr: [u8; 16], +// #[cfg(not(feature = "align"))] // __align: [u32; 0], // }