File tree 4 files changed +18
-4
lines changed
4 files changed +18
-4
lines changed Original file line number Diff line number Diff line change 277
277
# compiler.
278
278
#codegen-units = 1
279
279
280
+ # Sets the number of codegen units to build the standard library with,
281
+ # regardless of what the codegen-unit setting for the rest of the compiler is.
282
+ #codegen-units-std = 1
283
+
280
284
# Whether or not debug assertions are enabled for the compiler and standard
281
285
# library. Also enables compilation of debug! and trace! logging macros.
282
286
#debug-assertions = false
Original file line number Diff line number Diff line change @@ -1119,10 +1119,15 @@ impl<'a> Builder<'a> {
1119
1119
cargo. arg ( "-v" ) ;
1120
1120
}
1121
1121
1122
- // This must be kept before the thinlto check, as we set codegen units
1123
- // to 1 forcibly there.
1124
- if let Some ( n) = self . config . rust_codegen_units {
1125
- cargo. env ( "RUSTC_CODEGEN_UNITS" , n. to_string ( ) ) ;
1122
+ match ( mode, self . config . rust_codegen_units_std , self . config . rust_codegen_units ) {
1123
+ ( Mode :: Std , Some ( n) , _) |
1124
+ ( Mode :: Test , Some ( n) , _) |
1125
+ ( _, _, Some ( n) ) => {
1126
+ cargo. env ( "RUSTC_CODEGEN_UNITS" , n. to_string ( ) ) ;
1127
+ }
1128
+ _ => {
1129
+ // Don't set anything
1130
+ }
1126
1131
}
1127
1132
1128
1133
if self . config . rust_optimize {
Original file line number Diff line number Diff line change @@ -95,6 +95,7 @@ pub struct Config {
95
95
// rust codegen options
96
96
pub rust_optimize : bool ,
97
97
pub rust_codegen_units : Option < u32 > ,
98
+ pub rust_codegen_units_std : Option < u32 > ,
98
99
pub rust_debug_assertions : bool ,
99
100
pub rust_debuginfo : bool ,
100
101
pub rust_debuginfo_lines : bool ,
@@ -294,6 +295,7 @@ impl Default for StringOrBool {
294
295
struct Rust {
295
296
optimize : Option < bool > ,
296
297
codegen_units : Option < u32 > ,
298
+ codegen_units_std : Option < u32 > ,
297
299
debug_assertions : Option < bool > ,
298
300
debuginfo : Option < bool > ,
299
301
debuginfo_lines : Option < bool > ,
@@ -580,6 +582,8 @@ impl Config {
580
582
Some ( n) => config. rust_codegen_units = Some ( n) ,
581
583
None => { }
582
584
}
585
+
586
+ config. rust_codegen_units_std = rust. codegen_units_std ;
583
587
}
584
588
585
589
if let Some ( ref t) = toml. target {
Original file line number Diff line number Diff line change @@ -56,6 +56,7 @@ if [ "$DEPLOY$DEPLOY_ALT" != "" ]; then
56
56
RUST_CONFIGURE_ARGS=" $RUST_CONFIGURE_ARGS --release-channel=$RUST_RELEASE_CHANNEL "
57
57
RUST_CONFIGURE_ARGS=" $RUST_CONFIGURE_ARGS --enable-llvm-static-stdcpp"
58
58
RUST_CONFIGURE_ARGS=" $RUST_CONFIGURE_ARGS --set rust.remap-debuginfo"
59
+ RUST_CONFIGURE_ARGS=" $RUST_CONFIGURE_ARGS --set rust.codegen-units-std=1"
59
60
60
61
if [ " $NO_LLVM_ASSERTIONS " = " 1" ]; then
61
62
RUST_CONFIGURE_ARGS=" $RUST_CONFIGURE_ARGS --disable-llvm-assertions"
You can’t perform that action at this time.
0 commit comments