Skip to content

Commit bb77aa8

Browse files
committed
compiler: Add x86_64-unikraft-linux-musl target
Signed-off-by: Martin Kröning <martin.kroening@eonerc.rwth-aachen.de>
1 parent 48c0c25 commit bb77aa8

File tree

5 files changed

+40
-0
lines changed

5 files changed

+40
-0
lines changed

compiler/rustc_target/src/spec/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ mod solaris_base;
8585
mod solid_base;
8686
mod thumb_base;
8787
mod uefi_msvc_base;
88+
mod unikraft_linux_musl_base;
8889
mod vxworks_base;
8990
mod wasm_base;
9091
mod windows_gnu_base;
@@ -1421,6 +1422,8 @@ supported_targets! {
14211422
("riscv64gc-unknown-hermit", riscv64gc_unknown_hermit),
14221423
("x86_64-unknown-hermit", x86_64_unknown_hermit),
14231424

1425+
("x86_64-unikraft-linux-musl", x86_64_unikraft_linux_musl),
1426+
14241427
("riscv32i-unknown-none-elf", riscv32i_unknown_none_elf),
14251428
("riscv32im-unknown-none-elf", riscv32im_unknown_none_elf),
14261429
("riscv32imc-unknown-none-elf", riscv32imc_unknown_none_elf),
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use crate::spec::{cvs, PanicStrategy, RelocModel, TargetOptions};
2+
3+
pub fn opts() -> TargetOptions {
4+
TargetOptions {
5+
os: "linux".into(),
6+
env: "musl".into(),
7+
vendor: "unikraft".into(),
8+
linker: Some("kraftld".into()),
9+
relocation_model: RelocModel::Static,
10+
families: cvs!["unix"],
11+
has_thread_local: true,
12+
panic_strategy: PanicStrategy::Abort,
13+
..Default::default()
14+
}
15+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target, TargetOptions};
2+
3+
pub fn target() -> Target {
4+
Target {
5+
llvm_target: "x86_64-unknown-linux-musl".into(),
6+
pointer_width: 64,
7+
arch: "x86_64".into(),
8+
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
9+
.into(),
10+
options: TargetOptions {
11+
cpu: "x86-64".into(),
12+
plt_by_default: false,
13+
pre_link_args: TargetOptions::link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]),
14+
max_atomic_width: Some(64),
15+
stack_probes: StackProbeType::X86,
16+
..super::unikraft_linux_musl_base::opts()
17+
},
18+
}
19+
}

src/bootstrap/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,8 @@ const EXTRA_CHECK_CFGS: &[(Option<Mode>, &'static str, Option<&[&'static str]>)]
131131
(Some(Mode::Std), "freebsd13", None),
132132
(Some(Mode::Std), "backtrace_in_libstd", None),
133133
/* Extra values not defined in the built-in targets yet, but used in std */
134+
// #[cfg(bootstrap)]
135+
(Some(Mode::Std), "target_vendor", Some(&["unikraft"])),
134136
(Some(Mode::Std), "target_env", Some(&["libnx"])),
135137
// (Some(Mode::Std), "target_os", Some(&[])),
136138
// #[cfg(bootstrap)] mips32r6, mips64r6

src/tools/build-manifest/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ static TARGETS: &[&str] = &[
148148
"x86_64-pc-windows-msvc",
149149
"x86_64-sun-solaris",
150150
"x86_64-pc-solaris",
151+
"x86_64-unikraft-linux-musl",
151152
"x86_64-unknown-freebsd",
152153
"x86_64-unknown-illumos",
153154
"x86_64-unknown-linux-gnu",

0 commit comments

Comments
 (0)