libdyld: cleanup

core0-buffer
Sebastien Bourdeauducq 2020-04-12 18:45:43 +08:00
parent 064e114a0b
commit 1d000cc8ef
3 changed files with 6 additions and 11 deletions

2
Cargo.lock generated
View File

@ -32,7 +32,7 @@ checksum = "036b035e9ebcd705affece16319223d19f229e2358be6e3b7b094e57193312e6"
[[package]]
name = "dyld"
version = "0.0.0"
version = "0.1.0"
[[package]]
name = "libasync"

View File

@ -1,7 +1,7 @@
[package]
authors = ["M-Labs"]
name = "dyld"
version = "0.0.0"
version = "0.1.0"
[lib]
name = "dyld"

View File

@ -151,7 +151,7 @@ impl<'a> Library<'a> {
Ok(())
}
fn resolve_rela(&self, rela: &Elf32_Rela, resolve: &Fn(&[u8]) -> Option<Elf32_Word>)
fn resolve_rela(&self, rela: &Elf32_Rela, resolve: &dyn Fn(&[u8]) -> Option<Elf32_Word>)
-> Result<(), Error<'a>> {
let sym;
if ELF32_R_SYM(rela.r_info) == 0 {
@ -195,7 +195,7 @@ impl<'a> Library<'a> {
self.update_rela(rela, value)
}
pub fn load(data: &[u8], image: &'a mut [u8], resolve: &Fn(&[u8]) -> Option<Elf32_Word>)
pub fn load(data: &[u8], image: &'a mut [u8], resolve: &dyn Fn(&[u8]) -> Option<Elf32_Word>)
-> Result<Library<'a>, Error<'a>> {
#![allow(unused_assignments)]
@ -208,13 +208,8 @@ impl<'a> Library<'a> {
/* ABI version */ 0, /* padding */ 0, 0, 0, 0, 0, 0, 0
];
#[cfg(target_arch = "or1k")]
const ARCH: u16 = EM_OPENRISC;
#[cfg(not(target_arch = "or1k"))]
const ARCH: u16 = EM_NONE;
if ehdr.e_ident != IDENT || ehdr.e_type != ET_DYN || ehdr.e_machine != ARCH {
return Err("not a shared library for current architecture")?
if ehdr.e_ident != IDENT || ehdr.e_type != ET_DYN || ehdr.e_machine != EM_OPENRISC {
return Err("not a shared library for a supported architecture")?
}
let mut dyn_off = None;