Fix compilation on Redox by removing use of access in ld_so
This commit is contained in:
+1
-15
@@ -26,7 +26,6 @@ use crate::{
|
||||
};
|
||||
|
||||
use super::{
|
||||
access,
|
||||
debug::{RTLDDebug, RTLDState, _dl_debug_state, _r_debug},
|
||||
tcb::{Master, Tcb},
|
||||
PAGE_SIZE,
|
||||
@@ -164,20 +163,7 @@ impl Linker {
|
||||
if self.verbose {
|
||||
println!("check {}", path);
|
||||
}
|
||||
let access = unsafe {
|
||||
let path_c = CString::new(path.as_bytes()).map_err(|err| {
|
||||
Error::Malformed(format!("invalid path '{}': {}", path, err))
|
||||
})?;
|
||||
|
||||
// TODO: Use R_OK | X_OK
|
||||
// We cannot use unix stdlib because errno is thead local variable
|
||||
// and fs:[0] is not set yet.
|
||||
access(path_c.as_ptr(), unistd::F_OK) == 0
|
||||
};
|
||||
|
||||
if access {
|
||||
return Ok(Some(self.load_recursive(name, &path)?));
|
||||
}
|
||||
return Ok(Some(self.load_recursive(name, &path)?));
|
||||
}
|
||||
|
||||
Err(Error::Malformed(format!("failed to locate '{}'", name)))
|
||||
|
||||
@@ -79,12 +79,6 @@ pub fn static_init(sp: &'static Stack) {
|
||||
}
|
||||
}
|
||||
|
||||
// Wrapper over the systemcall, Do not use outside of ld_so
|
||||
pub unsafe fn access(path: *const c_char, mode: c_int) -> c_int {
|
||||
let path = CStr::from_ptr(path);
|
||||
syscall!(ACCESS, (path).as_ptr(), mode) as c_int
|
||||
}
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
pub unsafe fn init(sp: &'static Stack) {
|
||||
let mut tp = 0usize;
|
||||
|
||||
Reference in New Issue
Block a user