From 07dbc6bd766ba7f489afcda78bb00bbcd9d83d85 Mon Sep 17 00:00:00 2001 From: jD91mZM2 <me@krake.one> Date: Mon, 2 Jul 2018 08:52:27 +0200 Subject: [PATCH] Fix no_std on redox Apparently a root-level cfg does not go well with a root-level no_std --- src/lib.rs | 4 +-- src/setjmp/src/impl/bin/.gitignore | 2 -- src/sys_utsname/src/lib.rs | 42 ++++++++++++++++-------------- 3 files changed, 25 insertions(+), 23 deletions(-) delete mode 100644 src/setjmp/src/impl/bin/.gitignore diff --git a/src/lib.rs b/src/lib.rs index 555deba4..558f7764 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -32,7 +32,7 @@ pub extern crate unistd; pub extern crate wchar; pub extern crate wctype; -#[cfg(not(any(test, target_os = "redox")))] +#[cfg(not(test))] #[panic_implementation] #[linkage = "weak"] #[no_mangle] @@ -51,7 +51,7 @@ pub extern "C" fn rust_begin_unwind(pi: &::core::panic::PanicInfo) -> ! { #[linkage = "weak"] pub extern "C" fn rust_eh_personality() {} -#[cfg(not(any(test, target_os = "redox")))] +#[cfg(not(test))] #[lang = "oom"] #[linkage = "weak"] #[no_mangle] diff --git a/src/setjmp/src/impl/bin/.gitignore b/src/setjmp/src/impl/bin/.gitignore deleted file mode 100644 index d6b7ef32..00000000 --- a/src/setjmp/src/impl/bin/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/src/sys_utsname/src/lib.rs b/src/sys_utsname/src/lib.rs index a0792dd5..0bb0da2e 100644 --- a/src/sys_utsname/src/lib.rs +++ b/src/sys_utsname/src/lib.rs @@ -1,28 +1,32 @@ //! sys/utsname implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysutsname.h.html #![no_std] -#![cfg(target_os = "linux")] -extern crate platform; +#[cfg(target_os = "linux")] +mod inner { + extern crate platform; -use core::ptr; -use platform::types::*; + use core::ptr; + use self::platform::types::*; -const LENGTH: usize = 65; + const LENGTH: usize = 65; -#[allow(non_camel_case)] -#[no_mangle] -#[repr(C)] -pub struct utsname { - pub sysname: [c_char; LENGTH], - pub nodename: [c_char; LENGTH], - pub release: [c_char; LENGTH], - pub version: [c_char; LENGTH], - pub machine: [c_char; LENGTH], - pub domainname: [c_char; LENGTH] -} + #[allow(non_camel_case)] + #[no_mangle] + #[repr(C)] + pub struct utsname { + pub sysname: [c_char; LENGTH], + pub nodename: [c_char; LENGTH], + pub release: [c_char; LENGTH], + pub version: [c_char; LENGTH], + pub machine: [c_char; LENGTH], + pub domainname: [c_char; LENGTH] + } -#[no_mangle] -pub unsafe extern "C" fn uname(uts: *mut utsname) -> c_int { - platform::uname(uts as usize) + #[no_mangle] + pub unsafe extern "C" fn uname(uts: *mut utsname) -> c_int { + platform::uname(uts as usize) + } } +#[cfg(target_os = "linux")] +pub use inner::*; -- GitLab