Fix simplejit tests for x64 by disabling is_pic
This commit is contained in:
@@ -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();
|
||||||
|
|
||||||
|
|||||||
@@ -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![],
|
||||||
|
|||||||
Reference in New Issue
Block a user