From bf9e5d94480c085bb7c8d6165ade1ccd1a4444f0 Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Thu, 12 Nov 2020 16:41:23 +0100 Subject: [PATCH] Use a PLT reference for function relocations in data objects This ensures that all functions can be replaced without having to perform relocations again. --- cranelift/simplejit/src/backend.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/cranelift/simplejit/src/backend.rs b/cranelift/simplejit/src/backend.rs index e5f90e9db8..97abd744f6 100644 --- a/cranelift/simplejit/src/backend.rs +++ b/cranelift/simplejit/src/backend.rs @@ -188,14 +188,7 @@ impl SimpleJITModule { match *name { ir::ExternalName::User { .. } => { let (name, linkage) = if ModuleDeclarations::is_function(name) { - let func_id = FuncId::from_name(name); - match &self.compiled_functions[func_id] { - Some(compiled) => return compiled.ptr, - None => { - let decl = self.declarations.get_function_decl(func_id); - (&decl.name, decl.linkage) - } - } + return self.get_plt_address(name); } else { let data_id = DataId::from_name(name); match &self.compiled_data_objects[data_id] {