Skip to content

Commit 07f3a98

Browse files
committed
Enable outline-atomics by default on aarch64 Windows, Apple, FreeBSD, Android
1 parent e61a650 commit 07f3a98

8 files changed

+8
-8
lines changed

compiler/rustc_target/src/spec/targets/aarch64_apple_ios.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ pub(crate) fn target() -> Target {
1616
.into(),
1717
arch,
1818
options: TargetOptions {
19-
features: "+neon,+fp-armv8,+apple-a7".into(),
19+
features: "+neon,+fp-armv8,+apple-a7,+outline-atomics".into(),
2020
max_atomic_width: Some(128),
2121
supported_sanitizers: SanitizerSet::ADDRESS | SanitizerSet::THREAD,
2222
..opts

compiler/rustc_target/src/spec/targets/aarch64_apple_tvos.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ pub(crate) fn target() -> Target {
1616
.into(),
1717
arch,
1818
options: TargetOptions {
19-
features: "+neon,+fp-armv8,+apple-a7".into(),
19+
features: "+neon,+fp-armv8,+apple-a7,+outline-atomics".into(),
2020
max_atomic_width: Some(128),
2121
..opts
2222
},

compiler/rustc_target/src/spec/targets/aarch64_apple_visionos.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ pub(crate) fn target() -> Target {
1616
.into(),
1717
arch,
1818
options: TargetOptions {
19-
features: "+neon,+fp-armv8,+apple-a16".into(),
19+
features: "+neon,+fp-armv8,+apple-a16,+outline-atomics".into(),
2020
max_atomic_width: Some(128),
2121
supported_sanitizers: SanitizerSet::ADDRESS | SanitizerSet::THREAD,
2222
..opts

compiler/rustc_target/src/spec/targets/aarch64_apple_watchos.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ pub(crate) fn target() -> Target {
1616
.into(),
1717
arch,
1818
options: TargetOptions {
19-
features: "+v8a,+neon,+fp-armv8,+apple-a7".into(),
19+
features: "+v8a,+neon,+fp-armv8,+apple-a7,+outline-atomics".into(),
2020
max_atomic_width: Some(128),
2121
dynamic_linking: false,
2222
position_independent_executables: true,

compiler/rustc_target/src/spec/targets/aarch64_linux_android.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pub(crate) fn target() -> Target {
2121
max_atomic_width: Some(128),
2222
// As documented in https://developer.android.com/ndk/guides/cpu-features.html
2323
// the neon (ASIMD) and FP must exist on all android aarch64 targets.
24-
features: "+v8a,+neon,+fp-armv8".into(),
24+
features: "+v8a,+neon,+fp-armv8,+outline-atomics".into(),
2525
// the AAPCS64 expects use of non-leaf frame pointers per
2626
// https://github.com/ARM-software/abi-aa/blob/4492d1570eb70c8fd146623e0db65b2d241f12e7/aapcs64/aapcs64.rst#the-frame-pointer
2727
// and we tend to encounter interesting bugs in AArch64 unwinding code if we do not

compiler/rustc_target/src/spec/targets/aarch64_pc_windows_gnullvm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::spec::{FramePointer, Target, TargetMetadata, base};
33
pub(crate) fn target() -> Target {
44
let mut base = base::windows_gnullvm::opts();
55
base.max_atomic_width = Some(128);
6-
base.features = "+v8a,+neon,+fp-armv8".into();
6+
base.features = "+v8a,+neon,+fp-armv8,+outline-atomics".into();
77
base.linker = Some("aarch64-w64-mingw32-clang".into());
88

99
// Microsoft recommends enabling frame pointers on Arm64 Windows.

compiler/rustc_target/src/spec/targets/aarch64_pc_windows_msvc.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::spec::{FramePointer, Target, TargetMetadata, base};
33
pub(crate) fn target() -> Target {
44
let mut base = base::windows_msvc::opts();
55
base.max_atomic_width = Some(128);
6-
base.features = "+v8a,+neon,+fp-armv8".into();
6+
base.features = "+v8a,+neon,+fp-armv8,+outline-atomics".into();
77

88
// Microsoft recommends enabling frame pointers on Arm64 Windows.
99
// From https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-170#integer-registers

compiler/rustc_target/src/spec/targets/aarch64_unknown_freebsd.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ pub(crate) fn target() -> Target {
1313
data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(),
1414
arch: "aarch64".into(),
1515
options: TargetOptions {
16-
features: "+v8a".into(),
16+
features: "+v8a,+outline-atomics".into(),
1717
max_atomic_width: Some(128),
1818
stack_probes: StackProbeType::Inline,
1919
supported_sanitizers: SanitizerSet::ADDRESS

0 commit comments

Comments
 (0)