Skip to content

Commit 505ed7f

Browse files
committed
Auto merge of #83593 - petrochenkov:nounwrap, r=nagisa
rustc_target: Avoid unwraps when adding linker flags These `unwrap`s assume that some linker flags were already added by `*_base::opts()` methods, but that's doesn't necessarily remain the case when we are reducing the number of flags hardcoded in targets, as #83587 shows. r? `@nagisa`
2 parents 5208f63 + 049a49b commit 505ed7f

36 files changed

+50
-50
lines changed

compiler/rustc_target/src/spec/android_base.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ pub fn opts() -> TargetOptions {
66
// Many of the symbols defined in compiler-rt are also defined in libgcc.
77
// Android's linker doesn't like that by default.
88
base.pre_link_args
9-
.get_mut(&LinkerFlavor::Gcc)
10-
.unwrap()
9+
.entry(LinkerFlavor::Gcc)
10+
.or_default()
1111
.push("-Wl,--allow-multiple-definition".to_string());
1212
base.dwarf_version = Some(2);
1313
base.position_independent_executables = true;

compiler/rustc_target/src/spec/armv7_linux_androideabi.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub fn target() -> Target {
1212
let mut base = super::android_base::opts();
1313
base.features = "+v7,+thumb-mode,+thumb2,+vfp3,-d32,-neon".to_string();
1414
base.max_atomic_width = Some(64);
15-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-march=armv7-a".to_string());
15+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-march=armv7-a".to_string());
1616

1717
Target {
1818
llvm_target: "armv7-none-linux-android".to_string(),

compiler/rustc_target/src/spec/i686_pc_windows_gnu.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ pub fn target() -> Target {
1212
// Mark all dynamic libraries and executables as compatible with the larger 4GiB address
1313
// space available to x86 Windows binaries on x86_64.
1414
base.pre_link_args
15-
.get_mut(&LinkerFlavor::Gcc)
16-
.unwrap()
15+
.entry(LinkerFlavor::Gcc)
16+
.or_default()
1717
.push("-Wl,--large-address-aware".to_string());
1818

1919
Target {

compiler/rustc_target/src/spec/i686_pc_windows_msvc.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ pub fn target() -> Target {
1414
// https://docs.microsoft.com/en-us/cpp/build/reference/safeseh-image-has-safe-exception-handlers
1515
"/SAFESEH".to_string(),
1616
];
17-
base.pre_link_args.get_mut(&LinkerFlavor::Msvc).unwrap().extend(pre_link_args_msvc.clone());
17+
base.pre_link_args.entry(LinkerFlavor::Msvc).or_default().extend(pre_link_args_msvc.clone());
1818
base.pre_link_args
19-
.get_mut(&LinkerFlavor::Lld(LldFlavor::Link))
20-
.unwrap()
19+
.entry(LinkerFlavor::Lld(LldFlavor::Link))
20+
.or_default()
2121
.extend(pre_link_args_msvc);
2222

2323
Target {

compiler/rustc_target/src/spec/i686_unknown_freebsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub fn target() -> Target {
44
let mut base = super::freebsd_base::opts();
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
7-
let pre_link_args = base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap();
7+
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());
1010
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };

compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub fn target() -> Target {
44
let mut base = super::linux_gnu_base::opts();
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m32".to_string());
88
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
99

1010
Target {

compiler/rustc_target/src/spec/i686_unknown_linux_musl.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ pub fn target() -> Target {
44
let mut base = super::linux_musl_base::opts();
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
8-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-Wl,-melf_i386".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m32".to_string());
8+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-Wl,-melf_i386".to_string());
99
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
1010

1111
// The unwinder used by i686-unknown-linux-musl, the LLVM libunwind

compiler/rustc_target/src/spec/i686_unknown_openbsd.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ pub fn target() -> Target {
44
let mut base = super::openbsd_base::opts();
55
base.cpu = "pentium4".to_string();
66
base.max_atomic_width = Some(64);
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
8-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-fuse-ld=lld".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m32".to_string());
8+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-fuse-ld=lld".to_string());
99
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
1010

1111
Target {

compiler/rustc_target/src/spec/i686_uwp_windows_gnu.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ pub fn target() -> Target {
1111
// Mark all dynamic libraries and executables as compatible with the larger 4GiB address
1212
// space available to x86 Windows binaries on x86_64.
1313
base.pre_link_args
14-
.get_mut(&LinkerFlavor::Gcc)
15-
.unwrap()
14+
.entry(LinkerFlavor::Gcc)
15+
.or_default()
1616
.push("-Wl,--large-address-aware".to_string());
1717

1818
Target {

compiler/rustc_target/src/spec/powerpc64_unknown_freebsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::spec::{LinkerFlavor, Target, TargetOptions};
44
pub fn target() -> Target {
55
let mut base = super::freebsd_base::opts();
66
base.cpu = "ppc64".to_string();
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
88
base.max_atomic_width = Some(64);
99

1010
Target {

compiler/rustc_target/src/spec/powerpc64_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::spec::{LinkerFlavor, RelroLevel, Target, TargetOptions};
44
pub fn target() -> Target {
55
let mut base = super::linux_gnu_base::opts();
66
base.cpu = "ppc64".to_string();
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
88
base.max_atomic_width = Some(64);
99

1010
// ld.so in at least RHEL6 on ppc64 has a bug related to BIND_NOW, so only enable partial RELRO

compiler/rustc_target/src/spec/powerpc64_unknown_linux_musl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::spec::{LinkerFlavor, Target, TargetOptions};
44
pub fn target() -> Target {
55
let mut base = super::linux_musl_base::opts();
66
base.cpu = "ppc64".to_string();
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
88
base.max_atomic_width = Some(64);
99

1010
Target {

compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::spec::{LinkerFlavor, Target, TargetOptions};
33
pub fn target() -> Target {
44
let mut base = super::linux_gnu_base::opts();
55
base.cpu = "ppc64le".to_string();
6-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
6+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
77
base.max_atomic_width = Some(64);
88

99
Target {

compiler/rustc_target/src/spec/powerpc64le_unknown_linux_musl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::spec::{LinkerFlavor, Target, TargetOptions};
33
pub fn target() -> Target {
44
let mut base = super::linux_musl_base::opts();
55
base.cpu = "ppc64le".to_string();
6-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
6+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
77
base.max_atomic_width = Some(64);
88

99
Target {

compiler/rustc_target/src/spec/powerpc_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::spec::{LinkerFlavor, Target, TargetOptions};
33

44
pub fn target() -> Target {
55
let mut base = super::linux_gnu_base::opts();
6-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
6+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m32".to_string());
77
base.max_atomic_width = Some(32);
88

99
Target {

compiler/rustc_target/src/spec/powerpc_unknown_linux_gnuspe.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::spec::{LinkerFlavor, Target, TargetOptions};
33

44
pub fn target() -> Target {
55
let mut base = super::linux_gnu_base::opts();
6-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-mspe".to_string());
6+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-mspe".to_string());
77
base.max_atomic_width = Some(32);
88

99
Target {

compiler/rustc_target/src/spec/powerpc_unknown_linux_musl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::spec::{LinkerFlavor, Target, TargetOptions};
33

44
pub fn target() -> Target {
55
let mut base = super::linux_musl_base::opts();
6-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m32".to_string());
6+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m32".to_string());
77
base.max_atomic_width = Some(32);
88

99
Target {

compiler/rustc_target/src/spec/sparc64_unknown_openbsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ pub fn target() -> Target {
55
let mut base = super::openbsd_base::opts();
66
base.endian = Endian::Big;
77
base.cpu = "v9".to_string();
8-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
8+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
99
base.max_atomic_width = Some(64);
1010

1111
Target {

compiler/rustc_target/src/spec/sparc_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ pub fn target() -> Target {
66
base.endian = Endian::Big;
77
base.cpu = "v9".to_string();
88
base.max_atomic_width = Some(64);
9-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-mv8plus".to_string());
9+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-mv8plus".to_string());
1010

1111
Target {
1212
llvm_target: "sparc-unknown-linux-gnu".to_string(),

compiler/rustc_target/src/spec/thumbv7a_pc_windows_msvc.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ pub fn target() -> Target {
1111
// where necessary, but this is not the observed behavior.
1212
// Disabling the LBR optimization works around the issue.
1313
let pre_link_args_msvc = "/OPT:NOLBR".to_string();
14-
base.pre_link_args.get_mut(&LinkerFlavor::Msvc).unwrap().push(pre_link_args_msvc.clone());
14+
base.pre_link_args.entry(LinkerFlavor::Msvc).or_default().push(pre_link_args_msvc.clone());
1515
base.pre_link_args
16-
.get_mut(&LinkerFlavor::Lld(LldFlavor::Link))
17-
.unwrap()
16+
.entry(LinkerFlavor::Lld(LldFlavor::Link))
17+
.or_default()
1818
.push(pre_link_args_msvc);
1919

2020
// FIXME(jordanrh): use PanicStrategy::Unwind when SEH is

compiler/rustc_target/src/spec/thumbv7neon_linux_androideabi.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub fn target() -> Target {
1212
let mut base = super::android_base::opts();
1313
base.features = "+v7,+thumb-mode,+thumb2,+vfp3,+neon".to_string();
1414
base.max_atomic_width = Some(64);
15-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-march=armv7-a".to_string());
15+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-march=armv7-a".to_string());
1616

1717
Target {
1818
llvm_target: "armv7-none-linux-android".to_string(),

compiler/rustc_target/src/spec/uefi_msvc_base.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ pub fn opts() -> TargetOptions {
3030
// exit (default for applications).
3131
"/subsystem:efi_application".to_string(),
3232
];
33-
base.pre_link_args.get_mut(&LinkerFlavor::Msvc).unwrap().extend(pre_link_args_msvc.clone());
33+
base.pre_link_args.entry(LinkerFlavor::Msvc).or_default().extend(pre_link_args_msvc.clone());
3434
base.pre_link_args
35-
.get_mut(&LinkerFlavor::Lld(LldFlavor::Link))
36-
.unwrap()
35+
.entry(LinkerFlavor::Lld(LldFlavor::Link))
36+
.or_default()
3737
.extend(pre_link_args_msvc);
3838

3939
TargetOptions {

compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use super::{LinkArgs, LinkerFlavor, PanicStrategy, Target, TargetOptions};
44
pub fn target() -> Target {
55
let mut options = wasm32_base::options();
66

7-
let clang_args = options.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap();
7+
let clang_args = options.pre_link_args.entry(LinkerFlavor::Gcc).or_default();
88

99
// Rust really needs a way for users to specify exports and imports in
1010
// the source code. --export-dynamic isn't the right tool for this job,

compiler/rustc_target/src/spec/wasm32_unknown_unknown.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pub fn target() -> Target {
1717
let mut options = wasm32_base::options();
1818
options.os = "unknown".to_string();
1919
options.linker_flavor = LinkerFlavor::Lld(LldFlavor::Wasm);
20-
let clang_args = options.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap();
20+
let clang_args = options.pre_link_args.entry(LinkerFlavor::Gcc).or_default();
2121

2222
// Make sure clang uses LLD as its linker and is configured appropriately
2323
// otherwise
@@ -35,7 +35,7 @@ pub fn target() -> Target {
3535
clang_args.push("-Wl,--export-dynamic".to_string());
3636

3737
// Add the flags to wasm-ld's args too.
38-
let lld_args = options.pre_link_args.get_mut(&LinkerFlavor::Lld(LldFlavor::Wasm)).unwrap();
38+
let lld_args = options.pre_link_args.entry(LinkerFlavor::Lld(LldFlavor::Wasm)).or_default();
3939
lld_args.push("--no-entry".to_string());
4040
lld_args.push("--export-dynamic".to_string());
4141

compiler/rustc_target/src/spec/windows_uwp_msvc_base.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ pub fn opts() -> TargetOptions {
55

66
opts.vendor = "uwp".to_string();
77
let pre_link_args_msvc = vec!["/APPCONTAINER".to_string(), "mincore.lib".to_string()];
8-
opts.pre_link_args.get_mut(&LinkerFlavor::Msvc).unwrap().extend(pre_link_args_msvc.clone());
8+
opts.pre_link_args.entry(LinkerFlavor::Msvc).or_default().extend(pre_link_args_msvc.clone());
99
opts.pre_link_args
10-
.get_mut(&LinkerFlavor::Lld(LldFlavor::Link))
11-
.unwrap()
10+
.entry(LinkerFlavor::Lld(LldFlavor::Link))
11+
.or_default()
1212
.extend(pre_link_args_msvc);
1313

1414
opts

compiler/rustc_target/src/spec/x86_64_linux_android.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ pub fn target() -> Target {
66
// https://developer.android.com/ndk/guides/abis.html#86-64
77
base.features = "+mmx,+sse,+sse2,+sse3,+ssse3,+sse4.1,+sse4.2,+popcnt".to_string();
88
base.max_atomic_width = Some(64);
9-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
9+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
1010
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
1111

1212
Target {

compiler/rustc_target/src/spec/x86_64_pc_windows_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::spec::{LinkerFlavor, LldFlavor, Target};
33
pub fn target() -> Target {
44
let mut base = super::windows_gnu_base::opts();
55
base.cpu = "x86-64".to_string();
6-
let gcc_pre_link_args = base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap();
6+
let gcc_pre_link_args = base.pre_link_args.entry(LinkerFlavor::Gcc).or_default();
77
gcc_pre_link_args.push("-m64".to_string());
88
// Use high-entropy 64 bit address space for ASLR
99
gcc_pre_link_args.push("-Wl,--high-entropy-va".to_string());

compiler/rustc_target/src/spec/x86_64_unknown_dragonfly.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub fn target() -> Target {
44
let mut base = super::dragonfly_base::opts();
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
88
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
99

1010
Target {

compiler/rustc_target/src/spec/x86_64_unknown_freebsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub fn target() -> Target {
44
let mut base = super::freebsd_base::opts();
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
88
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
99

1010
Target {

compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub fn target() -> Target {
44
let mut base = super::linux_gnu_base::opts();
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
88
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
99

1010
Target {

compiler/rustc_target/src/spec/x86_64_unknown_linux_gnux32.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub fn target() -> Target {
44
let mut base = super::linux_gnu_base::opts();
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-mx32".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-mx32".to_string());
88
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
99
base.has_elf_tls = false;
1010
// BUG(GabrielMajeri): disabling the PLT on x86_64 Linux with x32 ABI

compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub fn target() -> Target {
44
let mut base = super::linux_musl_base::opts();
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
88
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
99
base.static_position_independent_executables = true;
1010

compiler/rustc_target/src/spec/x86_64_unknown_none_linuxkernel.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub fn target() -> Target {
1111
"-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-3dnow,-3dnowa,-avx,-avx2,+soft-float"
1212
.to_string();
1313
base.code_model = Some(CodeModel::Kernel);
14-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
14+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
1515

1616
Target {
1717
// FIXME: Some dispute, the linux-on-clang folks think this should use

compiler/rustc_target/src/spec/x86_64_unknown_openbsd.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub fn target() -> Target {
44
let mut base = super::openbsd_base::opts();
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
88
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
99

1010
Target {

compiler/rustc_target/src/spec/x86_64_unknown_redox.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub fn target() -> Target {
44
let mut base = super::redox_base::opts();
55
base.cpu = "x86-64".to_string();
66
base.max_atomic_width = Some(64);
7-
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
7+
base.pre_link_args.entry(LinkerFlavor::Gcc).or_default().push("-m64".to_string());
88
base.stack_probes = StackProbeType::InlineOrCall { min_llvm_version_for_inline: (11, 0, 1) };
99

1010
Target {

compiler/rustc_target/src/spec/x86_64_uwp_windows_gnu.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::spec::{LinkerFlavor, LldFlavor, Target};
33
pub fn target() -> Target {
44
let mut base = super::windows_uwp_gnu_base::opts();
55
base.cpu = "x86-64".to_string();
6-
let gcc_pre_link_args = base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap();
6+
let gcc_pre_link_args = base.pre_link_args.entry(LinkerFlavor::Gcc).or_default();
77
gcc_pre_link_args.push("-m64".to_string());
88
// Use high-entropy 64 bit address space for ASLR
99
gcc_pre_link_args.push("-Wl,--high-entropy-va".to_string());

0 commit comments

Comments
 (0)