@@ -1379,9 +1379,62 @@ impl Config {
1379
1379
let mut omit_git_hash = None ;
1380
1380
1381
1381
if let Some ( rust) = toml. rust {
1382
- set ( & mut config. channel , rust. channel ) ;
1383
-
1384
- config. download_rustc_commit = config. download_ci_rustc_commit ( rust. download_rustc ) ;
1382
+ let Rust {
1383
+ optimize : optimize_toml,
1384
+ debug : debug_toml,
1385
+ codegen_units,
1386
+ codegen_units_std,
1387
+ debug_assertions : debug_assertions_toml,
1388
+ debug_assertions_std : debug_assertions_std_toml,
1389
+ overflow_checks : overflow_checks_toml,
1390
+ overflow_checks_std : overflow_checks_std_toml,
1391
+ debug_logging : debug_logging_toml,
1392
+ debuginfo_level : debuginfo_level_toml,
1393
+ debuginfo_level_rustc : debuginfo_level_rustc_toml,
1394
+ debuginfo_level_std : debuginfo_level_std_toml,
1395
+ debuginfo_level_tools : debuginfo_level_tools_toml,
1396
+ debuginfo_level_tests : debuginfo_level_tests_toml,
1397
+ split_debuginfo,
1398
+ run_dsymutil : _,
1399
+ backtrace,
1400
+ incremental,
1401
+ parallel_compiler,
1402
+ default_linker,
1403
+ channel,
1404
+ description,
1405
+ musl_root,
1406
+ rpath,
1407
+ verbose_tests,
1408
+ optimize_tests,
1409
+ codegen_tests,
1410
+ omit_git_hash : omit_git_hash_toml,
1411
+ dist_src,
1412
+ save_toolstates,
1413
+ codegen_backends,
1414
+ lld,
1415
+ use_lld,
1416
+ llvm_tools,
1417
+ deny_warnings,
1418
+ backtrace_on_ice,
1419
+ verify_llvm_ir,
1420
+ thin_lto_import_instr_limit,
1421
+ remap_debuginfo,
1422
+ jemalloc,
1423
+ test_compare_mode,
1424
+ llvm_libunwind,
1425
+ control_flow_guard,
1426
+ ehcont_guard,
1427
+ new_symbol_mangling,
1428
+ profile_generate,
1429
+ profile_use,
1430
+ download_rustc,
1431
+ lto,
1432
+ validate_mir_opts,
1433
+ } = rust;
1434
+
1435
+ set ( & mut config. channel , channel) ;
1436
+
1437
+ config. download_rustc_commit = config. download_ci_rustc_commit ( download_rustc) ;
1385
1438
// This list is incomplete, please help by expanding it!
1386
1439
if config. download_rustc_commit . is_some ( ) {
1387
1440
// We need the channel used by the downloaded compiler to match the one we set for rustdoc;
@@ -1398,68 +1451,65 @@ impl Config {
1398
1451
}
1399
1452
}
1400
1453
1401
- debug = rust. debug ;
1402
- debug_assertions = rust. debug_assertions ;
1403
- debug_assertions_std = rust. debug_assertions_std ;
1404
- overflow_checks = rust. overflow_checks ;
1405
- overflow_checks_std = rust. overflow_checks_std ;
1406
- debug_logging = rust. debug_logging ;
1407
- debuginfo_level = rust. debuginfo_level ;
1408
- debuginfo_level_rustc = rust. debuginfo_level_rustc ;
1409
- debuginfo_level_std = rust. debuginfo_level_std ;
1410
- debuginfo_level_tools = rust. debuginfo_level_tools ;
1411
- debuginfo_level_tests = rust. debuginfo_level_tests ;
1412
-
1413
- config. rust_split_debuginfo = rust
1414
- . split_debuginfo
1454
+ debug = debug_toml;
1455
+ debug_assertions = debug_assertions_toml;
1456
+ debug_assertions_std = debug_assertions_std_toml;
1457
+ overflow_checks = overflow_checks_toml;
1458
+ overflow_checks_std = overflow_checks_std_toml;
1459
+ debug_logging = debug_logging_toml;
1460
+ debuginfo_level = debuginfo_level_toml;
1461
+ debuginfo_level_rustc = debuginfo_level_rustc_toml;
1462
+ debuginfo_level_std = debuginfo_level_std_toml;
1463
+ debuginfo_level_tools = debuginfo_level_tools_toml;
1464
+ debuginfo_level_tests = debuginfo_level_tests_toml;
1465
+
1466
+ config. rust_split_debuginfo = split_debuginfo
1415
1467
. as_deref ( )
1416
1468
. map ( SplitDebuginfo :: from_str)
1417
1469
. map ( |v| v. expect ( "invalid value for rust.split_debuginfo" ) )
1418
1470
. unwrap_or ( SplitDebuginfo :: default_for_platform ( & config. build . triple ) ) ;
1419
- optimize = rust . optimize ;
1420
- omit_git_hash = rust . omit_git_hash ;
1421
- config. rust_new_symbol_mangling = rust . new_symbol_mangling ;
1422
- set ( & mut config. rust_optimize_tests , rust . optimize_tests ) ;
1423
- set ( & mut config. codegen_tests , rust . codegen_tests ) ;
1424
- set ( & mut config. rust_rpath , rust . rpath ) ;
1425
- set ( & mut config. jemalloc , rust . jemalloc ) ;
1426
- set ( & mut config. test_compare_mode , rust . test_compare_mode ) ;
1427
- set ( & mut config. backtrace , rust . backtrace ) ;
1428
- config. description = rust . description ;
1429
- set ( & mut config. rust_dist_src , rust . dist_src ) ;
1430
- set ( & mut config. verbose_tests , rust . verbose_tests ) ;
1471
+ optimize = optimize_toml ;
1472
+ omit_git_hash = omit_git_hash_toml ;
1473
+ config. rust_new_symbol_mangling = new_symbol_mangling;
1474
+ set ( & mut config. rust_optimize_tests , optimize_tests) ;
1475
+ set ( & mut config. codegen_tests , codegen_tests) ;
1476
+ set ( & mut config. rust_rpath , rpath) ;
1477
+ set ( & mut config. jemalloc , jemalloc) ;
1478
+ set ( & mut config. test_compare_mode , test_compare_mode) ;
1479
+ set ( & mut config. backtrace , backtrace) ;
1480
+ config. description = description;
1481
+ set ( & mut config. rust_dist_src , dist_src) ;
1482
+ set ( & mut config. verbose_tests , verbose_tests) ;
1431
1483
// in the case "false" is set explicitly, do not overwrite the command line args
1432
- if let Some ( true ) = rust . incremental {
1484
+ if let Some ( true ) = incremental {
1433
1485
config. incremental = true ;
1434
1486
}
1435
- set ( & mut config. use_lld , rust. use_lld ) ;
1436
- set ( & mut config. lld_enabled , rust. lld ) ;
1437
- set ( & mut config. llvm_tools_enabled , rust. llvm_tools ) ;
1438
- config. rustc_parallel = rust
1439
- . parallel_compiler
1440
- . unwrap_or ( config. channel == "dev" || config. channel == "nightly" ) ;
1441
- config. rustc_default_linker = rust. default_linker ;
1442
- config. musl_root = rust. musl_root . map ( PathBuf :: from) ;
1443
- config. save_toolstates = rust. save_toolstates . map ( PathBuf :: from) ;
1487
+ set ( & mut config. use_lld , use_lld) ;
1488
+ set ( & mut config. lld_enabled , lld) ;
1489
+ set ( & mut config. llvm_tools_enabled , llvm_tools) ;
1490
+ config. rustc_parallel =
1491
+ parallel_compiler. unwrap_or ( config. channel == "dev" || config. channel == "nightly" ) ;
1492
+ config. rustc_default_linker = default_linker;
1493
+ config. musl_root = musl_root. map ( PathBuf :: from) ;
1494
+ config. save_toolstates = save_toolstates. map ( PathBuf :: from) ;
1444
1495
set (
1445
1496
& mut config. deny_warnings ,
1446
1497
match flags. warnings {
1447
1498
Warnings :: Deny => Some ( true ) ,
1448
1499
Warnings :: Warn => Some ( false ) ,
1449
- Warnings :: Default => rust . deny_warnings ,
1500
+ Warnings :: Default => deny_warnings,
1450
1501
} ,
1451
1502
) ;
1452
- set ( & mut config. backtrace_on_ice , rust. backtrace_on_ice ) ;
1453
- set ( & mut config. rust_verify_llvm_ir , rust. verify_llvm_ir ) ;
1454
- config. rust_thin_lto_import_instr_limit = rust. thin_lto_import_instr_limit ;
1455
- set ( & mut config. rust_remap_debuginfo , rust. remap_debuginfo ) ;
1456
- set ( & mut config. control_flow_guard , rust. control_flow_guard ) ;
1457
- set ( & mut config. ehcont_guard , rust. ehcont_guard ) ;
1458
- config. llvm_libunwind_default = rust
1459
- . llvm_libunwind
1460
- . map ( |v| v. parse ( ) . expect ( "failed to parse rust.llvm-libunwind" ) ) ;
1461
-
1462
- if let Some ( ref backends) = rust. codegen_backends {
1503
+ set ( & mut config. backtrace_on_ice , backtrace_on_ice) ;
1504
+ set ( & mut config. rust_verify_llvm_ir , verify_llvm_ir) ;
1505
+ config. rust_thin_lto_import_instr_limit = thin_lto_import_instr_limit;
1506
+ set ( & mut config. rust_remap_debuginfo , remap_debuginfo) ;
1507
+ set ( & mut config. control_flow_guard , control_flow_guard) ;
1508
+ set ( & mut config. ehcont_guard , ehcont_guard) ;
1509
+ config. llvm_libunwind_default =
1510
+ llvm_libunwind. map ( |v| v. parse ( ) . expect ( "failed to parse rust.llvm-libunwind" ) ) ;
1511
+
1512
+ if let Some ( ref backends) = codegen_backends {
1463
1513
let available_backends = vec ! [ "llvm" , "cranelift" , "gcc" ] ;
1464
1514
1465
1515
config. rust_codegen_backends = backends. iter ( ) . map ( |s| {
@@ -1477,16 +1527,13 @@ impl Config {
1477
1527
} ) . collect ( ) ;
1478
1528
}
1479
1529
1480
- config. rust_codegen_units = rust. codegen_units . map ( threads_from_config) ;
1481
- config. rust_codegen_units_std = rust. codegen_units_std . map ( threads_from_config) ;
1482
- config. rust_profile_use = flags. rust_profile_use . or ( rust. profile_use ) ;
1483
- config. rust_profile_generate = flags. rust_profile_generate . or ( rust. profile_generate ) ;
1484
- config. rust_lto = rust
1485
- . lto
1486
- . as_deref ( )
1487
- . map ( |value| RustcLto :: from_str ( value) . unwrap ( ) )
1488
- . unwrap_or_default ( ) ;
1489
- config. rust_validate_mir_opts = rust. validate_mir_opts ;
1530
+ config. rust_codegen_units = codegen_units. map ( threads_from_config) ;
1531
+ config. rust_codegen_units_std = codegen_units_std. map ( threads_from_config) ;
1532
+ config. rust_profile_use = flags. rust_profile_use . or ( profile_use) ;
1533
+ config. rust_profile_generate = flags. rust_profile_generate . or ( profile_generate) ;
1534
+ config. rust_lto =
1535
+ lto. as_deref ( ) . map ( |value| RustcLto :: from_str ( value) . unwrap ( ) ) . unwrap_or_default ( ) ;
1536
+ config. rust_validate_mir_opts = validate_mir_opts;
1490
1537
} else {
1491
1538
config. rust_profile_use = flags. rust_profile_use ;
1492
1539
config. rust_profile_generate = flags. rust_profile_generate ;
0 commit comments