rust/compiler/rustc_target/src/spec
Guillaume Gomez f92974189b
Rollup merge of #114711 - lqd:linker-inference, r=petrochenkov
Infer `Lld::No` linker hint when the linker stem is a generic compiler driver

This PR basically reverts the temporary solution in https://github.com/rust-lang/rust/pull/113631 to a more long-term solution.

r? ``@petrochenkov``

In [this comment](https://github.com/rust-lang/rust/pull/113631#issuecomment-1634598238), you had ideas about a long-term solution:

> I wonder what a good non-temporary solution for the inference would look like.
>
>     * If the default is `(Cc::No, Lld::Yes)` (e.g. `rust-lld`)
>
>       * and we switch to some specific platform compiler (e.g. `-C linker=arm-none-eabi-gcc`), should we change to `Lld::No`? Maybe yes?
>       * and we switch to some non-default but generic compiler `-C linker=clang`? Then maybe not?
>
>     * If the default is `(Cc::Yes, Lld::Yes)` (e.g. future x86_64 linux with default LLD)
>
>       * and we switch to some specific platform compiler (e.g. `-C linker=arm-none-eabi-gcc`), should we change to `Lld::No`? Maybe yes?
>       * and we switch to some non-default but generic compiler `-C linker=clang`? Then maybe not?
>

I believe that we should infer the `Lld::No` linker hint for any `-Clinker` override, and all the cases above:
- the linker drivers have their own defaults, so in my mind `-Clinker` is a signal to use its default linker / flavor, rather than ours or the target's. In the case of generic compilers, it's more likely than not going to be `Lld::No`. I would expect this to be the case in general, even when including platform-specific compilers.
- the guess will be wrong if the linker driver uses lld by default (and we also don't want to search for `-fuse-ld` link args), but will work in the more common cases. And the minority of other cases can fix the wrong guess by opting into the precise linker flavor.
- this also ensures backwards-compatibility: today, even on targets with an lld default and overriding the linker, rustc will not use lld. That includes `thumbv6m-none-eabi` where issue #113597 happened.

It looks like the simplest option, and the one with least churn: we maintain the current behavior in ambiguous cases.

I've tested that this works on #113597, as expected from the failure.

(I also have a no-std `run-make` test using a custom target json spec: basically simulating a future `x86_64-unknown-linux-gnu` using an lld flavor by default, to check that  e.g. `-Clinker=clang` doesn't use lld. I could add that test to this PR, but IIUC such a custom target requires `cargo -Z build-std` and we have no tests depending on this cargo feature yet. Let me know if you want to add this test of the linker inference for such targets.)

What do you think ?
2023-08-15 14:29:45 +02:00
..
abi feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
apple Fix rustc_target::spec:🍎:tests 2023-06-21 14:59:40 -07:00
tests Remove linuxkernel targets 2022-11-05 12:30:28 -04:00
aarch64_apple_darwin.rs Use apple-m1 as target CPU for aarch64-apple-darwin. 2023-04-03 18:01:15 +02:00
aarch64_apple_ios.rs Add sanitizer support for modern iOS platforms 2023-02-12 16:00:31 -08:00
aarch64_apple_ios_macabi.rs Mac Catalyst: specify 14.0 deployment taregt in llvm_target 2023-05-25 11:24:00 -07:00
aarch64_apple_ios_sim.rs Add sanitizer support for modern iOS platforms 2023-02-12 16:00:31 -08:00
aarch64_apple_tvos.rs Fix the tvOS targets to use the right LLVM target and respect the deployment target environment variables 2023-06-21 14:59:39 -07:00
aarch64_apple_watchos_sim.rs Cleanup Apple target specifications 2022-11-05 17:57:32 -05:00
aarch64_be_unknown_linux_gnu.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_be_unknown_linux_gnu_ilp32.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_be_unknown_netbsd.rs Add support for NetBSD/aarch64-be (big-endian arm64). 2023-05-07 18:35:35 +00:00
aarch64_fuchsia.rs Accept old spelling of Fuchsia target triples 2023-01-09 12:18:12 -05:00
aarch64_kmc_solid_asp3.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_linux_android.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_nintendo_switch_freestanding.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_nintendo_switch_freestanding_linker_script.ld Rename aarch64-nintendo-switch to aarch64-nintendo-switch-freestanding 2022-07-14 15:58:26 -04:00
aarch64_pc_windows_gnullvm.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_pc_windows_msvc.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_unknown_freebsd.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_unknown_fuchsia.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_unknown_hermit.rs compiler: Hermit targets: Use functional update syntax 2023-07-24 10:36:05 +02:00
aarch64_unknown_linux_gnu.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_unknown_linux_gnu_ilp32.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_unknown_linux_musl.rs Enable sanitizers and profiler for aarch64-unknown-linux-musl 2023-05-22 14:13:23 -07:00
aarch64_unknown_linux_ohos.rs Add x86_64-unknown-linux-ohos target 2023-06-26 16:50:36 +01:00
aarch64_unknown_netbsd.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_unknown_none.rs Add kernel-address sanitizer support for freestanding targets 2023-02-14 20:54:25 -05:00
aarch64_unknown_none_softfloat.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_unknown_nto_qnx_710.rs Add QNX 7.0 x86 target 2023-03-29 17:42:47 -07:00
aarch64_unknown_openbsd.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_unknown_redox.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_unknown_teeos.rs add aarch64-unknown-teeos target 2023-07-26 21:39:40 +08:00
aarch64_unknown_uefi.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_uwp_windows_msvc.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
aarch64_wrs_vxworks.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
abi.rs feat: riscv-interrupt-{m,s} calling conventions 2023-08-08 18:09:56 -07:00
aix_base.rs Add powerpc64-ibm-aix as Tier-3 target 2022-11-17 16:36:54 +08:00
android_base.rs Update rustc's information on Android's sanitizers 2022-09-20 14:16:57 -07:00
apple_base.rs Reorder tvos_* functions in apple_base.rs to avoid breaking sorted order 2023-06-21 14:59:40 -07:00
arm64_32_apple_watchos.rs Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
arm_linux_androideabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
arm_unknown_linux_gnueabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
arm_unknown_linux_gnueabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
arm_unknown_linux_musleabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
arm_unknown_linux_musleabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armeb_unknown_linux_gnueabi.rs Changes to rename target and update docs 2022-09-14 18:38:01 +01:00
armebv7r_none_eabi.rs Fix comments about GCC/Clang's enum width for arm-none targets. 2023-07-23 20:19:38 -07:00
armebv7r_none_eabihf.rs Fix comments about GCC/Clang's enum width for arm-none targets. 2023-07-23 20:19:38 -07:00
armv4t_none_eabi.rs Fix comments about GCC/Clang's enum width for arm-none targets. 2023-07-23 20:19:38 -07:00
armv4t_unknown_linux_gnueabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv5te_none_eabi.rs remove DS stuff from docs + change to use thumb_base 2022-09-09 19:51:58 +01:00
armv5te_unknown_linux_gnueabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv5te_unknown_linux_musleabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv5te_unknown_linux_uclibceabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv6_unknown_freebsd.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv6_unknown_netbsd_eabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv6k_nintendo_3ds.rs Enable #[thread_local] on armv6k-nintendo-3ds 2023-02-12 16:57:05 -05:00
armv7_apple_ios.rs Cleanup Apple target specifications 2022-11-05 17:57:32 -05:00
armv7_linux_androideabi.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
armv7_sony_vita_newlibeabihf.rs Std support improvement for ps vita target 2023-06-05 19:14:09 +03:00
armv7_unknown_freebsd.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7_unknown_linux_gnueabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7_unknown_linux_gnueabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7_unknown_linux_musleabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7_unknown_linux_musleabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7_unknown_linux_ohos.rs Add x86_64-unknown-linux-ohos target 2023-06-26 16:50:36 +01:00
armv7_unknown_linux_uclibceabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7_unknown_linux_uclibceabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7_unknown_netbsd_eabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7_wrs_vxworks_eabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7a_kmc_solid_asp3_eabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7a_kmc_solid_asp3_eabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
armv7a_none_eabi.rs Default repr(C) enums to c_int size 2023-02-16 15:06:17 -08:00
armv7a_none_eabihf.rs Fix comments about GCC/Clang's enum width for arm-none targets. 2023-07-23 20:19:38 -07:00
armv7k_apple_watchos.rs [watchos] Dynamic linking is not allowed for watchos targets 2022-11-13 13:57:31 +00:00
armv7r_none_eabi.rs Fix comments about GCC/Clang's enum width for arm-none targets. 2023-07-23 20:19:38 -07:00
armv7r_none_eabihf.rs Fix comments about GCC/Clang's enum width for arm-none targets. 2023-07-23 20:19:38 -07:00
armv7s_apple_ios.rs Cleanup Apple target specifications 2022-11-05 17:57:32 -05:00
asmjs_unknown_emscripten.rs rustc_target: Refactor internal linker flavors slightly 2022-09-01 16:54:52 +03:00
avr_gnu_base.rs Set max_atomic_width for AVR to 16 2023-08-05 12:47:46 +09:00
avr_unknown_gnu_atmega328.rs rustc_target: Add convenience functions for adding linker arguments 2022-06-25 21:55:56 +03:00
bpf_base.rs BPF: Disable atomic CAS 2023-01-14 22:12:11 +08:00
bpfeb_unknown_none.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
bpfel_unknown_none.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
crt_objects.rs rustc_target: Update some old naming around self contained linking 2022-08-12 18:47:13 +03:00
csky_unknown_linux_gnuabiv2.rs add details for csky-unknown-linux-gnuabiv2 and add docs 2023-08-14 23:02:37 +08:00
dragonfly_base.rs rustc_target: Flip the default for TargetOptions::executables to true 2022-07-11 23:23:51 +03:00
freebsd_base.rs rustc_target: Flip the default for TargetOptions::executables to true 2022-07-11 23:23:51 +03:00
fuchsia_base.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
haiku_base.rs rustc_target: Flip the default for TargetOptions::executables to true 2022-07-11 23:23:51 +03:00
hermit_base.rs compiler: Hermit targets: Sort base fields by declaration 2023-07-24 10:36:05 +02:00
hexagon_unknown_linux_musl.rs Default repr(C) enums to c_int size 2023-02-16 15:06:17 -08:00
i386_apple_ios.rs Cleanup Apple target specifications 2022-11-05 17:57:32 -05:00
i386_unknown_linux_gnu.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
i486_unknown_linux_gnu.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
i586_pc_nto_qnx700.rs Add QNX 7.0 x86 target 2023-03-29 17:42:47 -07:00
i586_pc_windows_msvc.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
i586_unknown_linux_gnu.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
i586_unknown_linux_musl.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
i686_apple_darwin.rs Remove double spaces after dots in comments 2023-01-17 08:09:33 +00:00
i686_linux_android.rs Enable inline stack probes on X86 with LLVM 16 2022-09-29 19:49:23 -07:00
i686_pc_windows_gnu.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
i686_pc_windows_msvc.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
i686_unknown_freebsd.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
i686_unknown_haiku.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
i686_unknown_linux_gnu.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
i686_unknown_linux_musl.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
i686_unknown_netbsd.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
i686_unknown_openbsd.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
i686_unknown_uefi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
i686_uwp_windows_gnu.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
i686_uwp_windows_msvc.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
i686_wrs_vxworks.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
illumos_base.rs Remove double spaces after dots in comments 2023-01-17 08:09:33 +00:00
l4re_base.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
linux_base.rs session: stabilize split debuginfo on linux 2022-08-18 15:19:40 +01:00
linux_gnu_base.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
linux_musl_base.rs rustc_target: Update some old naming around self contained linking 2022-08-12 18:47:13 +03:00
linux_ohos_base.rs Add x86_64-unknown-linux-ohos target 2023-06-26 16:50:36 +01:00
linux_uclibc_base.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
loongarch64_unknown_linux_gnu.rs Initial support for loongarch64-unknown-linux-gnu 2023-04-04 17:05:07 +08:00
loongarch64_unknown_none.rs Switch to LLD as default linker for loongarch64-unknown-none* 2023-08-11 10:04:37 +08:00
loongarch64_unknown_none_softfloat.rs Switch to LLD as default linker for loongarch64-unknown-none* 2023-08-11 10:04:37 +08:00
m68k_unknown_linux_gnu.rs compiler/rustc_target: Raise m68k-linux-gnu baseline to 68020 2023-04-21 13:27:13 +02:00
mips64_openwrt_linux_musl.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
mips64_unknown_linux_gnuabi64.rs Fix linkage for large binaries on mips64 platforms ... 2023-05-29 10:57:03 -06:00
mips64_unknown_linux_muslabi64.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
mips64el_unknown_linux_gnuabi64.rs Fix linkage for large binaries on mips64 platforms ... 2023-05-29 10:57:03 -06:00
mips64el_unknown_linux_muslabi64.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
mips_unknown_linux_gnu.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
mips_unknown_linux_musl.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
mips_unknown_linux_uclibc.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
mipsel_sony_psp.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
mipsel_sony_psp_linker_script.ld Relax mipsel-sony-psp's linker script 2022-06-07 10:24:09 -04:00
mipsel_sony_psx.rs Add Sony PlayStation 1 tier 3 target 2022-10-10 12:07:22 -04:00
mipsel_unknown_linux_gnu.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
mipsel_unknown_linux_musl.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
mipsel_unknown_linux_uclibc.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
mipsel_unknown_none.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
mipsisa32r6_unknown_linux_gnu.rs support for mips32r6 as a target_arch value 2023-07-18 18:58:18 +08:00
mipsisa32r6el_unknown_linux_gnu.rs support for mips32r6 as a target_arch value 2023-07-18 18:58:18 +08:00
mipsisa64r6_unknown_linux_gnuabi64.rs support for mips64r6 as a target_arch value 2023-07-18 18:58:18 +08:00
mipsisa64r6el_unknown_linux_gnuabi64.rs support for mips64r6 as a target_arch value 2023-07-18 18:58:18 +08:00
mod.rs Rollup merge of #114711 - lqd:linker-inference, r=petrochenkov 2023-08-15 14:29:45 +02:00
msp430_none_elf.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
msvc_base.rs Support TLS access into dylibs on Windows 2023-03-29 08:55:21 +02:00
netbsd_base.rs rustc_target: Flip the default for TargetOptions::executables to true 2022-07-11 23:23:51 +03:00
nto_qnx_base.rs Add QNX 7.0 x86 target 2023-03-29 17:42:47 -07:00
nvptx64_nvidia_cuda.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
openbsd_base.rs rustc_target: Flip the default for TargetOptions::executables to true 2022-07-11 23:23:51 +03:00
powerpc64_ibm_aix.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc64_unknown_freebsd.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc64_unknown_linux_gnu.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc64_unknown_linux_musl.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc64_unknown_openbsd.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc64_wrs_vxworks.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc64le_unknown_freebsd.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc64le_unknown_linux_gnu.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc64le_unknown_linux_musl.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc_unknown_freebsd.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc_unknown_linux_gnu.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc_unknown_linux_gnuspe.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc_unknown_linux_musl.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc_unknown_netbsd.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc_unknown_openbsd.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc_wrs_vxworks.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
powerpc_wrs_vxworks_spe.rs Update powerpc data layouts 2023-08-07 20:35:55 +02:00
redox_base.rs rustc_target: Flip the default for TargetOptions::executables to true 2022-07-11 23:23:51 +03:00
riscv32gc_unknown_linux_gnu.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
riscv32gc_unknown_linux_musl.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
riscv32i_unknown_none_elf.rs Revert "Auto merge of #98333 - SimonSapin:riscv-atomic, r=Amanieu" 2023-08-05 13:18:47 +09:00
riscv32im_unknown_none_elf.rs Revert "Auto merge of #98333 - SimonSapin:riscv-atomic, r=Amanieu" 2023-08-05 13:18:47 +09:00
riscv32imac_esp_espidf.rs Added custom risc32-imac for esp-espidf target 2023-06-04 15:49:04 +02:00
riscv32imac_unknown_none_elf.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
riscv32imac_unknown_xous_elf.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
riscv32imc_esp_espidf.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
riscv32imc_unknown_none_elf.rs Revert "Auto merge of #98333 - SimonSapin:riscv-atomic, r=Amanieu" 2023-08-05 13:18:47 +09:00
riscv64_linux_android.rs Add definitions for riscv64_linux_android target 2023-07-26 11:46:48 -07:00
riscv64gc_unknown_freebsd.rs LLVM 16: Update RISCV data layout 2022-11-06 19:03:22 +00:00
riscv64gc_unknown_fuchsia.rs Fix riscv64 fuchsia LLVM target name 2023-03-15 12:55:37 +09:00
riscv64gc_unknown_hermit.rs compiler: Add riscv64gc-unknown-hermit target 2023-07-24 10:36:05 +02:00
riscv64gc_unknown_linux_gnu.rs LLVM 16: Update RISCV data layout 2022-11-06 19:03:22 +00:00
riscv64gc_unknown_linux_musl.rs LLVM 16: Update RISCV data layout 2022-11-06 19:03:22 +00:00
riscv64gc_unknown_netbsd.rs Add support for NetBSD/riscv64 aka. riscv64gc-unknown-netbsd. 2023-07-05 13:49:01 +00:00
riscv64gc_unknown_none_elf.rs Add kernel-address sanitizer support for freestanding targets 2023-02-14 20:54:25 -05:00
riscv64gc_unknown_openbsd.rs LLVM 16: Update RISCV data layout 2022-11-06 19:03:22 +00:00
riscv64imac_unknown_none_elf.rs Add kernel-address sanitizer support for freestanding targets 2023-02-14 20:54:25 -05:00
s390x_unknown_linux_gnu.rs Enable sanitizers for s390x-linux 2023-01-20 18:34:24 +01:00
s390x_unknown_linux_musl.rs Enable sanitizers for s390x-linux 2023-01-20 18:34:24 +01:00
solaris_base.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
solid_base.rs Fix uninlined_format_args for some compiler crates 2023-01-05 19:01:12 +01:00
sparc64_unknown_linux_gnu.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
sparc64_unknown_netbsd.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
sparc64_unknown_openbsd.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
sparc_unknown_linux_gnu.rs Set max_atomic_width for sparc-unknown-linux-gnu to 32 2023-08-05 13:01:15 +09:00
sparc_unknown_none_elf.rs Add a sparc-unknown-none-elf target. 2023-07-11 15:36:42 +01:00
sparcv9_sun_solaris.rs Remove double spaces after dots in comments 2023-01-17 08:09:33 +00:00
teeos_base.rs add aarch64-unknown-teeos target 2023-07-26 21:39:40 +08:00
thumb_base.rs Fix comments about GCC/Clang's enum width for arm-none targets. 2023-07-23 20:19:38 -07:00
thumbv4t_none_eabi.rs Remove redundant c_enum_min_bits option from the thumbv4t-none-eabi target. 2023-07-23 20:19:26 -07:00
thumbv5te_none_eabi.rs Add {thumb,arm}v5te-none-eabi targets 2022-09-02 14:16:02 +01:00
thumbv6m_none_eabi.rs Pass +atomics-32 feature for thumbv6m target 2022-08-09 12:39:59 +02:00
thumbv7a_pc_windows_msvc.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
thumbv7a_uwp_windows_msvc.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
thumbv7em_none_eabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
thumbv7em_none_eabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
thumbv7m_none_eabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
thumbv7neon_linux_androideabi.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
thumbv7neon_unknown_linux_gnueabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
thumbv7neon_unknown_linux_musleabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
thumbv8m_base_none_eabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
thumbv8m_main_none_eabi.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
thumbv8m_main_none_eabihf.rs Replace every String in Target(Options) with Cow<'static, str> 2022-04-03 21:29:57 +02:00
uefi_msvc_base.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
unikraft_linux_musl_base.rs compiler: Add x86_64-unikraft-linux-musl target 2023-07-24 18:24:50 +02:00
vxworks_base.rs rustc_target: Flip the default for TargetOptions::executables to true 2022-07-11 23:23:51 +03:00
wasm32_unknown_emscripten.rs rustc_target: Refactor internal linker flavors slightly 2022-09-01 16:54:52 +03:00
wasm32_unknown_unknown.rs Stop passing -export-dynamic to wasm-ld. 2022-12-06 16:50:29 -08:00
wasm32_wasi.rs Mangle "main" as "__main_void" on wasm32-wasi 2022-12-08 13:15:40 -08:00
wasm32_wasi_preview1_threads.rs Add wasm32-wasi-threads target + WASI threads 2023-07-29 16:37:50 +01:00
wasm64_unknown_unknown.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
wasm_base.rs the fix 2023-03-14 11:44:08 -04:00
windows_gnu_base.rs Support TLS access into dylibs on Windows 2023-03-29 08:55:21 +02:00
windows_gnullvm_base.rs Support TLS access into dylibs on Windows 2023-03-29 08:55:21 +02:00
windows_msvc_base.rs Set DebuginfoKind::Pdb in msvc_base 2022-08-27 11:44:35 -04:00
windows_uwp_gnu_base.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
windows_uwp_msvc_base.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
x86_64_apple_darwin.rs Remove double spaces after dots in comments 2023-01-17 08:09:33 +00:00
x86_64_apple_ios.rs Support 128-bit atomics on all x86_64 Apple targets 2023-06-01 03:27:16 +09:00
x86_64_apple_ios_macabi.rs Support 128-bit atomics on all x86_64 Apple targets 2023-06-01 03:27:16 +09:00
x86_64_apple_tvos.rs Fix the tvOS targets to use the right LLVM target and respect the deployment target environment variables 2023-06-21 14:59:39 -07:00
x86_64_apple_watchos_sim.rs Support 128-bit atomics on all x86_64 Apple targets 2023-06-01 03:27:16 +09:00
x86_64_fortanix_unknown_sgx.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_fuchsia.rs Accept old spelling of Fuchsia target triples 2023-01-09 12:18:12 -05:00
x86_64_linux_android.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_pc_nto_qnx710.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_pc_solaris.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_pc_windows_gnu.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_pc_windows_gnullvm.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_pc_windows_msvc.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_sun_solaris.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unikraft_linux_musl.rs compiler: Add x86_64-unikraft-linux-musl target 2023-07-24 18:24:50 +02:00
x86_64_unknown_dragonfly.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_freebsd.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_fuchsia.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_haiku.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_hermit.rs compiler: Hermit targets: Use functional update syntax 2023-07-24 10:36:05 +02:00
x86_64_unknown_illumos.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_l4re_uclibc.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_linux_gnu.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_linux_gnux32.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_linux_musl.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_linux_ohos.rs Add x86_64-unknown-linux-ohos target 2023-06-26 16:50:36 +01:00
x86_64_unknown_netbsd.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_none.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_openbsd.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_redox.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_unknown_uefi.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_uwp_windows_gnu.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_uwp_windows_msvc.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64_wrs_vxworks.rs switch to using a target property to control plt default 2023-06-22 14:29:22 -04:00
x86_64h_apple_darwin.rs Add support for the x86_64h-apple-darwin target 2023-03-05 17:11:58 -08:00