Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
0b7c4f57
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0b7c4f57
编写于
6月 30, 2015
作者:
A
Alex Newman
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add netbsd amd64 support
上级
d2cf9f96
变更
43
隐藏空白更改
内联
并排
Showing
43 changed file
with
271 addition
and
41 deletion
+271
-41
configure
configure
+4
-0
mk/cfg/x86_64-unknown-netbsd.mk
mk/cfg/x86_64-unknown-netbsd.mk
+22
-0
src/compiletest/util.rs
src/compiletest/util.rs
+1
-0
src/doc/reference.md
src/doc/reference.md
+1
-1
src/etc/snapshot.py
src/etc/snapshot.py
+7
-4
src/liblibc/lib.rs
src/liblibc/lib.rs
+18
-10
src/librustc_back/arm.rs
src/librustc_back/arm.rs
+1
-1
src/librustc_back/mips.rs
src/librustc_back/mips.rs
+1
-1
src/librustc_back/mipsel.rs
src/librustc_back/mipsel.rs
+1
-1
src/librustc_back/target/mod.rs
src/librustc_back/target/mod.rs
+2
-0
src/librustc_back/target/netbsd_base.rs
src/librustc_back/target/netbsd_base.rs
+32
-0
src/librustc_back/target/x86_64_unknown_netbsd.rs
src/librustc_back/target/x86_64_unknown_netbsd.rs
+29
-0
src/librustc_back/x86.rs
src/librustc_back/x86.rs
+1
-1
src/librustc_back/x86_64.rs
src/librustc_back/x86_64.rs
+1
-1
src/librustdoc/flock.rs
src/librustdoc/flock.rs
+1
-0
src/libstd/dynamic_lib.rs
src/libstd/dynamic_lib.rs
+2
-0
src/libstd/env.rs
src/libstd/env.rs
+12
-0
src/libstd/net/tcp.rs
src/libstd/net/tcp.rs
+1
-1
src/libstd/net/udp.rs
src/libstd/net/udp.rs
+2
-2
src/libstd/os/mod.rs
src/libstd/os/mod.rs
+1
-0
src/libstd/os/netbsd/mod.rs
src/libstd/os/netbsd/mod.rs
+20
-0
src/libstd/os/netbsd/raw.rs
src/libstd/os/netbsd/raw.rs
+71
-0
src/libstd/rt/args.rs
src/libstd/rt/args.rs
+1
-0
src/libstd/rt/libunwind.rs
src/libstd/rt/libunwind.rs
+1
-1
src/libstd/rtdeps.rs
src/libstd/rtdeps.rs
+1
-0
src/libstd/sys/common/stack.rs
src/libstd/sys/common/stack.rs
+2
-0
src/libstd/sys/unix/backtrace.rs
src/libstd/sys/unix/backtrace.rs
+1
-0
src/libstd/sys/unix/c.rs
src/libstd/sys/unix/c.rs
+7
-3
src/libstd/sys/unix/mod.rs
src/libstd/sys/unix/mod.rs
+1
-0
src/libstd/sys/unix/os.rs
src/libstd/sys/unix/os.rs
+3
-12
src/libstd/sys/unix/process.rs
src/libstd/sys/unix/process.rs
+1
-0
src/libstd/sys/unix/stack_overflow.rs
src/libstd/sys/unix/stack_overflow.rs
+2
-0
src/libstd/sys/unix/sync.rs
src/libstd/sys/unix/sync.rs
+1
-0
src/libstd/sys/unix/thread.rs
src/libstd/sys/unix/thread.rs
+5
-1
src/libstd/sys/unix/thread_local.rs
src/libstd/sys/unix/thread_local.rs
+2
-0
src/libstd/sys/unix/time.rs
src/libstd/sys/unix/time.rs
+1
-0
src/libstd/thread/scoped_tls.rs
src/libstd/thread/scoped_tls.rs
+3
-0
src/libsyntax/abi.rs
src/libsyntax/abi.rs
+2
-0
src/test/parse-fail/issue-5806.rs
src/test/parse-fail/issue-5806.rs
+1
-0
src/test/run-pass/intrinsic-alignment.rs
src/test/run-pass/intrinsic-alignment.rs
+1
-0
src/test/run-pass/rec-align-u64.rs
src/test/run-pass/rec-align-u64.rs
+1
-0
src/test/run-pass/tcp-stress.rs
src/test/run-pass/tcp-stress.rs
+2
-1
src/test/run-pass/x86stdcall.rs
src/test/run-pass/x86stdcall.rs
+1
-0
未找到文件。
configure
浏览文件 @
0b7c4f57
...
...
@@ -405,6 +405,10 @@ case $CFG_OSTYPE in
CFG_OSTYPE
=
unknown-openbsd
;;
NetBSD
)
CFG_OSTYPE
=
unknown-netbsd
;;
Darwin
)
CFG_OSTYPE
=
apple-darwin
;;
...
...
mk/cfg/x86_64-unknown-netbsd.mk
0 → 100644
浏览文件 @
0b7c4f57
# 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
src/compiletest/util.rs
浏览文件 @
0b7c4f57
...
...
@@ -21,6 +21,7 @@
(
"ios"
,
"ios"
),
(
"linux"
,
"linux"
),
(
"mingw32"
,
"windows"
),
(
"netbsd"
,
"netbsd"
),
(
"openbsd"
,
"openbsd"
),
(
"win32"
,
"windows"
),
(
"windows"
,
"windows"
),
...
...
src/doc/reference.md
浏览文件 @
0b7c4f57
...
...
@@ -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 `"open
bsd"`.
`"bitrig"`
, `"openbsd"` or `"net
bsd"`.
* `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.
...
...
src/etc/snapshot.py
浏览文件 @
0b7c4f57
...
...
@@ -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"
...
...
src/liblibc/lib.rs
浏览文件 @
0b7c4f57
...
...
@@ -1322,7 +1322,7 @@ pub mod extra {
}
}
#[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 posix01 {
pub
__u
nused7
:
*
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 sysconf {
}
}
#[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 mman {
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 stat_ {
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 stat_ {
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 net {
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 stat_ {
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 net {
}
#[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 fn sendto(socket: SOCKET, buf: *const c_void, len: c_int,
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 fn _NSGetExecutablePath(buf: *mut c_char, bufsize: *mut u32)
#[cfg(any(target_os
=
"freebsd"
,
target_os
=
"dragonfly"
,
target_os
=
"bitrig"
,
target_os
=
"netbsd"
,
target_os
=
"openbsd"
))]
pub
mod
extra
{
}
...
...
src/librustc_back/arm.rs
浏览文件 @
0b7c4f57
...
...
@@ -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
\
...
...
src/librustc_back/mips.rs
浏览文件 @
0b7c4f57
...
...
@@ -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
::
Os
Freebsd
|
abi
::
OsDragonfly
|
abi
::
OsBitrig
|
abi
::
OsOpenbsd
=>
{
abi
::
Os
Bitrig
|
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
\
...
...
src/librustc_back/mipsel.rs
浏览文件 @
0b7c4f57
...
...
@@ -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
\
...
...
src/librustc_back/target/mod.rs
浏览文件 @
0b7c4f57
...
...
@@ -58,6 +58,7 @@
mod
freebsd_base
;
mod
linux_base
;
mod
openbsd_base
;
mod
netbsd_base
;
mod
windows_base
;
mod
windows_msvc_base
;
...
...
@@ -368,6 +369,7 @@ fn load_file(path: &Path) -> Result<Target, String> {
x86_64_unknown_bitrig
,
x86_64_unknown_openbsd
,
x86_64_unknown_netbsd
,
x86_64_apple_darwin
,
i686_apple_darwin
,
...
...
src/librustc_back/target/netbsd_base.rs
0 → 100644
浏览文件 @
0b7c4f57
// 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
()
}
}
src/librustc_back/target/x86_64_unknown_netbsd.rs
0 → 100644
浏览文件 @
0b7c4f57
// 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
,
}
}
src/librustc_back/x86.rs
浏览文件 @
0b7c4f57
...
...
@@ -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
()
}
...
...
src/librustc_back/x86_64.rs
浏览文件 @
0b7c4f57
...
...
@@ -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
::
Os
Freebsd
|
abi
::
OsDragonfly
|
abi
::
OsBitrig
|
abi
::
OsOpenbsd
=>
{
abi
::
Os
Bitrig
|
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
()
...
...
src/librustdoc/flock.rs
浏览文件 @
0b7c4f57
...
...
@@ -68,6 +68,7 @@ pub struct flock {
#[cfg(any(target_os
=
"dragonfly"
,
target_os
=
"bitrig"
,
target_os
=
"netbsd"
,
target_os
=
"openbsd"
))]
mod
os
{
use
libc
;
...
...
src/libstd/dynamic_lib.rs
浏览文件 @
0b7c4f57
...
...
@@ -160,6 +160,7 @@ fn test_loading_cosine() {
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 @@ fn test_errors_do_not_crash() {
target_os
=
"freebsd"
,
target_os
=
"dragonfly"
,
target_os
=
"bitrig"
,
target_os
=
"netbsd"
,
target_os
=
"openbsd"
))]
mod
dl
{
use
prelude
::
v1
::
*
;
...
...
src/libstd/env.rs
浏览文件 @
0b7c4f57
...
...
@@ -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"
;
...
...
src/libstd/net/tcp.rs
浏览文件 @
0b7c4f57
...
...
@@ -904,7 +904,7 @@ fn debug() {
// 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
();
...
...
src/libstd/net/udp.rs
浏览文件 @
0b7c4f57
...
...
@@ -360,9 +360,9 @@ fn debug() {
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
();
...
...
src/libstd/os/mod.rs
浏览文件 @
0b7c4f57
...
...
@@ -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
;
src/libstd/os/netbsd/mod.rs
0 → 100644
浏览文件 @
0b7c4f57
// 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
;
}
src/libstd/os/netbsd/raw.rs
0 → 100644
浏览文件 @
0b7c4f57
// 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
,
}
src/libstd/rt/args.rs
浏览文件 @
0b7c4f57
...
...
@@ -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
::
*
;
...
...
src/libstd/rt/libunwind.rs
浏览文件 @
0b7c4f57
...
...
@@ -106,7 +106,7 @@ pub enum _Unwind_Context {}
#[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
{}
...
...
src/libstd/rtdeps.rs
浏览文件 @
0b7c4f57
...
...
@@ -39,6 +39,7 @@
#[cfg(any(target_os
=
"dragonfly"
,
target_os
=
"bitrig"
,
target_os
=
"netbsd"
,
target_os
=
"openbsd"
))]
#[link(name
=
"pthread"
)]
extern
{}
...
...
src/libstd/sys/common/stack.rs
浏览文件 @
0b7c4f57
...
...
@@ -202,6 +202,7 @@ unsafe fn target_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 @@ unsafe fn target_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
{
...
...
src/libstd/sys/unix/backtrace.rs
浏览文件 @
0b7c4f57
...
...
@@ -363,6 +363,7 @@ unsafe fn init_state() -> *mut backtrace_state {
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
{
...
...
src/libstd/sys/unix/c.rs
浏览文件 @
0b7c4f57
...
...
@@ -34,6 +34,7 @@
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 @@
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 @@ pub struct sigaltstack {
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 @@ pub struct siginfo {
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 @@ pub struct siginfo {
}
#[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
,
...
...
src/libstd/sys/unix/mod.rs
浏览文件 @
0b7c4f57
...
...
@@ -26,6 +26,7 @@
#[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
;
...
...
src/libstd/sys/unix/os.rs
浏览文件 @
0b7c4f57
...
...
@@ -51,23 +51,13 @@ unsafe fn errno_location() -> *const c_int {
__
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
;
...
...
src/libstd/sys/unix/process.rs
浏览文件 @
0b7c4f57
...
...
@@ -423,6 +423,7 @@ pub fn WTERMSIG(status: i32) -> i32 { status & 0x7f }
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
}
...
...
src/libstd/sys/unix/stack_overflow.rs
浏览文件 @
0b7c4f57
...
...
@@ -35,6 +35,7 @@ fn drop(&mut self) {
#[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 @@ pub unsafe fn drop_handler(handler: &mut Handler) {
#[cfg(not(any(target_os
=
"linux"
,
target_os
=
"macos"
,
target_os
=
"bitrig"
,
target_os
=
"netbsd"
,
target_os
=
"openbsd"
)))]
mod
imp
{
use
libc
;
...
...
src/libstd/sys/unix/sync.rs
浏览文件 @
0b7c4f57
...
...
@@ -55,6 +55,7 @@ pub fn gettimeofday(tp: *mut libc::timeval,
#[cfg(any(target_os
=
"freebsd"
,
target_os
=
"dragonfly"
,
target_os
=
"bitrig"
,
target_os
=
"netbsd"
,
target_os
=
"openbsd"
))]
mod
os
{
use
libc
;
...
...
src/libstd/sys/unix/thread.rs
浏览文件 @
0b7c4f57
...
...
@@ -105,6 +105,7 @@ fn prctl(option: libc::c_int, arg2: libc::c_ulong,
#[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 @@ fn drop(&mut self) {
#[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 unsafe fn init() {}
#[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 unsafe fn current() -> usize {
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
{
...
...
src/libstd/sys/unix/thread_local.rs
浏览文件 @
0b7c4f57
...
...
@@ -46,6 +46,7 @@ pub unsafe fn destroy(key: Key) {
#[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 @@ pub unsafe fn destroy(key: Key) {
target_os
=
"freebsd"
,
target_os
=
"dragonfly"
,
target_os
=
"bitrig"
,
target_os
=
"netbsd"
,
target_os
=
"openbsd"
)))]
type
pthread_key_t
=
::
libc
::
c_uint
;
...
...
src/libstd/sys/unix/time.rs
浏览文件 @
0b7c4f57
...
...
@@ -80,6 +80,7 @@ pub struct SteadyTime {
// 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"
)]
...
...
src/libstd/thread/scoped_tls.rs
浏览文件 @
0b7c4f57
...
...
@@ -104,6 +104,7 @@ fn _getit() -> &'static ::std::thread::__ScopedKeyInner<$t> { &_KEY }
#[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 @@ pub fn is_set(&'static self) -> bool {
#[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 @@ pub unsafe fn get(&self) -> *mut T { self.inner.get() }
#[cfg(any(windows,
target_os
=
"android"
,
target_os
=
"ios"
,
target_os
=
"netbsd"
,
target_os
=
"openbsd"
,
target_arch
=
"aarch64"
,
no_elf_tls))]
...
...
src/libsyntax/abi.rs
浏览文件 @
0b7c4f57
...
...
@@ -25,6 +25,7 @@ pub enum Os {
OsiOS
,
OsDragonfly
,
OsBitrig
,
OsNetbsd
,
OsOpenbsd
,
}
...
...
@@ -138,6 +139,7 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
OsFreebsd
=>
"freebsd"
.fmt
(
f
),
OsDragonfly
=>
"dragonfly"
.fmt
(
f
),
OsBitrig
=>
"bitrig"
.fmt
(
f
),
OsNetbsd
=>
"netbsd"
.fmt
(
f
),
OsOpenbsd
=>
"openbsd"
.fmt
(
f
),
}
}
...
...
src/test/parse-fail/issue-5806.rs
浏览文件 @
0b7c4f57
...
...
@@ -11,6 +11,7 @@
// ignore-windows
// ignore-freebsd
// ignore-openbsd
// ignore-netbsd
// ignore-bitrig
// compile-flags: -Z parse-only
...
...
src/test/run-pass/intrinsic-alignment.rs
浏览文件 @
0b7c4f57
...
...
@@ -22,6 +22,7 @@ mod rusti {
target_os
=
"macos"
,
target_os
=
"freebsd"
,
target_os
=
"dragonfly"
,
target_os
=
"netbsd"
,
target_os
=
"openbsd"
))]
mod
m
{
#[main]
...
...
src/test/run-pass/rec-align-u64.rs
浏览文件 @
0b7c4f57
...
...
@@ -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"
)]
...
...
src/test/run-pass/tcp-stress.rs
浏览文件 @
0b7c4f57
...
...
@@ -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
};
...
...
src/test/run-pass/x86stdcall.rs
浏览文件 @
0b7c4f57
...
...
@@ -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
()
{
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录