1
Fork 0

Replace deprecated getdtablesize() with sysconf(_SC_OPEN_MAX) for android aarch64

This commit is contained in:
Eunji Jeong 2015-02-24 18:15:03 +09:00
parent 0ef56da541
commit 0afebe63dd
2 changed files with 19 additions and 2 deletions

View file

@ -69,7 +69,6 @@ impl Process {
K: BytesContainer + Eq + Hash, V: BytesContainer K: BytesContainer + Eq + Hash, V: BytesContainer
{ {
use libc::funcs::posix88::unistd::{fork, dup2, close, chdir, execvp}; use libc::funcs::posix88::unistd::{fork, dup2, close, chdir, execvp};
use libc::funcs::bsd44::getdtablesize;
mod rustrt { mod rustrt {
extern { extern {
@ -82,6 +81,15 @@ impl Process {
assert_eq!(ret, 0); 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()); let dirp = cfg.cwd().map(|c| c.as_ptr()).unwrap_or(ptr::null());
// temporary until unboxed closures land // temporary until unboxed closures land

View file

@ -141,7 +141,6 @@ impl Process {
-> io::Result<Process> -> io::Result<Process>
{ {
use libc::funcs::posix88::unistd::{fork, dup2, close, chdir, execvp}; use libc::funcs::posix88::unistd::{fork, dup2, close, chdir, execvp};
use libc::funcs::bsd44::getdtablesize;
mod rustrt { mod rustrt {
extern { extern {
@ -154,6 +153,16 @@ impl Process {
assert_eq!(ret, 0); 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.as_ref().map(|c| c.as_ptr()).unwrap_or(ptr::null()); let dirp = cfg.cwd.as_ref().map(|c| c.as_ptr()).unwrap_or(ptr::null());
with_envp(cfg.env.as_ref(), |envp: *const c_void| { with_envp(cfg.env.as_ref(), |envp: *const c_void| {