From 0b269f33f4d848b57cd2bb44ce22c1d305ae32ea Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Sat, 8 Jan 2022 14:21:38 +0100 Subject: [PATCH] add kernel target for RustyHermit Currently, we are thinking to use *-unknown-none targets instead to define for every platform our own one (see hermitcore/rusty-hermit#197). However, the current target aarch64-unknown-none-softfloat doesn't support dynamic relocation. Our kernel uses this feature and consequently we define a new target aarch64-unknown-hermitkernel to support it. --- .../src/spec/aarch64_unknown_hermit.rs | 1 + .../src/spec/aarch64_unknown_hermitkernel.rs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 compiler/rustc_target/src/spec/aarch64_unknown_hermitkernel.rs diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs b/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs index 44beb2f6ad8..f8e1e1b02f5 100644 --- a/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs +++ b/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs @@ -3,6 +3,7 @@ use crate::spec::Target; pub fn target() -> Target { let mut base = super::hermit_base::opts(); base.max_atomic_width = Some(128); + base.features = "+strict-align,+neon,+fp-armv8".to_string(); Target { llvm_target: "aarch64-unknown-hermit".to_string(), diff --git a/compiler/rustc_target/src/spec/aarch64_unknown_hermitkernel.rs b/compiler/rustc_target/src/spec/aarch64_unknown_hermitkernel.rs new file mode 100644 index 00000000000..6e9d6c6221c --- /dev/null +++ b/compiler/rustc_target/src/spec/aarch64_unknown_hermitkernel.rs @@ -0,0 +1,16 @@ +use crate::spec::Target; + +pub fn target() -> Target { + let mut base = super::hermit_kernel_base::opts(); + base.max_atomic_width = Some(128); + base.abi = "softfloat".to_string(); + base.features = "+strict-align,-neon,-fp-armv8".to_string(); + + Target { + llvm_target: "aarch64-unknown-hermit".to_string(), + pointer_width: 64, + data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), + arch: "aarch64".to_string(), + options: base, + } +}