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],
 //    }