Rollup merge of #77916 - QuiltOS:kernel-code-targets-os-none, r=joshtriplett
Change built-in kernel targets to be os = none throughout Whether for Rust's own `target_os`, LLVM's triples, or GNU config's, the OS-related have fields have been for code running *on* that OS, not code hat is *part* of the OS. The difference is huge, as syscall interfaces are nothing like freestanding interfaces. Kernels are (hypervisors and other more exotic situations aside) freestanding programs that use the interfaces provided by the hardware. It's *those* interfaces, the ones external to the program being built and its software dependencies, that are the content of the target. For the Linux Kernel in particular, `target_env: "gnu"` is removed for the same reason: that `-gnu` refers to glibc or GNU/linux, neither of which applies to the kernel itself. Relates to #74247
This commit is contained in:
commit
d1dc16623f
5 changed files with 12 additions and 8 deletions
|
@ -679,7 +679,7 @@ supported_targets! {
|
|||
("thumbv7neon-linux-androideabi", thumbv7neon_linux_androideabi),
|
||||
("aarch64-linux-android", aarch64_linux_android),
|
||||
|
||||
("x86_64-linux-kernel", x86_64_linux_kernel),
|
||||
("x86_64-unknown-none-linuxkernel", x86_64_unknown_none_linuxkernel),
|
||||
|
||||
("aarch64-unknown-freebsd", aarch64_unknown_freebsd),
|
||||
("armv6-unknown-freebsd", armv6_unknown_freebsd),
|
||||
|
@ -777,7 +777,8 @@ supported_targets! {
|
|||
|
||||
("aarch64-unknown-hermit", aarch64_unknown_hermit),
|
||||
("x86_64-unknown-hermit", x86_64_unknown_hermit),
|
||||
("x86_64-unknown-hermit-kernel", x86_64_unknown_hermit_kernel),
|
||||
|
||||
("x86_64-unknown-none-hermitkernel", x86_64_unknown_none_hermitkernel),
|
||||
|
||||
("riscv32i-unknown-none-elf", riscv32i_unknown_none_elf),
|
||||
("riscv32imc-unknown-none-elf", riscv32imc_unknown_none_elf),
|
||||
|
|
|
@ -10,7 +10,7 @@ pub fn target() -> Target {
|
|||
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
|
||||
|
||||
Target {
|
||||
llvm_target: "x86_64-unknown-hermit".to_string(),
|
||||
llvm_target: "x86_64-unknown-none-elf".to_string(),
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||||
.to_string(),
|
|
@ -14,8 +14,11 @@ pub fn target() -> Target {
|
|||
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
|
||||
|
||||
Target {
|
||||
// FIXME: Some dispute, the linux-on-clang folks think this should use "Linux"
|
||||
llvm_target: "x86_64-elf".to_string(),
|
||||
// FIXME: Some dispute, the linux-on-clang folks think this should use
|
||||
// "Linux". We disagree because running *on* Linux is nothing like
|
||||
// running *as" linux, and historically the "os" component as has always
|
||||
// been used to mean the "on" part.
|
||||
llvm_target: "x86_64-unknown-none-elf".to_string(),
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||||
.to_string(),
|
Loading…
Add table
Add a link
Reference in a new issue