mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-28 17:53:56 +00:00
Add netbsd amd64 support
This commit is contained in:
parent
d2cf9f9632
commit
0b7c4f57f6
4
configure
vendored
4
configure
vendored
@ -405,6 +405,10 @@ case $CFG_OSTYPE in
|
||||
CFG_OSTYPE=unknown-openbsd
|
||||
;;
|
||||
|
||||
NetBSD)
|
||||
CFG_OSTYPE=unknown-netbsd
|
||||
;;
|
||||
|
||||
Darwin)
|
||||
CFG_OSTYPE=apple-darwin
|
||||
;;
|
||||
|
22
mk/cfg/x86_64-unknown-netbsd.mk
Normal file
22
mk/cfg/x86_64-unknown-netbsd.mk
Normal file
@ -0,0 +1,22 @@
|
||||
# x86_64-unknown-netbsd configuration
|
||||
CC_x86_64-unknown-netbsd=$(CC)
|
||||
CXX_x86_64-unknown-netbsd=$(CXX)
|
||||
CPP_x86_64-unknown-netbsd=$(CPP)
|
||||
AR_x86_64-unknown-netbsd=$(AR)
|
||||
CFG_LIB_NAME_x86_64-unknown-netbsd=lib$(1).so
|
||||
CFG_STATIC_LIB_NAME_x86_64-unknown-netbsd=lib$(1).a
|
||||
CFG_LIB_GLOB_x86_64-unknown-netbsd=lib$(1)-*.so
|
||||
CFG_LIB_DSYM_GLOB_x86_64-unknown-netbsd=$(1)-*.dylib.dSYM
|
||||
CFG_JEMALLOC_CFLAGS_x86_64-unknown-netbsd := -I/usr/local/include $(CFLAGS)
|
||||
CFG_GCCISH_CFLAGS_x86_64-unknown-netbsd := -Wall -Werror -g -fPIC -I/usr/local/include $(CFLAGS)
|
||||
CFG_GCCISH_LINK_FLAGS_x86_64-unknown-netbsd := -shared -fPIC -g -pthread -lrt
|
||||
CFG_GCCISH_DEF_FLAG_x86_64-unknown-netbsd := -Wl,--export-dynamic,--dynamic-list=
|
||||
CFG_LLC_FLAGS_x86_64-unknown-netbsd :=
|
||||
CFG_INSTALL_NAME_x86_64-unknown-netbsd =
|
||||
CFG_EXE_SUFFIX_x86_64-unknown-netbsd :=
|
||||
CFG_WINDOWSY_x86_64-unknown-netbsd :=
|
||||
CFG_UNIXY_x86_64-unknown-netbsd := 1
|
||||
CFG_LDPATH_x86_64-unknown-netbsd :=
|
||||
CFG_RUN_x86_64-unknown-netbsd=$(2)
|
||||
CFG_RUN_TARG_x86_64-unknown-netbsd=$(call CFG_RUN_x86_64-unknown-netbsd,,$(2))
|
||||
CFG_GNU_TRIPLE_x86_64-unknown-netbsd := x86_64-unknown-netbsd
|
@ -21,6 +21,7 @@ const OS_TABLE: &'static [(&'static str, &'static str)] = &[
|
||||
("ios", "ios"),
|
||||
("linux", "linux"),
|
||||
("mingw32", "windows"),
|
||||
("netbsd", "netbsd"),
|
||||
("openbsd", "openbsd"),
|
||||
("win32", "windows"),
|
||||
("windows", "windows"),
|
||||
|
@ -2023,7 +2023,7 @@ The following configurations must be defined by the implementation:
|
||||
as a configuration itself, like `unix` or `windows`.
|
||||
* `target_os = "..."`. Operating system of the target, examples include
|
||||
`"windows"`, `"macos"`, `"ios"`, `"linux"`, `"android"`, `"freebsd"`, `"dragonfly"`,
|
||||
`"bitrig"` or `"openbsd"`.
|
||||
`"bitrig"` , `"openbsd"` or `"netbsd"`.
|
||||
* `target_pointer_width = "..."`. Target pointer width in bits. This is set
|
||||
to `"32"` for targets with 32-bit pointers, and likewise set to `"64"` for
|
||||
64-bit pointers.
|
||||
|
@ -41,13 +41,14 @@ download_dir_base = "dl"
|
||||
download_unpack_base = os.path.join(download_dir_base, "unpack")
|
||||
|
||||
snapshot_files = {
|
||||
"bitrig": ["bin/rustc"],
|
||||
"dragonfly": ["bin/rustc"],
|
||||
"freebsd": ["bin/rustc"],
|
||||
"linux": ["bin/rustc"],
|
||||
"macos": ["bin/rustc"],
|
||||
"winnt": ["bin/rustc.exe"],
|
||||
"freebsd": ["bin/rustc"],
|
||||
"dragonfly": ["bin/rustc"],
|
||||
"bitrig": ["bin/rustc"],
|
||||
"netbsd": ["bin/rustc"],
|
||||
"openbsd": ["bin/rustc"],
|
||||
"winnt": ["bin/rustc.exe"],
|
||||
}
|
||||
|
||||
winnt_runtime_deps_32 = ["libgcc_s_dw2-1.dll", "libstdc++-6.dll"]
|
||||
@ -103,6 +104,8 @@ def get_kernel(triple):
|
||||
return "dragonfly"
|
||||
if os_name == "bitrig":
|
||||
return "bitrig"
|
||||
if os_name == "netbsd":
|
||||
return "netbsd"
|
||||
if os_name == "openbsd":
|
||||
return "openbsd"
|
||||
return "linux"
|
||||
|
@ -1322,7 +1322,7 @@ pub mod types {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(any(target_os = "bitrig", target_os = "openbsd"))]
|
||||
#[cfg(any(target_os = "bitrig", target_os = "netbsd", target_os ="openbsd"))]
|
||||
pub mod os {
|
||||
pub mod common {
|
||||
pub mod posix01 {
|
||||
@ -1351,7 +1351,7 @@ pub mod types {
|
||||
pub __unused7: *mut c_void,
|
||||
}
|
||||
|
||||
#[cfg(target_os = "openbsd")]
|
||||
#[cfg(any(target_os = "netbsd", target_os="openbsd"))]
|
||||
#[repr(C)]
|
||||
#[derive(Copy, Clone)] pub struct glob_t {
|
||||
pub gl_pathc: c_int,
|
||||
@ -4323,7 +4323,7 @@ pub mod consts {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(any(target_os = "bitrig", target_os = "openbsd"))]
|
||||
#[cfg(any(target_os = "bitrig", target_os = "netbsd", target_os = "openbsd"))]
|
||||
pub mod os {
|
||||
pub mod c95 {
|
||||
use types::os::arch::c95::{c_int, c_uint};
|
||||
@ -5568,6 +5568,7 @@ pub mod funcs {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "nacl"))]
|
||||
pub mod posix88 {
|
||||
@ -5584,6 +5585,7 @@ pub mod funcs {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "android",
|
||||
target_os = "ios",
|
||||
@ -5602,6 +5604,7 @@ pub mod funcs {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "android",
|
||||
target_os = "ios",
|
||||
@ -5889,6 +5892,7 @@ pub mod funcs {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "nacl"))]
|
||||
pub mod posix01 {
|
||||
@ -5901,6 +5905,7 @@ pub mod funcs {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "android",
|
||||
target_os = "ios",
|
||||
@ -6019,16 +6024,17 @@ pub mod funcs {
|
||||
}
|
||||
|
||||
|
||||
#[cfg(any(target_os = "windows",
|
||||
target_os = "linux",
|
||||
target_os = "android",
|
||||
target_os = "macos",
|
||||
#[cfg(any(target_os = "android",
|
||||
target_os = "bitrig",
|
||||
target_os = "dragonfly",
|
||||
target_os = "ios",
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "linux",
|
||||
target_os = "macos",
|
||||
target_os = "nacl",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "nacl"))]
|
||||
target_os = "windows"))]
|
||||
pub mod posix08 {
|
||||
pub mod unistd {
|
||||
}
|
||||
@ -6115,6 +6121,7 @@ pub mod funcs {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
pub mod bsd44 {
|
||||
use types::common::c95::{c_void};
|
||||
@ -6192,6 +6199,7 @@ pub mod funcs {
|
||||
#[cfg(any(target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
pub mod extra {
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ pub fn get_target_strs(target_triple: String, target_os: abi::Os) -> target_strs
|
||||
-a:0:64-n32".to_string()
|
||||
}
|
||||
|
||||
abi::OsFreebsd | abi::OsDragonfly | abi::OsBitrig | abi::OsOpenbsd => {
|
||||
abi::OsFreebsd | abi::OsDragonfly | abi::OsBitrig | abi::OsOpenbsd | abi::OsNetbsd => {
|
||||
"e-p:32:32:32\
|
||||
-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64\
|
||||
-f32:32:32-f64:64:64\
|
||||
|
@ -56,7 +56,7 @@ pub fn get_target_strs(target_triple: String, target_os: abi::Os) -> target_strs
|
||||
-a:0:64-n32".to_string()
|
||||
}
|
||||
|
||||
abi::OsFreebsd | abi::OsDragonfly | abi::OsBitrig | abi::OsOpenbsd => {
|
||||
abi::OsBitrig | abi::OsDragonfly | abi::OsFreebsd | abi::OsNetbsd | abi::OsOpenbsd => {
|
||||
"E-p:32:32:32\
|
||||
-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64\
|
||||
-f32:32:32-f64:64:64\
|
||||
|
@ -56,7 +56,7 @@ pub fn get_target_strs(target_triple: String, target_os: abi::Os) -> target_strs
|
||||
-a:0:64-n32".to_string()
|
||||
}
|
||||
|
||||
abi::OsFreebsd | abi::OsDragonfly | abi::OsBitrig | abi::OsOpenbsd => {
|
||||
abi::OsFreebsd | abi::OsDragonfly | abi::OsBitrig | abi::OsOpenbsd | abi::OsNetbsd => {
|
||||
"e-p:32:32:32\
|
||||
-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64\
|
||||
-f32:32:32-f64:64:64\
|
||||
|
@ -58,6 +58,7 @@ mod dragonfly_base;
|
||||
mod freebsd_base;
|
||||
mod linux_base;
|
||||
mod openbsd_base;
|
||||
mod netbsd_base;
|
||||
mod windows_base;
|
||||
mod windows_msvc_base;
|
||||
|
||||
@ -368,6 +369,7 @@ impl Target {
|
||||
|
||||
x86_64_unknown_bitrig,
|
||||
x86_64_unknown_openbsd,
|
||||
x86_64_unknown_netbsd,
|
||||
|
||||
x86_64_apple_darwin,
|
||||
i686_apple_darwin,
|
||||
|
32
src/librustc_back/target/netbsd_base.rs
Normal file
32
src/librustc_back/target/netbsd_base.rs
Normal file
@ -0,0 +1,32 @@
|
||||
// Copyright 2014-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.
|
||||
|
||||
use target::TargetOptions;
|
||||
use std::default::Default;
|
||||
|
||||
pub fn opts() -> TargetOptions {
|
||||
TargetOptions {
|
||||
linker: "cc".to_string(),
|
||||
dynamic_linking: true,
|
||||
executables: true,
|
||||
morestack: false,
|
||||
linker_is_gnu: true,
|
||||
has_rpath: true,
|
||||
pre_link_args: vec!(
|
||||
// GNU-style linkers will use this to omit linking to libraries
|
||||
// which don't actually fulfill any relocations, but only for
|
||||
// libraries which follow this flag. Thus, use it before
|
||||
// specifying libraries to link to.
|
||||
"-Wl,--as-needed".to_string(),
|
||||
),
|
||||
position_independent_executables: true,
|
||||
.. Default::default()
|
||||
}
|
||||
}
|
29
src/librustc_back/target/x86_64_unknown_netbsd.rs
Normal file
29
src/librustc_back/target/x86_64_unknown_netbsd.rs
Normal file
@ -0,0 +1,29 @@
|
||||
// Copyright 2014-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.
|
||||
|
||||
use target::Target;
|
||||
|
||||
pub fn target() -> Target {
|
||||
let mut base = super::netbsd_base::opts();
|
||||
base.pre_link_args.push("-m64".to_string());
|
||||
|
||||
Target {
|
||||
data_layout: "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-\
|
||||
f32:32:32-f64:64:64-v64:64:64-v128:128:128-a:0:64-\
|
||||
s0:64:64-f80:128:128-n8:16:32:64-S128".to_string(),
|
||||
llvm_target: "x86_64-unknown-netbsd".to_string(),
|
||||
target_endian: "little".to_string(),
|
||||
target_pointer_width: "64".to_string(),
|
||||
arch: "x86_64".to_string(),
|
||||
target_os: "netbsd".to_string(),
|
||||
target_env: "".to_string(),
|
||||
options: base,
|
||||
}
|
||||
}
|
@ -45,7 +45,7 @@ pub fn get_target_strs(target_triple: String, target_os: abi::Os)
|
||||
"e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32".to_string()
|
||||
}
|
||||
|
||||
abi::OsFreebsd | abi::OsDragonfly | abi::OsBitrig | abi::OsOpenbsd => {
|
||||
abi::OsFreebsd | abi::OsDragonfly | abi::OsBitrig | abi::OsOpenbsd | abi::OsNetbsd => {
|
||||
"e-p:32:32-f64:32:64-i64:32:64-f80:32:32-n8:16:32".to_string()
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ pub fn get_target_strs(target_triple: String, target_os: abi::Os) -> target_strs
|
||||
s0:64:64-f80:128:128-n8:16:32:64-S128".to_string()
|
||||
}
|
||||
|
||||
abi::OsFreebsd | abi::OsDragonfly | abi::OsBitrig | abi::OsOpenbsd => {
|
||||
abi::OsBitrig | abi::OsDragonfly | abi::OsFreebsd | abi::OsNetbsd | abi::OsOpenbsd => {
|
||||
"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-\
|
||||
f32:32:32-f64:64:64-v64:64:64-v128:128:128-a:0:64-\
|
||||
s0:64:64-f80:128:128-n8:16:32:64-S128".to_string()
|
||||
|
@ -68,6 +68,7 @@ mod imp {
|
||||
|
||||
#[cfg(any(target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
mod os {
|
||||
use libc;
|
||||
|
@ -160,6 +160,7 @@ mod tests {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
fn test_errors_do_not_crash() {
|
||||
// Open /dev/null as a library to get an error, and make sure
|
||||
@ -179,6 +180,7 @@ mod tests {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
mod dl {
|
||||
use prelude::v1::*;
|
||||
|
@ -633,6 +633,7 @@ pub mod consts {
|
||||
/// - freebsd
|
||||
/// - dragonfly
|
||||
/// - bitrig
|
||||
/// - netbsd
|
||||
/// - openbsd
|
||||
/// - android
|
||||
/// - windows
|
||||
@ -759,6 +760,17 @@ mod os {
|
||||
pub const EXE_EXTENSION: &'static str = "";
|
||||
}
|
||||
|
||||
#[cfg(target_os = "netbsd")]
|
||||
mod os {
|
||||
pub const FAMILY: &'static str = "unix";
|
||||
pub const OS: &'static str = "netbsd";
|
||||
pub const DLL_PREFIX: &'static str = "lib";
|
||||
pub const DLL_SUFFIX: &'static str = ".so";
|
||||
pub const DLL_EXTENSION: &'static str = "so";
|
||||
pub const EXE_SUFFIX: &'static str = "";
|
||||
pub const EXE_EXTENSION: &'static str = "";
|
||||
}
|
||||
|
||||
#[cfg(target_os = "openbsd")]
|
||||
mod os {
|
||||
pub const FAMILY: &'static str = "unix";
|
||||
|
@ -904,7 +904,7 @@ mod tests {
|
||||
|
||||
// FIXME: re-enabled bitrig/openbsd tests once their socket timeout code
|
||||
// no longer has rounding errors.
|
||||
#[cfg_attr(any(target_os = "bitrig", target_os = "openbsd"), ignore)]
|
||||
#[cfg_attr(any(target_os = "bitrig", target_os = "netbsd", target_os = "openbsd"), ignore)]
|
||||
#[test]
|
||||
fn timeouts() {
|
||||
let addr = next_test_ip4();
|
||||
|
@ -360,9 +360,9 @@ mod tests {
|
||||
assert_eq!(format!("{:?}", udpsock), compare);
|
||||
}
|
||||
|
||||
// FIXME: re-enabled bitrig/openbsd tests once their socket timeout code
|
||||
// FIXME: re-enabled bitrig/openbsd/netbsd tests once their socket timeout code
|
||||
// no longer has rounding errors.
|
||||
#[cfg_attr(any(target_os = "bitrig", target_os = "openbsd"), ignore)]
|
||||
#[cfg_attr(any(target_os = "bitrig", target_os = "netbsd", target_os = "openbsd"), ignore)]
|
||||
#[test]
|
||||
fn timeouts() {
|
||||
let addr = next_test_ip4();
|
||||
|
@ -24,6 +24,7 @@
|
||||
#[cfg(target_os = "linux")] pub mod linux;
|
||||
#[cfg(target_os = "macos")] pub mod macos;
|
||||
#[cfg(target_os = "nacl")] pub mod nacl;
|
||||
#[cfg(target_os = "netbsd")] pub mod netbsd;
|
||||
#[cfg(target_os = "openbsd")] pub mod openbsd;
|
||||
|
||||
pub mod raw;
|
||||
|
20
src/libstd/os/netbsd/mod.rs
Normal file
20
src/libstd/os/netbsd/mod.rs
Normal file
@ -0,0 +1,20 @@
|
||||
// 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.
|
||||
|
||||
//! OpenBSD-specific definitions
|
||||
|
||||
#![stable(feature = "raw_ext", since = "1.1.0")]
|
||||
|
||||
pub mod raw;
|
||||
|
||||
pub mod fs {
|
||||
#![stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub use sys::fs::MetadataExt;
|
||||
}
|
71
src/libstd/os/netbsd/raw.rs
Normal file
71
src/libstd/os/netbsd/raw.rs
Normal file
@ -0,0 +1,71 @@
|
||||
// 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.
|
||||
|
||||
//! NetBSD/OpenBSD-specific raw type definitions
|
||||
|
||||
#![stable(feature = "raw_ext", since = "1.1.0")]
|
||||
|
||||
use os::raw::c_long;
|
||||
use os::unix::raw::{uid_t, gid_t};
|
||||
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")] pub type blkcnt_t = i64;
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")] pub type blksize_t = u32;
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")] pub type dev_t = i32;
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")] pub type fflags_t = u32;
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")] pub type ino_t = u64;
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")] pub type mode_t = u32;
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")] pub type nlink_t = u32;
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")] pub type off_t = i64;
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")] pub type time_t = i64;
|
||||
|
||||
#[repr(C)]
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub struct stat {
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_mode: mode_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_dev: dev_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_ino: ino_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_nlink: nlink_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_uid: uid_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_gid: gid_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_rdev: dev_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_atime: time_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_atime_nsec: c_long,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_mtime: time_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_mtime_nsec: c_long,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_ctime: time_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_ctime_nsec: c_long,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_size: off_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_blocks: blkcnt_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_blksize: blksize_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_flags: fflags_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_gen: u32,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_birthtime: time_t,
|
||||
#[stable(feature = "raw_ext", since = "1.1.0")]
|
||||
pub st_birthtime_nsec: c_long,
|
||||
}
|
@ -44,6 +44,7 @@ pub fn clone() -> Option<Vec<Vec<u8>>> { imp::clone() }
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
mod imp {
|
||||
use prelude::v1::*;
|
||||
|
@ -106,7 +106,7 @@ extern {}
|
||||
#[link(name = "unwind", kind = "static")]
|
||||
extern {}
|
||||
|
||||
#[cfg(any(target_os = "android", target_os = "openbsd"))]
|
||||
#[cfg(any(target_os = "android", target_os = "netbsd", target_os = "openbsd"))]
|
||||
#[link(name = "gcc")]
|
||||
extern {}
|
||||
|
||||
|
@ -39,6 +39,7 @@ extern {}
|
||||
|
||||
#[cfg(any(target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
#[link(name = "pthread")]
|
||||
extern {}
|
||||
|
@ -202,6 +202,7 @@ pub unsafe fn record_sp_limit(limit: usize) {
|
||||
target_arch = "powerpc",
|
||||
all(target_arch = "arm", target_os = "ios"),
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
unsafe fn target_record_sp_limit(_: usize) {
|
||||
}
|
||||
@ -299,6 +300,7 @@ pub unsafe fn get_sp_limit() -> usize {
|
||||
target_arch = "powerpc",
|
||||
all(target_arch = "arm", target_os = "ios"),
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
#[inline(always)]
|
||||
unsafe fn target_get_sp_limit() -> usize {
|
||||
|
@ -363,6 +363,7 @@ fn print(w: &mut Write, idx: isize, addr: *mut libc::c_void,
|
||||
let selfname = if cfg!(target_os = "freebsd") ||
|
||||
cfg!(target_os = "dragonfly") ||
|
||||
cfg!(target_os = "bitrig") ||
|
||||
cfg!(target_os = "netbsd") ||
|
||||
cfg!(target_os = "openbsd") {
|
||||
env::current_exe().ok()
|
||||
} else {
|
||||
|
@ -34,6 +34,7 @@ use libc;
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
pub const FIOCLEX: libc::c_ulong = 0x20006601;
|
||||
|
||||
@ -60,6 +61,7 @@ pub const _SC_GETPW_R_SIZE_MAX: libc::c_int = 70;
|
||||
target_os = "dragonfly"))]
|
||||
pub const _SC_GETPW_R_SIZE_MAX: libc::c_int = 71;
|
||||
#[cfg(any(target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
pub const _SC_GETPW_R_SIZE_MAX: libc::c_int = 101;
|
||||
#[cfg(target_os = "android")]
|
||||
@ -82,6 +84,7 @@ pub struct passwd {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
pub struct passwd {
|
||||
pub pw_name: *mut libc::c_char,
|
||||
@ -321,6 +324,7 @@ mod signal_os {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
mod signal_os {
|
||||
use libc;
|
||||
@ -348,7 +352,7 @@ mod signal_os {
|
||||
pub struct sigset_t {
|
||||
bits: [u32; 4],
|
||||
}
|
||||
#[cfg(any(target_os = "bitrig", target_os = "openbsd"))]
|
||||
#[cfg(any(target_os = "bitrig", target_os = "netbsd", target_os = "openbsd"))]
|
||||
pub type sigset_t = libc::c_uint;
|
||||
|
||||
// This structure has more fields, but we're not all that interested in
|
||||
@ -365,7 +369,7 @@ mod signal_os {
|
||||
pub _status: libc::c_int,
|
||||
pub si_addr: *mut libc::c_void
|
||||
}
|
||||
#[cfg(any(target_os = "bitrig", target_os = "openbsd"))]
|
||||
#[cfg(any(target_os = "bitrig", target_os = "netbsd", target_os = "openbsd"))]
|
||||
#[repr(C)]
|
||||
pub struct siginfo {
|
||||
pub si_signo: libc::c_int,
|
||||
@ -375,7 +379,7 @@ mod signal_os {
|
||||
}
|
||||
|
||||
#[cfg(any(target_os = "macos", target_os = "ios",
|
||||
target_os = "bitrig", target_os = "openbsd"))]
|
||||
target_os = "bitrig", target_os = "netbsd", target_os = "openbsd"))]
|
||||
#[repr(C)]
|
||||
pub struct sigaction {
|
||||
pub sa_sigaction: sighandler_t,
|
||||
|
@ -26,6 +26,7 @@ use ops::Neg;
|
||||
#[cfg(target_os = "linux")] pub use os::linux as platform;
|
||||
#[cfg(target_os = "macos")] pub use os::macos as platform;
|
||||
#[cfg(target_os = "nacl")] pub use os::nacl as platform;
|
||||
#[cfg(target_os = "netbsd")] pub use os::netbsd as platform;
|
||||
#[cfg(target_os = "openbsd")] pub use os::openbsd as platform;
|
||||
|
||||
pub mod backtrace;
|
||||
|
@ -51,23 +51,13 @@ pub fn errno() -> i32 {
|
||||
__error()
|
||||
}
|
||||
|
||||
#[cfg(target_os = "bitrig")]
|
||||
fn errno_location() -> *const c_int {
|
||||
extern {
|
||||
fn __errno() -> *const c_int;
|
||||
}
|
||||
unsafe {
|
||||
__errno()
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(target_os = "dragonfly")]
|
||||
unsafe fn errno_location() -> *const c_int {
|
||||
extern { fn __dfly_error() -> *const c_int; }
|
||||
__dfly_error()
|
||||
}
|
||||
|
||||
#[cfg(target_os = "openbsd")]
|
||||
#[cfg(any(target_os = "bitrig", target_os = "netbsd", target_os = "openbsd"))]
|
||||
unsafe fn errno_location() -> *const c_int {
|
||||
extern { fn __errno() -> *const c_int; }
|
||||
__errno()
|
||||
@ -214,7 +204,7 @@ pub fn current_exe() -> io::Result<PathBuf> {
|
||||
::fs::read_link("/proc/curproc/file")
|
||||
}
|
||||
|
||||
#[cfg(any(target_os = "bitrig", target_os = "openbsd"))]
|
||||
#[cfg(any(target_os = "bitrig", target_os = "netbsd", target_os = "openbsd"))]
|
||||
pub fn current_exe() -> io::Result<PathBuf> {
|
||||
use sync::StaticMutex;
|
||||
static LOCK: StaticMutex = StaticMutex::new();
|
||||
@ -356,6 +346,7 @@ pub fn args() -> Args {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
pub fn args() -> Args {
|
||||
use rt;
|
||||
|
@ -423,6 +423,7 @@ fn translate_status(status: c_int) -> ExitStatus {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
mod imp {
|
||||
pub fn WIFEXITED(status: i32) -> bool { (status & 0x7f) == 0 }
|
||||
|
@ -35,6 +35,7 @@ impl Drop for Handler {
|
||||
#[cfg(any(target_os = "linux",
|
||||
target_os = "macos",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
mod imp {
|
||||
use sys_common::stack;
|
||||
@ -149,6 +150,7 @@ mod imp {
|
||||
#[cfg(not(any(target_os = "linux",
|
||||
target_os = "macos",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd")))]
|
||||
mod imp {
|
||||
use libc;
|
||||
|
@ -55,6 +55,7 @@ extern {
|
||||
#[cfg(any(target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
mod os {
|
||||
use libc;
|
||||
|
@ -105,6 +105,7 @@ impl Thread {
|
||||
#[cfg(any(target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
pub fn set_name(name: &str) {
|
||||
extern {
|
||||
@ -162,6 +163,7 @@ impl Drop for Thread {
|
||||
#[cfg(all(not(target_os = "linux"),
|
||||
not(target_os = "macos"),
|
||||
not(target_os = "bitrig"),
|
||||
not(target_os = "netbsd"),
|
||||
not(target_os = "openbsd")))]
|
||||
pub mod guard {
|
||||
pub unsafe fn current() -> usize { 0 }
|
||||
@ -173,6 +175,7 @@ pub mod guard {
|
||||
#[cfg(any(target_os = "linux",
|
||||
target_os = "macos",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
#[allow(unused_imports)]
|
||||
pub mod guard {
|
||||
@ -193,6 +196,7 @@ pub mod guard {
|
||||
|
||||
#[cfg(any(target_os = "macos",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
unsafe fn get_stack_start() -> *mut libc::c_void {
|
||||
current() as *mut libc::c_void
|
||||
@ -258,7 +262,7 @@ pub mod guard {
|
||||
pthread_get_stacksize_np(pthread_self())) as usize
|
||||
}
|
||||
|
||||
#[cfg(any(target_os = "openbsd", target_os = "bitrig"))]
|
||||
#[cfg(any(target_os = "openbsd", target_os = "netbsd", target_os = "bitrig"))]
|
||||
pub unsafe fn current() -> usize {
|
||||
#[repr(C)]
|
||||
struct stack_t {
|
||||
|
@ -46,6 +46,7 @@ type pthread_key_t = ::libc::c_ulong;
|
||||
#[cfg(any(target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
type pthread_key_t = ::libc::c_int;
|
||||
|
||||
@ -54,6 +55,7 @@ type pthread_key_t = ::libc::c_int;
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd")))]
|
||||
type pthread_key_t = ::libc::c_uint;
|
||||
|
||||
|
@ -80,6 +80,7 @@ mod inner {
|
||||
// OpenBSD provide it via libc
|
||||
#[cfg(not(any(target_os = "android",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_env = "musl")))]
|
||||
#[link(name = "rt")]
|
||||
|
@ -104,6 +104,7 @@ macro_rules! __scoped_thread_local_inner {
|
||||
#[cfg_attr(not(any(windows,
|
||||
target_os = "android",
|
||||
target_os = "ios",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_arch = "aarch64")),
|
||||
thread_local)]
|
||||
@ -215,6 +216,7 @@ impl<T> ScopedKey<T> {
|
||||
#[cfg(not(any(windows,
|
||||
target_os = "android",
|
||||
target_os = "ios",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_arch = "aarch64",
|
||||
no_elf_tls)))]
|
||||
@ -238,6 +240,7 @@ mod imp {
|
||||
#[cfg(any(windows,
|
||||
target_os = "android",
|
||||
target_os = "ios",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_arch = "aarch64",
|
||||
no_elf_tls))]
|
||||
|
@ -25,6 +25,7 @@ pub enum Os {
|
||||
OsiOS,
|
||||
OsDragonfly,
|
||||
OsBitrig,
|
||||
OsNetbsd,
|
||||
OsOpenbsd,
|
||||
}
|
||||
|
||||
@ -138,6 +139,7 @@ impl fmt::Display for Os {
|
||||
OsFreebsd => "freebsd".fmt(f),
|
||||
OsDragonfly => "dragonfly".fmt(f),
|
||||
OsBitrig => "bitrig".fmt(f),
|
||||
OsNetbsd => "netbsd".fmt(f),
|
||||
OsOpenbsd => "openbsd".fmt(f),
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,7 @@
|
||||
// ignore-windows
|
||||
// ignore-freebsd
|
||||
// ignore-openbsd
|
||||
// ignore-netbsd
|
||||
// ignore-bitrig
|
||||
|
||||
// compile-flags: -Z parse-only
|
||||
|
@ -22,6 +22,7 @@ mod rusti {
|
||||
target_os = "macos",
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
mod m {
|
||||
#[main]
|
||||
|
@ -40,6 +40,7 @@ struct Outer {
|
||||
target_os = "macos",
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd"))]
|
||||
mod m {
|
||||
#[cfg(target_arch = "x86")]
|
||||
|
@ -9,8 +9,9 @@
|
||||
// except according to those terms.
|
||||
|
||||
// ignore-android needs extra network permissions
|
||||
// ignore-openbsd system ulimit (Too many open files)
|
||||
// ignore-bitrig system ulimit (Too many open files)
|
||||
// ignore-netbsd system ulimit (Too many open files)
|
||||
// ignore-openbsd system ulimit (Too many open files)
|
||||
|
||||
use std::io::prelude::*;
|
||||
use std::net::{TcpListener, TcpStream};
|
||||
|
@ -35,6 +35,7 @@ pub fn main() {
|
||||
target_os = "freebsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "bitrig",
|
||||
target_os = "netbsd",
|
||||
target_os = "openbsd",
|
||||
target_os = "android"))]
|
||||
pub fn main() { }
|
||||
|
Loading…
Reference in New Issue
Block a user