@@ -24,7 +24,26 @@ pub fn get(
24
24
}
25
25
} ;
26
26
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 < _ > , _ > > ( ) ;
28
47
match rustc_cfgs {
29
48
Ok ( rustc_cfgs) => {
30
49
tracing:: debug!( ?rustc_cfgs, "rustc cfgs found" ) ;
@@ -42,13 +61,14 @@ fn rustc_print_cfg(
42
61
extra_env : & FxHashMap < String , String > ,
43
62
config : QueryConfig < ' _ > ,
44
63
) -> anyhow:: Result < String > {
45
- const RUSTC_ARGS : [ & str ; 3 ] = [ "--print" , "cfg" , "-O "] ;
64
+ const RUSTC_ARGS : [ & str ; 2 ] = [ "--print" , "cfg" ] ;
46
65
let ( sysroot, current_dir) = match config {
47
66
QueryConfig :: Cargo ( sysroot, cargo_toml) => {
48
67
let mut cmd = sysroot. tool ( Tool :: Cargo , cargo_toml. parent ( ) ) ;
49
68
cmd. envs ( extra_env) ;
50
69
cmd. env ( "RUSTC_BOOTSTRAP" , "1" ) ;
51
70
cmd. args ( [ "rustc" , "-Z" , "unstable-options" ] ) . args ( RUSTC_ARGS ) ;
71
+ cmd. args ( [ "--" , "-O" ] ) ;
52
72
if let Some ( target) = target {
53
73
cmd. args ( [ "--target" , target] ) ;
54
74
}
@@ -70,6 +90,7 @@ fn rustc_print_cfg(
70
90
let mut cmd = sysroot. tool ( Tool :: Rustc , current_dir) ;
71
91
cmd. envs ( extra_env) ;
72
92
cmd. args ( RUSTC_ARGS ) ;
93
+ cmd. arg ( "-O" ) ;
73
94
if let Some ( target) = target {
74
95
cmd. args ( [ "--target" , target] ) ;
75
96
}
0 commit comments