about summary refs log tree commit diff
path: root/src/libstd/sys/unix/process.rs
diff options
context:
space:
mode:
authorEunji Jeong <eun-ji.jeong@samsung.com>2015-02-24 18:15:03 +0900
committerEunji Jeong <eun-ji.jeong@samsung.com>2015-02-24 18:25:28 +0900
commit0afebe63dd0b8e01cac824e86de7df6d6fd29bbd (patch)
treee34ea01675c9a1534351fd2155ca2456676671ed /src/libstd/sys/unix/process.rs
parent0ef56da541a90c62801440702a3e3c009e5332be (diff)
downloadrust-0afebe63dd0b8e01cac824e86de7df6d6fd29bbd.tar.gz
rust-0afebe63dd0b8e01cac824e86de7df6d6fd29bbd.zip
Replace deprecated getdtablesize() with sysconf(_SC_OPEN_MAX) for android aarch64
Diffstat (limited to 'src/libstd/sys/unix/process.rs')
-rw-r--r--src/libstd/sys/unix/process.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libstd/sys/unix/process.rs b/src/libstd/sys/unix/process.rs
index 2be841989e6..02e6d7dadb1 100644
--- a/src/libstd/sys/unix/process.rs
+++ b/src/libstd/sys/unix/process.rs
@@ -69,7 +69,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 {
@@ -82,6 +81,15 @@ impl Process {
             assert_eq!(ret, 0);
         }
 
+        #[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()
+        }
+
         let dirp = cfg.cwd().map(|c| c.as_ptr()).unwrap_or(ptr::null());
 
         // temporary until unboxed closures land