Skip to content

Commit 421aba9

Browse files
committed
Add aarch64 architecture for L4Re target
1 parent 500b755 commit 421aba9

3 files changed

Lines changed: 30 additions & 0 deletions

File tree

compiler/rustc_target/src/spec/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1559,6 +1559,7 @@ supported_targets! {
15591559

15601560
("avr-none", avr_none),
15611561

1562+
("aarch64-unknown-l4re-uclibc", aarch64_unknown_l4re_uclibc),
15621563
("x86_64-unknown-l4re-uclibc", x86_64_unknown_l4re_uclibc),
15631564

15641565
("aarch64-unknown-redox", aarch64_unknown_redox),
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
use crate::spec::{Arch, Cc, LinkerFlavor, Target, TargetOptions, base};
2+
3+
pub(crate) fn target() -> Target {
4+
let mut base = base::l4re::opts();
5+
6+
let extra_link_args = &["-zmax-page-size=0x1000", "-zcommon-page-size=0x1000"];
7+
base.add_pre_link_args(LinkerFlavor::Unix(Cc::Yes), extra_link_args);
8+
base.add_pre_link_args(LinkerFlavor::Unix(Cc::No), extra_link_args);
9+
10+
Target {
11+
llvm_target: "aarch64-unknown-l4re-uclibc".into(),
12+
metadata: crate::spec::TargetMetadata {
13+
description: Some("Arm64 L4Re".into()),
14+
tier: Some(3),
15+
host_tools: Some(false),
16+
std: Some(true),
17+
},
18+
pointer_width: 64,
19+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
20+
arch: Arch::AArch64,
21+
options: TargetOptions {
22+
features: "+v8a".into(),
23+
mcount: "__mcount".into(),
24+
max_atomic_width: Some(128),
25+
..base
26+
}
27+
}
28+
}

src/bootstrap/src/core/sanity.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ pub struct Finder {
3838
const STAGE0_MISSING_TARGETS: &[&str] = &[
3939
// just a dummy comment so the list doesn't get onelined
4040
"riscv64im-unknown-none-elf",
41+
"aarch64-unknown-l4re-uclibc",
4142
];
4243

4344
/// Minimum version threshold for libstdc++ required when using prebuilt LLVM

0 commit comments

Comments
 (0)