@@ -184,7 +184,7 @@ impl CodegenBackend for CraneliftCodegenBackend {
184
184
rustc_codegen_utils:: symbol_names:: provide ( providers) ;
185
185
rustc_codegen_ssa:: back:: symbol_export:: provide ( providers) ;
186
186
187
- providers. target_features_whitelist = |_tcx , _cnum| Lrc :: new ( Default :: default ( ) ) ;
187
+ providers. target_features_whitelist = |tcx , _cnum| tcx . arena . alloc ( FxHashMap :: default ( ) ) ;
188
188
}
189
189
fn provide_extern ( & self , providers : & mut Providers ) {
190
190
rustc_codegen_ssa:: back:: symbol_export:: provide_extern ( providers) ;
@@ -226,6 +226,17 @@ impl CodegenBackend for CraneliftCodegenBackend {
226
226
}
227
227
}
228
228
229
+ fn target_triple ( sess : & Session ) -> target_lexicon:: Triple {
230
+ let mut target = & * sess. target . target . llvm_target ;
231
+
232
+ // FIXME add support for x86_64-apple-macosx10.7.0 to target-lexicon
233
+ if target. starts_with ( "x86_64-apple-macosx" ) {
234
+ target = "x86_64-apple-darwin" ;
235
+ }
236
+
237
+ target. parse ( ) . unwrap ( )
238
+ }
239
+
229
240
fn build_isa ( sess : & Session ) -> Box < isa:: TargetIsa + ' static > {
230
241
let mut flags_builder = settings:: builder ( ) ;
231
242
flags_builder. enable ( "is_pic" ) . unwrap ( ) ;
@@ -252,8 +263,9 @@ fn build_isa(sess: &Session) -> Box<isa::TargetIsa + 'static> {
252
263
}
253
264
}*/
254
265
266
+ let target_triple = target_triple ( sess) ;
255
267
let flags = settings:: Flags :: new ( flags_builder) ;
256
- cranelift:: codegen:: isa:: lookup ( sess . target . target . llvm_target . parse ( ) . unwrap ( ) )
268
+ cranelift:: codegen:: isa:: lookup ( target_triple )
257
269
. unwrap ( )
258
270
. finish ( flags)
259
271
}
0 commit comments