diff options
| author | bit-aloo <sshourya17@gmail.com> | 2025-08-04 21:36:37 +0530 |
|---|---|---|
| committer | bit-aloo <sshourya17@gmail.com> | 2025-08-06 15:50:27 +0530 |
| commit | 962836dfd3afeeeccb3ae58e0f3ff7de70a1be75 (patch) | |
| tree | 35d84f077282b545abb130d03440f7e18f52830d | |
| parent | 7f20ad86ba273315252c44adbce3ad99b6651863 (diff) | |
| download | rust-962836dfd3afeeeccb3ae58e0f3ff7de70a1be75.tar.gz rust-962836dfd3afeeeccb3ae58e0f3ff7de70a1be75.zip | |
remove redundant _toml suffix and other misc changes
| -rw-r--r-- | src/bootstrap/src/core/config/config.rs | 749 | ||||
| -rw-r--r-- | src/bootstrap/src/core/config/toml/mod.rs | 2 | ||||
| -rw-r--r-- | src/bootstrap/src/core/config/toml/rust.rs | 2 | ||||
| -rw-r--r-- | src/bootstrap/src/core/config/toml/target.rs | 7 |
4 files changed, 371 insertions, 389 deletions
diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs index 59c20377066..2c008f957d9 100644 --- a/src/bootstrap/src/core/config/config.rs +++ b/src/bootstrap/src/core/config/config.rs @@ -43,7 +43,7 @@ use crate::core::config::toml::install::Install; use crate::core::config::toml::llvm::Llvm; use crate::core::config::toml::rust::{ LldMode, Rust, RustOptimize, check_incompatible_options_for_ci_rustc, - default_lld_opt_in_targets, validate_codegen_backends, + default_lld_opt_in_targets, parse_codegen_backends, }; use crate::core::config::toml::target::Target; use crate::core::config::{ @@ -490,170 +490,171 @@ impl Config { // Now override TOML values with flags, to make sure that we won't later override flags with // TOML values by accident instead, because flags have higher priority. let Build { - description: build_description_toml, - build: mut build_build_toml, - host: build_host_toml, - target: build_target_toml, - build_dir: build_build_dir_toml, - cargo: build_cargo_toml, - rustc: mut build_rustc_toml, - rustfmt: build_rustfmt_toml, - cargo_clippy: build_cargo_clippy_toml, - docs: build_docs_toml, - compiler_docs: build_compiler_docs_toml, - library_docs_private_items: build_library_docs_private_items_toml, - docs_minification: build_docs_minification_toml, - submodules: build_submodules_toml, - gdb: build_gdb_toml, - lldb: build_lldb_toml, - nodejs: build_nodejs_toml, - npm: build_npm_toml, - python: build_python_toml, - reuse: build_reuse_toml, - locked_deps: build_locked_deps_toml, - vendor: build_vendor_toml, - full_bootstrap: build_full_bootstrap_toml, - bootstrap_cache_path: build_bootstrap_cache_path_toml, - extended: build_extended_toml, - tools: build_tools_toml, - tool: build_tool_toml, - verbose: build_verbose_toml, - sanitizers: build_sanitizers_toml, - profiler: build_profiler_toml, - cargo_native_static: build_cargo_native_static_toml, - low_priority: build_low_priority_toml, - configure_args: build_configure_args_toml, - local_rebuild: build_local_rebuild_toml, - print_step_timings: build_print_step_timings_toml, - print_step_rusage: build_print_step_rusage_toml, - check_stage: build_check_stage_toml, - doc_stage: build_doc_stage_toml, - build_stage: build_build_stage_toml, - test_stage: build_test_stage_toml, - install_stage: build_install_stage_toml, - dist_stage: build_dist_stage_toml, - bench_stage: build_bench_stage_toml, - patch_binaries_for_nix: build_patch_binaries_for_nix_toml, + description: build_description, + build: mut build_build, + host: build_host, + target: build_target, + build_dir: build_build_dir, + cargo: mut build_cargo, + rustc: mut build_rustc, + rustfmt: build_rustfmt, + cargo_clippy: build_cargo_clippy, + docs: build_docs, + compiler_docs: build_compiler_docs, + library_docs_private_items: build_library_docs_private_items, + docs_minification: build_docs_minification, + submodules: build_submodules, + gdb: build_gdb, + lldb: build_lldb, + nodejs: build_nodejs, + npm: build_npm, + python: build_python, + reuse: build_reuse, + locked_deps: build_locked_deps, + vendor: build_vendor, + full_bootstrap: build_full_bootstrap, + bootstrap_cache_path: build_bootstrap_cache_path, + extended: build_extended, + tools: build_tools, + tool: build_tool, + verbose: build_verbose, + sanitizers: build_sanitizers, + profiler: build_profiler, + cargo_native_static: build_cargo_native_static, + low_priority: build_low_priority, + configure_args: build_configure_args, + local_rebuild: build_local_rebuild, + print_step_timings: build_print_step_timings, + print_step_rusage: build_print_step_rusage, + check_stage: build_check_stage, + doc_stage: build_doc_stage, + build_stage: build_build_stage, + test_stage: build_test_stage, + install_stage: build_install_stage, + dist_stage: build_dist_stage, + bench_stage: build_bench_stage, + patch_binaries_for_nix: build_patch_binaries_for_nix, // This field is only used by bootstrap.py metrics: _, - android_ndk: build_android_ndk_toml, - optimized_compiler_builtins: build_optimized_compiler_builtins_toml, - jobs: mut build_jobs_toml, - compiletest_diff_tool: build_compiletest_diff_tool_toml, - compiletest_use_stage0_libtest: build_compiletest_use_stage0_libtest_toml, - tidy_extra_checks: build_tidy_extra_checks_toml, - ccache: build_ccache_toml, - exclude: build_exclude_toml, + android_ndk: build_android_ndk, + optimized_compiler_builtins: build_optimized_compiler_builtins, + jobs: mut build_jobs, + compiletest_diff_tool: build_compiletest_diff_tool, + compiletest_use_stage0_libtest: build_compiletest_use_stage0_libtest, + tidy_extra_checks: build_tidy_extra_checks, + ccache: build_ccache, + exclude: build_exclude, + compiletest_allow_stage0: build_compiletest_allow_stage0, } = toml.build.unwrap_or_default(); let Install { - prefix: install_prefix_toml, - sysconfdir: install_sysconfdir_toml, - docdir: install_docdir_toml, - bindir: install_bindir_toml, - libdir: install_libdir_toml, - mandir: install_mandir_toml, - datadir: install_datadir_toml, + prefix: install_prefix, + sysconfdir: install_sysconfdir, + docdir: install_docdir, + bindir: install_bindir, + libdir: install_libdir, + mandir: install_mandir, + datadir: install_datadir, } = toml.install.unwrap_or_default(); let Rust { - optimize: rust_optimize_toml, - debug: rust_debug_toml, - codegen_units: rust_codegen_units_toml, - codegen_units_std: rust_codegen_units_std_toml, - rustc_debug_assertions: rust_rustc_debug_assertions_toml, - std_debug_assertions: rust_std_debug_assertions_toml, - tools_debug_assertions: rust_tools_debug_assertions_toml, - overflow_checks: rust_overflow_checks_toml, - overflow_checks_std: rust_overflow_checks_std_toml, - debug_logging: rust_debug_logging_toml, - debuginfo_level: rust_debuginfo_level_toml, - debuginfo_level_rustc: rust_debuginfo_level_rustc_toml, - debuginfo_level_std: rust_debuginfo_level_std_toml, - debuginfo_level_tools: rust_debuginfo_level_tools_toml, - debuginfo_level_tests: rust_debuginfo_level_tests_toml, - backtrace: rust_backtrace_toml, - incremental: rust_incremental_toml, - randomize_layout: rust_randomize_layout_toml, - default_linker: rust_default_linker_toml, - channel: rust_channel_toml, - musl_root: rust_musl_root_toml, - rpath: rust_rpath_toml, - verbose_tests: rust_verbose_tests_toml, - optimize_tests: rust_optimize_tests_toml, - codegen_tests: rust_codegen_tests_toml, - omit_git_hash: rust_omit_git_hash_toml, - dist_src: rust_dist_src_toml, - save_toolstates: rust_save_toolstates_toml, - codegen_backends: rust_codegen_backends_toml, - lld: rust_lld_enabled_toml, - llvm_tools: rust_llvm_tools_toml, - llvm_bitcode_linker: rust_llvm_bitcode_linker_toml, - deny_warnings: rust_deny_warnings_toml, - backtrace_on_ice: rust_backtrace_on_ice_toml, - verify_llvm_ir: rust_verify_llvm_ir_toml, - thin_lto_import_instr_limit: rust_thin_lto_import_instr_limit_toml, - remap_debuginfo: rust_remap_debuginfo_toml, - jemalloc: rust_jemalloc_toml, - test_compare_mode: rust_test_compare_mode_toml, - llvm_libunwind: rust_llvm_libunwind_toml, - control_flow_guard: rust_control_flow_guard_toml, - ehcont_guard: rust_ehcont_guard_toml, - new_symbol_mangling: rust_new_symbol_mangling_toml, - profile_generate: rust_profile_generate_toml, - profile_use: rust_profile_use_toml, - download_rustc: rust_download_rustc_toml, - lto: rust_lto_toml, - validate_mir_opts: rust_validate_mir_opts_toml, - frame_pointers: rust_frame_pointers_toml, - stack_protector: rust_stack_protector_toml, - strip: rust_strip_toml, - lld_mode: rust_lld_mode_toml, - std_features: rust_std_features_toml, + optimize: rust_optimize, + debug: rust_debug, + codegen_units: rust_codegen_units, + codegen_units_std: rust_codegen_units_std, + rustc_debug_assertions: rust_rustc_debug_assertions, + std_debug_assertions: rust_std_debug_assertions, + tools_debug_assertions: rust_tools_debug_assertions, + overflow_checks: rust_overflow_checks, + overflow_checks_std: rust_overflow_checks_std, + debug_logging: rust_debug_logging, + debuginfo_level: rust_debuginfo_level, + debuginfo_level_rustc: rust_debuginfo_level_rustc, + debuginfo_level_std: rust_debuginfo_level_std, + debuginfo_level_tools: rust_debuginfo_level_tools, + debuginfo_level_tests: rust_debuginfo_level_tests, + backtrace: rust_backtrace, + incremental: rust_incremental, + randomize_layout: rust_randomize_layout, + default_linker: rust_default_linker, + channel: rust_channel, + musl_root: rust_musl_root, + rpath: rust_rpath, + verbose_tests: rust_verbose_tests, + optimize_tests: rust_optimize_tests, + codegen_tests: rust_codegen_tests, + omit_git_hash: rust_omit_git_hash, + dist_src: rust_dist_src, + save_toolstates: rust_save_toolstates, + codegen_backends: rust_codegen_backends, + lld: rust_lld_enabled, + llvm_tools: rust_llvm_tools, + llvm_bitcode_linker: rust_llvm_bitcode_linker, + deny_warnings: rust_deny_warnings, + backtrace_on_ice: rust_backtrace_on_ice, + verify_llvm_ir: rust_verify_llvm_ir, + thin_lto_import_instr_limit: rust_thin_lto_import_instr_limit, + remap_debuginfo: rust_remap_debuginfo, + jemalloc: rust_jemalloc, + test_compare_mode: rust_test_compare_mode, + llvm_libunwind: rust_llvm_libunwind, + control_flow_guard: rust_control_flow_guard, + ehcont_guard: rust_ehcont_guard, + new_symbol_mangling: rust_new_symbol_mangling, + profile_generate: rust_profile_generate, + profile_use: rust_profile_use, + download_rustc: rust_download_rustc, + lto: rust_lto, + validate_mir_opts: rust_validate_mir_opts, + frame_pointers: rust_frame_pointers, + stack_protector: rust_stack_protector, + strip: rust_strip, + lld_mode: rust_lld_mode, + std_features: rust_std_features, } = toml.rust.unwrap_or_default(); let Llvm { - optimize: llvm_optimize_toml, - thin_lto: llvm_thin_lto_toml, - release_debuginfo: llvm_release_debuginfo_toml, - assertions: llvm_assertions_toml, - tests: llvm_tests_toml, - enzyme: llvm_enzyme_toml, - plugins: llvm_plugin_toml, - static_libstdcpp: llvm_static_libstdcpp_toml, - libzstd: llvm_libzstd_toml, - ninja: llvm_ninja_toml, - targets: llvm_targets_toml, - experimental_targets: llvm_experimental_targets_toml, - link_jobs: llvm_link_jobs_toml, - link_shared: llvm_link_shared_toml, - version_suffix: llvm_version_suffix_toml, - clang_cl: llvm_clang_cl_toml, - cflags: llvm_cflags_toml, - cxxflags: llvm_cxxflags_toml, - ldflags: llvm_ldflags_toml, - use_libcxx: llvm_use_libcxx_toml, - use_linker: llvm_use_linker_toml, - allow_old_toolchain: llvm_allow_old_toolchain_toml, - offload: llvm_offload_toml, - polly: llvm_polly_toml, - clang: llvm_clang_toml, - enable_warnings: llvm_enable_warnings_toml, - download_ci_llvm: llvm_download_ci_llvm_toml, - build_config: llvm_build_config_toml, + optimize: llvm_optimize, + thin_lto: llvm_thin_lto, + release_debuginfo: llvm_release_debuginfo, + assertions: llvm_assertions, + tests: llvm_tests, + enzyme: llvm_enzyme, + plugins: llvm_plugin, + static_libstdcpp: llvm_static_libstdcpp, + libzstd: llvm_libzstd, + ninja: llvm_ninja, + targets: llvm_targets, + experimental_targets: llvm_experimental_targets, + link_jobs: llvm_link_jobs, + link_shared: llvm_link_shared, + version_suffix: llvm_version_suffix, + clang_cl: llvm_clang_cl, + cflags: llvm_cflags, + cxxflags: llvm_cxxflags, + ldflags: llvm_ldflags, + use_libcxx: llvm_use_libcxx, + use_linker: llvm_use_linker, + allow_old_toolchain: llvm_allow_old_toolchain, + offload: llvm_offload, + polly: llvm_polly, + clang: llvm_clang, + enable_warnings: llvm_enable_warnings, + download_ci_llvm: llvm_download_ci_llvm, + build_config: llvm_build_config, } = toml.llvm.unwrap_or_default(); let Dist { - sign_folder: dist_sign_folder_toml, - upload_addr: dist_upload_addr_toml, - src_tarball: dist_src_tarball_toml, - compression_formats: dist_compression_formats_toml, - compression_profile: dist_compression_profile_toml, - include_mingw_linker: dist_include_mingw_linker_toml, - vendor: dist_vendor_toml, + sign_folder: dist_sign_folder, + upload_addr: dist_upload_addr, + src_tarball: dist_src_tarball, + compression_formats: dist_compression_formats, + compression_profile: dist_compression_profile, + include_mingw_linker: dist_include_mingw_linker, + vendor: dist_vendor, } = toml.dist.unwrap_or_default(); - let Gcc { download_ci_gcc: gcc_download_ci_gcc_toml } = toml.gcc.unwrap_or_default(); + let Gcc { download_ci_gcc: gcc_download_ci_gcc } = toml.gcc.unwrap_or_default(); if cfg!(test) { // When configuring bootstrap for tests, make sure to set the rustc and Cargo to the @@ -661,51 +662,47 @@ impl Config { // don't do that, bootstrap will use its own detection logic to find a suitable rustc // and Cargo, which doesn't work when the caller is specìfying a custom local rustc or // Cargo in their bootstrap.toml. - build_rustc_toml = - build_rustc_toml.take().or(std::env::var_os("RUSTC").map(|p| p.into())); - build_build_toml = build_build_toml - .take() - .or(std::env::var_os("CARGO").map(|p| p.into_string().unwrap())); + build_rustc = build_rustc.take().or(std::env::var_os("RUSTC").map(|p| p.into())); + build_cargo = build_cargo.take().or(std::env::var_os("CARGO").map(|p| p.into())); } - build_jobs_toml = flags_jobs.or(build_jobs_toml); - build_build_toml = flags_build.or(build_build_toml); + build_jobs = flags_jobs.or(build_jobs); + build_build = flags_build.or(build_build); - let build_dir = flags_build_dir.or(build_build_dir_toml.map(PathBuf::from)); + let build_dir = flags_build_dir.or(build_build_dir.map(PathBuf::from)); let host = if let Some(TargetSelectionList(hosts)) = flags_host { Some(hosts) - } else if let Some(file_host) = build_host_toml { - Some(file_host.iter().map(|h| TargetSelection::from_user(h)).collect()) } else { - None + build_host + .map(|file_host| file_host.iter().map(|h| TargetSelection::from_user(h)).collect()) }; let target = if let Some(TargetSelectionList(targets)) = flags_target { Some(targets) - } else if let Some(file_target) = build_target_toml { - Some(file_target.iter().map(|h| TargetSelection::from_user(h)).collect()) } else { - None + build_target.map(|file_target| { + file_target.iter().map(|h| TargetSelection::from_user(h)).collect() + }) }; - if let Some(rustc) = &build_rustc_toml { - if !flags_skip_stage0_validation { - check_stage0_version(&rustc, "rustc", &config.src, config.exec_ctx()); - } + if let Some(rustc) = &build_rustc + && !flags_skip_stage0_validation + { + check_stage0_version(rustc, "rustc", &config.src, config.exec_ctx()); } - if let Some(cargo) = &build_cargo_toml { - if !flags_skip_stage0_validation { - check_stage0_version(&cargo, "cargo", &config.src, config.exec_ctx()); - } + if let Some(cargo) = &build_cargo + && !flags_skip_stage0_validation + { + check_stage0_version(cargo, "cargo", &config.src, config.exec_ctx()); } // Prefer CLI verbosity flags if set (`flags_verbose` > 0), otherwise take the value from // TOML. config .exec_ctx - .set_verbosity(cmp::max(build_verbose_toml.unwrap_or_default() as u8, flags_verbose)); + .set_verbosity(cmp::max(build_verbose.unwrap_or_default() as u8, flags_verbose)); let mut paths: Vec<PathBuf> = flags_skip.into_iter().chain(flags_exclude).collect(); - if let Some(exclude) = build_exclude_toml { + if let Some(exclude) = build_exclude { paths.extend(exclude); } @@ -743,6 +740,7 @@ impl Config { .to_path_buf(); } + config.compiletest_allow_stage0 = build_compiletest_allow_stage0.unwrap_or(false); config.stage0_metadata = build_helper::stage0_parser::parse_stage0_file(); config.change_id = toml.change_id.inner; @@ -769,8 +767,8 @@ impl Config { "config.skip" = ?config.skip, ); - config.jobs = Some(threads_from_config(build_jobs_toml.unwrap_or(0))); - if let Some(build) = build_build_toml { + config.jobs = Some(threads_from_config(build_jobs.unwrap_or(0))); + if let Some(build) = build_build { config.host_target = TargetSelection::from_user(&build); } @@ -782,13 +780,13 @@ impl Config { config.out = absolute(&config.out).expect("can't make empty path absolute"); } - if build_cargo_clippy_toml.is_some() && build_rustc_toml.is_none() { + if build_cargo_clippy.is_some() && build_rustc.is_none() { println!( "WARNING: Using `build.cargo-clippy` without `build.rustc` usually fails due to toolchain conflict." ); } - config.initial_rustc = if let Some(rustc) = build_rustc_toml { + config.initial_rustc = if let Some(rustc) = build_rustc { rustc } else { let dwn_ctx = DownloadContext::from(&config); @@ -810,9 +808,9 @@ impl Config { .trim() )); - config.initial_cargo_clippy = build_cargo_clippy_toml; + config.initial_cargo_clippy = build_cargo_clippy; - config.initial_cargo = if let Some(cargo) = build_cargo_toml { + config.initial_cargo = if let Some(cargo) = build_cargo { cargo } else { let dwn_ctx = DownloadContext::from(&config); @@ -836,61 +834,51 @@ impl Config { config.hosts.clone() }; - config.nodejs = build_nodejs_toml.map(PathBuf::from); - config.npm = build_npm_toml.map(PathBuf::from); - config.gdb = build_gdb_toml.map(PathBuf::from); - config.lldb = build_lldb_toml.map(PathBuf::from); - config.python = build_python_toml.map(PathBuf::from); - config.reuse = build_reuse_toml.map(PathBuf::from); - config.submodules = build_submodules_toml; - config.android_ndk = build_android_ndk_toml; - config.bootstrap_cache_path = build_bootstrap_cache_path_toml; - set(&mut config.low_priority, build_low_priority_toml); - set(&mut config.compiler_docs, build_compiler_docs_toml); - set(&mut config.library_docs_private_items, build_library_docs_private_items_toml); - set(&mut config.docs_minification, build_docs_minification_toml); - set(&mut config.docs, build_docs_toml); - set(&mut config.locked_deps, build_locked_deps_toml); - set(&mut config.full_bootstrap, build_full_bootstrap_toml); - set(&mut config.extended, build_extended_toml); - config.tools = build_tools_toml; - set(&mut config.tool, build_tool_toml); - set(&mut config.sanitizers, build_sanitizers_toml); - set(&mut config.profiler, build_profiler_toml); - set(&mut config.cargo_native_static, build_cargo_native_static_toml); - set(&mut config.configure_args, build_configure_args_toml); - set(&mut config.local_rebuild, build_local_rebuild_toml); - set(&mut config.print_step_timings, build_print_step_timings_toml); - set(&mut config.print_step_rusage, build_print_step_rusage_toml); - config.patch_binaries_for_nix = build_patch_binaries_for_nix_toml; + config.nodejs = build_nodejs.map(PathBuf::from); + config.npm = build_npm.map(PathBuf::from); + config.gdb = build_gdb.map(PathBuf::from); + config.lldb = build_lldb.map(PathBuf::from); + config.python = build_python.map(PathBuf::from); + config.reuse = build_reuse.map(PathBuf::from); + config.submodules = build_submodules; + config.android_ndk = build_android_ndk; + config.bootstrap_cache_path = build_bootstrap_cache_path; + set(&mut config.low_priority, build_low_priority); + set(&mut config.compiler_docs, build_compiler_docs); + set(&mut config.library_docs_private_items, build_library_docs_private_items); + set(&mut config.docs_minification, build_docs_minification); + set(&mut config.docs, build_docs); + set(&mut config.locked_deps, build_locked_deps); + set(&mut config.full_bootstrap, build_full_bootstrap); + set(&mut config.extended, build_extended); + config.tools = build_tools; + set(&mut config.tool, build_tool); + set(&mut config.sanitizers, build_sanitizers); + set(&mut config.profiler, build_profiler); + set(&mut config.cargo_native_static, build_cargo_native_static); + set(&mut config.configure_args, build_configure_args); + set(&mut config.local_rebuild, build_local_rebuild); + set(&mut config.print_step_timings, build_print_step_timings); + set(&mut config.print_step_rusage, build_print_step_rusage); + config.patch_binaries_for_nix = build_patch_binaries_for_nix; // Verbose flag is a good default for `rust.verbose-tests`. config.verbose_tests = config.is_verbose(); - let install_prefix = install_prefix_toml.map(PathBuf::from); - let install_sysconfdir = install_sysconfdir_toml.map(PathBuf::from); - let install_docdir = install_docdir_toml.map(PathBuf::from); - let install_bindir = install_bindir_toml.map(PathBuf::from); - let install_libdir = install_libdir_toml.map(PathBuf::from); - let install_mandir = install_mandir_toml.map(PathBuf::from); - let install_datadir = install_datadir_toml.map(PathBuf::from); - config.prefix = install_prefix; - config.sysconfdir = install_sysconfdir; - config.datadir = install_datadir; - config.docdir = install_docdir; - set(&mut config.bindir, install_bindir); - config.libdir = install_libdir; - config.mandir = install_mandir; - -<<<<<<< HEAD -======= - config.llvm_assertions = llvm_assertions_toml.unwrap_or(false); - ->>>>>>> f1dbcb5ad2c (move llvm config to the top of parse method) + config.prefix = install_prefix.map(PathBuf::from); + config.sysconfdir = install_sysconfdir.map(PathBuf::from); + config.datadir = install_datadir.map(PathBuf::from); + config.docdir = install_docdir.map(PathBuf::from); + set(&mut config.bindir, install_bindir.map(PathBuf::from)); + config.libdir = install_libdir.map(PathBuf::from); + config.mandir = install_mandir.map(PathBuf::from); + + config.llvm_assertions = llvm_assertions.unwrap_or(false); + let file_content = t!(fs::read_to_string(config.src.join("src/ci/channel"))); let ci_channel = file_content.trim_end(); - let is_user_configured_rust_channel = match rust_channel_toml { + let is_user_configured_rust_channel = match rust_channel { Some(channel) if channel == "auto-detect" => { config.channel = ci_channel.into(); true @@ -903,7 +891,7 @@ impl Config { }; let default = config.channel == "dev"; - config.omit_git_hash = rust_omit_git_hash_toml.unwrap_or(default); + config.omit_git_hash = rust_omit_git_hash.unwrap_or(default); config.rust_info = config.git_info(config.omit_git_hash, &config.src); config.cargo_info = @@ -921,7 +909,7 @@ impl Config { config.in_tree_llvm_info = config.git_info(false, &config.src.join("src/llvm-project")); config.in_tree_gcc_info = config.git_info(false, &config.src.join("src/gcc")); - config.vendor = build_vendor_toml.unwrap_or( + config.vendor = build_vendor.unwrap_or( config.rust_info.is_from_tarball() && config.src.join("vendor").exists() && config.src.join(".cargo/config.toml").exists(), @@ -934,6 +922,37 @@ impl Config { config.rust_profile_use = flags_rust_profile_use; config.rust_profile_generate = flags_rust_profile_generate; + // FIXME(#133381): alt rustc builds currently do *not* have rustc debug assertions + // enabled. We should not download a CI alt rustc if we need rustc to have debug + // assertions (e.g. for crashes test suite). This can be changed once something like + // [Enable debug assertions on alt + // builds](https://github.com/rust-lang/rust/pull/131077) lands. + // + // Note that `rust.debug = true` currently implies `rust.debug-assertions = true`! + // + // This relies also on the fact that the global default for `download-rustc` will be + // `false` if it's not explicitly set. + let debug_assertions_requested = matches!(rust_rustc_debug_assertions, Some(true)) + || (matches!(rust_debug, Some(true)) + && !matches!(rust_rustc_debug_assertions, Some(false))); + + if debug_assertions_requested + && let Some(ref opt) = rust_download_rustc + && opt.is_string_or_true() + { + eprintln!( + "WARN: currently no CI rustc builds have rustc debug assertions \ + enabled. Please either set `rust.debug-assertions` to `false` if you \ + want to use download CI rustc or set `rust.download-rustc` to `false`." + ); + } + + config.download_rustc_commit = config.download_ci_rustc_commit( + rust_download_rustc, + debug_assertions_requested, + config.llvm_assertions, + ); + if let Some(t) = toml.target { for (triple, cfg) in t { let mut target = Target::from_triple(&triple); @@ -984,7 +1003,7 @@ impl Config { target.jemalloc = cfg.jemalloc; if let Some(backends) = cfg.codegen_backends { target.codegen_backends = - Some(validate_codegen_backends(backends, &format!("target.{triple}"))) + Some(parse_codegen_backends(backends, &format!("target.{triple}"))) } target.split_debuginfo = cfg.split_debuginfo.as_ref().map(|v| { @@ -997,38 +1016,7 @@ impl Config { } } - // FIXME(#133381): alt rustc builds currently do *not* have rustc debug assertions - // enabled. We should not download a CI alt rustc if we need rustc to have debug - // assertions (e.g. for crashes test suite). This can be changed once something like - // [Enable debug assertions on alt - // builds](https://github.com/rust-lang/rust/pull/131077) lands. - // - // Note that `rust.debug = true` currently implies `rust.debug-assertions = true`! - // - // This relies also on the fact that the global default for `download-rustc` will be - // `false` if it's not explicitly set. - let debug_assertions_requested = matches!(rust_rustc_debug_assertions_toml, Some(true)) - || (matches!(rust_debug_toml, Some(true)) - && !matches!(rust_rustc_debug_assertions_toml, Some(false))); - - if debug_assertions_requested - && let Some(ref opt) = rust_download_rustc_toml - && opt.is_string_or_true() - { - eprintln!( - "WARN: currently no CI rustc builds have rustc debug assertions \ - enabled. Please either set `rust.debug-assertions` to `false` if you \ - want to use download CI rustc or set `rust.download-rustc` to `false`." - ); - } - - config.download_rustc_commit = config.download_ci_rustc_commit( - rust_download_rustc_toml, - debug_assertions_requested, - config.llvm_assertions, - ); - - if rust_optimize_toml.as_ref().is_some_and(|v| matches!(v, RustOptimize::Bool(false))) { + if rust_optimize.as_ref().is_some_and(|v| matches!(v, RustOptimize::Bool(false))) { eprintln!( "WARNING: setting `optimize` to `false` is known to cause errors and \ should be considered unsupported. Refer to `bootstrap.example.toml` \ @@ -1036,71 +1024,69 @@ impl Config { ); } - config.rust_new_symbol_mangling = rust_new_symbol_mangling_toml; - set(&mut config.rust_optimize_tests, rust_optimize_tests_toml); - set(&mut config.codegen_tests, rust_codegen_tests_toml); - set(&mut config.rust_rpath, rust_rpath_toml); - set(&mut config.rust_strip, rust_strip_toml); - set(&mut config.rust_frame_pointers, rust_frame_pointers_toml); - config.rust_stack_protector = rust_stack_protector_toml; - set(&mut config.jemalloc, rust_jemalloc_toml); - set(&mut config.test_compare_mode, rust_test_compare_mode_toml); - set(&mut config.backtrace, rust_backtrace_toml); - set(&mut config.rust_dist_src, rust_dist_src_toml); - set(&mut config.verbose_tests, rust_verbose_tests_toml); + config.rust_new_symbol_mangling = rust_new_symbol_mangling; + set(&mut config.rust_optimize_tests, rust_optimize_tests); + set(&mut config.codegen_tests, rust_codegen_tests); + set(&mut config.rust_rpath, rust_rpath); + set(&mut config.rust_strip, rust_strip); + set(&mut config.rust_frame_pointers, rust_frame_pointers); + config.rust_stack_protector = rust_stack_protector; + set(&mut config.jemalloc, rust_jemalloc); + set(&mut config.test_compare_mode, rust_test_compare_mode); + set(&mut config.backtrace, rust_backtrace); + set(&mut config.rust_dist_src, rust_dist_src); + set(&mut config.verbose_tests, rust_verbose_tests); // in the case "false" is set explicitly, do not overwrite the command line args - if let Some(true) = rust_incremental_toml { + if let Some(true) = rust_incremental { config.incremental = true; } - set(&mut config.lld_mode, rust_lld_mode_toml); - set(&mut config.llvm_bitcode_linker_enabled, rust_llvm_bitcode_linker_toml); + set(&mut config.lld_mode, rust_lld_mode); + set(&mut config.llvm_bitcode_linker_enabled, rust_llvm_bitcode_linker); - config.rust_randomize_layout = rust_randomize_layout_toml.unwrap_or_default(); - config.llvm_tools_enabled = rust_llvm_tools_toml.unwrap_or(true); + config.rust_randomize_layout = rust_randomize_layout.unwrap_or_default(); + config.llvm_tools_enabled = rust_llvm_tools.unwrap_or(true); config.llvm_enzyme = config.channel == "dev" || config.channel == "nightly"; - config.rustc_default_linker = rust_default_linker_toml; - config.musl_root = rust_musl_root_toml.map(PathBuf::from); - config.save_toolstates = rust_save_toolstates_toml.map(PathBuf::from); + config.rustc_default_linker = rust_default_linker; + config.musl_root = rust_musl_root.map(PathBuf::from); + config.save_toolstates = rust_save_toolstates.map(PathBuf::from); set( &mut config.deny_warnings, match flags_warnings { Warnings::Deny => Some(true), Warnings::Warn => Some(false), - Warnings::Default => rust_deny_warnings_toml, + Warnings::Default => rust_deny_warnings, }, ); - set(&mut config.backtrace_on_ice, rust_backtrace_on_ice_toml); - set(&mut config.rust_verify_llvm_ir, rust_verify_llvm_ir_toml); - config.rust_thin_lto_import_instr_limit = rust_thin_lto_import_instr_limit_toml; - set(&mut config.rust_remap_debuginfo, rust_remap_debuginfo_toml); - set(&mut config.control_flow_guard, rust_control_flow_guard_toml); - set(&mut config.ehcont_guard, rust_ehcont_guard_toml); - config.llvm_libunwind_default = rust_llvm_libunwind_toml - .map(|v| v.parse().expect("failed to parse rust.llvm-libunwind")); + set(&mut config.backtrace_on_ice, rust_backtrace_on_ice); + set(&mut config.rust_verify_llvm_ir, rust_verify_llvm_ir); + config.rust_thin_lto_import_instr_limit = rust_thin_lto_import_instr_limit; + set(&mut config.rust_remap_debuginfo, rust_remap_debuginfo); + set(&mut config.control_flow_guard, rust_control_flow_guard); + set(&mut config.ehcont_guard, rust_ehcont_guard); + config.llvm_libunwind_default = + rust_llvm_libunwind.map(|v| v.parse().expect("failed to parse rust.llvm-libunwind")); set( &mut config.rust_codegen_backends, - rust_codegen_backends_toml.map(|backends| validate_codegen_backends(backends, "rust")), + rust_codegen_backends.map(|backends| parse_codegen_backends(backends, "rust")), ); - config.rust_codegen_units = rust_codegen_units_toml.map(threads_from_config); - config.rust_codegen_units_std = rust_codegen_units_std_toml.map(threads_from_config); + config.rust_codegen_units = rust_codegen_units.map(threads_from_config); + config.rust_codegen_units_std = rust_codegen_units_std.map(threads_from_config); if config.rust_profile_use.is_none() { - config.rust_profile_use = rust_profile_use_toml; + config.rust_profile_use = rust_profile_use; } if config.rust_profile_generate.is_none() { - config.rust_profile_generate = rust_profile_generate_toml; + config.rust_profile_generate = rust_profile_generate; } - config.rust_lto = rust_lto_toml - .as_deref() - .map(|value| RustcLto::from_str(value).unwrap()) - .unwrap_or_default(); - config.rust_validate_mir_opts = rust_validate_mir_opts_toml; + config.rust_lto = + rust_lto.as_deref().map(|value| RustcLto::from_str(value).unwrap()).unwrap_or_default(); + config.rust_validate_mir_opts = rust_validate_mir_opts; - config.rust_optimize = rust_optimize_toml.unwrap_or(RustOptimize::Bool(true)); + config.rust_optimize = rust_optimize.unwrap_or(RustOptimize::Bool(true)); // We make `x86_64-unknown-linux-gnu` use the self-contained linker by default, so we will // build our internal lld and use it as the default linker, by setting the `rust.lld` config @@ -1123,44 +1109,43 @@ impl Config { .is_none_or(|target_config| target_config.llvm_config.is_none()); let enable_lld = config.llvm_from_ci || no_llvm_config; // Prefer the config setting in case an explicit opt-out is needed. - config.lld_enabled = rust_lld_enabled_toml.unwrap_or(enable_lld); + config.lld_enabled = rust_lld_enabled.unwrap_or(enable_lld); } else { - set(&mut config.lld_enabled, rust_lld_enabled_toml); + set(&mut config.lld_enabled, rust_lld_enabled); } let default_std_features = BTreeSet::from([String::from("panic-unwind")]); - config.rust_std_features = rust_std_features_toml.unwrap_or(default_std_features); + config.rust_std_features = rust_std_features.unwrap_or(default_std_features); - let default = rust_debug_toml == Some(true); - config.rustc_debug_assertions = rust_rustc_debug_assertions_toml.unwrap_or(default); + let default = rust_debug == Some(true); + config.rustc_debug_assertions = rust_rustc_debug_assertions.unwrap_or(default); config.std_debug_assertions = - rust_std_debug_assertions_toml.unwrap_or(config.rustc_debug_assertions); + rust_std_debug_assertions.unwrap_or(config.rustc_debug_assertions); config.tools_debug_assertions = - rust_tools_debug_assertions_toml.unwrap_or(config.rustc_debug_assertions); - config.rust_overflow_checks = rust_overflow_checks_toml.unwrap_or(default); + rust_tools_debug_assertions.unwrap_or(config.rustc_debug_assertions); + config.rust_overflow_checks = rust_overflow_checks.unwrap_or(default); config.rust_overflow_checks_std = - rust_overflow_checks_std_toml.unwrap_or(config.rust_overflow_checks); + rust_overflow_checks_std.unwrap_or(config.rust_overflow_checks); - config.rust_debug_logging = - rust_debug_logging_toml.unwrap_or(config.rustc_debug_assertions); + config.rust_debug_logging = rust_debug_logging.unwrap_or(config.rustc_debug_assertions); let with_defaults = |debuginfo_level_specific: Option<_>| { - debuginfo_level_specific.or(rust_debuginfo_level_toml).unwrap_or( - if rust_debug_toml == Some(true) { + debuginfo_level_specific.or(rust_debuginfo_level).unwrap_or( + if rust_debug == Some(true) { DebuginfoLevel::Limited } else { DebuginfoLevel::None }, ) }; - config.rust_debuginfo_level_rustc = with_defaults(rust_debuginfo_level_rustc_toml); - config.rust_debuginfo_level_std = with_defaults(rust_debuginfo_level_std_toml); - config.rust_debuginfo_level_tools = with_defaults(rust_debuginfo_level_tools_toml); + config.rust_debuginfo_level_rustc = with_defaults(rust_debuginfo_level_rustc); + config.rust_debuginfo_level_std = with_defaults(rust_debuginfo_level_std); + config.rust_debuginfo_level_tools = with_defaults(rust_debuginfo_level_tools); config.rust_debuginfo_level_tests = - rust_debuginfo_level_tests_toml.unwrap_or(DebuginfoLevel::None); + rust_debuginfo_level_tests.unwrap_or(DebuginfoLevel::None); config.reproducible_artifacts = flags_reproducible_artifact; - config.description = build_description_toml; + config.description = build_description; // We need to override `rust.channel` if it's manually specified when using the CI rustc. // This is because if the compiler uses a different channel than the one specified in bootstrap.toml, @@ -1178,38 +1163,38 @@ impl Config { config.channel = channel; } - set(&mut config.ninja_in_file, llvm_ninja_toml); - set(&mut config.llvm_optimize, llvm_optimize_toml); - set(&mut config.llvm_thin_lto, llvm_thin_lto_toml); - set(&mut config.llvm_release_debuginfo, llvm_release_debuginfo_toml); - set(&mut config.llvm_static_stdcpp, llvm_static_libstdcpp_toml); - set(&mut config.llvm_libzstd, llvm_libzstd_toml); - if let Some(v) = llvm_link_shared_toml { + set(&mut config.ninja_in_file, llvm_ninja); + set(&mut config.llvm_optimize, llvm_optimize); + set(&mut config.llvm_thin_lto, llvm_thin_lto); + set(&mut config.llvm_release_debuginfo, llvm_release_debuginfo); + set(&mut config.llvm_static_stdcpp, llvm_static_libstdcpp); + set(&mut config.llvm_libzstd, llvm_libzstd); + if let Some(v) = llvm_link_shared { config.llvm_link_shared.set(Some(v)); } - config.llvm_targets.clone_from(&llvm_targets_toml); - config.llvm_experimental_targets.clone_from(&llvm_experimental_targets_toml); - config.llvm_link_jobs = llvm_link_jobs_toml; - config.llvm_version_suffix.clone_from(&llvm_version_suffix_toml); - config.llvm_clang_cl.clone_from(&llvm_clang_cl_toml); - config.llvm_tests = llvm_tests_toml.unwrap_or_default(); - config.llvm_enzyme = llvm_enzyme_toml.unwrap_or_default(); - config.llvm_plugins = llvm_plugin_toml.unwrap_or_default(); - - config.llvm_cflags.clone_from(&llvm_cflags_toml); - config.llvm_cxxflags.clone_from(&llvm_cxxflags_toml); - config.llvm_ldflags.clone_from(&llvm_ldflags_toml); - set(&mut config.llvm_use_libcxx, llvm_use_libcxx_toml); - config.llvm_use_linker.clone_from(&llvm_use_linker_toml); - config.llvm_allow_old_toolchain = llvm_allow_old_toolchain_toml.unwrap_or(false); - config.llvm_offload = llvm_offload_toml.unwrap_or(false); - config.llvm_polly = llvm_polly_toml.unwrap_or(false); - config.llvm_clang = llvm_clang_toml.unwrap_or(false); - config.llvm_enable_warnings = llvm_enable_warnings_toml.unwrap_or(false); - config.llvm_build_config = llvm_build_config_toml.clone().unwrap_or(Default::default()); + config.llvm_targets.clone_from(&llvm_targets); + config.llvm_experimental_targets.clone_from(&llvm_experimental_targets); + config.llvm_link_jobs = llvm_link_jobs; + config.llvm_version_suffix.clone_from(&llvm_version_suffix); + config.llvm_clang_cl.clone_from(&llvm_clang_cl); + config.llvm_tests = llvm_tests.unwrap_or_default(); + config.llvm_enzyme = llvm_enzyme.unwrap_or_default(); + config.llvm_plugins = llvm_plugin.unwrap_or_default(); + + config.llvm_cflags.clone_from(&llvm_cflags); + config.llvm_cxxflags.clone_from(&llvm_cxxflags); + config.llvm_ldflags.clone_from(&llvm_ldflags); + set(&mut config.llvm_use_libcxx, llvm_use_libcxx); + config.llvm_use_linker.clone_from(&llvm_use_linker); + config.llvm_allow_old_toolchain = llvm_allow_old_toolchain.unwrap_or(false); + config.llvm_offload = llvm_offload.unwrap_or(false); + config.llvm_polly = llvm_polly.unwrap_or(false); + config.llvm_clang = llvm_clang.unwrap_or(false); + config.llvm_enable_warnings = llvm_enable_warnings.unwrap_or(false); + config.llvm_build_config = llvm_build_config.clone().unwrap_or(Default::default()); config.llvm_from_ci = - config.parse_download_ci_llvm(llvm_download_ci_llvm_toml, config.llvm_assertions); + config.parse_download_ci_llvm(llvm_download_ci_llvm, config.llvm_assertions); if config.llvm_from_ci { let warn = |option: &str| { @@ -1221,11 +1206,11 @@ impl Config { ); }; - if llvm_static_libstdcpp_toml.is_some() { + if llvm_static_libstdcpp.is_some() { warn("static-libstdcpp"); } - if llvm_link_shared_toml.is_some() { + if llvm_link_shared.is_some() { warn("link-shared"); } @@ -1234,7 +1219,7 @@ impl Config { // config to the ones used to build the LLVM artifacts on CI, and only notify users // if they've chosen a different value. - if llvm_libzstd_toml.is_some() { + if llvm_libzstd.is_some() { println!( "WARNING: when using `download-ci-llvm`, the local `llvm.libzstd` option, \ like almost all `llvm.*` options, will be ignored and set by the LLVM CI \ @@ -1246,14 +1231,14 @@ impl Config { } } - if !config.llvm_from_ci && config.llvm_thin_lto && llvm_link_shared_toml.is_none() { + if !config.llvm_from_ci && config.llvm_thin_lto && llvm_link_shared.is_none() { // If we're building with ThinLTO on, by default we want to link // to LLVM shared, to avoid re-doing ThinLTO (which happens in // the link step) with each stage. config.llvm_link_shared.set(Some(true)); } - config.gcc_ci_mode = match gcc_download_ci_gcc_toml { + config.gcc_ci_mode = match gcc_download_ci_gcc { Some(value) => match value { true => GccCiMode::DownloadFromCi, false => GccCiMode::BuildLocally, @@ -1261,7 +1246,7 @@ impl Config { None => GccCiMode::default(), }; - match build_ccache_toml { + match build_ccache { Some(StringOrBool::String(ref s)) => config.ccache = Some(s.to_string()), Some(StringOrBool::Bool(true)) => { config.ccache = Some("ccache".to_string()); @@ -1285,18 +1270,18 @@ impl Config { Some(ci_llvm_bin.join(exe("FileCheck", config.host_target))); } - config.dist_sign_folder = dist_sign_folder_toml.map(PathBuf::from); - config.dist_upload_addr = dist_upload_addr_toml; - config.dist_compression_formats = dist_compression_formats_toml; - set(&mut config.dist_compression_profile, dist_compression_profile_toml); - set(&mut config.rust_dist_src, dist_src_tarball_toml); - set(&mut config.dist_include_mingw_linker, dist_include_mingw_linker_toml); - config.dist_vendor = dist_vendor_toml.unwrap_or_else(|| { + config.dist_sign_folder = dist_sign_folder.map(PathBuf::from); + config.dist_upload_addr = dist_upload_addr; + config.dist_compression_formats = dist_compression_formats; + set(&mut config.dist_compression_profile, dist_compression_profile); + set(&mut config.rust_dist_src, dist_src_tarball); + set(&mut config.dist_include_mingw_linker, dist_include_mingw_linker); + config.dist_vendor = dist_vendor.unwrap_or_else(|| { // If we're building from git or tarball sources, enable it by default. config.rust_info.is_managed_git_subrepository() || config.rust_info.is_from_tarball() }); - config.initial_rustfmt = if let Some(r) = build_rustfmt_toml { + config.initial_rustfmt = if let Some(r) = build_rustfmt { Some(r) } else { let dwn_ctx = DownloadContext::from(&config); @@ -1317,40 +1302,40 @@ impl Config { } config.optimized_compiler_builtins = - build_optimized_compiler_builtins_toml.unwrap_or(config.channel != "dev"); - config.compiletest_diff_tool = build_compiletest_diff_tool_toml; + build_optimized_compiler_builtins.unwrap_or(config.channel != "dev"); + config.compiletest_diff_tool = build_compiletest_diff_tool; config.compiletest_use_stage0_libtest = - build_compiletest_use_stage0_libtest_toml.unwrap_or(true); - config.tidy_extra_checks = build_tidy_extra_checks_toml; + build_compiletest_use_stage0_libtest.unwrap_or(true); + config.tidy_extra_checks = build_tidy_extra_checks; let download_rustc = config.download_rustc_commit.is_some(); config.explicit_stage_from_cli = flags_stage.is_some(); - config.explicit_stage_from_config = build_test_stage_toml.is_some() - || build_build_stage_toml.is_some() - || build_doc_stage_toml.is_some() - || build_dist_stage_toml.is_some() - || build_install_stage_toml.is_some() - || build_check_stage_toml.is_some() - || build_bench_stage_toml.is_some(); + config.explicit_stage_from_config = build_test_stage.is_some() + || build_build_stage.is_some() + || build_doc_stage.is_some() + || build_dist_stage.is_some() + || build_install_stage.is_some() + || build_check_stage.is_some() + || build_bench_stage.is_some(); config.stage = match config.cmd { - Subcommand::Check { .. } => flags_stage.or(build_check_stage_toml).unwrap_or(1), + Subcommand::Check { .. } => flags_stage.or(build_check_stage).unwrap_or(1), Subcommand::Clippy { .. } | Subcommand::Fix => { - flags_stage.or(build_check_stage_toml).unwrap_or(1) + flags_stage.or(build_check_stage).unwrap_or(1) } // `download-rustc` only has a speed-up for stage2 builds. Default to stage2 unless explicitly overridden. Subcommand::Doc { .. } => { - flags_stage.or(build_doc_stage_toml).unwrap_or(if download_rustc { 2 } else { 1 }) + flags_stage.or(build_doc_stage).unwrap_or(if download_rustc { 2 } else { 1 }) } Subcommand::Build => { - flags_stage.or(build_build_stage_toml).unwrap_or(if download_rustc { 2 } else { 1 }) + flags_stage.or(build_build_stage).unwrap_or(if download_rustc { 2 } else { 1 }) } Subcommand::Test { .. } | Subcommand::Miri { .. } => { - flags_stage.or(build_test_stage_toml).unwrap_or(if download_rustc { 2 } else { 1 }) + flags_stage.or(build_test_stage).unwrap_or(if download_rustc { 2 } else { 1 }) } - Subcommand::Bench { .. } => flags_stage.or(build_bench_stage_toml).unwrap_or(2), - Subcommand::Dist => flags_stage.or(build_dist_stage_toml).unwrap_or(2), - Subcommand::Install => flags_stage.or(build_install_stage_toml).unwrap_or(2), + Subcommand::Bench { .. } => flags_stage.or(build_bench_stage).unwrap_or(2), + Subcommand::Dist => flags_stage.or(build_dist_stage).unwrap_or(2), + Subcommand::Install => flags_stage.or(build_install_stage).unwrap_or(2), Subcommand::Perf { .. } => flags_stage.unwrap_or(1), // These are all bootstrap tools, which don't depend on the compiler. // The stage we pass shouldn't matter, but use 0 just in case. @@ -2254,7 +2239,7 @@ fn postprocess_toml( exit!(2); }); toml.merge( - Some(include_path.into()), + Some(include_path), &mut Default::default(), included_toml, ReplaceOpt::IgnoreDuplicate, diff --git a/src/bootstrap/src/core/config/toml/mod.rs b/src/bootstrap/src/core/config/toml/mod.rs index 01eb243159c..7af22432ef8 100644 --- a/src/bootstrap/src/core/config/toml/mod.rs +++ b/src/bootstrap/src/core/config/toml/mod.rs @@ -5,7 +5,7 @@ //! these raw TOML configurations from various sources (the main `bootstrap.toml`, //! included files, profile defaults, and command-line overrides). This processed //! TOML data then serves as an intermediate representation, which is further -//! transformed and applied to the final [`Config`] struct. +//! transformed and applied to the final `Config` struct. use serde::Deserialize; use serde_derive::Deserialize; diff --git a/src/bootstrap/src/core/config/toml/rust.rs b/src/bootstrap/src/core/config/toml/rust.rs index fd154200bc7..b95fb236fa1 100644 --- a/src/bootstrap/src/core/config/toml/rust.rs +++ b/src/bootstrap/src/core/config/toml/rust.rs @@ -6,7 +6,7 @@ use serde::{Deserialize, Deserializer}; use crate::core::build_steps::compile::CODEGEN_BACKEND_PREFIX; use crate::core::config::toml::TomlConfig; use crate::core::config::{DebuginfoLevel, Merge, ReplaceOpt, StringOrBool}; -use crate::{BTreeSet, HashSet, PathBuf, TargetSelection, define_config, exit}; +use crate::{BTreeSet, CodegenBackendKind, HashSet, PathBuf, TargetSelection, define_config, exit}; define_config! { /// TOML representation of how the Rust build is configured. diff --git a/src/bootstrap/src/core/config/toml/target.rs b/src/bootstrap/src/core/config/toml/target.rs index 0c9d2bd0ab5..2c06fd083a8 100644 --- a/src/bootstrap/src/core/config/toml/target.rs +++ b/src/bootstrap/src/core/config/toml/target.rs @@ -7,15 +7,12 @@ //! * [`TomlTarget`]: This struct directly mirrors the `[target.<triple>]` sections in your //! `bootstrap.toml`. It's used for deserializing raw TOML data for a specific target. //! * [`Target`]: This struct represents the processed and validated configuration for a -//! build target, which is is stored in the main [`Config`] structure. -//! * [`Config::apply_target_config`]: This method processes the `TomlTarget` data and -//! applies it to the global [`Config`], ensuring proper path resolution, validation, -//! and integration with other build settings. +//! build target, which is is stored in the main `Config` structure. use serde::{Deserialize, Deserializer}; use crate::core::config::{LlvmLibunwind, Merge, ReplaceOpt, SplitDebuginfo, StringOrBool}; -use crate::{HashSet, PathBuf, define_config, exit}; +use crate::{CodegenBackendKind, HashSet, PathBuf, define_config, exit}; define_config! { /// TOML representation of how each build target is configured. |
