1
Fork 0

rustc_target: Move linker_flavor from Target to TargetOptions

This commit is contained in:
Vadim Petrochenkov 2020-10-08 22:22:28 +03:00
parent b294cc71a2
commit d41fe05d1a
159 changed files with 120 additions and 244 deletions

View file

@ -19,7 +19,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".to_string(),
arch: arch.to_string(), arch: arch.to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { target_mcount: "\u{1}mcount".to_string(), ..base }, options: TargetOptions { target_mcount: "\u{1}mcount".to_string(), ..base },
} }
} }

View file

@ -1,5 +1,5 @@
use super::apple_sdk_base::{opts, Arch}; use super::apple_sdk_base::{opts, Arch};
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = opts("ios", Arch::Arm64); let base = opts("ios", Arch::Arm64);
@ -8,7 +8,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+neon,+fp-armv8,+apple-a7".to_string(), features: "+neon,+fp-armv8,+apple-a7".to_string(),
eliminate_frame_pointer: false, eliminate_frame_pointer: false,

View file

@ -1,5 +1,5 @@
use super::apple_sdk_base::{opts, Arch}; use super::apple_sdk_base::{opts, Arch};
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = opts("tvos", Arch::Arm64); let base = opts("tvos", Arch::Arm64);
@ -8,7 +8,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:o-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+neon,+fp-armv8,+apple-a7".to_string(), features: "+neon,+fp-armv8,+apple-a7".to_string(),
eliminate_frame_pointer: false, eliminate_frame_pointer: false,

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, LldFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::fuchsia_base::opts(); let mut base = super::fuchsia_base::opts();
@ -9,7 +9,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base }, options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base },
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
// See https://developer.android.com/ndk/guides/abis.html#arm64-v8a // See https://developer.android.com/ndk/guides/abis.html#arm64-v8a
// for target ABI requirements. // for target ABI requirements.
@ -14,7 +14,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base }, options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base },
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target}; use crate::spec::Target;
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::windows_msvc_base::opts(); let mut base = super::windows_msvc_base::opts();
@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Msvc,
options: base, options: base,
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target}; use crate::spec::Target;
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::cloudabi_base::opts(); let mut base = super::cloudabi_base::opts();
@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::freebsd_base::opts(); let mut base = super::freebsd_base::opts();
@ -9,7 +9,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base }, options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base },
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, LldFlavor, Target}; use crate::spec::Target;
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::hermit_base::opts(); let mut base = super::hermit_base::opts();
@ -9,7 +9,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: base, options: base,
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_base::opts(); let mut base = super::linux_base::opts();
@ -9,7 +9,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
unsupported_abis: super::arm_base::unsupported_abis(), unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}_mcount".to_string(), target_mcount: "\u{1}_mcount".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_musl_base::opts(); let mut base = super::linux_musl_base::opts();
@ -9,7 +9,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
unsupported_abis: super::arm_base::unsupported_abis(), unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}_mcount".to_string(), target_mcount: "\u{1}_mcount".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::netbsd_base::opts(); let mut base = super::netbsd_base::opts();
@ -10,7 +10,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { target_mcount: "__mcount".to_string(), ..base }, options: TargetOptions { target_mcount: "__mcount".to_string(), ..base },
} }
} }

View file

@ -11,6 +11,7 @@ use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOp
pub fn target() -> Target { pub fn target() -> Target {
let opts = TargetOptions { let opts = TargetOptions {
target_vendor: String::new(), target_vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
features: "+strict-align,+neon,+fp-armv8".to_string(), features: "+strict-align,+neon,+fp-armv8".to_string(),
executables: true, executables: true,
@ -27,7 +28,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: opts, options: opts,
} }
} }

View file

@ -11,6 +11,7 @@ use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOp
pub fn target() -> Target { pub fn target() -> Target {
let opts = TargetOptions { let opts = TargetOptions {
target_vendor: String::new(), target_vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
features: "+strict-align,-neon,-fp-armv8".to_string(), features: "+strict-align,-neon,-fp-armv8".to_string(),
executables: true, executables: true,
@ -27,7 +28,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: opts, options: opts,
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target}; use crate::spec::Target;
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::openbsd_base::opts(); let mut base = super::openbsd_base::opts();
@ -10,7 +10,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target}; use crate::spec::Target;
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::redox_base::opts(); let mut base = super::redox_base::opts();
@ -9,7 +9,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target}; use crate::spec::Target;
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::windows_uwp_msvc_base::opts(); let mut base = super::windows_uwp_msvc_base::opts();
@ -10,7 +10,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:w-p:64:64-i32:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Msvc,
options: base, options: base,
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::vxworks_base::opts(); let mut base = super::vxworks_base::opts();
@ -9,7 +9,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(), arch: "aarch64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base }, options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base },
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::android_base::opts(); let mut base = super::android_base::opts();
@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base }, options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base },
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_base::opts(); let mut base = super::linux_base::opts();
@ -8,7 +8,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+strict-align,+v6".to_string(), features: "+strict-align,+v6".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_base::opts(); let mut base = super::linux_base::opts();
@ -8,7 +8,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+strict-align,+v6,+vfp2,-d32".to_string(), features: "+strict-align,+v6,+vfp2,-d32".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_musl_base::opts(); let mut base = super::linux_musl_base::opts();
@ -15,7 +15,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
unsupported_abis: super::arm_base::unsupported_abis(), unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}mcount".to_string(), target_mcount: "\u{1}mcount".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_musl_base::opts(); let mut base = super::linux_musl_base::opts();
@ -15,7 +15,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
unsupported_abis: super::arm_base::unsupported_abis(), unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}mcount".to_string(), target_mcount: "\u{1}mcount".to_string(),

View file

@ -9,11 +9,11 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_vendor: String::new(), target_vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
executables: true, executables: true,
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
relocation_model: RelocModel::Static, relocation_model: RelocModel::Static,

View file

@ -9,11 +9,11 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "E-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_vendor: String::new(), target_vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
executables: true, executables: true,
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
relocation_model: RelocModel::Static, relocation_model: RelocModel::Static,

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = super::linux_base::opts(); let base = super::linux_base::opts();
@ -7,7 +7,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+soft-float,+strict-align".to_string(), features: "+soft-float,+strict-align".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = super::linux_base::opts(); let base = super::linux_base::opts();
@ -7,7 +7,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+soft-float,+strict-align".to_string(), features: "+soft-float,+strict-align".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = super::linux_musl_base::opts(); let base = super::linux_musl_base::opts();
@ -10,7 +10,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+soft-float,+strict-align".to_string(), features: "+soft-float,+strict-align".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = super::freebsd_base::opts(); let base = super::freebsd_base::opts();
@ -7,7 +7,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_env: "gnueabihf".to_string(), target_env: "gnueabihf".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::netbsd_base::opts(); let mut base = super::netbsd_base::opts();
@ -8,7 +8,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_env: "eabihf".to_string(), target_env: "eabihf".to_string(),

View file

@ -1,5 +1,5 @@
use super::apple_sdk_base::{opts, Arch}; use super::apple_sdk_base::{opts, Arch};
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = opts("ios", Arch::Armv7); let base = opts("ios", Arch::Armv7);
@ -8,7 +8,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:o-p:32:32-Fi8-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32".to_string(), data_layout: "e-m:o-p:32:32-Fi8-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+v7,+vfp3,+neon".to_string(), features: "+v7,+vfp3,+neon".to_string(),
max_atomic_width: Some(64), max_atomic_width: Some(64),

View file

@ -19,7 +19,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base }, options: TargetOptions { unsupported_abis: super::arm_base::unsupported_abis(), ..base },
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::cloudabi_base::opts(); let mut base = super::cloudabi_base::opts();
@ -13,7 +13,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { target_mcount: "\u{1}mcount".to_string(), ..base }, options: TargetOptions { target_mcount: "\u{1}mcount".to_string(), ..base },
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = super::freebsd_base::opts(); let base = super::freebsd_base::opts();
@ -7,7 +7,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_env: "gnueabihf".to_string(), target_env: "gnueabihf".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
// This target is for glibc Linux on ARMv7 without thumb-mode, NEON or // This target is for glibc Linux on ARMv7 without thumb-mode, NEON or
// hardfloat. // hardfloat.
@ -10,7 +10,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+v7,+thumb2,+soft-float,-neon".to_string(), features: "+v7,+thumb2,+soft-float,-neon".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
// This target is for glibc Linux on ARMv7 without NEON or // This target is for glibc Linux on ARMv7 without NEON or
// thumb-mode. See the thumbv7neon variant for enabling both. // thumb-mode. See the thumbv7neon variant for enabling both.
@ -10,7 +10,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
// Info about features at https://wiki.debian.org/ArmHardFloatPort // Info about features at https://wiki.debian.org/ArmHardFloatPort

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
// This target is for musl Linux on ARMv7 without thumb-mode, NEON or // This target is for musl Linux on ARMv7 without thumb-mode, NEON or
// hardfloat. // hardfloat.
@ -15,7 +15,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+v7,+thumb2,+soft-float,-neon".to_string(), features: "+v7,+thumb2,+soft-float,-neon".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
// This target is for musl Linux on ARMv7 without thumb-mode or NEON. // This target is for musl Linux on ARMv7 without thumb-mode or NEON.
@ -12,7 +12,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
// Most of these settings are copied from the armv7_unknown_linux_gnueabihf // Most of these settings are copied from the armv7_unknown_linux_gnueabihf
// target. // target.

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = super::netbsd_base::opts(); let base = super::netbsd_base::opts();
@ -7,7 +7,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_env: "eabihf".to_string(), target_env: "eabihf".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = super::vxworks_base::opts(); let base = super::vxworks_base::opts();
@ -7,7 +7,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
// Info about features at https://wiki.debian.org/ArmHardFloatPort // Info about features at https://wiki.debian.org/ArmHardFloatPort
features: "+v7,+vfp3,-d32,+thumb2,-neon".to_string(), features: "+v7,+vfp3,-d32,+thumb2,-neon".to_string(),

View file

@ -22,6 +22,7 @@ use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOp
pub fn target() -> Target { pub fn target() -> Target {
let opts = TargetOptions { let opts = TargetOptions {
target_vendor: String::new(), target_vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
features: "+v7,+thumb2,+soft-float,-neon,+strict-align".to_string(), features: "+v7,+thumb2,+soft-float,-neon,+strict-align".to_string(),
executables: true, executables: true,
@ -38,7 +39,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: opts, options: opts,
} }
} }

View file

@ -10,6 +10,7 @@ use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOp
pub fn target() -> Target { pub fn target() -> Target {
let opts = TargetOptions { let opts = TargetOptions {
target_vendor: String::new(), target_vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
features: "+v7,+vfp3,-d32,+thumb2,-neon,+strict-align".to_string(), features: "+v7,+vfp3,-d32,+thumb2,-neon,+strict-align".to_string(),
executables: true, executables: true,
@ -26,7 +27,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: opts, options: opts,
} }
} }

View file

@ -9,10 +9,10 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: TargetOptions { options: TargetOptions {
target_vendor: String::new(), target_vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
executables: true, executables: true,
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
relocation_model: RelocModel::Static, relocation_model: RelocModel::Static,

View file

@ -9,10 +9,10 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(), data_layout: "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: TargetOptions { options: TargetOptions {
target_vendor: String::new(), target_vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
executables: true, executables: true,
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
relocation_model: RelocModel::Static, relocation_model: RelocModel::Static,

View file

@ -1,5 +1,5 @@
use super::apple_sdk_base::{opts, Arch}; use super::apple_sdk_base::{opts, Arch};
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = opts("ios", Arch::Armv7s); let base = opts("ios", Arch::Armv7s);
@ -8,7 +8,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:o-p:32:32-Fi8-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32".to_string(), data_layout: "e-m:o-p:32:32-Fi8-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32".to_string(),
arch: "arm".to_string(), arch: "arm".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
features: "+v7,+vfp4,+neon".to_string(), features: "+v7,+vfp4,+neon".to_string(),
max_atomic_width: Some(64), max_atomic_width: Some(64),

View file

@ -9,7 +9,6 @@ pub fn target(target_cpu: String) -> Target {
data_layout: "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8".to_string(), data_layout: "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8".to_string(),
llvm_target: "avr-unknown-unknown".to_string(), llvm_target: "avr-unknown-unknown".to_string(),
pointer_width: 16, pointer_width: 16,
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_c_int_width: "16".to_string(), target_c_int_width: "16".to_string(),
target_os: "unknown".to_string(), target_os: "unknown".to_string(),

View file

@ -22,6 +22,7 @@ pub fn opts() -> TargetOptions {
TargetOptions { TargetOptions {
target_os: "fuchsia".to_string(), target_os: "fuchsia".to_string(),
target_vendor: String::new(), target_vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
lld_flavor: LldFlavor::Ld, lld_flavor: LldFlavor::Ld,
dynamic_linking: true, dynamic_linking: true,

View file

@ -10,6 +10,7 @@ pub fn opts() -> TargetOptions {
TargetOptions { TargetOptions {
target_os: "hermit".to_string(), target_os: "hermit".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
executables: true, executables: true,
has_elf_tls: true, has_elf_tls: true,

View file

@ -10,6 +10,7 @@ pub fn opts() -> TargetOptions {
TargetOptions { TargetOptions {
target_os: "hermit".to_string(), target_os: "hermit".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
disable_redzone: true, disable_redzone: true,
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),
executables: true, executables: true,

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkArgs, LinkerFlavor, Target}; use crate::spec::{LinkArgs, Target};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_musl_base::opts(); let mut base = super::linux_musl_base::opts();
@ -28,7 +28,6 @@ pub fn target() -> Target {
) )
.to_string(), .to_string(),
arch: "hexagon".to_string(), arch: "hexagon".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -1,5 +1,5 @@
use super::apple_sdk_base::{opts, Arch}; use super::apple_sdk_base::{opts, Arch};
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let base = opts("ios", Arch::I386); let base = opts("ios", Arch::I386);
@ -10,7 +10,6 @@ pub fn target() -> Target {
f64:32:64-f80:128-n8:16:32-S128" f64:32:64-f80:128-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { max_atomic_width: Some(64), stack_probes: true, ..base }, options: TargetOptions { max_atomic_width: Some(64), stack_probes: true, ..base },
} }
} }

View file

@ -22,7 +22,6 @@ pub fn target() -> Target {
f64:32:64-f80:128-n8:16:32-S128" f64:32:64-f80:128-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { target_mcount: "\u{1}mcount".to_string(), ..base }, options: TargetOptions { target_mcount: "\u{1}mcount".to_string(), ..base },
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target}; use crate::spec::Target;
// See https://developer.android.com/ndk/guides/abis.html#x86 // See https://developer.android.com/ndk/guides/abis.html#x86
// for target ABI requirements. // for target ABI requirements.
@ -20,7 +20,6 @@ pub fn target() -> Target {
f64:32:64-f80:32-n8:16:32-S128" f64:32:64-f80:32-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -23,7 +23,6 @@ pub fn target() -> Target {
i64:64-f80:32-n8:16:32-a:0:32-S32" i64:64-f80:32-n8:16:32-a:0:32-S32"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -27,7 +27,6 @@ pub fn target() -> Target {
i64:64-f80:32-n8:16:32-a:0:32-S32" i64:64-f80:32-n8:16:32-a:0:32-S32"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Msvc,
options: base, options: base,
} }
} }

View file

@ -15,7 +15,6 @@ pub fn target() -> Target {
f64:32:64-f80:32-n8:16:32-S128" f64:32:64-f80:32-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -16,7 +16,6 @@ pub fn target() -> Target {
f64:32:64-f80:32-n8:16:32-S128" f64:32:64-f80:32-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -14,7 +14,6 @@ pub fn target() -> Target {
f64:32:64-f80:32-n8:16:32-S128" f64:32:64-f80:32-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -14,7 +14,6 @@ pub fn target() -> Target {
f64:32:64-f80:32-n8:16:32-S128" f64:32:64-f80:32-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -29,7 +29,6 @@ pub fn target() -> Target {
f64:32:64-f80:32-n8:16:32-S128" f64:32:64-f80:32-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -14,7 +14,6 @@ pub fn target() -> Target {
f64:32:64-f80:32-n8:16:32-S128" f64:32:64-f80:32-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { target_mcount: "__mcount".to_string(), ..base }, options: TargetOptions { target_mcount: "__mcount".to_string(), ..base },
} }
} }

View file

@ -15,7 +15,6 @@ pub fn target() -> Target {
f64:32:64-f80:32-n8:16:32-S128" f64:32:64-f80:32-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -5,7 +5,7 @@
// The cdecl ABI is used. It differs from the stdcall or fastcall ABI. // The cdecl ABI is used. It differs from the stdcall or fastcall ABI.
// "i686-unknown-windows" is used to get the minimal subset of windows-specific features. // "i686-unknown-windows" is used to get the minimal subset of windows-specific features.
use crate::spec::{LinkerFlavor, LldFlavor, Target}; use crate::spec::Target;
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::uefi_msvc_base::opts(); let mut base = super::uefi_msvc_base::opts();
@ -83,7 +83,6 @@ pub fn target() -> Target {
i64:64-f80:32-n8:16:32-a:0:32-S32" i64:64-f80:32-n8:16:32-a:0:32-S32"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Link),
options: base, options: base,
} }

View file

@ -22,7 +22,6 @@ pub fn target() -> Target {
i64:64-f80:32-n8:16:32-a:0:32-S32" i64:64-f80:32-n8:16:32-a:0:32-S32"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target}; use crate::spec::Target;
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::windows_uwp_msvc_base::opts(); let mut base = super::windows_uwp_msvc_base::opts();
@ -13,7 +13,6 @@ pub fn target() -> Target {
i64:64-f80:32-n8:16:32-a:0:32-S32" i64:64-f80:32-n8:16:32-a:0:32-S32"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Msvc,
options: base, options: base,
} }
} }

View file

@ -14,7 +14,6 @@ pub fn target() -> Target {
f64:32:64-f80:32-n8:16:32-S128" f64:32:64-f80:32-n8:16:32-S128"
.to_string(), .to_string(),
arch: "x86".to_string(), arch: "x86".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: base, options: base,
} }
} }

View file

@ -19,6 +19,7 @@ pub fn opts() -> TargetOptions {
TargetOptions { TargetOptions {
target_os: "l4re".to_string(), target_os: "l4re".to_string(),
target_env: "uclibc".to_string(), target_env: "uclibc".to_string(),
linker_flavor: LinkerFlavor::Ld,
executables: true, executables: true,
has_elf_tls: false, has_elf_tls: false,
panic_strategy: PanicStrategy::Abort, panic_strategy: PanicStrategy::Abort,

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(), data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
arch: "mips64".to_string(), arch: "mips64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
// NOTE(mips64r2) matches C toolchain // NOTE(mips64r2) matches C toolchain

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_musl_base::opts(); let mut base = super::linux_musl_base::opts();
@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(), data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
arch: "mips64".to_string(), arch: "mips64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(), target_mcount: "_mcount".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
arch: "mips64".to_string(), arch: "mips64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
// NOTE(mips64r2) matches C toolchain // NOTE(mips64r2) matches C toolchain
cpu: "mips64r2".to_string(), cpu: "mips64r2".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_musl_base::opts(); let mut base = super::linux_musl_base::opts();
@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
arch: "mips64".to_string(), arch: "mips64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { target_mcount: "_mcount".to_string(), ..base }, options: TargetOptions { target_mcount: "_mcount".to_string(), ..base },
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(), data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(), arch: "mips".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
cpu: "mips32r2".to_string(), cpu: "mips32r2".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_musl_base::opts(); let mut base = super::linux_musl_base::opts();
@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(), data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(), arch: "mips".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(), target_mcount: "_mcount".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(), data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(), arch: "mips".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
cpu: "mips32r2".to_string(), cpu: "mips32r2".to_string(),

View file

@ -13,11 +13,11 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(), data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(), arch: "mips".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: TargetOptions { options: TargetOptions {
target_os: "psp".to_string(), target_os: "psp".to_string(),
target_vendor: "sony".to_string(), target_vendor: "sony".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
cpu: "mips2".to_string(), cpu: "mips2".to_string(),
executables: true, executables: true,
linker: Some("rust-lld".to_owned()), linker: Some("rust-lld".to_owned()),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(), data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(), arch: "mips".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
cpu: "mips32r2".to_string(), cpu: "mips32r2".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
let mut base = super::linux_musl_base::opts(); let mut base = super::linux_musl_base::opts();
@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(), data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(), arch: "mips".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { target_mcount: "_mcount".to_string(), ..base }, options: TargetOptions { target_mcount: "_mcount".to_string(), ..base },
} }
} }

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(), data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(), arch: "mips".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
cpu: "mips32r2".to_string(), cpu: "mips32r2".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(), data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(), arch: "mips".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
cpu: "mips32r6".to_string(), cpu: "mips32r6".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(), data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(), arch: "mips".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
cpu: "mips32r6".to_string(), cpu: "mips32r6".to_string(),

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(), data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
arch: "mips64".to_string(), arch: "mips64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
// NOTE(mips64r6) matches C toolchain // NOTE(mips64r6) matches C toolchain

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, Target, TargetOptions}; use crate::spec::{Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(), data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
arch: "mips64".to_string(), arch: "mips64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
// NOTE(mips64r6) matches C toolchain // NOTE(mips64r6) matches C toolchain
cpu: "mips64r6".to_string(), cpu: "mips64r6".to_string(),

View file

@ -673,9 +673,6 @@ pub struct Target {
pub arch: String, pub arch: String,
/// [Data layout](http://llvm.org/docs/LangRef.html#data-layout) to pass to LLVM. /// [Data layout](http://llvm.org/docs/LangRef.html#data-layout) to pass to LLVM.
pub data_layout: String, pub data_layout: String,
/// Default linker flavor used if `-C linker-flavor` or `-C linker` are not passed
/// on the command line.
pub linker_flavor: LinkerFlavor,
/// Optional settings with defaults. /// Optional settings with defaults.
pub options: TargetOptions, pub options: TargetOptions,
} }
@ -709,6 +706,9 @@ pub struct TargetOptions {
pub target_env: String, pub target_env: String,
/// Vendor name to use for conditional compilation. Defaults to "unknown". /// Vendor name to use for conditional compilation. Defaults to "unknown".
pub target_vendor: String, pub target_vendor: String,
/// Default linker flavor used if `-C linker-flavor` or `-C linker` are not passed
/// on the command line. Defaults to `LinkerFlavor::Gcc`.
pub linker_flavor: LinkerFlavor,
/// Linker to invoke /// Linker to invoke
pub linker: Option<String>, pub linker: Option<String>,
@ -993,6 +993,7 @@ impl Default for TargetOptions {
target_os: "none".to_string(), target_os: "none".to_string(),
target_env: String::new(), target_env: String::new(),
target_vendor: "unknown".to_string(), target_vendor: "unknown".to_string(),
linker_flavor: LinkerFlavor::Gcc,
linker: option_env!("CFG_DEFAULT_LINKER").map(|s| s.to_string()), linker: option_env!("CFG_DEFAULT_LINKER").map(|s| s.to_string()),
lld_flavor: LldFlavor::Ld, lld_flavor: LldFlavor::Ld,
pre_link_args: LinkArgs::new(), pre_link_args: LinkArgs::new(),
@ -1161,8 +1162,6 @@ impl Target {
.map_err(|_| "target-pointer-width must be an integer".to_string())?, .map_err(|_| "target-pointer-width must be an integer".to_string())?,
data_layout: get_req_field("data-layout")?, data_layout: get_req_field("data-layout")?,
arch: get_req_field("arch")?, arch: get_req_field("arch")?,
linker_flavor: LinkerFlavor::from_str(&*get_req_field("linker-flavor")?)
.ok_or_else(|| format!("linker flavor must be {}", LinkerFlavor::one_of()))?,
options: Default::default(), options: Default::default(),
}; };
@ -1314,11 +1313,13 @@ impl Target {
} ); } );
($key_name:ident, LinkerFlavor) => ( { ($key_name:ident, LinkerFlavor) => ( {
let name = (stringify!($key_name)).replace("_", "-"); let name = (stringify!($key_name)).replace("_", "-");
obj.find(&name[..]).and_then(|o| o.as_string().map(|s| { obj.find(&name[..]).and_then(|o| o.as_string().and_then(|s| {
LinkerFlavor::from_str(&s).ok_or_else(|| { match LinkerFlavor::from_str(s) {
Err(format!("'{}' is not a valid value for linker-flavor. \ Some(linker_flavor) => base.options.$key_name = linker_flavor,
Use 'em', 'gcc', 'ld' or 'msvc.", s)) _ => return Some(Err(format!("'{}' is not a valid value for linker-flavor. \
}) Use {}", s, LinkerFlavor::one_of()))),
}
Some(Ok(()))
})).unwrap_or(Ok(())) })).unwrap_or(Ok(()))
} ); } );
($key_name:ident, crt_objects_fallback) => ( { ($key_name:ident, crt_objects_fallback) => ( {
@ -1410,6 +1411,7 @@ impl Target {
key!(target_os = "os"); key!(target_os = "os");
key!(target_env = "env"); key!(target_env = "env");
key!(target_vendor = "vendor"); key!(target_vendor = "vendor");
key!(linker_flavor, LinkerFlavor)?;
key!(linker, optional); key!(linker, optional);
key!(lld_flavor, LldFlavor)?; key!(lld_flavor, LldFlavor)?;
key!(pre_link_objects, link_objects); key!(pre_link_objects, link_objects);
@ -1640,7 +1642,6 @@ impl ToJson for Target {
d.insert("target-pointer-width".to_string(), self.pointer_width.to_string().to_json()); d.insert("target-pointer-width".to_string(), self.pointer_width.to_string().to_json());
target_val!(arch); target_val!(arch);
target_val!(data_layout); target_val!(data_layout);
target_val!(linker_flavor);
target_option_val!(is_builtin); target_option_val!(is_builtin);
target_option_val!(target_endian); target_option_val!(target_endian);
@ -1648,6 +1649,7 @@ impl ToJson for Target {
target_option_val!(target_os, "os"); target_option_val!(target_os, "os");
target_option_val!(target_env, "env"); target_option_val!(target_env, "env");
target_option_val!(target_vendor, "vendor"); target_option_val!(target_vendor, "vendor");
target_option_val!(linker_flavor);
target_option_val!(linker); target_option_val!(linker);
target_option_val!(lld_flavor); target_option_val!(lld_flavor);
target_option_val!(pre_link_objects); target_option_val!(pre_link_objects);

View file

@ -1,4 +1,4 @@
use crate::spec::{LinkerFlavor, PanicStrategy, RelocModel, Target, TargetOptions}; use crate::spec::{PanicStrategy, RelocModel, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 16, pointer_width: 16,
data_layout: "e-m:e-p:16:16-i32:16-i64:16-f32:16-f64:16-a:8-n8:16-S16".to_string(), data_layout: "e-m:e-p:16:16-i32:16-i64:16-f32:16-f64:16-a:8-n8:16-S16".to_string(),
arch: "msp430".to_string(), arch: "msp430".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_c_int_width: "16".to_string(), target_c_int_width: "16".to_string(),

View file

@ -18,6 +18,7 @@ pub fn opts() -> TargetOptions {
pre_link_args.insert(LinkerFlavor::Lld(LldFlavor::Link), pre_link_args_msvc); pre_link_args.insert(LinkerFlavor::Lld(LldFlavor::Link), pre_link_args_msvc);
TargetOptions { TargetOptions {
linker_flavor: LinkerFlavor::Msvc,
executables: true, executables: true,
is_like_windows: true, is_like_windows: true,
is_like_msvc: true, is_like_msvc: true,

View file

@ -6,14 +6,12 @@ pub fn target() -> Target {
arch: "nvptx64".to_string(), arch: "nvptx64".to_string(),
data_layout: "e-i64:64-i128:128-v16:16-v32:32-n16:32:64".to_string(), data_layout: "e-i64:64-i128:128-v16:16-v32:32-n16:32:64".to_string(),
llvm_target: "nvptx64-nvidia-cuda".to_string(), llvm_target: "nvptx64-nvidia-cuda".to_string(),
linker_flavor: LinkerFlavor::PtxLinker,
pointer_width: 64, pointer_width: 64,
options: TargetOptions { options: TargetOptions {
target_os: "cuda".to_string(), target_os: "cuda".to_string(),
target_vendor: "nvidia".to_string(), target_vendor: "nvidia".to_string(),
linker_flavor: LinkerFlavor::PtxLinker,
// The linker can be installed from `crates.io`. // The linker can be installed from `crates.io`.
linker: Some("rust-ptx-linker".to_string()), linker: Some("rust-ptx-linker".to_string()),

View file

@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i64:64-n32:64".to_string(), data_layout: "E-m:e-i64:64-n32:64".to_string(),
arch: "powerpc64".to_string(), arch: "powerpc64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(), target_mcount: "_mcount".to_string(),

View file

@ -15,7 +15,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i64:64-n32:64".to_string(), data_layout: "E-m:e-i64:64-n32:64".to_string(),
arch: "powerpc64".to_string(), arch: "powerpc64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(), target_mcount: "_mcount".to_string(),

View file

@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i64:64-n32:64".to_string(), data_layout: "E-m:e-i64:64-n32:64".to_string(),
arch: "powerpc64".to_string(), arch: "powerpc64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(), target_mcount: "_mcount".to_string(),

View file

@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "E-m:e-i64:64-n32:64".to_string(), data_layout: "E-m:e-i64:64-n32:64".to_string(),
arch: "powerpc64".to_string(), arch: "powerpc64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { target_endian: "big".to_string(), ..base }, options: TargetOptions { target_endian: "big".to_string(), ..base },
} }
} }

View file

@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i64:64-n32:64".to_string(), data_layout: "e-m:e-i64:64-n32:64".to_string(),
arch: "powerpc64".to_string(), arch: "powerpc64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { target_mcount: "_mcount".to_string(), ..base }, options: TargetOptions { target_mcount: "_mcount".to_string(), ..base },
} }
} }

View file

@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 64, pointer_width: 64,
data_layout: "e-m:e-i64:64-n32:64".to_string(), data_layout: "e-m:e-i64:64-n32:64".to_string(),
arch: "powerpc64".to_string(), arch: "powerpc64".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { target_mcount: "_mcount".to_string(), ..base }, options: TargetOptions { target_mcount: "_mcount".to_string(), ..base },
} }
} }

View file

@ -10,7 +10,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(), data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(),
arch: "powerpc".to_string(), arch: "powerpc".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(), target_mcount: "_mcount".to_string(),

View file

@ -10,7 +10,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(), data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(),
arch: "powerpc".to_string(), arch: "powerpc".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(), target_mcount: "_mcount".to_string(),

View file

@ -10,7 +10,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(), data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(),
arch: "powerpc".to_string(), arch: "powerpc".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(), target_mcount: "_mcount".to_string(),

View file

@ -10,7 +10,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(), data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(),
arch: "powerpc".to_string(), arch: "powerpc".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
target_mcount: "__mcount".to_string(), target_mcount: "__mcount".to_string(),

View file

@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(), data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(),
arch: "powerpc".to_string(), arch: "powerpc".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
features: "+secure-plt".to_string(), features: "+secure-plt".to_string(),

View file

@ -11,7 +11,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(), data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(),
arch: "powerpc".to_string(), arch: "powerpc".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
target_endian: "big".to_string(), target_endian: "big".to_string(),
// feature msync would disable instruction 'fsync' which is not supported by fsl_p1p2 // feature msync would disable instruction 'fsync' which is not supported by fsl_p1p2

View file

@ -1,4 +1,4 @@
use crate::spec::{CodeModel, LinkerFlavor, Target, TargetOptions}; use crate::spec::{CodeModel, Target, TargetOptions};
pub fn target() -> Target { pub fn target() -> Target {
Target { Target {
@ -6,7 +6,6 @@ pub fn target() -> Target {
pointer_width: 32, pointer_width: 32,
data_layout: "e-m:e-p:32:32-i64:64-n32-S128".to_string(), data_layout: "e-m:e-p:32:32-i64:64-n32-S128".to_string(),
arch: "riscv32".to_string(), arch: "riscv32".to_string(),
linker_flavor: LinkerFlavor::Gcc,
options: TargetOptions { options: TargetOptions {
unsupported_abis: super::riscv_base::unsupported_abis(), unsupported_abis: super::riscv_base::unsupported_abis(),
code_model: Some(CodeModel::Medium), code_model: Some(CodeModel::Medium),

View file

@ -7,9 +7,9 @@ pub fn target() -> Target {
llvm_target: "riscv32".to_string(), llvm_target: "riscv32".to_string(),
pointer_width: 32, pointer_width: 32,
arch: "riscv32".to_string(), arch: "riscv32".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
options: TargetOptions { options: TargetOptions {
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_string()), linker: Some("rust-lld".to_string()),
cpu: "generic-rv32".to_string(), cpu: "generic-rv32".to_string(),
max_atomic_width: Some(0), max_atomic_width: Some(0),

Some files were not shown because too many files have changed in this diff Show more