10000 Rollup of 20 pull requests by GuillaumeGomez · Pull Request #52916 · rust-lang/rust · GitHub
[go: up one dir, main page]

Skip to content

Rollup of 20 pull requests #52916

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 47 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
acdafa0
Document From conversions for OsString and OsStr
cypher Jul 11, 2018
b81ee0b
Document From conversions for CString and CStr
cypher Jul 11, 2018
6c50ee5
dead-code lint: say "constructed" for structs
zackmdavis Jul 22, 2018
ed5edcb
Seperate summaries from rest of the comment
cypher Jul 23, 2018
7fb0a52
Update clippy to latest master
cmdln Jul 26, 2018
922bf1d
Clarify thread::park semantics
matklad Jul 27, 2018
5f87f78
Fix ws
matklad Jul 27, 2018
173c330
Don't make "fake" match variables mutable
matthewjasper Jul 28, 2018
b6d3143
pretty print for std::collections::vecdeque
fukatani Jul 29, 2018
ea25cf1
Fix From<LocalWaker>
MajorBreakfast Jul 29, 2018
9ccd7ee
Fix -Wpessimizing-move warnings in rustllvm/PassWrapper
varkor Jul 29, 2018
9845ee0
fix coding style
fukatani Jul 29, 2018
2b25ee0
update comment
toidiu Jul 30, 2018
2994b27
Add timeout to use of `curl` in bootstrap.py.
kennytm Jul 30, 2018
c57deb9
Remove references to AUTHORS.txt file
dsciarra Jul 29, 2018
f8d1dc8
improve --stage documentation
RalfJung Jul 30, 2018
aa7d7d0
improve test stage documentation
RalfJung Jul 30, 2018
e50f4ee
Add targets for HermitCore (https://hermitcore.org) to the Rust compi…
ColinFinck Jul 30, 2018
d933174
releases.md: fix 2 typos
matthiaskrgr Jul 30, 2018
b6b025b
Fix wrong issue number in the test name
Jul 30, 2018
cbbcecb
Implement Unpin for FutureObj and LocalFutureObj
cramertj Jul 30, 2018
d5f1f70
Fix Alias intra doc ICE
GuillaumeGomez Jul 29, 2018
1ea2765
run-pass/const-endianness: negate before to_le()
cuviper Jul 30, 2018
4ad4ad0
Fix coding style.
ColinFinck Jul 31, 2018
830ac8c
Fix a typo in unsize.rs
pravic Jul 31, 2018
d94bdf8
Put back original field discovery
GuillaumeGomez Jul 31, 2018
40a6046
Only run the sparc-abi test on sparc
nagisa Jul 31, 2018
033c604
Rollup merge of #52332 - zackmdavis:dead_code_lint_should_say_2_elect…
GuillaumeGomez Jul 31, 2018
1cc61fb
Rollup merge of #52340 - cypher:document-from-trait-in-ffi, r=stevekl…
GuillaumeGomez Jul 31, 2018
cd56caa
Rollup merge of #52745 - commandline:master, r=oli-obk
GuillaumeGomez Jul 31, 2018
f1316f4
Rollup merge of #52771 - matklad:patch-1, r=kennytm
GuillaumeGomez Jul 31, 2018
647d246
Rollup merge of #52810 - matthewjasper:more-immutablity, r=pnkfelix
GuillaumeGomez Jul 31, 2018
1f97e93
Rollup merge of #52821 - fukatani:gdb-vecdeque-print, r=michaelwoerister
GuillaumeGomez Jul 31, 2018
7a1b5e8
Rollup merge of #52822 - MajorBreakfast:fix-from-local-waker, r=cramertj
GuillaumeGomez Jul 31, 2018
7375841
Rollup merge of #52824 - varkor:fix-llvm-ret-move-warnings, r=rkruppe
GuillaumeGomez Jul 31, 2018
cba4701
Rollup merge of #52831 - dsciarra:rm-ref-to-author-file, r=alexcrichton
GuillaumeGomez Jul 31, 2018
0771d56
Rollup merge of #52835 - GuillaumeGomez:ice-rustdoc-links, r=eddyb
GuillaumeGomez Jul 31, 2018
043b1a1
Rollup merge of #52842 - toidiu:ak-commentUpdate, r=estebank
GuillaumeGomez Jul 31, 2018
4b302eb
Rollup merge of #52846 - kennytm:bootstrap-curl-timeout, r=Mark-Simul…
GuillaumeGomez Jul 31, 2018
f21216e
Rollup merge of #52853 - RalfJung:bootstrap-help, r=alexcrichton
GuillaumeGomez Jul 31, 2018
169823c
Rollup merge of #52861 - ColinFinck:master, r=alexcrichton
GuillaumeGomez Jul 31, 2018
5368eed
Rollup merge of #52867 - matthiaskrgr:release_typos, r=Mark-Simulacrum
GuillaumeGomez Jul 31, 2018
50e7fdd
Rollup merge of #52870 - cramertj:unpin-futureobj, r=aturon
GuillaumeGomez Jul 31, 2018
378c638
Rollup merge of #52876 - cuviper:const-endianness-be, r=kennytm
GuillaumeGomez Jul 31, 2018
c56b44c
Rollup merge of #52878 - mikhail-m1:master, r=kennytm
GuillaumeGomez Jul 31, 2018
e75abe2
Rollup merge of #52905 - pravic:unsize-typo, r=alexcrichton
GuillaumeGomez Jul 31, 2018
b9637b5
Rollup merge of #52914 - nagisa:sparc-is-sparc’s-own-business, r=alex…
GuillaumeGomez Jul 31, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add targets for HermitCore (https://hermitcore.org) to the Rust compi…
…ler and port libstd to it.

As a start, the port uses the simplest possible configuration (no jemalloc, abort on panic)
and makes use of existing Unix-specific code wherever possible.
It adds targets for x86_64 (current main HermitCore platform) and aarch64 (HermitCore platform
under development).

Together with the patches to "liblibc" and "llvm", this enables HermitCore applications to be
written in Rust.
  • Loading branch information
ColinFinck committed Jul 30, 2018
commit e50f4eeaadcea0c1dcc28e15dfe91dd38393a6da
4 changes: 2 additions & 2 deletions src/liballoc_system/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ mod platform {
}
}

#[cfg(any(target_os = "android", target_os = "redox", target_os = "solaris"))]
#[cfg(any(target_os = "android", target_os = "hermit", target_os = "redox", target_os = "solaris"))]
#[inline]
unsafe fn aligned_malloc(layout: &Layout) -> *mut u8 {
// On android we currently target API level 9 which unfortunately
Expand All @@ -197,7 +197,7 @@ mod platform {
libc::memalign(layout.align(), layout.size()) as *mut u8
}

#[cfg(not(any(target_os = "android", target_os = "redox", target_os = "solaris")))]
#[cfg(not(any(target_os = "android", target_os = "hermit", target_os = "redox", target_os = "solaris")))]
#[inline]
unsafe fn aligned_malloc(layout: &Layout) -> *mut u8 {
let mut out = ptr::null_mut();
Expand Down
32 changes: 32 additions & 0 deletions src/librustc_target/spec/aarch64_unknown_hermit.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

use spec::{LinkerFlavor, Target, TargetResult};

pub fn target() -> TargetResult {
let mut base = super::hermit_base::opts();
base.max_atomic_width = Some(128);
base.abi_blacklist = super::arm_base::abi_blacklist();
base.linker = Some("aarch64-hermit-gcc".to_string());

Ok(Target {
llvm_target: "aarch64-unknown-hermit".to_string(),
target_endian: "little".to_string(),
target_pointer_width: "64".to_string(),
target_c_int_width: "32".to_string(),
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(),
target_os: "hermit".to_string(),
target_env: "".to_string(),
target_vendor: "unknown".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base,
})
}
37 changes: 37 additions & 0 deletions src/librustc_target/spec/hermit_base.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

use spec::{LinkArgs, LinkerFlavor, PanicStrategy, TargetOptions};
use std::default::Default;

pub fn opts() -> TargetOptions {
let mut args = LinkArgs::new();
args.insert(LinkerFlavor::Gcc, vec![
"-Wl,-Bstatic".to_string(),
"-Wl,--no-dynamic-linker".to_string(),
"-Wl,--gc-sections".to_string(),
"-Wl,--as-needed".to_string(),
]);

TargetOptions {
exe_allocation_crate: None,
executables: true,
has_elf_tls: true,
linker_is_gnu: true,
no_default_libraries: false,
panic_strategy: PanicStrategy::Abort,
position_independent_executables: false,
pre_link_args: args,
relocation_model: "static".to_string(),
target_family: Some("unix".to_string()),
tls_model: "local-exec".to_string(),
.. Default::default()
}
}
4 changes: 4 additions & 0 deletions src/librustc_target/spec/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ mod cloudabi_base;
mod dragonfly_base;
mod freebsd_base;
mod haiku_base;
mod hermit_base;
mod linux_base;
mod linux_musl_base;
mod openbsd_base;
Expand Down Expand Up @@ -373,6 +374,9 @@ supported_targets! {
("armv7-unknown-cloudabi-eabihf", armv7_unknown_cloudabi_eabihf),
("i686-unknown-cloudabi", i686_unknown_cloudabi),
("x86_64-unknown-cloudabi", x86_64_unknown_cloudabi),

("aarch64-unknown-hermit", aarch64_unknown_hermit),
("x86_64-unknown-hermit", x86_64_unknown_hermit),
}

/// Everything `rustc` knows about how to compile for a specific target.
Expand Down
33 changes: 33 additions & 0 deletions src/librustc_target/spec/x86_64_unknown_hermit.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

use spec::{LinkerFlavor, Target, TargetResult};

pub fn target() -> TargetResult {
let mut base = super::hermit_base::opts();
base.cpu = "x86-64".to_string();
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
base.linker = Some("x86_64-hermit-gcc".to_string());
base.max_atomic_width = Some(64);

Ok(Target {
llvm_target: "x86_64-unknown-hermit".to_string(),
target_endian: "little".to_string(),
target_pointer_width: "64".to_string(),
target_c_int_width: "32".to_string(),
data_layout: "e-m:e-i64:64-f80:128-n8:16:32:64-S128".to_string(),
arch: "x86_64".to_string(),
target_os: "hermit".to_string(),
target_env: "".to_string(),
target_vendor: "unknown".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base,
})
}
Loading
0