add aarch64-unknown-teeos target
Signed-off-by: 袁浩 <yuanhao34@huawei.com>
This commit is contained in:
parent
5b1dc9de77
commit
72dd53c8e5
9 changed files with 153 additions and 3 deletions
16
compiler/rustc_target/src/spec/aarch64_unknown_teeos.rs
Normal file
16
compiler/rustc_target/src/spec/aarch64_unknown_teeos.rs
Normal file
|
@ -0,0 +1,16 @@
|
|||
use crate::spec::Target;
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::teeos_base::opts();
|
||||
base.features = "+strict-align,+neon,+fp-armv8".into();
|
||||
base.max_atomic_width = Some(128);
|
||||
base.linker = Some("aarch64-linux-gnu-ld".into());
|
||||
|
||||
Target {
|
||||
llvm_target: "aarch64-unknown-none".into(),
|
||||
pointer_width: 64,
|
||||
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".into(),
|
||||
arch: "aarch64".into(),
|
||||
options: base,
|
||||
}
|
||||
}
|
|
@ -83,6 +83,7 @@ mod openbsd_base;
|
|||
mod redox_base;
|
||||
mod solaris_base;
|
||||
mod solid_base;
|
||||
mod teeos_base;
|
||||
mod thumb_base;
|
||||
mod uefi_msvc_base;
|
||||
mod unikraft_linux_musl_base;
|
||||
|
@ -1492,6 +1493,8 @@ supported_targets! {
|
|||
|
||||
("x86_64-unknown-none", x86_64_unknown_none),
|
||||
|
||||
("aarch64-unknown-teeos", aarch64_unknown_teeos),
|
||||
|
||||
("mips64-openwrt-linux-musl", mips64_openwrt_linux_musl),
|
||||
|
||||
("aarch64-unknown-nto-qnx710", aarch64_unknown_nto_qnx_710),
|
||||
|
|
29
compiler/rustc_target/src/spec/teeos_base.rs
Normal file
29
compiler/rustc_target/src/spec/teeos_base.rs
Normal file
|
@ -0,0 +1,29 @@
|
|||
use super::{Cc, LinkerFlavor, Lld, PanicStrategy};
|
||||
use crate::spec::{RelroLevel, TargetOptions};
|
||||
|
||||
pub fn opts() -> TargetOptions {
|
||||
let lld_args = &["-zmax-page-size=4096", "-znow", "-ztext", "--execute-only"];
|
||||
let cc_args = &["-Wl,-zmax-page-size=4096", "-Wl,-znow", "-Wl,-ztext", "-mexecute-only"];
|
||||
|
||||
let mut pre_link_args = TargetOptions::link_args(LinkerFlavor::Gnu(Cc::No, Lld::No), lld_args);
|
||||
super::add_link_args(&mut pre_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), cc_args);
|
||||
|
||||
TargetOptions {
|
||||
os: "teeos".into(),
|
||||
vendor: "unknown".into(),
|
||||
dynamic_linking: true,
|
||||
linker_flavor: LinkerFlavor::Gnu(Cc::Yes, Lld::No),
|
||||
// rpath hardcodes -Wl, so it can't be used together with ld.lld.
|
||||
// C TAs also don't support rpath, so this is fine.
|
||||
has_rpath: false,
|
||||
// Note: Setting has_thread_local to true causes an error when
|
||||
// loading / dyn-linking the TA
|
||||
has_thread_local: false,
|
||||
position_independent_executables: true,
|
||||
relro_level: RelroLevel::Full,
|
||||
crt_static_respected: true,
|
||||
pre_link_args,
|
||||
panic_strategy: PanicStrategy::Abort,
|
||||
..Default::default()
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue