Fix simplejit tests for x64 by disabling is_pic

This commit is contained in:
bjorn3
2020-12-03 18:57:03 +01:00
parent 69d041faf1
commit 937a3fde40
2 changed files with 40 additions and 4 deletions

View File

@@ -1,12 +1,22 @@
use cranelift::prelude::*; use cranelift::prelude::*;
use cranelift_codegen::binemit::NullTrapSink; use cranelift_codegen::binemit::NullTrapSink;
use cranelift_codegen::settings::{self, Configurable};
use cranelift_module::{default_libcall_names, Linkage, Module}; use cranelift_module::{default_libcall_names, Linkage, Module};
use cranelift_simplejit::{SimpleJITBuilder, SimpleJITModule}; use cranelift_simplejit::{SimpleJITBuilder, SimpleJITModule};
use std::mem; use std::mem;
fn main() { 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 = 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 ctx = module.make_context();
let mut func_ctx = FunctionBuilderContext::new(); let mut func_ctx = FunctionBuilderContext::new();

View File

@@ -1,6 +1,7 @@
use cranelift_codegen::binemit::NullTrapSink; use cranelift_codegen::binemit::NullTrapSink;
use cranelift_codegen::ir::*; use cranelift_codegen::ir::*;
use cranelift_codegen::isa::CallConv; use cranelift_codegen::isa::CallConv;
use cranelift_codegen::settings::{self, Configurable};
use cranelift_codegen::{ir::types::I16, Context}; use cranelift_codegen::{ir::types::I16, Context};
use cranelift_entity::EntityRef; use cranelift_entity::EntityRef;
use cranelift_frontend::*; use cranelift_frontend::*;
@@ -9,8 +10,17 @@ use cranelift_simplejit::*;
#[test] #[test]
fn error_on_incompatible_sig_in_declare_function() { 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 = let mut module: SimpleJITModule =
SimpleJITModule::new(SimpleJITBuilder::new(default_libcall_names())); SimpleJITModule::new(SimpleJITBuilder::with_isa(isa, default_libcall_names()));
let mut sig = Signature { let mut sig = Signature {
params: vec![AbiParam::new(types::I64)], params: vec![AbiParam::new(types::I64)],
returns: vec![], returns: vec![],
@@ -58,8 +68,16 @@ fn define_simple_function(module: &mut SimpleJITModule) -> FuncId {
#[test] #[test]
#[should_panic(expected = "Result::unwrap()` on an `Err` value: DuplicateDefinition(\"abc\")")] #[should_panic(expected = "Result::unwrap()` on an `Err` value: DuplicateDefinition(\"abc\")")]
fn panic_on_define_after_finalize() { 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 = 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);
define_simple_function(&mut module); define_simple_function(&mut module);
@@ -140,8 +158,16 @@ fn switch_error() {
#[test] #[test]
fn libcall_function() { 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 = let mut module: SimpleJITModule =
SimpleJITModule::new(SimpleJITBuilder::new(default_libcall_names())); SimpleJITModule::new(SimpleJITBuilder::with_isa(isa, default_libcall_names()));
let sig = Signature { let sig = Signature {
params: vec![], params: vec![],