From d1e9a76326070bcb62684136089bb98e7f64db41 Mon Sep 17 00:00:00 2001 From: Eunji Jeong Date: Mon, 26 Jan 2015 14:46:21 +0900 Subject: [PATCH] Fix aarch64 test issues (same level to arm32) --- src/liblibc/lib.rs | 1 + src/libstd/sys/unix/process.rs | 10 +++++++++- src/test/run-pass/intrinsic-alignment.rs | 2 +- src/test/run-pass/rec-align-u64.rs | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/liblibc/lib.rs b/src/liblibc/lib.rs index 38d5c5eb27ae..c71416d412e1 100644 --- a/src/liblibc/lib.rs +++ b/src/liblibc/lib.rs @@ -5469,6 +5469,7 @@ pub mod funcs { use types::os::arch::c95::{c_uchar, c_int, size_t}; extern { + #[cfg(not(all(target_os = "android", target_arch = "aarch64")))] pub fn getdtablesize() -> c_int; pub fn ioctl(d: c_int, request: c_int, ...) -> c_int; pub fn madvise(addr: *mut c_void, len: size_t, advice: c_int) diff --git a/src/libstd/sys/unix/process.rs b/src/libstd/sys/unix/process.rs index 52a8ac9c338e..bc13fa3122b2 100644 --- a/src/libstd/sys/unix/process.rs +++ b/src/libstd/sys/unix/process.rs @@ -64,7 +64,6 @@ impl Process { K: BytesContainer + Eq + Hash, V: BytesContainer { use libc::funcs::posix88::unistd::{fork, dup2, close, chdir, execvp}; - use libc::funcs::bsd44::getdtablesize; mod rustrt { extern { @@ -72,6 +71,15 @@ impl Process { } } + #[cfg(all(target_os = "android", target_arch = "aarch64"))] + unsafe fn getdtablesize() -> c_int { + libc::sysconf(libc::consts::os::sysconf::_SC_OPEN_MAX) as c_int + } + #[cfg(not(all(target_os = "android", target_arch = "aarch64")))] + unsafe fn getdtablesize() -> c_int { + libc::funcs::bsd44::getdtablesize() + } + unsafe fn set_cloexec(fd: c_int) { let ret = c::ioctl(fd, c::FIOCLEX); assert_eq!(ret, 0); diff --git a/src/test/run-pass/intrinsic-alignment.rs b/src/test/run-pass/intrinsic-alignment.rs index 07f021e48d7e..bd2f73440cae 100644 --- a/src/test/run-pass/intrinsic-alignment.rs +++ b/src/test/run-pass/intrinsic-alignment.rs @@ -66,7 +66,7 @@ mod m { #[cfg(target_os = "android")] mod m { #[main] - #[cfg(target_arch = "arm")] + #[cfg(any(target_arch = "arm", target_arch = "aarch64"))] pub fn main() { unsafe { assert_eq!(::rusti::pref_align_of::(), 8u); diff --git a/src/test/run-pass/rec-align-u64.rs b/src/test/run-pass/rec-align-u64.rs index 5330490e54f5..0be6e22f6098 100644 --- a/src/test/run-pass/rec-align-u64.rs +++ b/src/test/run-pass/rec-align-u64.rs @@ -72,7 +72,7 @@ mod m { #[cfg(target_os = "android")] mod m { - #[cfg(target_arch = "arm")] + #[cfg(any(target_arch = "arm", target_arch = "aarch64"))] pub mod m { pub fn align() -> uint { 8u } pub fn size() -> uint { 16u }