summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-08-22 23:14:52 +0000
committerbors <bors@rust-lang.org>2018-08-22 23:14:52 +0000
commit0f2d4f993c5c5c2e2e990131ff1c6d37095a0084 (patch)
tree1185a1b6e773150662ff46085ed3f8d4e3a3913c
parent7a9f031d878944f63e73c968e701be82caa47d63 (diff)
parent2f593709cae507f25bb4d30a8a9823ec0b0f1b62 (diff)
downloadrust-libc-0f2d4f993c5c5c2e2e990131ff1c6d37095a0084.tar.gz
Auto merge of #1067 - cramertj:fuchsia-fixes, r=alexcrichton
Fix and cleanup Fuchsia Remove false support for power and mips. Fix aarch64 definitions of nlink_t and blksize_t. r? @alexcrichton cc @sulanov
-rw-r--r--src/fuchsia/aarch64.rs4
-rw-r--r--src/fuchsia/mod.rs87
-rw-r--r--src/fuchsia/powerpc64.rs79
3 files changed, 24 insertions, 146 deletions
diff --git a/src/fuchsia/aarch64.rs b/src/fuchsia/aarch64.rs
index 157d3d6e9e..572f8c1ce3 100644
--- a/src/fuchsia/aarch64.rs
+++ b/src/fuchsia/aarch64.rs
@@ -1,8 +1,8 @@
pub type c_char = u8;
pub type __u64 = ::c_ulonglong;
pub type wchar_t = u32;
-pub type nlink_t = u32;
-pub type blksize_t = ::c_int;
+pub type nlink_t = ::c_ulong;
+pub type blksize_t = ::c_long;
s! {
pub struct stat {
diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs
index e103292979..9804ba9c0b 100644
--- a/src/fuchsia/mod.rs
+++ b/src/fuchsia/mod.rs
@@ -97,16 +97,13 @@ s! {
pub tv_usec: suseconds_t,
}
- // linux x32 compatibility
- // See https://sourceware.org/bugzilla/show_bug.cgi?id=16437
pub struct timespec {
pub tv_sec: time_t,
- #[cfg(all(target_arch = "x86_64", target_pointer_width = "32"))]
- pub tv_nsec: i64,
- #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))]
pub tv_nsec: ::c_long,
}
+ // FIXME: the rlimit and rusage related functions and types don't exist
+ // within zircon. Are there reasons for keeping them around?
pub struct rlimit {
pub rlim_cur: rlim_t,
pub rlim_max: rlim_t,
@@ -166,11 +163,14 @@ 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],
+ pub __in6_union: in6_union,
+ }
+
+ pub union in6_union {
+ pub __s6_addr: [u8; 16],
+ pub __s6_addr16: [u16; 8],
+ pub __s6_addr32: [u32; 4],
}
pub struct ip_mreq {
@@ -180,9 +180,6 @@ s! {
pub struct ipv6_mreq {
pub ipv6mr_multiaddr: in6_addr,
- #[cfg(target_os = "android")]
- pub ipv6mr_interface: ::c_int,
- #[cfg(not(target_os = "android"))]
pub ipv6mr_interface: ::c_uint,
}
@@ -400,13 +397,9 @@ s! {
pub struct sched_param {
pub sched_priority: ::c_int,
- #[cfg(target_env = "musl")]
pub sched_ss_low_priority: ::c_int,
- #[cfg(target_env = "musl")]
pub sched_ss_repl_period: ::timespec,
- #[cfg(target_env = "musl")]
pub sched_ss_init_budget: ::timespec,
- #[cfg(target_env = "musl")]
pub sched_ss_max_repl: ::c_int,
}
@@ -417,11 +410,6 @@ s! {
pub dli_saddr: *mut ::c_void,
}
- #[cfg_attr(any(all(target_arch = "x86",
- not(target_env = "musl"),
- not(target_os = "android")),
- target_arch = "x86_64"),
- repr(packed))]
pub struct epoll_event {
pub events: ::uint32_t,
pub u64: ::uint64_t,
@@ -467,13 +455,9 @@ s! {
pub sigev_value: ::sigval,
pub sigev_signo: ::c_int,
pub sigev_notify: ::c_int,
- // Actually a union. We only expose sigev_notify_thread_id because it's
- // the most useful member
- pub sigev_notify_thread_id: ::c_int,
- #[cfg(target_pointer_width = "64")]
- __unused1: [::c_int; 11],
- #[cfg(target_pointer_width = "32")]
- __unused1: [::c_int; 12]
+ pub sigev_notify_function: fn(::sigval),
+ pub sigev_notify_attributes: *mut pthread_attr_t,
+ pub __pad: [::c_char; 56 - 3 * 8 /* 8 == sizeof(long) */],
}
pub struct dirent {
@@ -522,30 +506,22 @@ s! {
#[cfg_attr(all(feature = "align",
target_pointer_width = "32",
- any(target_arch = "mips",
- target_arch = "arm",
- target_arch = "powerpc",
+ any(target_arch = "arm",
target_arch = "x86_64")),
repr(align(4)))]
#[cfg_attr(all(feature = "align",
any(target_pointer_width = "64",
- not(any(target_arch = "mips",
- target_arch = "arm",
- target_arch = "powerpc",
+ not(any(target_arch = "arm",
target_arch = "x86_64")))),
repr(align(8)))]
pub struct pthread_mutex_t {
#[cfg(all(not(feature = "align"),
- any(target_arch = "mips",
- target_arch = "arm",
- target_arch = "powerpc",
+ any(target_arch = "arm",
all(target_arch = "x86_64",
target_pointer_width = "32"))))]
__align: [::c_long; 0],
#[cfg(not(any(feature = "align",
- target_arch = "mips",
target_arch = "arm",
- target_arch = "powerpc",
all(target_arch = "x86_64",
target_pointer_width = "32"))))]
__align: [::c_longlong; 0],
@@ -554,30 +530,22 @@ s! {
#[cfg_attr(all(feature = "align",
target_pointer_width = "32",
- any(target_arch = "mips",
- target_arch = "arm",
- target_arch = "powerpc",
+ any(target_arch = "arm",
target_arch = "x86_64")),
repr(align(4)))]
#[cfg_attr(all(feature = "align",
any(target_pointer_width = "64",
- not(any(target_arch = "mips",
- target_arch = "arm",
- target_arch = "powerpc",
+ not(any(target_arch = "arm",
target_arch = "x86_64")))),
repr(align(8)))]
pub struct pthread_rwlock_t {
#[cfg(all(not(feature = "align"),
- any(target_arch = "mips",
- target_arch = "arm",
- target_arch = "powerpc",
+ any(target_arch = "arm",
all(target_arch = "x86_64",
target_pointer_width = "32"))))]
__align: [::c_long; 0],
#[cfg(not(any(feature = "align",
- target_arch = "mips",
target_arch = "arm",
- target_arch = "powerpc",
all(target_arch = "x86_64",
target_pointer_width = "32"))))]
__align: [::c_longlong; 0],
@@ -586,29 +554,21 @@ s! {
#[cfg_attr(all(feature = "align",
any(target_pointer_width = "32",
- target_arch = "x86_64", target_arch = "powerpc64",
- target_arch = "mips64", target_arch = "s390x",
- target_arch = "sparc64",
+ target_arch = "x86_64",
all(target_arch = "aarch64", target_env = "musl"))),
repr(align(4)))]
#[cfg_attr(all(feature = "align",
not(any(target_pointer_width = "32",
- target_arch = "x86_64", target_arch = "powerpc64",
- target_arch = "mips64", target_arch = "s390x",
- target_arch = "sparc64",
+ target_arch = "x86_64",
all(target_arch = "aarch64", target_env = "musl")))),
repr(align(8)))]
pub struct pthread_mutexattr_t {
#[cfg(all(not(features = "align"),
- any(target_arch = "x86_64", target_arch = "powerpc64",
- target_arch = "mips64", target_arch = "s390x",
- target_arch = "sparc64",
+ any(target_arch = "x86_64",
all(target_arch = "aarch64", target_env = "musl"))))]
__align: [::c_int; 0],
#[cfg(all(not(features = "align"),
- not(any(target_arch = "x86_64", target_arch = "powerpc64",
- target_arch = "mips64", target_arch = "s390x",
- target_arch = "sparc64",
+ not(any(target_arch = "x86_64",
all(target_arch = "aarch64", target_env = "musl")))))]
__align: [::c_long; 0],
size: [u8; __SIZEOF_PTHREAD_MUTEXATTR_T],
@@ -3987,9 +3947,6 @@ cfg_if! {
if #[cfg(target_arch = "aarch64")] {
mod aarch64;
pub use self::aarch64::*;
- } else if #[cfg(any(target_arch = "powerpc64"))] {
- mod powerpc64;
- pub use self::powerpc64::*;
} else if #[cfg(any(target_arch = "x86_64"))] {
mod x86_64;
pub use self::x86_64::*;
diff --git a/src/fuchsia/powerpc64.rs b/src/fuchsia/powerpc64.rs
deleted file mode 100644
index 112cd43514..0000000000
--- a/src/fuchsia/powerpc64.rs
+++ /dev/null
@@ -1,79 +0,0 @@
-pub type c_char = u8;
-pub type wchar_t = i32;
-pub type __u64 = ::c_ulong;
-pub type nlink_t = u64;
-pub type blksize_t = ::c_long;
-
-s! {
- pub struct stat {
- pub st_dev: ::dev_t,
- pub st_ino: ::ino_t,
- pub st_nlink: ::nlink_t,
- pub st_mode: ::mode_t,
- pub st_uid: ::uid_t,
- pub st_gid: ::gid_t,
- __pad0: ::c_int,
- pub st_rdev: ::dev_t,
- pub st_size: ::off_t,
- pub st_blksize: ::blksize_t,
- pub st_blocks: ::blkcnt_t,
- pub st_atime: ::time_t,
- pub st_atime_nsec: ::c_long,
- pub st_mtime: ::time_t,
- pub st_mtime_nsec: ::c_long,
- pub st_ctime: ::time_t,
- pub st_ctime_nsec: ::c_long,
- __unused: [::c_long; 3],
- }
-
- pub struct stat64 {
- pub st_dev: ::dev_t,
- pub st_ino: ::ino64_t,
- pub st_nlink: ::nlink_t,
- pub st_mode: ::mode_t,
- pub st_uid: ::uid_t,
- pub st_gid: ::gid_t,
- __pad0: ::c_int,
- pub st_rdev: ::dev_t,
- pub st_size: ::off_t,
- pub st_blksize: ::blksize_t,
- pub st_blocks: ::blkcnt64_t,
- pub st_atime: ::time_t,
- pub st_atime_nsec: ::c_long,
- pub st_mtime: ::time_t,
- pub st_mtime_nsec: ::c_long,
- pub st_ctime: ::time_t,
- pub st_ctime_nsec: ::c_long,
- __reserved: [::c_long; 3],
- }
-
- pub struct ipc_perm {
- pub __ipc_perm_key: ::key_t,
- pub uid: ::uid_t,
- pub gid: ::gid_t,
- pub cuid: ::uid_t,
- pub cgid: ::gid_t,
- pub mode: ::mode_t,
- pub __seq: ::c_int,
- __unused1: ::c_long,
- __unused2: ::c_long
- }
-}
-
-pub const SYS_pivot_root: ::c_long = 203;
-pub const SYS_gettid: ::c_long = 207;
-pub const SYS_perf_event_open: ::c_long = 319;
-pub const SYS_memfd_create: ::c_long = 360;
-
-pub const MAP_32BIT: ::c_int = 0x0040;
-
-pub const SIGSTKSZ: ::size_t = 8192;
-pub const MINSIGSTKSZ: ::size_t = 2048;
-
-#[doc(hidden)]
-pub const AF_MAX: ::c_int = 42;
-#[doc(hidden)]
-pub const PF_MAX: ::c_int = AF_MAX;
-
-// Syscall table
-pub const SYS_renameat2: ::c_long = 357;