rust/compiler/rustc_target/src/spec
bors d24c4da1d6 Auto merge of #113411 - unikraft:unikraft, r=wesleywiser
Add `x86_64-unikraft-linux-musl` target

This introduces `x86_64-unikraft-linux-musl` as the first Rust target for the [Unikraft] Unikernel Development Kit.

[Unikraft]: https://unikraft.org/

Unikraft imitates Linux and uses musl as libc.
It is extremely configurable, and does not even provide a `poll` implementation or a network stack, unless enabled by the end user who compiles the application.

Our approach for integrating the build process with `rustc` is to hide the build process as well as the actual final linking step behind a linker-shim (`kraftld`, see https://github.com/unikraft/kraftkit/issues/612).

## Tier 3 target policy

> - A tier 3 target must have a designated developer or developers (the "target
>   maintainers") on record to be CCed when issues arise regarding the target.
>   (The mechanism to track and CC such developers may evolve over time.)

I will be the target maintainer.

> - Targets must use naming consistent with any existing targets; for instance, a
>   target for the same CPU or OS as an existing Rust target should use the same
>   name for that CPU or OS. Targets should normally use the same names and
>   naming conventions as used elsewhere in the broader ecosystem beyond Rust
>   (such as in other toolchains), unless they have a very good reason to
>   diverge. Changing the name of a target can be highly disruptive, especially
>   once the target reaches a higher tier, so getting the name right is important
>   even for a tier 3 target.
>   - Target names should not introduce undue confusion or ambiguity unless
>     absolutely necessary to maintain ecosystem compatibility. For example, if
>     the name of the target makes people extremely likely to form incorrect
>     beliefs about what it targets, the name should be changed or augmented to
>     disambiguate it.
>   - If possible, use only letters, numbers, dashes and underscores for the name.
>     Periods (`.`) are known to cause issues in Cargo.

The target name `x86_64-unikraft-linux-musl` was derived from `x86_64-unknown-linux-musl`, setting Unikraft as vendor.
Unikraft exactly imitates Linux + musl.

> - Tier 3 targets may have unusual requirements to build or use, but must not
>   create legal issues or impose onerous legal terms for the Rust project or for
>   Rust developers or users.
>   - The target must not introduce license incompatibilities.
>   - Anything added to the Rust repository must be under the standard Rust
>     license (`MIT OR Apache-2.0`).
>   - The target must not cause the Rust tools or libraries built for any other
>     host (even when supporting cross-compilation to the target) to depend
>     on any new dependency less permissive than the Rust licensing policy. This
>     applies whether the dependency is a Rust crate that would require adding
>     new license exceptions (as specified by the `tidy` tool in the
>     rust-lang/rust repository), or whether the dependency is a native library
>     or binary. In other words, the introduction of the target must not cause a
>     user installing or running a version of Rust or the Rust tools to be
>     subject to any new license requirements.
>   - Compiling, linking, and emitting functional binaries, libraries, or other
>     code for the target (whether hosted on the target itself or cross-compiling
>     from another target) must not depend on proprietary (non-FOSS) libraries.
>     Host tools built for the target itself may depend on the ordinary runtime
>     libraries supplied by the platform and commonly used by other applications
>     built for the target, but those libraries must not be required for code
>     generation for the target; cross-compilation to the target must not require
>     such libraries at all. For instance, `rustc` built for the target may
>     depend on a common proprietary C runtime library or console output library,
>     but must not depend on a proprietary code generation library or code
>     optimization library. Rust's license permits such combinations, but the
>     Rust project has no interest in maintaining such combinations within the
>     scope of Rust itself, even at tier 3.
>   - "onerous" here is an intentionally subjective term. At a minimum, "onerous"
>     legal/licensing terms include but are *not* limited to: non-disclosure
>     requirements, non-compete requirements, contributor license agreements
>     (CLAs) or equivalent, "non-commercial"/"research-only"/etc terms,
>     requirements conditional on the employer or employment of any particular
>     Rust developers, revocable terms, any requirements that create liability
>     for the Rust project or its developers or users, or any requirements that
>     adversely affect the livelihood or prospects of the Rust project or its
>     developers or users.

No dependencies were added to Rust.
Requirements for linking are [Unikraft] and [KraftKit] (both BSD-3-Clause), but none of these are added to Rust.

[KraftKit]: https://github.com/unikraft/kraftkit

> - Neither this policy nor any decisions made regarding targets shall create any
>   binding agreement or estoppel by any party. If any member of an approving
>   Rust team serves as one of the maintainers of a target, or has any legal or
>   employment requirement (explicit or implicit) that might affect their
>   decisions regarding a target, they must recuse themselves from any approval
>   decisions regarding the target's tier status, though they may otherwise
>   participate in discussions.
>   - This requirement does not prevent part or all of this policy from being
>     cited in an explicit contract or work agreement (e.g. to implement or
>     maintain support for a target). This requirement exists to ensure that a
>     developer or team responsible for reviewing and approving a target does not
>     face any legal threats or obligations that would prevent them from freely
>     exercising their judgment in such approval, even if such judgment involves
>     subjective matters or goes beyond the letter of these requirements.

Understood.
I am not a member of a Rust team.

> - Tier 3 targets should attempt to implement as much of the standard libraries
>   as possible and appropriate (`core` for most targets, `alloc` for targets
>   that can support dynamic memory allocation, `std` for targets with an
>   operating system or equivalent layer of system-provided functionality), but
>   may leave some code unimplemented (either unavailable or stubbed out as
>   appropriate), whether because the target makes it impossible to implement or
>   challenging to implement. The authors of pull requests are not obligated to
>   avoid calling any portions of the standard library on the basis of a tier 3
>   target not implementing those portions.

Understood.
`std` is supported.

> - The target must provide documentation for the Rust community explaining how
>   to build for the target, using cross-compilation if possible. If the target
>   supports running binaries, or running tests (even if they do not pass), the
>   documentation must explain how to run such binaries or tests for the target,
>   using emulation if possible or dedicated hardware if necessary.

Building is described in the platform support doc.
It will be updated once proper `kraftld` support has landed.

> - Tier 3 targets must not impose burden on the authors of pull requests, or
>   other developers in the community, to maintain the target. In particular,
>   do not post comments (automated or manual) on a PR that derail or suggest a
>   block on the PR based on a tier 3 target. Do not send automated messages or
>   notifications (via any medium, including via ``@`)` to a PR author or others
>   involved with a PR regarding a tier 3 target, unless they have opted into
>   such messages.
>   - Backlinks such as those generated by the issue/PR tracker when linking to
>     an issue or PR are not considered a violation of this policy, within
>     reason. However, such messages (even on a separate repository) must not
>     generate notifications to anyone involved with a PR who has not requested
>     such notifications.

Understood.

> - Patches adding or updating tier 3 targets must not break any existing tier 2
>   or tier 1 target, and must not knowingly break another tier 3 target without
>   approval of either the compiler team or the maintainers of the other tier 3
>   target.
>   - In particular, this may come up when working on closely related targets,
>     such as variations of the same architecture with different features. Avoid
>     introducing unconditional uses of features that another variation of the
>     target may not have; use conditional compilation or runtime detection, as
>     appropriate, to let each target run code supported by that target.

I don't think this PR breaks anything.

r? compiler-team
2023-07-25 03:41:56 +00:00
..
abi mv compiler to compiler/ 2020-08-30 18:45:07 +03: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_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 Change ABI order in is_stable 2023-04-29 13:01:46 +01: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 rustc_codegen_ssa: Set e_flags for AVR architecture based on target CPU 2023-05-21 16:56:57 -05: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
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 loongarch64-unknown-none*: Set default relocation model to static 2023-06-07 22:34:51 +08:00
loongarch64_unknown_none_softfloat.rs loongarch64-none*: Remove environment component from llvm target 2023-06-13 20:24:22 +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 compiler: Add x86_64-unikraft-linux-musl target 2023-07-24 18:24:50 +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 more clippy::complexity fixes 2022-12-15 00:09:10 +01:00
powerpc64_unknown_freebsd.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc64_unknown_linux_gnu.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc64_unknown_linux_musl.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc64_unknown_openbsd.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc64_wrs_vxworks.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc64le_unknown_freebsd.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc64le_unknown_linux_gnu.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc64le_unknown_linux_musl.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc_unknown_freebsd.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc_unknown_linux_gnu.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc_unknown_linux_gnuspe.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc_unknown_linux_musl.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc_unknown_netbsd.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc_unknown_openbsd.rs Enable inline stack probes on PowerPC and SystemZ 2022-09-26 13:40:24 -07:00
powerpc_wrs_vxworks.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
powerpc_wrs_vxworks_spe.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04: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 rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04:00
riscv32im_unknown_none_elf.rs rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04: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 rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04: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 rustc_target: Refactor internal linker flavors 2022-10-06 13:41:12 +04: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
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
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