added support for GNU/Hurd
This commit is contained in:
parent
ae9c330629
commit
dcea7709f2
36 changed files with 626 additions and 35 deletions
15
compiler/rustc_target/src/spec/hurd_base.rs
Normal file
15
compiler/rustc_target/src/spec/hurd_base.rs
Normal file
|
@ -0,0 +1,15 @@
|
|||
use crate::spec::{cvs, RelroLevel, TargetOptions};
|
||||
|
||||
pub fn opts() -> TargetOptions {
|
||||
TargetOptions {
|
||||
os: "hurd".into(),
|
||||
dynamic_linking: true,
|
||||
families: cvs!["unix"],
|
||||
has_rpath: true,
|
||||
position_independent_executables: true,
|
||||
relro_level: RelroLevel::Full,
|
||||
has_thread_local: true,
|
||||
crt_static_respected: true,
|
||||
..Default::default()
|
||||
}
|
||||
}
|
5
compiler/rustc_target/src/spec/hurd_gnu_base.rs
Normal file
5
compiler/rustc_target/src/spec/hurd_gnu_base.rs
Normal file
|
@ -0,0 +1,5 @@
|
|||
use crate::spec::TargetOptions;
|
||||
|
||||
pub fn opts() -> TargetOptions {
|
||||
TargetOptions { env: "gnu".into(), ..super::hurd_base::opts() }
|
||||
}
|
19
compiler/rustc_target/src/spec/i686_unknown_hurd_gnu.rs
Normal file
19
compiler/rustc_target/src/spec/i686_unknown_hurd_gnu.rs
Normal file
|
@ -0,0 +1,19 @@
|
|||
use crate::spec::{Cc, LinkerFlavor, Lld, StackProbeType, Target};
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::hurd_gnu_base::opts();
|
||||
base.cpu = "pentiumpro".into();
|
||||
base.max_atomic_width = Some(64);
|
||||
base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32"]);
|
||||
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
|
||||
|
||||
Target {
|
||||
llvm_target: "i686-unknown-hurd-gnu".into(),
|
||||
pointer_width: 32,
|
||||
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
|
||||
f64:32:64-f80:32-n8:16:32-S128"
|
||||
.into(),
|
||||
arch: "x86".into(),
|
||||
options: base,
|
||||
}
|
||||
}
|
|
@ -71,6 +71,8 @@ mod freebsd_base;
|
|||
mod fuchsia_base;
|
||||
mod haiku_base;
|
||||
mod hermit_base;
|
||||
mod hurd_base;
|
||||
mod hurd_gnu_base;
|
||||
mod illumos_base;
|
||||
mod l4re_base;
|
||||
mod linux_base;
|
||||
|
@ -1367,6 +1369,8 @@ supported_targets! {
|
|||
("i686-unknown-haiku", i686_unknown_haiku),
|
||||
("x86_64-unknown-haiku", x86_64_unknown_haiku),
|
||||
|
||||
("i686-unknown-hurd-gnu", i686_unknown_hurd_gnu),
|
||||
|
||||
("aarch64-apple-darwin", aarch64_apple_darwin),
|
||||
("x86_64-apple-darwin", x86_64_apple_darwin),
|
||||
("x86_64h-apple-darwin", x86_64h_apple_darwin),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue