summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/fuchsia/mod.rs2
-rw-r--r--src/unix/bsd/apple/b32/align.rs3
-rw-r--r--src/unix/bsd/apple/b32/mod.rs (renamed from src/unix/bsd/apple/b32.rs)7
-rw-r--r--src/unix/bsd/apple/b64/align.rs3
-rw-r--r--src/unix/bsd/apple/b64/mod.rs (renamed from src/unix/bsd/apple/b64.rs)7
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/mod.rs2
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs3
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs (renamed from src/unix/bsd/freebsdlike/freebsd/x86_64.rs)7
-rw-r--r--src/unix/bsd/freebsdlike/mod.rs12
-rw-r--r--src/unix/bsd/mod.rs4
-rw-r--r--src/unix/bsd/netbsdlike/netbsd/mod.rs8
-rw-r--r--src/unix/linux_like/android/b32/x86/align.rs3
-rw-r--r--src/unix/linux_like/android/b32/x86/mod.rs (renamed from src/unix/linux_like/android/b32/x86.rs)7
-rw-r--r--src/unix/linux_like/android/b64/aarch64/align.rs3
-rw-r--r--src/unix/linux_like/android/b64/aarch64/mod.rs (renamed from src/unix/linux_like/android/b64/aarch64.rs)7
-rw-r--r--src/unix/linux_like/android/b64/x86_64/align.rs3
-rw-r--r--src/unix/linux_like/android/b64/x86_64/mod.rs (renamed from src/unix/linux_like/android/b64/x86_64.rs)7
-rw-r--r--src/unix/linux_like/emscripten/align.rs4
-rw-r--r--src/unix/linux_like/linux/gnu/b32/arm/align.rs3
-rw-r--r--src/unix/linux_like/linux/gnu/b32/arm/mod.rs (renamed from src/unix/linux_like/linux/gnu/b32/arm.rs)7
-rw-r--r--src/unix/linux_like/linux/gnu/b32/mips/align.rs3
-rw-r--r--src/unix/linux_like/linux/gnu/b32/mips/mod.rs (renamed from src/unix/linux_like/linux/gnu/b32/mips.rs)7
-rw-r--r--src/unix/linux_like/linux/gnu/b32/x86/align.rs3
-rw-r--r--src/unix/linux_like/linux/gnu/b32/x86/mod.rs (renamed from src/unix/linux_like/linux/gnu/b32/x86.rs)7
-rw-r--r--src/unix/linux_like/linux/gnu/b64/aarch64/align.rs3
-rw-r--r--src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs (renamed from src/unix/linux_like/linux/gnu/b64/aarch64.rs)7
-rw-r--r--src/unix/linux_like/linux/gnu/b64/mips64/align.rs3
-rw-r--r--src/unix/linux_like/linux/gnu/b64/mips64/mod.rs (renamed from src/unix/linux_like/linux/gnu/b64/mips64.rs)7
-rw-r--r--src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs3
-rw-r--r--src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs (renamed from src/unix/linux_like/linux/gnu/b64/powerpc64.rs)7
-rw-r--r--src/unix/linux_like/linux/gnu/b64/sparc64/align.rs3
-rw-r--r--src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs (renamed from src/unix/linux_like/linux/gnu/b64/sparc64.rs)7
-rw-r--r--src/unix/linux_like/linux/gnu/b64/x86_64/align.rs3
-rw-r--r--src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs7
-rw-r--r--src/unix/linux_like/linux/mod.rs8
-rw-r--r--src/unix/linux_like/linux/musl/b32/arm/align.rs3
-rw-r--r--src/unix/linux_like/linux/musl/b32/arm/mod.rs (renamed from src/unix/linux_like/linux/musl/b32/arm.rs)7
-rw-r--r--src/unix/linux_like/linux/musl/b32/mips/align.rs3
-rw-r--r--src/unix/linux_like/linux/musl/b32/mips/mod.rs (renamed from src/unix/linux_like/linux/musl/b32/mips.rs)7
-rw-r--r--src/unix/linux_like/linux/musl/b32/x86/align.rs3
-rw-r--r--src/unix/linux_like/linux/musl/b32/x86/mod.rs (renamed from src/unix/linux_like/linux/musl/b32/x86.rs)7
-rw-r--r--src/unix/linux_like/linux/musl/b64/aarch64/align.rs3
-rw-r--r--src/unix/linux_like/linux/musl/b64/aarch64/mod.rs (renamed from src/unix/linux_like/linux/musl/b64/aarch64.rs)7
-rw-r--r--src/unix/linux_like/linux/musl/b64/x86_64/align.rs3
-rw-r--r--src/unix/linux_like/linux/musl/b64/x86_64/mod.rs (renamed from src/unix/linux_like/linux/musl/b64/x86_64.rs)7
-rw-r--r--src/unix/mod.rs16
-rw-r--r--src/unix/solarish/mod.rs8
-rw-r--r--src/unix/uclibc/mod.rs4
-rwxr-xr-xsrc/vxworks/mod.rs2
-rw-r--r--src/windows/gnu/align.rs9
-rw-r--r--src/windows/gnu/mod.rs (renamed from src/windows/gnu.rs)7
51 files changed, 243 insertions, 33 deletions
diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs
index 5d302aaf88..7d23e67106 100644
--- a/src/fuchsia/mod.rs
+++ b/src/fuchsia/mod.rs
@@ -3732,7 +3732,7 @@ extern "C" {
native: ::pthread_t,
value: *mut *mut ::c_void,
) -> ::c_int;
- pub fn pthread_exit(value: *mut ::c_void);
+ pub fn pthread_exit(value: *mut ::c_void) -> !;
pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int;
pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int;
pub fn pthread_attr_setstacksize(
diff --git a/src/unix/bsd/apple/b32/align.rs b/src/unix/bsd/apple/b32/align.rs
new file mode 100644
index 0000000000..ba9bc3ab3e
--- /dev/null
+++ b/src/unix/bsd/apple/b32/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f64; 2]);
diff --git a/src/unix/bsd/apple/b32.rs b/src/unix/bsd/apple/b32/mod.rs
index eacb0307cc..9248e3adf2 100644
--- a/src/unix/bsd/apple/b32.rs
+++ b/src/unix/bsd/apple/b32/mod.rs
@@ -106,3 +106,10 @@ extern "C" {
options: ::c_ulong,
) -> ::c_int;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/bsd/apple/b64/align.rs b/src/unix/bsd/apple/b64/align.rs
new file mode 100644
index 0000000000..ba9bc3ab3e
--- /dev/null
+++ b/src/unix/bsd/apple/b64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f64; 2]);
diff --git a/src/unix/bsd/apple/b64.rs b/src/unix/bsd/apple/b64/mod.rs
index 9019babc7c..7f7008387b 100644
--- a/src/unix/bsd/apple/b64.rs
+++ b/src/unix/bsd/apple/b64/mod.rs
@@ -111,3 +111,10 @@ extern "C" {
options: ::c_uint,
) -> ::c_int;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs
index 9acc3fcc33..980caf2257 100644
--- a/src/unix/bsd/freebsdlike/freebsd/mod.rs
+++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs
@@ -1456,7 +1456,7 @@ cfg_if! {
} else if #[cfg(freebsd13)] {
mod freebsd12;
pub use self::freebsd12::*;
- } else if #[cfg(freebsd11)] {
+ } else if #[cfg(any(freebsd10, freebsd11))] {
mod freebsd11;
pub use self::freebsd11::*;
} else {
diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs
new file mode 100644
index 0000000000..7fffedbf96
--- /dev/null
+++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f64; 4]);
diff --git a/src/unix/bsd/freebsdlike/freebsd/x86_64.rs b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs
index 5220cde915..0769a22f88 100644
--- a/src/unix/bsd/freebsdlike/freebsd/x86_64.rs
+++ b/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs
@@ -15,3 +15,10 @@ cfg_if! {
}
}
pub const MAP_32BIT: ::c_int = 0x00080000;
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs
index c1128952f2..cfb8a4e169 100644
--- a/src/unix/bsd/freebsdlike/mod.rs
+++ b/src/unix/bsd/freebsdlike/mod.rs
@@ -1193,7 +1193,7 @@ extern "C" {
pub fn getutxline(ut: *const utmpx) -> *mut utmpx;
pub fn initgroups(name: *const ::c_char, basegid: ::gid_t) -> ::c_int;
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "kevent@FBSD_1.0"
)]
pub fn kevent(
@@ -1223,7 +1223,7 @@ extern "C" {
mode: ::mode_t,
) -> ::c_int;
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "mknodat@FBSD_1.1"
)]
pub fn mknodat(
@@ -1241,13 +1241,13 @@ extern "C" {
mqd: ::mqd_t,
msg_ptr: *mut ::c_char,
msg_len: ::size_t,
- msq_prio: *mut ::c_uint,
+ msg_prio: *mut ::c_uint,
) -> ::ssize_t;
pub fn mq_send(
mqd: ::mqd_t,
msg_ptr: *const ::c_char,
msg_len: ::size_t,
- msq_prio: ::c_uint,
+ msg_prio: ::c_uint,
) -> ::c_int;
pub fn mq_setattr(
mqd: ::mqd_t,
@@ -1258,14 +1258,14 @@ extern "C" {
mqd: ::mqd_t,
msg_ptr: *mut ::c_char,
msg_len: ::size_t,
- msq_prio: *mut ::c_uint,
+ msg_prio: *mut ::c_uint,
abs_timeout: *const ::timespec,
) -> ::ssize_t;
pub fn mq_timedsend(
mqd: ::mqd_t,
msg_ptr: *const ::c_char,
msg_len: ::size_t,
- msq_prio: ::c_uint,
+ msg_prio: ::c_uint,
abs_timeout: *const ::timespec,
) -> ::c_int;
pub fn mq_unlink(name: *const ::c_char) -> ::c_int;
diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs
index 6cb40a0d80..cf9f59e9b3 100644
--- a/src/unix/bsd/mod.rs
+++ b/src/unix/bsd/mod.rs
@@ -558,7 +558,7 @@ extern "C" {
#[cfg_attr(target_os = "macos", link_name = "glob$INODE64")]
#[cfg_attr(target_os = "netbsd", link_name = "__glob30")]
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "glob@FBSD_1.0"
)]
pub fn glob(
@@ -571,7 +571,7 @@ extern "C" {
) -> ::c_int;
#[cfg_attr(target_os = "netbsd", link_name = "__globfree30")]
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "globfree@FBSD_1.0"
)]
pub fn globfree(pglob: *mut ::glob_t);
diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs
index 5e3f0467ff..ba28bce19e 100644
--- a/src/unix/bsd/netbsdlike/netbsd/mod.rs
+++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs
@@ -1627,13 +1627,13 @@ extern "C" {
mqd: ::mqd_t,
msg_ptr: *mut ::c_char,
msg_len: ::size_t,
- msq_prio: *mut ::c_uint,
+ msg_prio: *mut ::c_uint,
) -> ::ssize_t;
pub fn mq_send(
mqd: ::mqd_t,
msg_ptr: *const ::c_char,
msg_len: ::size_t,
- msq_prio: ::c_uint,
+ msg_prio: ::c_uint,
) -> ::c_int;
pub fn mq_setattr(
mqd: ::mqd_t,
@@ -1645,7 +1645,7 @@ extern "C" {
mqd: ::mqd_t,
msg_ptr: *mut ::c_char,
msg_len: ::size_t,
- msq_prio: *mut ::c_uint,
+ msg_prio: *mut ::c_uint,
abs_timeout: *const ::timespec,
) -> ::ssize_t;
#[link_name = "__mq_timedsend50"]
@@ -1653,7 +1653,7 @@ extern "C" {
mqd: ::mqd_t,
msg_ptr: *const ::c_char,
msg_len: ::size_t,
- msq_prio: ::c_uint,
+ msg_prio: ::c_uint,
abs_timeout: *const ::timespec,
) -> ::c_int;
pub fn mq_unlink(name: *const ::c_char) -> ::c_int;
diff --git a/src/unix/linux_like/android/b32/x86/align.rs b/src/unix/linux_like/android/b32/x86/align.rs
new file mode 100644
index 0000000000..ca2085497c
--- /dev/null
+++ b/src/unix/linux_like/android/b32/x86/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(8))]
+pub struct max_align_t([f64; 2]);
diff --git a/src/unix/linux_like/android/b32/x86.rs b/src/unix/linux_like/android/b32/x86/mod.rs
index a56fa00454..101bf2d51a 100644
--- a/src/unix/linux_like/android/b32/x86.rs
+++ b/src/unix/linux_like/android/b32/x86/mod.rs
@@ -413,3 +413,10 @@ pub const CS: ::c_int = 13;
pub const EFL: ::c_int = 14;
pub const UESP: ::c_int = 15;
pub const SS: ::c_int = 16;
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/android/b64/aarch64/align.rs b/src/unix/linux_like/android/b64/aarch64/align.rs
new file mode 100644
index 0000000000..a71235ab29
--- /dev/null
+++ b/src/unix/linux_like/android/b64/aarch64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f32; 8]);
diff --git a/src/unix/linux_like/android/b64/aarch64.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs
index cb1c81b260..b2b91889a2 100644
--- a/src/unix/linux_like/android/b64/aarch64.rs
+++ b/src/unix/linux_like/android/b64/aarch64/mod.rs
@@ -323,3 +323,10 @@ pub const SYS_pkey_mprotect: ::c_long = 288;
pub const SYS_pkey_alloc: ::c_long = 289;
pub const SYS_pkey_free: ::c_long = 290;
pub const SYS_syscalls: ::c_long = 292;
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/android/b64/x86_64/align.rs b/src/unix/linux_like/android/b64/x86_64/align.rs
new file mode 100644
index 0000000000..7fffedbf96
--- /dev/null
+++ b/src/unix/linux_like/android/b64/x86_64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f64; 4]);
diff --git a/src/unix/linux_like/android/b64/x86_64.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs
index 2ab6080a6d..f5b8b16ea3 100644
--- a/src/unix/linux_like/android/b64/x86_64.rs
+++ b/src/unix/linux_like/android/b64/x86_64/mod.rs
@@ -418,3 +418,10 @@ pub const DS: ::c_int = 23;
pub const ES: ::c_int = 24;
pub const FS: ::c_int = 25;
pub const GS: ::c_int = 26;
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/emscripten/align.rs b/src/unix/linux_like/emscripten/align.rs
index 8019b7c3bb..8fa2186fc9 100644
--- a/src/unix/linux_like/emscripten/align.rs
+++ b/src/unix/linux_like/emscripten/align.rs
@@ -1,5 +1,9 @@
macro_rules! expand_align {
() => {
+ #[derive(Copy, Clone, Debug, PartialEq)]
+ #[repr(C, align(8))]
+ pub struct max_align_t([f64; 2]);
+
s! {
#[repr(align(4))]
pub struct pthread_mutex_t {
diff --git a/src/unix/linux_like/linux/gnu/b32/arm/align.rs b/src/unix/linux_like/linux/gnu/b32/arm/align.rs
new file mode 100644
index 0000000000..cd887aca9d
--- /dev/null
+++ b/src/unix/linux_like/linux/gnu/b32/arm/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(8))]
+pub struct max_align_t([i64; 2]);
diff --git a/src/unix/linux_like/linux/gnu/b32/arm.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs
index 73af4b8116..f74b41e315 100644
--- a/src/unix/linux_like/linux/gnu/b32/arm.rs
+++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs
@@ -859,3 +859,10 @@ pub const SYS_pkey_mprotect: ::c_long = 394;
pub const SYS_pkey_alloc: ::c_long = 395;
pub const SYS_pkey_free: ::c_long = 396;
pub const SYS_statx: ::c_long = 397;
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/gnu/b32/mips/align.rs b/src/unix/linux_like/linux/gnu/b32/mips/align.rs
new file mode 100644
index 0000000000..a6e238d778
--- /dev/null
+++ b/src/unix/linux_like/linux/gnu/b32/mips/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(8))]
+pub struct max_align_t([f32; 4]);
diff --git a/src/unix/linux_like/linux/gnu/b32/mips.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs
index cfe8ef6927..23b0160bff 100644
--- a/src/unix/linux_like/linux/gnu/b32/mips.rs
+++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs
@@ -891,3 +891,10 @@ pub const TIOCM_RNG: ::c_int = 0x200;
pub const TIOCM_DSR: ::c_int = 0x400;
pub const EHWPOISON: ::c_int = 168;
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/gnu/b32/x86/align.rs b/src/unix/linux_like/linux/gnu/b32/x86/align.rs
new file mode 100644
index 0000000000..c9ab8b9784
--- /dev/null
+++ b/src/unix/linux_like/linux/gnu/b32/x86/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f64; 6]);
diff --git a/src/unix/linux_like/linux/gnu/b32/x86.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs
index 67b80b28f7..05e876067d 100644
--- a/src/unix/linux_like/linux/gnu/b32/x86.rs
+++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs
@@ -1147,3 +1147,10 @@ extern "C" {
ucp: *const ucontext_t,
) -> ::c_int;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs
new file mode 100644
index 0000000000..a71235ab29
--- /dev/null
+++ b/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f32; 8]);
diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
index 4769e74e7b..b980a11b19 100644
--- a/src/unix/linux_like/linux/gnu/b64/aarch64.rs
+++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
@@ -936,3 +936,10 @@ extern "C" {
newlen: ::size_t,
) -> ::c_int;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/align.rs b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs
new file mode 100644
index 0000000000..7fffedbf96
--- /dev/null
+++ b/src/unix/linux_like/linux/gnu/b64/mips64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f64; 4]);
diff --git a/src/unix/linux_like/linux/gnu/b64/mips64.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs
index a9b49f3c31..5b3da3cb2d 100644
--- a/src/unix/linux_like/linux/gnu/b64/mips64.rs
+++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs
@@ -999,3 +999,10 @@ extern "C" {
newlen: ::size_t,
) -> ::c_int;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs
new file mode 100644
index 0000000000..86a5f28f1f
--- /dev/null
+++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([i64; 4]);
diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs
index 212062b32a..bd9089543a 100644
--- a/src/unix/linux_like/linux/gnu/b64/powerpc64.rs
+++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs
@@ -1035,3 +1035,10 @@ extern "C" {
newlen: ::size_t,
) -> ::c_int;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs
new file mode 100644
index 0000000000..86a5f28f1f
--- /dev/null
+++ b/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([i64; 4]);
diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs
index 32489bc33a..93b1fa5349 100644
--- a/src/unix/linux_like/linux/gnu/b64/sparc64.rs
+++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs
@@ -970,3 +970,10 @@ extern "C" {
newlen: ::size_t,
) -> ::c_int;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs
new file mode 100644
index 0000000000..7fffedbf96
--- /dev/null
+++ b/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f64; 4]);
diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
index 2ff0969b0a..d1a2294380 100644
--- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
+++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
@@ -906,3 +906,10 @@ cfg_if! {
pub use self::not_x32::*;
}
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs
index 87730a56aa..8e8223cda2 100644
--- a/src/unix/linux_like/linux/mod.rs
+++ b/src/unix/linux_like/linux/mod.rs
@@ -2535,26 +2535,26 @@ extern "C" {
mqd: ::mqd_t,
msg_ptr: *mut ::c_char,
msg_len: ::size_t,
- msq_prio: *mut ::c_uint,
+ msg_prio: *mut ::c_uint,
) -> ::ssize_t;
pub fn mq_timedreceive(
mqd: ::mqd_t,
msg_ptr: *mut ::c_char,
msg_len: ::size_t,
- msq_prio: *mut ::c_uint,
+ msg_prio: *mut ::c_uint,
abs_timeout: *const ::timespec,
) -> ::ssize_t;
pub fn mq_send(
mqd: ::mqd_t,
msg_ptr: *const ::c_char,
msg_len: ::size_t,
- msq_prio: ::c_uint,
+ msg_prio: ::c_uint,
) -> ::c_int;
pub fn mq_timedsend(
mqd: ::mqd_t,
msg_ptr: *const ::c_char,
msg_len: ::size_t,
- msq_prio: ::c_uint,
+ msg_prio: ::c_uint,
abs_timeout: *const ::timespec,
) -> ::c_int;
pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int;
diff --git a/src/unix/linux_like/linux/musl/b32/arm/align.rs b/src/unix/linux_like/linux/musl/b32/arm/align.rs
new file mode 100644
index 0000000000..6b5d118201
--- /dev/null
+++ b/src/unix/linux_like/linux/musl/b32/arm/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(8))]
+pub struct max_align_t(i64, i64);
diff --git a/src/unix/linux_like/linux/musl/b32/arm.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs
index 12e977a64e..fd1e259fc3 100644
--- a/src/unix/linux_like/linux/musl/b32/arm.rs
+++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs
@@ -835,3 +835,10 @@ extern "C" {
flags: ::c_uint,
) -> ::ssize_t;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/musl/b32/mips/align.rs b/src/unix/linux_like/linux/musl/b32/mips/align.rs
new file mode 100644
index 0000000000..a6e238d778
--- /dev/null
+++ b/src/unix/linux_like/linux/musl/b32/mips/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(8))]
+pub struct max_align_t([f32; 4]);
diff --git a/src/unix/linux_like/linux/musl/b32/mips.rs b/src/unix/linux_like/linux/musl/b32/mips/mod.rs
index f574223f9b..7fdd121a7a 100644
--- a/src/unix/linux_like/linux/musl/b32/mips.rs
+++ b/src/unix/linux_like/linux/musl/b32/mips/mod.rs
@@ -836,3 +836,10 @@ pub const SYS_mlock2: ::c_long = 4000 + 359;
pub const SYS_copy_file_range: ::c_long = 4000 + 360;
pub const SYS_preadv2: ::c_long = 4000 + 361;
pub const SYS_pwritev2: ::c_long = 4000 + 362;
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/musl/b32/x86/align.rs b/src/unix/linux_like/linux/musl/b32/x86/align.rs
new file mode 100644
index 0000000000..b203d7e8c8
--- /dev/null
+++ b/src/unix/linux_like/linux/musl/b32/x86/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(8))]
+pub struct max_align_t([f64; 3]);
diff --git a/src/unix/linux_like/linux/musl/b32/x86.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
index de73b3ebc6..fb5569200c 100644
--- a/src/unix/linux_like/linux/musl/b32/x86.rs
+++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs
@@ -943,3 +943,10 @@ extern "C" {
flags: ::c_uint,
) -> ::ssize_t;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/align.rs b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs
new file mode 100644
index 0000000000..a71235ab29
--- /dev/null
+++ b/src/unix/linux_like/linux/musl/b64/aarch64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f32; 8]);
diff --git a/src/unix/linux_like/linux/musl/b64/aarch64.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs
index caf49ff4ad..8c286d83cc 100644
--- a/src/unix/linux_like/linux/musl/b64/aarch64.rs
+++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs
@@ -645,3 +645,10 @@ pub const TIOCM_RI: ::c_int = TIOCM_RNG;
extern "C" {
pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/align.rs b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs
new file mode 100644
index 0000000000..7fffedbf96
--- /dev/null
+++ b/src/unix/linux_like/linux/musl/b64/x86_64/align.rs
@@ -0,0 +1,3 @@
+#[derive(Copy, Clone, Debug, PartialEq)]
+#[repr(C, align(16))]
+pub struct max_align_t([f64; 4]);
diff --git a/src/unix/linux_like/linux/musl/b64/x86_64.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs
index 9e5a8bf1e9..e4741a3a19 100644
--- a/src/unix/linux_like/linux/musl/b64/x86_64.rs
+++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs
@@ -917,3 +917,10 @@ pub const TIOCM_RI: ::c_int = TIOCM_RNG;
extern "C" {
pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}
diff --git a/src/unix/mod.rs b/src/unix/mod.rs
index 8d78cea726..238da24b51 100644
--- a/src/unix/mod.rs
+++ b/src/unix/mod.rs
@@ -669,7 +669,7 @@ extern "C" {
#[cfg_attr(target_os = "macos", link_name = "fstat$INODE64")]
#[cfg_attr(target_os = "netbsd", link_name = "__fstat50")]
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "fstat@FBSD_1.0"
)]
pub fn fstat(fildes: ::c_int, buf: *mut stat) -> ::c_int;
@@ -679,7 +679,7 @@ extern "C" {
#[cfg_attr(target_os = "macos", link_name = "stat$INODE64")]
#[cfg_attr(target_os = "netbsd", link_name = "__stat50")]
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "stat@FBSD_1.0"
)]
pub fn stat(path: *const c_char, buf: *mut stat) -> ::c_int;
@@ -722,7 +722,7 @@ extern "C" {
#[cfg_attr(target_os = "macos", link_name = "readdir$INODE64")]
#[cfg_attr(target_os = "netbsd", link_name = "__readdir30")]
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "readdir@FBSD_1.0"
)]
pub fn readdir(dirp: *mut ::DIR) -> *mut ::dirent;
@@ -757,7 +757,7 @@ extern "C" {
) -> ::c_int;
#[cfg_attr(target_os = "macos", link_name = "fstatat$INODE64")]
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "fstatat@FBSD_1.1"
)]
pub fn fstatat(
@@ -989,7 +989,7 @@ extern "C" {
#[cfg_attr(target_os = "macos", link_name = "lstat$INODE64")]
#[cfg_attr(target_os = "netbsd", link_name = "__lstat50")]
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "lstat@FBSD_1.0"
)]
pub fn lstat(path: *const c_char, buf: *mut stat) -> ::c_int;
@@ -1048,7 +1048,7 @@ extern "C" {
native: ::pthread_t,
value: *mut *mut ::c_void,
) -> ::c_int;
- pub fn pthread_exit(value: *mut ::c_void);
+ pub fn pthread_exit(value: *mut ::c_void) -> !;
pub fn pthread_attr_init(attr: *mut ::pthread_attr_t) -> ::c_int;
pub fn pthread_attr_destroy(attr: *mut ::pthread_attr_t) -> ::c_int;
pub fn pthread_attr_setstacksize(
@@ -1242,7 +1242,7 @@ extern "C" {
#[cfg_attr(target_os = "netbsd", link_name = "__mknod50")]
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "mknod@FBSD_1.0"
)]
pub fn mknod(
@@ -1458,7 +1458,7 @@ cfg_if! {
#[cfg_attr(target_os = "macos", link_name = "readdir_r$INODE64")]
#[cfg_attr(target_os = "netbsd", link_name = "__readdir_r30")]
#[cfg_attr(
- all(target_os = "freebsd", freebsd11),
+ all(target_os = "freebsd", any(freebsd11, freebsd10)),
link_name = "readdir_r@FBSD_1.0"
)]
/// The 64-bit libc on Solaris and illumos only has readdir_r. If a
diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs
index 353f1c6aa1..eaa43fe900 100644
--- a/src/unix/solarish/mod.rs
+++ b/src/unix/solarish/mod.rs
@@ -2094,26 +2094,26 @@ extern "C" {
mqd: ::mqd_t,
msg_ptr: *mut ::c_char,
msg_len: ::size_t,
- msq_prio: *mut ::c_uint,
+ msg_prio: *mut ::c_uint,
) -> ::ssize_t;
pub fn mq_timedreceive(
mqd: ::mqd_t,
msg_ptr: *mut ::c_char,
msg_len: ::size_t,
- msq_prio: *mut ::c_uint,
+ msg_prio: *mut ::c_uint,
abs_timeout: *const ::timespec,
) -> ::ssize_t;
pub fn mq_send(
mqd: ::mqd_t,
msg_ptr: *const ::c_char,
msg_len: ::size_t,
- msq_prio: ::c_uint,
+ msg_prio: ::c_uint,
) -> ::c_int;
pub fn mq_timedsend(
mqd: ::mqd_t,
msg_ptr: *const ::c_char,
msg_len: ::size_t,
- msq_prio: ::c_uint,
+ msg_prio: ::c_uint,
abs_timeout: *const ::timespec,
) -> ::c_int;
pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int;
diff --git a/src/unix/uclibc/mod.rs b/src/unix/uclibc/mod.rs
index bf4d9772de..986b05ca0b 100644
--- a/src/unix/uclibc/mod.rs
+++ b/src/unix/uclibc/mod.rs
@@ -2024,13 +2024,13 @@ extern "C" {
mqd: ::mqd_t,
msg_ptr: *mut ::c_char,
msg_len: ::size_t,
- msq_prio: *mut ::c_uint,
+ msg_prio: *mut ::c_uint,
) -> ::ssize_t;
pub fn mq_send(
mqd: ::mqd_t,
msg_ptr: *const ::c_char,
msg_len: ::size_t,
- msq_prio: ::c_uint,
+ msg_prio: ::c_uint,
) -> ::c_int;
pub fn mq_getattr(mqd: ::mqd_t, attr: *mut ::mq_attr) -> ::c_int;
pub fn mq_setattr(
diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs
index f1aff9d4bd..8745cd1653 100755
--- a/src/vxworks/mod.rs
+++ b/src/vxworks/mod.rs
@@ -1361,7 +1361,7 @@ extern "C" {
pub fn flock(fd: ::c_int, operation: ::c_int) -> ::c_int;
pub fn gettimeofday(tp: *mut ::timeval, tz: *mut ::c_void) -> ::c_int;
- pub fn pthread_exit(value: *mut ::c_void);
+ pub fn pthread_exit(value: *mut ::c_void) -> !;
pub fn pthread_attr_setdetachstate(
attr: *mut ::pthread_attr_t,
state: ::c_int,
diff --git a/src/windows/gnu/align.rs b/src/windows/gnu/align.rs
new file mode 100644
index 0000000000..dd3a3f72d3
--- /dev/null
+++ b/src/windows/gnu/align.rs
@@ -0,0 +1,9 @@
+cfg_if! {
+ if #[cfg(target_pointer_width = "64")] {
+ #[derive(Copy, Clone, Debug, PartialEq)]
+ #[repr(C, align(16))] pub struct max_align_t([f64; 4]);
+ } else if #[cfg(target_pointer_width = "32")] {
+ #[derive(Copy, Clone, Debug, PartialEq)]
+ #[repr(C, align(16))] pub struct max_align_t([i64; 6]);
+ }
+}
diff --git a/src/windows/gnu.rs b/src/windows/gnu/mod.rs
index d6736d87c2..e74628b981 100644
--- a/src/windows/gnu.rs
+++ b/src/windows/gnu/mod.rs
@@ -14,3 +14,10 @@ extern "C" {
n: ::size_t,
) -> ::c_int;
}
+
+cfg_if! {
+ if #[cfg(libc_align)] {
+ mod align;
+ pub use self::align::*;
+ }
+}