Skip to content

Commit 8d1083e

Browse files
committed
Change to probe-stack=call (instead of inline-or-call) everywhere again, for now.
We had already reverted the change on stable back in PR rust-lang#83412. Since then, we've had some movement on issue rust-lang#83139, but not a 100% fix. But also since then, we had bug reported, issue rust-lang#84667, that looks like outright codegen breakage, rather than problems confined to debuginfo issues. So we are reverting PR rust-lang#77885 on stable and beta. We'll reland PR rust-lang#77885 (or some variant) switching back to an LLVM-dependent selection of out-of-line call vs inline-asm, after these other issues have been resolved.
1 parent 814a560 commit 8d1083e

31 files changed

+62
-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#83139 and rust#84667 are 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#83139 and rust#84667 are 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#83139 and rust#84667 are 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

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ pub fn target() -> Target {
77
let pre_link_args = base.pre_link_args.entry(LinkerFlavor::Gcc).or_default();
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+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
11+
base.stack_probes = StackProbeType::Call;
1112

1213
Target {
1314
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#83139 and rust#84667 are 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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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.entry(LinkerFlavor::Gcc).or_default().push("-m32".to_string());
88
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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.entry(LinkerFlavor::Gcc).or_default().push("-m32".to_string());
88
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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
@@ -5,7 +5,8 @@ pub fn opts() -> TargetOptions {
55
env: "gnu".to_string(),
66
disable_redzone: true,
77
panic_strategy: PanicStrategy::Abort,
8-
stack_probes: StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) },
8+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
9+
stack_probes: StackProbeType::Call,
910
eliminate_frame_pointer: false,
1011
linker_is_gnu: true,
1112
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#83139 and rust#84667 are resolved
14+
base.stack_probes = StackProbeType::Call;
1415
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::THREAD;
1516

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

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#83139 and rust#84667 are 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#83139 and rust#84667 are 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#83139 and rust#84667 are 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#83139 and rust#84667 are resolved
8+
base.stack_probes = StackProbeType::Call;
89
base.supported_sanitizers = SanitizerSet::ADDRESS;
910

1011
Target {

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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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_pc_solaris.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ pub fn target() -> Target {
66
base.cpu = "x86-64".to_string();
77
base.vendor = "pc".to_string();
88
base.max_atomic_width = Some(64);
9-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
9+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
10+
base.stack_probes = StackProbeType::Call;
1011

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

compiler/rustc_target/src/spec/x86_64_sun_solaris.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ pub fn target() -> Target {
66
base.cpu = "x86-64".to_string();
77
base.vendor = "sun".to_string();
88
base.max_atomic_width = Some(64);
9-
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
9+
// don't use probe-stack=inline-asm until rust#83139 and rust#84667 are resolved
10+
base.stack_probes = StackProbeType::Call;
1011

1112
Target {
1213
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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910
base.supported_sanitizers = SanitizerSet::ADDRESS | SanitizerSet::MEMORY | SanitizerSet::THREAD;
1011

1112
Target {

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#83139 and rust#84667 are 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#83139 and rust#84667 are 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_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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910
base.supported_sanitizers =
1011
SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::MEMORY | SanitizerSet::THREAD;
1112

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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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

+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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910
base.static_position_independent_executables = true;
1011
base.supported_sanitizers =
1112
SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::MEMORY | SanitizerSet::THREAD;

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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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_none_hermitkernel.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#83139 and rust#84667 are resolved
11+
base.stack_probes = StackProbeType::Call;
1112

1213
Target {
1314
llvm_target: "x86_64-unknown-none-elf".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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are 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.entry(LinkerFlavor::Gcc).or_default().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#83139 and rust#84667 are resolved
9+
base.stack_probes = StackProbeType::Call;
910
base.disable_redzone = true;
1011

1112
Target {

0 commit comments

Comments
 (0)