From d765b83e36e8bdf8188765f7d8873151f3bed0a9 Mon Sep 17 00:00:00 2001 From: pca006132 Date: Sat, 25 Sep 2021 11:30:45 +0800 Subject: [PATCH] libdyld: fixed symbol relocation Note that in libdyld/src/lib.rs #117-118, image pointer is already added to the symbol offset, so we do not need to add the pointer again --- src/libdyld/src/reloc.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libdyld/src/reloc.rs b/src/libdyld/src/reloc.rs index 85667d0..056e04c 100644 --- a/src/libdyld/src/reloc.rs +++ b/src/libdyld/src/reloc.rs @@ -123,7 +123,7 @@ pub fn relocate( if let Some(addr) = lib.lookup(sym_name) { // First, try to resolve against itself. trace!("looked up symbol {} in image", format_sym_name(sym_name)); - value = lib.image.ptr() as u32 + addr; + value = addr; } else if let Some(addr) = resolve(sym_name) { // Second, call the user-provided function. trace!("resolved symbol {:?}", format_sym_name(sym_name));