Skip to content

Commit 321dae1

Browse files
committed
Fix simplejit tests for x64 by disabling is_pic
1 parent 69d041f commit 321dae1

File tree

2 files changed

+39
-4
lines changed

2 files changed

+39
-4
lines changed

cranelift/simplejit/examples/simplejit-minimal.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,17 @@ use cranelift_simplejit::{SimpleJITBuilder, SimpleJITModule};
55
use std::mem;
66

77
fn main() {
8+
let mut flag_builder = settings::builder();
9+
flag_builder.set("use_colocated_libcalls", "false").unwrap();
10+
// FIXME set back to true once the x64 backend supports it.
11+
flag_builder.set("is_pic", "false").unwrap();
12+
let isa_builder = cranelift_native::builder().unwrap_or_else(|msg| {
13+
panic!("host machine is not supported: {}", msg);
14+
});
15+
let isa = isa_builder.finish(settings::Flags::new(flag_builder));
816
let mut module: SimpleJITModule =
9-
SimpleJITModule::new(SimpleJITBuilder::new(default_libcall_names()));
17+
SimpleJITModule::new(SimpleJITModule::with_isa(isa, default_libcall_names()));
18+
1019
let mut ctx = module.make_context();
1120
let mut func_ctx = FunctionBuilderContext::new();
1221

cranelift/simplejit/tests/basic.rs

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use cranelift_codegen::binemit::NullTrapSink;
22
use cranelift_codegen::ir::*;
33
use cranelift_codegen::isa::CallConv;
4+
use cranelift_codegen::settings;
45
use cranelift_codegen::{ir::types::I16, Context};
56
use cranelift_entity::EntityRef;
67
use cranelift_frontend::*;
@@ -9,8 +10,17 @@ use cranelift_simplejit::*;
910

1011
#[test]
1112
fn error_on_incompatible_sig_in_declare_function() {
13+
let mut flag_builder = settings::builder();
14+
flag_builder.set("use_colocated_libcalls", "false").unwrap();
15+
// FIXME set back to true once the x64 backend supports it.
16+
flag_builder.set("is_pic", "false").unwrap();
17+
let isa_builder = cranelift_native::builder().unwrap_or_else(|msg| {
18+
panic!("host machine is not supported: {}", msg);
19+
});
20+
let isa = isa_builder.finish(settings::Flags::new(flag_builder));
1221
let mut module: SimpleJITModule =
13-
SimpleJITModule::new(SimpleJITBuilder::new(default_libcall_names()));
22+
SimpleJITModule::new(SimpleJITModule::with_isa(isa, default_libcall_names()));
23+
1424
let mut sig = Signature {
1525
params: vec![AbiParam::new(types::I64)],
1626
returns: vec![],
@@ -58,8 +68,16 @@ fn define_simple_function(module: &mut SimpleJITModule) -> FuncId {
5868
#[test]
5969
#[should_panic(expected = "Result::unwrap()` on an `Err` value: DuplicateDefinition(\"abc\")")]
6070
fn panic_on_define_after_finalize() {
71+
let mut flag_builder = settings::builder();
72+
flag_builder.set("use_colocated_libcalls", "false").unwrap();
73+
// FIXME set back to true once the x64 backend supports it.
74+
flag_builder.set("is_pic", "false").unwrap();
75+
let isa_builder = cranelift_native::builder().unwrap_or_else(|msg| {
76+
panic!("host machine is not supported: {}", msg);
77+
});
78+
let isa = isa_builder.finish(settings::Flags::new(flag_builder));
6179
let mut module: SimpleJITModule =
62-
SimpleJITModule::new(SimpleJITBuilder::new(default_libcall_names()));
80+
SimpleJITModule::new(SimpleJITModule::with_isa(isa, default_libcall_names()));
6381

6482
define_simple_function(&mut module);
6583
define_simple_function(&mut module);
@@ -140,8 +158,16 @@ fn switch_error() {
140158

141159
#[test]
142160
fn libcall_function() {
161+
let mut flag_builder = settings::builder();
162+
flag_builder.set("use_colocated_libcalls", "false").unwrap();
163+
// FIXME set back to true once the x64 backend supports it.
164+
flag_builder.set("is_pic", "false").unwrap();
165+
let isa_builder = cranelift_native::builder().unwrap_or_else(|msg| {
166+
panic!("host machine is not supported: {}", msg);
167+
});
168+
let isa = isa_builder.finish(settings::Flags::new(flag_builder));
143169
let mut module: SimpleJITModule =
144-
SimpleJITModule::new(SimpleJITBuilder::new(default_libcall_names()));
170+
SimpleJITModule::new(SimpleJITModule::with_isa(isa, default_libcall_names()));
145171

146172
let sig = Signature {
147173
params: vec![],

0 commit comments

Comments
 (0)