Skip to content

Commit ad7c55e

Browse files
committed
Auto merge of #60547 - redox-os:redox-unix, r=alexcrichton
redox: convert to target_family unix This is the second step to supporting #60139. In order to have a smooth transition, there will need to be a change made in liblibc at the same time, switching Redox over to the unix target family. See rust-lang/libc#1332
2 parents 647ed20 + ebb648d commit ad7c55e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+590
-6440
lines changed

src/doc/unstable-book/src/library-features/n16.md

-5
This file was deleted.

src/libpanic_abort/lib.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ pub unsafe extern fn __rust_start_panic(_payload: usize) -> u32 {
4848
libc::abort();
4949
}
5050

51-
#[cfg(any(target_os = "redox",
52-
windows,
51+
#[cfg(any(windows,
5352
all(target_arch = "wasm32", not(target_os = "emscripten"))))]
5453
unsafe fn abort() -> ! {
5554
core::intrinsics::abort();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
use crate::spec::{LinkerFlavor, Target, TargetResult};
2+
3+
pub fn target() -> TargetResult {
4+
let mut base = super::redox_base::opts();
5+
base.max_atomic_width = Some(128);
6+
7+
Ok(Target {
8+
llvm_target: "aarch64-unknown-redox".to_string(),
9+
target_endian: "little".to_string(),
10+
target_pointer_width: "64".to_string(),
11+
target_c_int_width: "32".to_string(),
12+
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
13+
arch: "aarch64".to_string(),
14+
target_os: "redox".to_string(),
15+
target_env: "relibc".to_string(),
16+
target_vendor: "unknown".to_string(),
17+
linker_flavor: LinkerFlavor::Gcc,
18+
options: base,
19+
})
20+
}

src/librustc_target/spec/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,7 @@ supported_targets! {
417417

418418
("x86_64-unknown-l4re-uclibc", x86_64_unknown_l4re_uclibc),
419419

420+
("aarch64-unknown-redox", aarch64_unknown_redox),
420421
("x86_64-unknown-redox", x86_64_unknown_redox),
421422

422423
("i386-apple-ios", i386_apple_ios),

src/librustc_target/spec/redox_base.rs

+9-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::spec::{LinkArgs, LinkerFlavor, TargetOptions};
1+
use crate::spec::{LinkArgs, LinkerFlavor, TargetOptions, RelroLevel};
22
use std::default::Default;
33

44
pub fn opts() -> TargetOptions {
@@ -18,14 +18,17 @@ pub fn opts() -> TargetOptions {
1818
]);
1919

2020
TargetOptions {
21-
pre_link_args: args,
21+
dynamic_linking: true,
2222
executables: true,
23-
relocation_model: "static".to_string(),
24-
disable_redzone: true,
25-
eliminate_frame_pointer: false,
26-
target_family: None,
23+
target_family: Some("unix".to_string()),
2724
linker_is_gnu: true,
25+
has_rpath: true,
26+
pre_link_args: args,
27+
position_independent_executables: true,
28+
relro_level: RelroLevel::Full,
2829
has_elf_tls: true,
30+
crt_static_default: true,
31+
crt_static_respected: true,
2932
.. Default::default()
3033
}
3134
}

src/librustc_target/spec/x86_64_unknown_redox.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub fn target() -> TargetResult {
1515
data_layout: "e-m:e-i64:64-f80:128-n8:16:32:64-S128".to_string(),
1616
arch: "x86_64".to_string(),
1717
target_os: "redox".to_string(),
18-
target_env: String::new(),
18+
target_env: "relibc".to_string(),
1919
target_vendor: "unknown".to_string(),
2020
linker_flavor: LinkerFlavor::Gcc,
2121
options: base,

src/libstd/os/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ cfg_if::cfg_if! {
5050
#[cfg(target_os = "emscripten")] pub mod emscripten;
5151
#[cfg(target_os = "fuchsia")] pub mod fuchsia;
5252
#[cfg(target_os = "hermit")] pub mod hermit;
53+
#[cfg(target_os = "redox")] pub mod redox;
5354
#[cfg(target_os = "wasi")] pub mod wasi;
5455
#[cfg(target_os = "vxworks")] pub mod vxworks;
5556
#[cfg(all(target_vendor = "fortanix", target_env = "sgx"))] pub mod fortanix_sgx;

0 commit comments

Comments
 (0)