@@ -25,12 +25,14 @@ use rustc_session::config::{
2525} ;
2626use rustc_session:: output:: { check_file_is_writeable, invalid_output_for_target, out_filename} ;
2727use rustc_span:: Symbol ;
28+ use spirv_tools:: TargetEnv ;
2829use std:: collections:: BTreeMap ;
2930use std:: ffi:: { CString , OsStr } ;
3031use std:: fs:: File ;
3132use std:: io:: { BufWriter , Read } ;
3233use std:: iter;
3334use std:: path:: { Path , PathBuf } ;
35+ use std:: str:: FromStr ;
3436use std:: sync:: Arc ;
3537
3638pub fn link (
@@ -337,7 +339,8 @@ fn do_spirv_opt(
337339 opt:: { self , Optimizer } ,
338340 } ;
339341
340- let mut optimizer = opt:: create ( sess. target . options . env . parse ( ) . ok ( ) ) ;
342+ let target_env = TargetEnv :: from_str ( sess. target . options . env . desc ( ) ) . ok ( ) ;
343+ let mut optimizer = opt:: create ( target_env) ;
341344
342345 match sess. opts . optimize {
343346 OptLevel :: No => { }
@@ -399,7 +402,8 @@ fn do_spirv_val(
399402) {
400403 use spirv_tools:: val:: { self , Validator } ;
401404
402- let validator = val:: create ( sess. target . options . env . parse ( ) . ok ( ) ) ;
405+ let target_env = TargetEnv :: from_str ( sess. target . options . env . desc ( ) ) . ok ( ) ;
406+ let validator = val:: create ( target_env) ;
403407
404408 if let Err ( e) = validator. validate ( spv_binary, Some ( options) ) {
405409 let mut err = sess. dcx ( ) . struct_err ( e. to_string ( ) ) ;
@@ -498,7 +502,7 @@ fn add_upstream_native_libraries(
498502fn relevant_lib ( sess : & Session , lib : & NativeLib ) -> bool {
499503 match lib. cfg {
500504 Some ( ref cfg) => {
501- eval_config_entry ( sess, cfg, CRATE_NODE_ID , None , ShouldEmit :: ErrorsAndLints ) . as_bool ( )
505+ eval_config_entry ( sess, cfg, CRATE_NODE_ID , ShouldEmit :: ErrorsAndLints ) . as_bool ( )
502506 }
503507 None => true ,
504508 }
0 commit comments