From 2fea3003df4684ab3ffa1633b5f59c3f99a2b21e Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Thu, 3 Dec 2020 18:57:03 +0100 Subject: [PATCH] Fix simplejit tests for x64 by disabling is_pic --- .../simplejit/examples/simplejit-minimal.rs | 11 ++++++- cranelift/simplejit/tests/basic.rs | 32 +++++++++++++++++-- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/cranelift/simplejit/examples/simplejit-minimal.rs b/cranelift/simplejit/examples/simplejit-minimal.rs index ae06c07b95d5..c65989c73c0f 100644 --- a/cranelift/simplejit/examples/simplejit-minimal.rs +++ b/cranelift/simplejit/examples/simplejit-minimal.rs @@ -5,8 +5,17 @@ use cranelift_simplejit::{SimpleJITBuilder, SimpleJITModule}; use std::mem; fn main() { + let mut flag_builder = settings::builder(); + flag_builder.set("use_colocated_libcalls", "false").unwrap(); + // FIXME set back to true once the x64 backend supports it. + flag_builder.set("is_pic", "false").unwrap(); + let isa_builder = cranelift_native::builder().unwrap_or_else(|msg| { + panic!("host machine is not supported: {}", msg); + }); + let isa = isa_builder.finish(settings::Flags::new(flag_builder)); let mut module: SimpleJITModule = - SimpleJITModule::new(SimpleJITBuilder::new(default_libcall_names())); + SimpleJITModule::new(SimpleJITBuilder::with_isa(isa, default_libcall_names())); + let mut ctx = module.make_context(); let mut func_ctx = FunctionBuilderContext::new(); diff --git a/cranelift/simplejit/tests/basic.rs b/cranelift/simplejit/tests/basic.rs index 0b9176543336..e7eec8da3b17 100644 --- a/cranelift/simplejit/tests/basic.rs +++ b/cranelift/simplejit/tests/basic.rs @@ -1,6 +1,7 @@ use cranelift_codegen::binemit::NullTrapSink; use cranelift_codegen::ir::*; use cranelift_codegen::isa::CallConv; +use cranelift_codegen::settings; use cranelift_codegen::{ir::types::I16, Context}; use cranelift_entity::EntityRef; use cranelift_frontend::*; @@ -9,8 +10,17 @@ use cranelift_simplejit::*; #[test] fn error_on_incompatible_sig_in_declare_function() { + let mut flag_builder = settings::builder(); + flag_builder.set("use_colocated_libcalls", "false").unwrap(); + // FIXME set back to true once the x64 backend supports it. + flag_builder.set("is_pic", "false").unwrap(); + let isa_builder = cranelift_native::builder().unwrap_or_else(|msg| { + panic!("host machine is not supported: {}", msg); + }); + let isa = isa_builder.finish(settings::Flags::new(flag_builder)); let mut module: SimpleJITModule = - SimpleJITModule::new(SimpleJITBuilder::new(default_libcall_names())); + SimpleJITModule::new(SimpleJITBuilder::with_isa(isa, default_libcall_names())); + let mut sig = Signature { params: vec![AbiParam::new(types::I64)], returns: vec![], @@ -58,8 +68,16 @@ fn define_simple_function(module: &mut SimpleJITModule) -> FuncId { #[test] #[should_panic(expected = "Result::unwrap()` on an `Err` value: DuplicateDefinition(\"abc\")")] fn panic_on_define_after_finalize() { + let mut flag_builder = settings::builder(); + flag_builder.set("use_colocated_libcalls", "false").unwrap(); + // FIXME set back to true once the x64 backend supports it. + flag_builder.set("is_pic", "false").unwrap(); + let isa_builder = cranelift_native::builder().unwrap_or_else(|msg| { + panic!("host machine is not supported: {}", msg); + }); + let isa = isa_builder.finish(settings::Flags::new(flag_builder)); let mut module: SimpleJITModule = - SimpleJITModule::new(SimpleJITBuilder::new(default_libcall_names())); + SimpleJITModule::new(SimpleJITBuilder::with_isa(isa, default_libcall_names())); define_simple_function(&mut module); define_simple_function(&mut module); @@ -140,8 +158,16 @@ fn switch_error() { #[test] fn libcall_function() { + let mut flag_builder = settings::builder(); + flag_builder.set("use_colocated_libcalls", "false").unwrap(); + // FIXME set back to true once the x64 backend supports it. + flag_builder.set("is_pic", "false").unwrap(); + let isa_builder = cranelift_native::builder().unwrap_or_else(|msg| { + panic!("host machine is not supported: {}", msg); + }); + let isa = isa_builder.finish(settings::Flags::new(flag_builder)); let mut module: SimpleJITModule = - SimpleJITModule::new(SimpleJITBuilder::new(default_libcall_names())); + SimpleJITModule::new(SimpleJITBuilder::with_isa(isa, default_libcall_names())); let sig = Signature { params: vec![],