Skip to content

Commit 1aa1785

Browse files
committed
On stable, probe-stack=call everywhere again, for now.
To buy time on issue 83139, revert effect of PR 77885: We will not conditionally enable probe-stack=inline-asm on LLVM 11+ anymore on any of our targets that opted into doing so on PR #77885 (and were subsequently configured to do so in a fine grained manner on PR #80838). After we resolve 83139 (potentially by backporting a fix to LLVM, or potentially by deciding that one cannot rely on the quality of our DWARF output in the manner described in issue 83139), we can change this back. (Update: fixed formatting issue.)
1 parent 9bb6d54 commit 1aa1785

31 files changed

+64
-31
lines changed

compiler/rustc_target/src/spec/i386_apple_ios.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub fn target() -> Target {
1212
arch: "x86".to_string(),
1313
options: TargetOptions {
1414
max_atomic_width: Some(64),
15-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
15+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
16+
stack_probes: StackProbeType::Call,
1617
..base
1718
},
1819
}

compiler/rustc_target/src/spec/i686_apple_darwin.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ pub fn target() -> Target {
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.insert(LinkerFlavor::Gcc, vec!["-m32".to_string()]);
88
base.link_env_remove.extend(super::apple_base::macos_link_env_remove());
9-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
9+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
10+
base.stack_probes = StackProbeType::Call;
1011
base.eliminate_frame_pointer = false;
1112

1213
// Clang automatically chooses a more specific target based on

compiler/rustc_target/src/spec/i686_linux_android.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ pub fn target() -> Target {
1111
// http://developer.android.com/ndk/guides/abis.html#x86
1212
base.cpu = "pentiumpro".to_string();
1313
base.features = "+mmx,+sse,+sse2,+sse3,+ssse3".to_string();
14-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
14+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
15+
base.stack_probes = StackProbeType::Call;
1516

1617
Target {
1718
llvm_target: "i686-linux-android".to_string(),

compiler/rustc_target/src/spec/i686_unknown_freebsd.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ pub fn target() -> Target {
77
let pre_link_args = base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap();
88
pre_link_args.push("-m32".to_string());
99
pre_link_args.push("-Wl,-znotext".to_string());
10-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
10+
11+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
12+
base.stack_probes = StackProbeType::Call;
1113

1214
Target {
1315
llvm_target: "i686-unknown-freebsd".to_string(),

compiler/rustc_target/src/spec/i686_unknown_haiku.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.insert(LinkerFlavor::Gcc, vec!["-m32".to_string()]);
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "i686-unknown-haiku".to_string(),

compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "i686-unknown-linux-gnu".to_string(),

compiler/rustc_target/src/spec/i686_unknown_linux_musl.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ pub fn target() -> Target {
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
88
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-Wl,-melf_i386".to_string());
9-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
9+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
10+
base.stack_probes = StackProbeType::Call;
1011

1112
// The unwinder used by i686-unknown-linux-musl, the LLVM libunwind
1213
// implementation, apparently relies on frame pointers existing... somehow.

compiler/rustc_target/src/spec/i686_unknown_netbsd.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "i686-unknown-netbsdelf".to_string(),

compiler/rustc_target/src/spec/i686_unknown_openbsd.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ pub fn target() -> Target {
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
88
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-fuse-ld=lld".to_string());
9-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
9+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
10+
base.stack_probes = StackProbeType::Call;
1011

1112
Target {
1213
llvm_target: "i686-unknown-openbsd".to_string(),

compiler/rustc_target/src/spec/i686_wrs_vxworks.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "i686-unknown-linux-gnu".to_string(),

compiler/rustc_target/src/spec/linux_kernel_base.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ pub fn opts() -> TargetOptions {
1313
env: "gnu".to_string(),
1414
disable_redzone: true,
1515
panic_strategy: PanicStrategy::Abort,
16-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
16+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
17+
stack_probes: StackProbeType::Call,
1718
eliminate_frame_pointer: false,
1819
linker_is_gnu: true,
1920
position_independent_executables: true,

compiler/rustc_target/src/spec/x86_64_apple_darwin.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ pub fn target() -> Target {
1010
vec!["-m64".to_string(), "-arch".to_string(), "x86_64".to_string()],
1111
);
1212
base.link_env_remove.extend(super::apple_base::macos_link_env_remove());
13-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
13+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
14+
base.stack_probes = StackProbeType::Call;
1415

1516
// Clang automatically chooses a more specific target based on
1617
// MACOSX_DEPLOYMENT_TARGET. To enable cross-language LTO to work

compiler/rustc_target/src/spec/x86_64_apple_ios.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ pub fn target() -> Target {
1111
arch: "x86_64".to_string(),
1212
options: TargetOptions {
1313
max_atomic_width: Some(64),
14-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
14+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
15+
stack_probes: StackProbeType::Call,
1516
..base
1617
},
1718
}

compiler/rustc_target/src/spec/x86_64_apple_ios_macabi.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ pub fn target() -> Target {
1111
arch: "x86_64".to_string(),
1212
options: TargetOptions {
1313
max_atomic_width: Some(64),
14-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
14+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
15+
stack_probes: StackProbeType::Call,
1516
..base
1617
},
1718
}

compiler/rustc_target/src/spec/x86_64_apple_tvos.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ pub fn target() -> Target {
1010
arch: "x86_64".to_string(),
1111
options: TargetOptions {
1212
max_atomic_width: Some(64),
13-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
13+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
14+
stack_probes: StackProbeType::Call,
1415
..base
1516
},
1617
}

compiler/rustc_target/src/spec/x86_64_fuchsia.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ pub fn target() -> Target {
44
let mut base = super::fuchsia_base::opts();
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
7-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
7+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
8+
base.stack_probes = StackProbeType::Call;
89

910
Target {
1011
llvm_target: "x86_64-fuchsia".to_string(),

compiler/rustc_target/src/spec/x86_64_linux_android.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ pub fn target() -> Target {
77
base.features = "+mmx,+sse,+sse2,+sse3,+ssse3,+sse4.1,+sse4.2,+popcnt".to_string();
88
base.max_atomic_width = Some(64);
99
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
10-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
10+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
11+
base.stack_probes = StackProbeType::Call;
1112

1213
Target {
1314
llvm_target: "x86_64-linux-android".to_string(),

compiler/rustc_target/src/spec/x86_64_rumprun_netbsd.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub fn target() -> Target {
1212
base.has_rpath = false;
1313
base.position_independent_executables = false;
1414
base.disable_redzone = true;
15-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
15+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
16+
base.stack_probes = StackProbeType::Call;
1617

1718
Target {
1819
llvm_target: "x86_64-rumprun-netbsd".to_string(),

compiler/rustc_target/src/spec/x86_64_sun_solaris.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.pre_link_args.insert(LinkerFlavor::Gcc, vec!["-m64".to_string()]);
66
base.cpu = "x86-64".to_string();
77
base.max_atomic_width = Some(64);
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-pc-solaris".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_dragonfly.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-dragonfly".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_freebsd.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-freebsd".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_haiku.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.insert(LinkerFlavor::Gcc, vec!["-m64".to_string()]);
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910
// This option is required to build executables on Haiku x86_64
1011
base.position_independent_executables = true;
1112

compiler/rustc_target/src/spec/x86_64_unknown_hermit.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.features = "+rdrnd,+rdseed".to_string();
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-hermit".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_hermit_kernel.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ pub fn target() -> Target {
77
base.features =
88
"-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-3dnow,-3dnowa,-avx,-avx2,+soft-float"
99
.to_string();
10-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
10+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
11+
base.stack_probes = StackProbeType::Call;
1112

1213
Target {
1314
llvm_target: "x86_64-unknown-hermit".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-linux-gnu".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_linux_gnux32.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-mx32".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910
base.has_elf_tls = false;
1011
// BUG(GabrielMajeri): disabling the PLT on x86_64 Linux with x32 ABI
1112
// breaks code gen. See LLVM bug 36743

compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
10+
911
base.static_position_independent_executables = true;
1012

1113
Target {

compiler/rustc_target/src/spec/x86_64_unknown_netbsd.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-netbsd".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_openbsd.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-openbsd".to_string(),

compiler/rustc_target/src/spec/x86_64_unknown_redox.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910

1011
Target {
1112
llvm_target: "x86_64-unknown-redox".to_string(),

compiler/rustc_target/src/spec/x86_64_wrs_vxworks.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ pub fn target() -> Target {
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
77
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
8+
// don't use probe-stack=inline-asm until rust-lang/rust#83139 is resolved.
9+
base.stack_probes = StackProbeType::Call;
910
base.disable_redzone = true;
1011

1112
Target {

0 commit comments

Comments
 (0)