@@ -24,7 +24,26 @@ pub fn get(
2424 }
2525 } ;
2626
27- let rustc_cfgs = rustc_cfgs. lines ( ) . map ( crate :: parse_cfg) . collect :: < Result < Vec < _ > , _ > > ( ) ;
27+ // These are unstable but the standard libraries gate on them.
28+ let unstable = vec ! [
29+ r#"target_has_atomic_equal_alignment="8""# ,
30+ r#"target_has_atomic_equal_alignment="16""# ,
31+ r#"target_has_atomic_equal_alignment="32""# ,
32+ r#"target_has_atomic_equal_alignment="64""# ,
33+ r#"target_has_atomic_equal_alignment="128""# ,
34+ r#"target_has_atomic_equal_alignment="ptr""# ,
35+ r#"target_has_atomic_load_store"# ,
36+ r#"target_has_atomic_load_store="8""# ,
37+ r#"target_has_atomic_load_store="16""# ,
38+ r#"target_has_atomic_load_store="32""# ,
39+ r#"target_has_atomic_load_store="64""# ,
40+ r#"target_has_atomic_load_store="128""# ,
41+ r#"target_has_atomic_load_store="ptr""# ,
42+ r#"target_thread_local"# ,
43+ r#"target_has_atomic"# ,
44+ ] ;
45+ let rustc_cfgs =
46+ rustc_cfgs. lines ( ) . chain ( unstable) . map ( crate :: parse_cfg) . collect :: < Result < Vec < _ > , _ > > ( ) ;
2847 match rustc_cfgs {
2948 Ok ( rustc_cfgs) => {
3049 tracing:: debug!( ?rustc_cfgs, "rustc cfgs found" ) ;
@@ -42,13 +61,14 @@ fn rustc_print_cfg(
4261 extra_env : & FxHashMap < String , String > ,
4362 config : QueryConfig < ' _ > ,
4463) -> anyhow:: Result < String > {
45- const RUSTC_ARGS : [ & str ; 3 ] = [ "--print" , "cfg" , "-O "] ;
64+ const RUSTC_ARGS : [ & str ; 2 ] = [ "--print" , "cfg" ] ;
4665 let ( sysroot, current_dir) = match config {
4766 QueryConfig :: Cargo ( sysroot, cargo_toml) => {
4867 let mut cmd = sysroot. tool ( Tool :: Cargo , cargo_toml. parent ( ) ) ;
4968 cmd. envs ( extra_env) ;
5069 cmd. env ( "RUSTC_BOOTSTRAP" , "1" ) ;
5170 cmd. args ( [ "rustc" , "-Z" , "unstable-options" ] ) . args ( RUSTC_ARGS ) ;
71+ cmd. args ( [ "--" , "-O" ] ) ;
5272 if let Some ( target) = target {
5373 cmd. args ( [ "--target" , target] ) ;
5474 }
@@ -70,6 +90,7 @@ fn rustc_print_cfg(
7090 let mut cmd = sysroot. tool ( Tool :: Rustc , current_dir) ;
7191 cmd. envs ( extra_env) ;
7292 cmd. args ( RUSTC_ARGS ) ;
93+ cmd. arg ( "-O" ) ;
7394 if let Some ( target) = target {
7495 cmd. args ( [ "--target" , target] ) ;
7596 }
0 commit comments