diff options
| author | Rémy Rakic <remy.rakic+github@gmail.com> | 2023-06-21 15:47:42 +0000 |
|---|---|---|
| committer | Rémy Rakic <remy.rakic+github@gmail.com> | 2023-06-30 20:28:46 +0000 |
| commit | 5ea0f6373312c5536bb879d8ef38f5b2fffb42ff (patch) | |
| tree | 4a8f9766be0696ba02389037d42528c0d46d2aa8 | |
| parent | 99605a0389e42a711f4e87272faa5f3c7f1c3a87 (diff) | |
| download | rust-5ea0f6373312c5536bb879d8ef38f5b2fffb42ff.tar.gz rust-5ea0f6373312c5536bb879d8ef38f5b2fffb42ff.zip | |
add whether `LinkerFlavor` invokes the linker via a C/C++ compiler
| -rw-r--r-- | compiler/rustc_target/src/spec/mod.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs index 876c3818e6a..124e67e2e5a 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs @@ -367,6 +367,25 @@ impl LinkerFlavor { | LinkerFlavor::Ptx => false, } } + + /// Returns whether the flavor calls the linker via a C/C++ compiler. + pub fn uses_cc(self) -> bool { + // Exhaustive match in case new flavors are added in the future. + match self { + LinkerFlavor::Gnu(Cc::Yes, _) + | LinkerFlavor::Darwin(Cc::Yes, _) + | LinkerFlavor::WasmLld(Cc::Yes) + | LinkerFlavor::Unix(Cc::Yes) + | LinkerFlavor::EmCc => true, + LinkerFlavor::Gnu(..) + | LinkerFlavor::Darwin(..) + | LinkerFlavor::WasmLld(_) + | LinkerFlavor::Msvc(_) + | LinkerFlavor::Unix(_) + | LinkerFlavor::Bpf + | LinkerFlavor::Ptx => false, + } + } } macro_rules! linker_flavor_cli_impls { |
