emit an error if we can't find a path to the self-contained linker

This commit is contained in:
Rémy Rakic 2024-05-21 18:17:05 +00:00
parent fab28f2a4d
commit d64a8bd1e5
3 changed files with 9 additions and 3 deletions

View File

@ -212,6 +212,8 @@ codegen_ssa_rlib_only_rmeta_found = could not find rlib for: `{$crate_name}`, fo
codegen_ssa_select_cpp_build_tool_workload = in the Visual Studio installer, ensure the "C++ build tools" workload is selected codegen_ssa_select_cpp_build_tool_workload = in the Visual Studio installer, ensure the "C++ build tools" workload is selected
codegen_ssa_self_contained_linker_missing = the self-contained linker was requested, but it wasn't found in the target's sysroot, or in rustc's sysroot
codegen_ssa_shuffle_indices_evaluation = could not evaluate shuffle_indices at compile time codegen_ssa_shuffle_indices_evaluation = could not evaluate shuffle_indices at compile time
codegen_ssa_specify_libraries_to_link = use the `-l` flag to specify native libraries to link codegen_ssa_specify_libraries_to_link = use the `-l` flag to specify native libraries to link

View File

@ -3127,9 +3127,9 @@ fn add_lld_args(
}); });
} }
if !linker_path_exists { if !linker_path_exists {
// As an additional sanity check, we do nothing if the sysroot doesn't contain the // As a sanity check, we emit an error if none of these paths exist: we want
// linker path at all. // self-contained linking and have no linker.
return; sess.dcx().emit_fatal(errors::SelfContainedLinkerMissing);
} }
} }

View File

@ -413,6 +413,10 @@ pub struct UnableToExeLinker {
#[diag(codegen_ssa_msvc_missing_linker)] #[diag(codegen_ssa_msvc_missing_linker)]
pub struct MsvcMissingLinker; pub struct MsvcMissingLinker;
#[derive(Diagnostic)]
#[diag(codegen_ssa_self_contained_linker_missing)]
pub struct SelfContainedLinkerMissing;
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(codegen_ssa_check_installed_visual_studio)] #[diag(codegen_ssa_check_installed_visual_studio)]
pub struct CheckInstalledVisualStudio; pub struct CheckInstalledVisualStudio;