Fixes for building libstd (real)
This commit is contained in:
parent
d9f263728d
commit
da3f9558d9
|
@ -10,7 +10,8 @@ path = "../rust/src/libstd/lib.rs"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
alloc_system = { path = "alloc_system" }
|
alloc_system = { path = "alloc_system" }
|
||||||
compiler_builtins = { path = "compiler_builtins" }
|
compiler_builtins = { path = "compiler_builtins" }
|
||||||
panic_unwind = { path = "panic_unwind" }
|
panic_abort = { path = "panic_abort" }
|
||||||
|
#panic_unwind = { path = "panic_unwind" }
|
||||||
libc = { path = "libc" }
|
libc = { path = "libc" }
|
||||||
unwind = { path = "unwind" }
|
unwind = { path = "unwind" }
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
name = "libc"
|
name = "libc"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
authors = ["Jeremy Soller <jackpot51@gmail.com>"]
|
authors = ["Jeremy Soller <jackpot51@gmail.com>"]
|
||||||
|
build = "build.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
redox_syscall = { path = "../../syscall/" }
|
redox_syscall = { path = "../../syscall/" }
|
||||||
|
|
18
libstd_real/libc/build.rs
Normal file
18
libstd_real/libc/build.rs
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
// Copyright 2015 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.
|
||||||
|
|
||||||
|
#![deny(warnings)]
|
||||||
|
|
||||||
|
// See comments in Cargo.toml for why this exists
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
println!("cargo:rustc-cfg=stdbuild");
|
||||||
|
println!("cargo:rerun-if-changed=build.rs");
|
||||||
|
}
|
|
@ -3,6 +3,14 @@
|
||||||
#![feature(asm)]
|
#![feature(asm)]
|
||||||
#![feature(naked_functions)]
|
#![feature(naked_functions)]
|
||||||
|
|
||||||
|
#![cfg_attr(stdbuild, feature(no_std, core, core_slice_ext, staged_api, custom_attribute, cfg_target_vendor))]
|
||||||
|
#![cfg_attr(stdbuild, no_std)]
|
||||||
|
#![cfg_attr(stdbuild, staged_api)]
|
||||||
|
#![cfg_attr(stdbuild, allow(warnings))]
|
||||||
|
#![cfg_attr(stdbuild, unstable(feature = "libc",
|
||||||
|
reason = "use `libc` from crates.io",
|
||||||
|
issue = "27783"))]
|
||||||
|
|
||||||
pub use types::*;
|
pub use types::*;
|
||||||
pub use funcs::*;
|
pub use funcs::*;
|
||||||
pub use start::*;
|
pub use start::*;
|
||||||
|
|
10
libstd_real/panic_abort/Cargo.toml
Normal file
10
libstd_real/panic_abort/Cargo.toml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[package]
|
||||||
|
name = "panic_abort"
|
||||||
|
version = "0.0.0"
|
||||||
|
authors = ["Jeremy Soller <jackpot51@gmail.com>"]
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
path = "../../rust/src/libpanic_abort/lib.rs"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
redox_syscall = { path = "../../syscall/" }
|
|
@ -3,5 +3,10 @@ name = "panic_unwind"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
authors = ["Jeremy Soller <jackpot51@gmail.com>"]
|
authors = ["Jeremy Soller <jackpot51@gmail.com>"]
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
path = "../../rust/src/libpanic_unwind/lib.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
libc = { path = "../libc/" }
|
||||||
redox_syscall = { path = "../../syscall/" }
|
redox_syscall = { path = "../../syscall/" }
|
||||||
|
unwind = { path = "../unwind/" }
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
#![no_std]
|
|
||||||
#![feature(core_intrinsics)]
|
|
||||||
#![feature(lang_items)]
|
|
||||||
#![feature(panic_runtime)]
|
|
||||||
#![panic_runtime]
|
|
||||||
|
|
||||||
#[no_mangle]
|
|
||||||
pub unsafe extern fn __rust_maybe_catch_panic(f: fn(*mut u8), data: *mut u8,
|
|
||||||
_data_ptr: *mut usize, _vtable_ptr: *mut usize) -> u32 {
|
|
||||||
f(data);
|
|
||||||
0
|
|
||||||
}
|
|
||||||
|
|
||||||
#[no_mangle]
|
|
||||||
pub unsafe extern fn __rust_start_panic(_data: usize, _vtable: usize) -> u32 {
|
|
||||||
core::intrinsics::abort();
|
|
||||||
}
|
|
||||||
|
|
||||||
#[lang = "eh_personality"]
|
|
||||||
pub extern fn eh_personality() {}
|
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
|
||||||
#[no_mangle]
|
|
||||||
/// Required to handle panics
|
|
||||||
pub unsafe extern "C" fn _Unwind_Resume() -> ! {
|
|
||||||
core::intrinsics::abort();
|
|
||||||
}
|
|
|
@ -2,3 +2,9 @@
|
||||||
name = "unwind"
|
name = "unwind"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
authors = ["Jeremy Soller <jackpot51@gmail.com>"]
|
authors = ["Jeremy Soller <jackpot51@gmail.com>"]
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
path = "../../rust/src/libunwind/lib.rs"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = { path = "../libc/" }
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
#![no_std]
|
|
2
rust
2
rust
|
@ -1 +1 @@
|
||||||
Subproject commit ced32a08f3bf7325bf3fe6488e21b108f996abc5
|
Subproject commit 79a8c272fb8ad09600ef58ff223c73eb44343040
|
Loading…
Reference in a new issue