Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
04835ea5
R
Rust
项目概览
int
/
Rust
11 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
提交
04835ea5
编写于
4月 15, 2016
作者:
A
Amanieu d'Antras
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add #[cfg(target_has_atomic)] to get atomic support for the current target
上级
50909f2d
变更
45
隐藏空白更改
内联
并排
Showing
45 changed file
with
90 addition
and
10 deletion
+90
-10
src/doc/reference.md
src/doc/reference.md
+5
-0
src/libcore/lib.rs
src/libcore/lib.rs
+1
-0
src/librustc/session/config.rs
src/librustc/session/config.rs
+10
-0
src/librustc_back/target/aarch64_apple_ios.rs
src/librustc_back/target/aarch64_apple_ios.rs
+1
-0
src/librustc_back/target/aarch64_linux_android.rs
src/librustc_back/target/aarch64_linux_android.rs
+3
-1
src/librustc_back/target/aarch64_unknown_linux_gnu.rs
src/librustc_back/target/aarch64_unknown_linux_gnu.rs
+2
-1
src/librustc_back/target/arm_linux_androideabi.rs
src/librustc_back/target/arm_linux_androideabi.rs
+1
-0
src/librustc_back/target/arm_unknown_linux_gnueabi.rs
src/librustc_back/target/arm_unknown_linux_gnueabi.rs
+2
-1
src/librustc_back/target/arm_unknown_linux_gnueabihf.rs
src/librustc_back/target/arm_unknown_linux_gnueabihf.rs
+2
-1
src/librustc_back/target/armv7_apple_ios.rs
src/librustc_back/target/armv7_apple_ios.rs
+1
-0
src/librustc_back/target/armv7_unknown_linux_gnueabihf.rs
src/librustc_back/target/armv7_unknown_linux_gnueabihf.rs
+1
-0
src/librustc_back/target/armv7s_apple_ios.rs
src/librustc_back/target/armv7s_apple_ios.rs
+1
-0
src/librustc_back/target/asmjs_unknown_emscripten.rs
src/librustc_back/target/asmjs_unknown_emscripten.rs
+1
-0
src/librustc_back/target/i386_apple_ios.rs
src/librustc_back/target/i386_apple_ios.rs
+5
-2
src/librustc_back/target/i686_apple_darwin.rs
src/librustc_back/target/i686_apple_darwin.rs
+1
-0
src/librustc_back/target/i686_linux_android.rs
src/librustc_back/target/i686_linux_android.rs
+1
-0
src/librustc_back/target/i686_pc_windows_gnu.rs
src/librustc_back/target/i686_pc_windows_gnu.rs
+1
-0
src/librustc_back/target/i686_pc_windows_msvc.rs
src/librustc_back/target/i686_pc_windows_msvc.rs
+1
-0
src/librustc_back/target/i686_unknown_dragonfly.rs
src/librustc_back/target/i686_unknown_dragonfly.rs
+1
-0
src/librustc_back/target/i686_unknown_freebsd.rs
src/librustc_back/target/i686_unknown_freebsd.rs
+1
-0
src/librustc_back/target/i686_unknown_linux_gnu.rs
src/librustc_back/target/i686_unknown_linux_gnu.rs
+1
-0
src/librustc_back/target/i686_unknown_linux_musl.rs
src/librustc_back/target/i686_unknown_linux_musl.rs
+1
-0
src/librustc_back/target/le32_unknown_nacl.rs
src/librustc_back/target/le32_unknown_nacl.rs
+1
-0
src/librustc_back/target/mips_unknown_linux_gnu.rs
src/librustc_back/target/mips_unknown_linux_gnu.rs
+1
-0
src/librustc_back/target/mips_unknown_linux_musl.rs
src/librustc_back/target/mips_unknown_linux_musl.rs
+1
-0
src/librustc_back/target/mipsel_unknown_linux_gnu.rs
src/librustc_back/target/mipsel_unknown_linux_gnu.rs
+1
-0
src/librustc_back/target/mipsel_unknown_linux_musl.rs
src/librustc_back/target/mipsel_unknown_linux_musl.rs
+1
-0
src/librustc_back/target/mod.rs
src/librustc_back/target/mod.rs
+15
-0
src/librustc_back/target/powerpc64_unknown_linux_gnu.rs
src/librustc_back/target/powerpc64_unknown_linux_gnu.rs
+1
-0
src/librustc_back/target/powerpc64le_unknown_linux_gnu.rs
src/librustc_back/target/powerpc64le_unknown_linux_gnu.rs
+1
-0
src/librustc_back/target/powerpc_unknown_linux_gnu.rs
src/librustc_back/target/powerpc_unknown_linux_gnu.rs
+1
-0
src/librustc_back/target/x86_64_apple_darwin.rs
src/librustc_back/target/x86_64_apple_darwin.rs
+1
-0
src/librustc_back/target/x86_64_apple_ios.rs
src/librustc_back/target/x86_64_apple_ios.rs
+5
-2
src/librustc_back/target/x86_64_pc_windows_gnu.rs
src/librustc_back/target/x86_64_pc_windows_gnu.rs
+1
-0
src/librustc_back/target/x86_64_pc_windows_msvc.rs
src/librustc_back/target/x86_64_pc_windows_msvc.rs
+1
-0
src/librustc_back/target/x86_64_rumprun_netbsd.rs
src/librustc_back/target/x86_64_rumprun_netbsd.rs
+1
-0
src/librustc_back/target/x86_64_sun_solaris.rs
src/librustc_back/target/x86_64_sun_solaris.rs
+1
-0
src/librustc_back/target/x86_64_unknown_bitrig.rs
src/librustc_back/target/x86_64_unknown_bitrig.rs
+1
-0
src/librustc_back/target/x86_64_unknown_dragonfly.rs
src/librustc_back/target/x86_64_unknown_dragonfly.rs
+1
-0
src/librustc_back/target/x86_64_unknown_freebsd.rs
src/librustc_back/target/x86_64_unknown_freebsd.rs
+1
-0
src/librustc_back/target/x86_64_unknown_linux_gnu.rs
src/librustc_back/target/x86_64_unknown_linux_gnu.rs
+1
-0
src/librustc_back/target/x86_64_unknown_linux_musl.rs
src/librustc_back/target/x86_64_unknown_linux_musl.rs
+1
-0
src/librustc_back/target/x86_64_unknown_netbsd.rs
src/librustc_back/target/x86_64_unknown_netbsd.rs
+1
-0
src/librustc_back/target/x86_64_unknown_openbsd.rs
src/librustc_back/target/x86_64_unknown_openbsd.rs
+1
-0
src/libsyntax/feature_gate.rs
src/libsyntax/feature_gate.rs
+6
-2
未找到文件。
src/doc/reference.md
浏览文件 @
04835ea5
...
...
@@ -2091,6 +2091,8 @@ The following configurations must be defined by the implementation:
* `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.
* `target_has_atomic = "..."` - Set of integer sizes on which the target can perform
atomic operations. Values are `"8"`, `"16"`, `"32"`, `"64"` and `"ptr"`.
* `target_vendor = "..."` - Vendor of the target, for example `apple`, `pc`, or
simply `"unknown"`.
* `test` - Enabled when compiling the test harness (using the `--test` flag).
...
...
@@ -2295,6 +2297,9 @@ The currently implemented features of the reference compiler are:
* `cfg_target_vendor` - Allows conditional compilation using the `target_vendor`
matcher which is subject to change.
* `cfg_target_has_atomic` - Allows conditional compilation using the `target_has_atomic`
matcher which is subject to change.
* `concat_idents` - Allows use of the `concat_idents` macro, which is in many
ways insufficient for concatenating identifiers, and may be
removed entirely for something more wholesome.
...
...
src/libcore/lib.rs
浏览文件 @
04835ea5
...
...
@@ -63,6 +63,7 @@
#![feature(associated_type_defaults)]
#![feature(concat_idents)]
#![feature(const_fn)]
#![feature(cfg_target_has_atomic)]
#![feature(custom_attribute)]
#![feature(fundamental)]
#![feature(inclusive_range_syntax)]
...
...
src/librustc/session/config.rs
浏览文件 @
04835ea5
...
...
@@ -695,6 +695,7 @@ pub fn default_configuration(sess: &Session) -> ast::CrateConfig {
let
os
=
&
sess
.target.target.target_os
;
let
env
=
&
sess
.target.target.target_env
;
let
vendor
=
&
sess
.target.target.target_vendor
;
let
max_atomic_width
=
sess
.target.target.options.max_atomic_width
;
let
fam
=
if
let
Some
(
ref
fam
)
=
sess
.target.target.options.target_family
{
intern
(
fam
)
...
...
@@ -721,6 +722,15 @@ pub fn default_configuration(sess: &Session) -> ast::CrateConfig {
if
sess
.target.target.options.has_elf_tls
{
ret
.push
(
attr
::
mk_word_item
(
InternedString
::
new
(
"target_thread_local"
)));
}
for
&
i
in
&
[
8
,
16
,
32
,
64
,
128
]
{
if
i
<=
max_atomic_width
{
let
s
=
i
.to_string
();
ret
.push
(
mk
(
InternedString
::
new
(
"target_has_atomic"
),
intern
(
&
s
)));
if
&
s
==
wordsz
{
ret
.push
(
mk
(
InternedString
::
new
(
"target_has_atomic"
),
intern
(
"ptr"
)));
}
}
}
if
sess
.opts.debug_assertions
{
ret
.push
(
attr
::
mk_word_item
(
InternedString
::
new
(
"debug_assertions"
)));
}
...
...
src/librustc_back/target/aarch64_apple_ios.rs
浏览文件 @
04835ea5
...
...
@@ -24,6 +24,7 @@ pub fn target() -> Target {
options
:
TargetOptions
{
features
:
"+neon,+fp-armv8,+cyclone"
.to_string
(),
eliminate_frame_pointer
:
false
,
max_atomic_width
:
128
,
..
opts
(
Arch
::
Arm64
)
},
}
...
...
src/librustc_back/target/aarch64_linux_android.rs
浏览文件 @
04835ea5
...
...
@@ -11,6 +11,8 @@
use
target
::
Target
;
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
android_base
::
opts
();
base
.max_atomic_width
=
128
;
Target
{
llvm_target
:
"aarch64-linux-android"
.to_string
(),
target_endian
:
"little"
.to_string
(),
...
...
@@ -20,6 +22,6 @@ pub fn target() -> Target {
target_os
:
"android"
.to_string
(),
target_env
:
""
.to_string
(),
target_vendor
:
"unknown"
.to_string
(),
options
:
super
::
android_base
::
opts
()
,
options
:
base
,
}
}
src/librustc_back/target/aarch64_unknown_linux_gnu.rs
浏览文件 @
04835ea5
...
...
@@ -11,7 +11,8 @@
use
target
::
Target
;
pub
fn
target
()
->
Target
{
let
base
=
super
::
linux_base
::
opts
();
let
mut
base
=
super
::
linux_base
::
opts
();
base
.max_atomic_width
=
128
;
Target
{
llvm_target
:
"aarch64-unknown-linux-gnu"
.to_string
(),
target_endian
:
"little"
.to_string
(),
...
...
src/librustc_back/target/arm_linux_androideabi.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
android_base
::
opts
();
base
.features
=
"+v7,+vfp3,+d16"
.to_string
();
base
.max_atomic_width
=
64
;
Target
{
llvm_target
:
"arm-linux-androideabi"
.to_string
(),
...
...
src/librustc_back/target/arm_unknown_linux_gnueabi.rs
浏览文件 @
04835ea5
...
...
@@ -11,7 +11,8 @@
use
target
::{
Target
,
TargetOptions
};
pub
fn
target
()
->
Target
{
let
base
=
super
::
linux_base
::
opts
();
let
mut
base
=
super
::
linux_base
::
opts
();
base
.max_atomic_width
=
64
;
Target
{
llvm_target
:
"arm-unknown-linux-gnueabi"
.to_string
(),
target_endian
:
"little"
.to_string
(),
...
...
src/librustc_back/target/arm_unknown_linux_gnueabihf.rs
浏览文件 @
04835ea5
...
...
@@ -11,7 +11,8 @@
use
target
::{
Target
,
TargetOptions
};
pub
fn
target
()
->
Target
{
let
base
=
super
::
linux_base
::
opts
();
let
mut
base
=
super
::
linux_base
::
opts
();
base
.max_atomic_width
=
64
;
Target
{
llvm_target
:
"arm-unknown-linux-gnueabihf"
.to_string
(),
target_endian
:
"little"
.to_string
(),
...
...
src/librustc_back/target/armv7_apple_ios.rs
浏览文件 @
04835ea5
...
...
@@ -23,6 +23,7 @@ pub fn target() -> Target {
target_vendor
:
"apple"
.to_string
(),
options
:
TargetOptions
{
features
:
"+v7,+vfp3,+neon"
.to_string
(),
max_atomic_width
:
64
,
..
opts
(
Arch
::
Armv7
)
}
}
...
...
src/librustc_back/target/armv7_unknown_linux_gnueabihf.rs
浏览文件 @
04835ea5
...
...
@@ -25,6 +25,7 @@ pub fn target() -> Target {
options
:
TargetOptions
{
features
:
"+v7,+vfp3,+neon"
.to_string
(),
cpu
:
"cortex-a8"
.to_string
(),
max_atomic_width
:
64
,
..
base
}
}
...
...
src/librustc_back/target/armv7s_apple_ios.rs
浏览文件 @
04835ea5
...
...
@@ -23,6 +23,7 @@ pub fn target() -> Target {
target_vendor
:
"apple"
.to_string
(),
options
:
TargetOptions
{
features
:
"+v7,+vfp4,+neon"
.to_string
(),
max_atomic_width
:
64
,
..
opts
(
Arch
::
Armv7s
)
}
}
...
...
src/librustc_back/target/asmjs_unknown_emscripten.rs
浏览文件 @
04835ea5
...
...
@@ -22,6 +22,7 @@ pub fn target() -> Target {
linker_is_gnu
:
true
,
allow_asm
:
false
,
obj_is_bitcode
:
true
,
max_atomic_width
:
32
,
..
Default
::
default
()
};
Target
{
...
...
src/librustc_back/target/i386_apple_ios.rs
浏览文件 @
04835ea5
...
...
@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use
target
::
Target
;
use
target
::
{
Target
,
TargetOptions
}
;
use
super
::
apple_ios_base
::{
opts
,
Arch
};
pub
fn
target
()
->
Target
{
...
...
@@ -21,6 +21,9 @@ pub fn target() -> Target {
target_os
:
"ios"
.to_string
(),
target_env
:
""
.to_string
(),
target_vendor
:
"apple"
.to_string
(),
options
:
opts
(
Arch
::
I386
)
options
:
TargetOptions
{
max_atomic_width
:
64
,
..
opts
(
Arch
::
I386
)
}
}
}
src/librustc_back/target/i686_apple_darwin.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
apple_base
::
opts
();
base
.cpu
=
"yonah"
.to_string
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m32"
.to_string
());
Target
{
...
...
src/librustc_back/target/i686_linux_android.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
android_base
::
opts
();
base
.cpu
=
"pentium4"
.to_string
();
base
.max_atomic_width
=
64
;
Target
{
llvm_target
:
"i686-linux-android"
.to_string
(),
...
...
src/librustc_back/target/i686_pc_windows_gnu.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
windows_base
::
opts
();
base
.cpu
=
"pentium4"
.to_string
();
base
.max_atomic_width
=
64
;
// Mark all dynamic libraries and executables as compatible with the larger 4GiB address
// space available to x86 Windows binaries on x86_64.
...
...
src/librustc_back/target/i686_pc_windows_msvc.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
windows_msvc_base
::
opts
();
base
.cpu
=
"pentium4"
.to_string
();
base
.max_atomic_width
=
64
;
// Mark all dynamic libraries and executables as compatible with the larger 4GiB address
// space available to x86 Windows binaries on x86_64.
...
...
src/librustc_back/target/i686_unknown_dragonfly.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
dragonfly_base
::
opts
();
base
.cpu
=
"pentium4"
.to_string
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m32"
.to_string
());
Target
{
...
...
src/librustc_back/target/i686_unknown_freebsd.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
freebsd_base
::
opts
();
base
.cpu
=
"pentium4"
.to_string
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m32"
.to_string
());
Target
{
...
...
src/librustc_back/target/i686_unknown_linux_gnu.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
linux_base
::
opts
();
base
.cpu
=
"pentium4"
.to_string
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m32"
.to_string
());
Target
{
...
...
src/librustc_back/target/i686_unknown_linux_musl.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
linux_musl_base
::
opts
();
base
.cpu
=
"pentium4"
.to_string
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m32"
.to_string
());
base
.pre_link_args
.push
(
"-Wl,-melf_i386"
.to_string
());
...
...
src/librustc_back/target/le32_unknown_nacl.rs
浏览文件 @
04835ea5
...
...
@@ -25,6 +25,7 @@ pub fn target() -> Target {
no_compiler_rt
:
false
,
linker_is_gnu
:
true
,
allow_asm
:
false
,
max_atomic_width
:
32
,
..
Default
::
default
()
};
Target
{
...
...
src/librustc_back/target/mips_unknown_linux_gnu.rs
浏览文件 @
04835ea5
...
...
@@ -23,6 +23,7 @@ pub fn target() -> Target {
options
:
TargetOptions
{
cpu
:
"mips32r2"
.to_string
(),
features
:
"+mips32r2,+soft-float"
.to_string
(),
max_atomic_width
:
32
,
..
super
::
linux_base
::
opts
()
},
}
...
...
src/librustc_back/target/mips_unknown_linux_musl.rs
浏览文件 @
04835ea5
...
...
@@ -23,6 +23,7 @@ pub fn target() -> Target {
options
:
TargetOptions
{
cpu
:
"mips32r2"
.to_string
(),
features
:
"+mips32r2,+soft-float"
.to_string
(),
max_atomic_width
:
32
,
..
super
::
linux_base
::
opts
()
}
}
...
...
src/librustc_back/target/mipsel_unknown_linux_gnu.rs
浏览文件 @
04835ea5
...
...
@@ -24,6 +24,7 @@ pub fn target() -> Target {
options
:
TargetOptions
{
cpu
:
"mips32"
.to_string
(),
features
:
"+mips32"
.to_string
(),
max_atomic_width
:
32
,
..
super
::
linux_base
::
opts
()
},
}
...
...
src/librustc_back/target/mipsel_unknown_linux_musl.rs
浏览文件 @
04835ea5
...
...
@@ -23,6 +23,7 @@ pub fn target() -> Target {
options
:
TargetOptions
{
cpu
:
"mips32"
.to_string
(),
features
:
"+mips32"
.to_string
(),
max_atomic_width
:
32
,
..
super
::
linux_base
::
opts
()
}
}
...
...
src/librustc_back/target/mod.rs
浏览文件 @
04835ea5
...
...
@@ -292,6 +292,10 @@ pub struct TargetOptions {
// If we give emcc .o files that are actually .bc files it
// will 'just work'.
pub
obj_is_bitcode
:
bool
,
/// Maximum integer size in bits that this target can perform atomic
/// operations on.
pub
max_atomic_width
:
u64
,
}
impl
Default
for
TargetOptions
{
...
...
@@ -340,6 +344,7 @@ fn default() -> TargetOptions {
allow_asm
:
true
,
has_elf_tls
:
false
,
obj_is_bitcode
:
false
,
max_atomic_width
:
0
,
}
}
}
...
...
@@ -392,6 +397,9 @@ pub fn from_json(obj: Json) -> Target {
options
:
Default
::
default
(),
};
// Default max-atomic-width to target-pointer-width
base
.options.max_atomic_width
=
base
.target_pointer_width
.parse
()
.unwrap
();
macro_rules!
key
{
(
$key_name:ident
)
=>
(
{
let
name
=
(
stringify!
(
$key_name
))
.replace
(
"_"
,
"-"
);
...
...
@@ -404,6 +412,12 @@ pub fn from_json(obj: Json) -> Target {
.map
(|
o
|
o
.as_boolean
()
.map
(|
s
|
base
.options
.
$key_name
=
s
));
}
);
(
$key_name:ident
,
u64
)
=>
(
{
let
name
=
(
stringify!
(
$key_name
))
.replace
(
"_"
,
"-"
);
obj
.find
(
&
name
[
..
])
.map
(|
o
|
o
.as_u64
()
.map
(|
s
|
base
.options
.
$key_name
=
s
));
}
);
(
$key_name:ident
,
list
)
=>
(
{
let
name
=
(
stringify!
(
$key_name
))
.replace
(
"_"
,
"-"
);
obj
.find
(
&
name
[
..
])
.map
(|
o
|
o
.as_array
()
...
...
@@ -451,6 +465,7 @@ pub fn from_json(obj: Json) -> Target {
key!
(
archive_format
);
key!
(
allow_asm
,
bool
);
key!
(
custom_unwind_resume
,
bool
);
key!
(
max_atomic_width
,
u64
);
base
}
...
...
src/librustc_back/target/powerpc64_unknown_linux_gnu.rs
浏览文件 @
04835ea5
...
...
@@ -14,6 +14,7 @@ pub fn target() -> Target {
let
mut
base
=
super
::
linux_base
::
opts
();
base
.cpu
=
"ppc64"
.to_string
();
base
.pre_link_args
.push
(
"-m64"
.to_string
());
base
.max_atomic_width
=
64
;
Target
{
llvm_target
:
"powerpc64-unknown-linux-gnu"
.to_string
(),
...
...
src/librustc_back/target/powerpc64le_unknown_linux_gnu.rs
浏览文件 @
04835ea5
...
...
@@ -14,6 +14,7 @@ pub fn target() -> Target {
let
mut
base
=
super
::
linux_base
::
opts
();
base
.cpu
=
"ppc64le"
.to_string
();
base
.pre_link_args
.push
(
"-m64"
.to_string
());
base
.max_atomic_width
=
64
;
Target
{
llvm_target
:
"powerpc64le-unknown-linux-gnu"
.to_string
(),
...
...
src/librustc_back/target/powerpc_unknown_linux_gnu.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
linux_base
::
opts
();
base
.pre_link_args
.push
(
"-m32"
.to_string
());
base
.max_atomic_width
=
32
;
Target
{
llvm_target
:
"powerpc-unknown-linux-gnu"
.to_string
(),
...
...
src/librustc_back/target/x86_64_apple_darwin.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
apple_base
::
opts
();
base
.cpu
=
"core2"
.to_string
();
base
.max_atomic_width
=
128
;
// core2 support cmpxchg16b
base
.eliminate_frame_pointer
=
false
;
base
.pre_link_args
.push
(
"-m64"
.to_string
());
...
...
src/librustc_back/target/x86_64_apple_ios.rs
浏览文件 @
04835ea5
...
...
@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use
target
::
Target
;
use
target
::
{
Target
,
TargetOptions
}
;
use
super
::
apple_ios_base
::{
opts
,
Arch
};
pub
fn
target
()
->
Target
{
...
...
@@ -21,6 +21,9 @@ pub fn target() -> Target {
target_os
:
"ios"
.to_string
(),
target_env
:
""
.to_string
(),
target_vendor
:
"apple"
.to_string
(),
options
:
opts
(
Arch
::
X86_64
)
options
:
TargetOptions
{
max_atomic_width
:
64
,
..
opts
(
Arch
::
X86_64
)
}
}
}
src/librustc_back/target/x86_64_pc_windows_gnu.rs
浏览文件 @
04835ea5
...
...
@@ -14,6 +14,7 @@ pub fn target() -> Target {
let
mut
base
=
super
::
windows_base
::
opts
();
base
.cpu
=
"x86-64"
.to_string
();
base
.pre_link_args
.push
(
"-m64"
.to_string
());
base
.max_atomic_width
=
64
;
Target
{
llvm_target
:
"x86_64-pc-windows-gnu"
.to_string
(),
...
...
src/librustc_back/target/x86_64_pc_windows_msvc.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
windows_msvc_base
::
opts
();
base
.cpu
=
"x86-64"
.to_string
();
base
.max_atomic_width
=
64
;
Target
{
llvm_target
:
"x86_64-pc-windows-msvc"
.to_string
(),
...
...
src/librustc_back/target/x86_64_rumprun_netbsd.rs
浏览文件 @
04835ea5
...
...
@@ -15,6 +15,7 @@ pub fn target() -> Target {
base
.pre_link_args
.push
(
"-m64"
.to_string
());
base
.linker
=
"x86_64-rumprun-netbsd-gcc"
.to_string
();
base
.ar
=
"x86_64-rumprun-netbsd-ar"
.to_string
();
base
.max_atomic_width
=
64
;
base
.dynamic_linking
=
false
;
base
.has_rpath
=
false
;
...
...
src/librustc_back/target/x86_64_sun_solaris.rs
浏览文件 @
04835ea5
...
...
@@ -14,6 +14,7 @@ pub fn target() -> Target {
let
mut
base
=
super
::
solaris_base
::
opts
();
base
.pre_link_args
.push
(
"-m64"
.to_string
());
base
.cpu
=
"x86-64"
.to_string
();
base
.max_atomic_width
=
64
;
Target
{
llvm_target
:
"x86_64-pc-solaris"
.to_string
(),
...
...
src/librustc_back/target/x86_64_unknown_bitrig.rs
浏览文件 @
04835ea5
...
...
@@ -12,6 +12,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
bitrig_base
::
opts
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m64"
.to_string
());
Target
{
...
...
src/librustc_back/target/x86_64_unknown_dragonfly.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
dragonfly_base
::
opts
();
base
.cpu
=
"x86-64"
.to_string
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m64"
.to_string
());
Target
{
...
...
src/librustc_back/target/x86_64_unknown_freebsd.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
freebsd_base
::
opts
();
base
.cpu
=
"x86-64"
.to_string
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m64"
.to_string
());
Target
{
...
...
src/librustc_back/target/x86_64_unknown_linux_gnu.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
linux_base
::
opts
();
base
.cpu
=
"x86-64"
.to_string
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m64"
.to_string
());
Target
{
...
...
src/librustc_back/target/x86_64_unknown_linux_musl.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
linux_musl_base
::
opts
();
base
.cpu
=
"x86-64"
.to_string
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m64"
.to_string
());
Target
{
...
...
src/librustc_back/target/x86_64_unknown_netbsd.rs
浏览文件 @
04835ea5
...
...
@@ -12,6 +12,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
netbsd_base
::
opts
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m64"
.to_string
());
Target
{
...
...
src/librustc_back/target/x86_64_unknown_openbsd.rs
浏览文件 @
04835ea5
...
...
@@ -13,6 +13,7 @@
pub
fn
target
()
->
Target
{
let
mut
base
=
super
::
openbsd_base
::
opts
();
base
.cpu
=
"x86-64"
.to_string
();
base
.max_atomic_width
=
64
;
base
.pre_link_args
.push
(
"-m64"
.to_string
());
Target
{
...
...
src/libsyntax/feature_gate.rs
浏览文件 @
04835ea5
...
...
@@ -268,8 +268,11 @@ pub fn new() -> Features {
// pub(restricted) visibilities (RFC 1422)
(
active
,
pub_restricted
,
"1.9.0"
,
Some
(
32409
)),
// Allow Drop types in statics/const functions (RFC 1440)
(
active
,
drop_types_in_const
,
"1.9.0"
,
Some
(
33156
))
// Allow Drop types in statics/const functions (RFC 1440)
(
active
,
drop_types_in_const
,
"1.9.0"
,
Some
(
33156
)),
// Allows cfg(target_has_atomic = "...").
(
active
,
cfg_target_has_atomic
,
"1.9.0"
,
Some
(
32976
))
);
declare_features!
(
...
...
@@ -577,6 +580,7 @@ fn f(features: &Features) -> bool {
(
"target_feature"
,
"cfg_target_feature"
,
cfg_fn!
(
cfg_target_feature
)),
(
"target_vendor"
,
"cfg_target_vendor"
,
cfg_fn!
(
cfg_target_vendor
)),
(
"target_thread_local"
,
"cfg_target_thread_local"
,
cfg_fn!
(
cfg_target_thread_local
)),
(
"target_has_atomic"
,
"cfg_target_has_atomic"
,
cfg_fn!
(
cfg_target_has_atomic
)),
];
#[derive(Debug,
Eq,
PartialEq)]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录