rustc_target: Rename some target options to avoid tautology

`target.target_endian` -> `target.endian`
`target.target_c_int_width` -> `target.c_int_width`
`target.target_os` -> `target.os`
`target.target_env` -> `target.env`
`target.target_vendor` -> `target.vendor`
`target.target_family` -> `target.os_family`
`target.target_mcount` -> `target.mcount`
This commit is contained in:
Vadim Petrochenkov 2020-11-08 14:57:55 +03:00
parent bf66988aa1
commit dc004d4809
114 changed files with 218 additions and 243 deletions

View file

@ -90,7 +90,7 @@ fn set_instrument_function(cx: &CodegenCx<'ll, '_>, llfn: &'ll Value) {
// The function name varies on platforms.
// See test/CodeGen/mcount.c in clang.
let mcount_name = CString::new(cx.sess().target.target_mcount.as_str().as_bytes()).unwrap();
let mcount_name = CString::new(cx.sess().target.mcount.as_str().as_bytes()).unwrap();
llvm::AddFunctionAttrStringValue(
llfn,

View file

@ -176,7 +176,7 @@ pub fn get_fn(cx: &CodegenCx<'ll, 'tcx>, instance: Instance<'tcx>) -> &'ll Value
// should use dllimport for functions.
if cx.use_dll_storage_attrs
&& tcx.is_dllimport_foreign_item(instance_def_id)
&& tcx.sess.target.target_env != "gnu"
&& tcx.sess.target.env != "gnu"
{
unsafe {
llvm::LLVMSetDLLStorageClass(llfn, llvm::DLLStorageClass::DllImport);

View file

@ -91,7 +91,7 @@ unsafe fn configure_llvm(sess: &Session) {
}
}
if sess.target.target_os == "emscripten" && sess.panic_strategy() == PanicStrategy::Unwind {
if sess.target.os == "emscripten" && sess.panic_strategy() == PanicStrategy::Unwind {
add("-enable-emscripten-cxx-exceptions", false);
}

View file

@ -52,7 +52,7 @@ fn emit_direct_ptr_va_arg(
let next = bx.inbounds_gep(addr, &[full_direct_size]);
bx.store(next, va_list_addr, bx.tcx().data_layout.pointer_align.abi);
if size.bytes() < slot_size.bytes() && &*bx.tcx().sess.target.target_endian == "big" {
if size.bytes() < slot_size.bytes() && &*bx.tcx().sess.target.endian == "big" {
let adjusted_size = bx.cx().const_i32((slot_size.bytes() - size.bytes()) as i32);
let adjusted = bx.inbounds_gep(addr, &[adjusted_size]);
(bx.bitcast(adjusted, bx.cx().type_ptr_to(llty)), addr_align)
@ -105,7 +105,7 @@ fn emit_aapcs_va_arg(
let mut end = bx.build_sibling_block("va_arg.end");
let zero = bx.const_i32(0);
let offset_align = Align::from_bytes(4).unwrap();
assert!(&*bx.tcx().sess.target.target_endian == "little");
assert!(&*bx.tcx().sess.target.endian == "little");
let gr_type = target_ty.is_any_ptr() || target_ty.is_integral();
let (reg_off, reg_top_index, slot_size) = if gr_type {

View file

@ -163,7 +163,7 @@ fn get_linker(
// MSVC needs to link with the Store versions of the runtime libraries (vcruntime, msvcrt, etc).
let t = &sess.target;
if (flavor == LinkerFlavor::Msvc || flavor == LinkerFlavor::Lld(LldFlavor::Link))
&& t.target_vendor == "uwp"
&& t.vendor == "uwp"
{
if let Some(ref tool) = msvc_tool {
let original_path = tool.path();
@ -1236,7 +1236,7 @@ fn crt_objects_fallback(sess: &Session, crate_type: CrateType) -> bool {
Some(CrtObjectsFallback::Musl) => sess.crt_static(Some(crate_type)),
Some(CrtObjectsFallback::Mingw) => {
sess.host == sess.target
&& sess.target.target_vendor != "uwp"
&& sess.target.vendor != "uwp"
&& detect_self_contained_mingw(&sess)
}
// FIXME: Figure out cases in which WASM needs to link with a native toolchain.
@ -1510,7 +1510,7 @@ fn linker_with_args<'a, B: ArchiveBuilder<'a>>(
let base_cmd = get_linker(sess, path, flavor, crt_objects_fallback);
// FIXME: Move `/LIBPATH` addition for uwp targets from the linker construction
// to the linker args construction.
assert!(base_cmd.get_args().is_empty() || sess.target.target_vendor == "uwp");
assert!(base_cmd.get_args().is_empty() || sess.target.vendor == "uwp");
let cmd = &mut *codegen_results.linker_info.to_linker(base_cmd, &sess, flavor, target_cpu);
let link_output_kind = link_output_kind(sess, crate_type);
@ -2078,9 +2078,9 @@ fn are_upstream_rust_objects_already_included(sess: &Session) -> bool {
fn add_apple_sdk(cmd: &mut dyn Linker, sess: &Session, flavor: LinkerFlavor) {
let arch = &sess.target.arch;
let os = &sess.target.target_os;
let os = &sess.target.os;
let llvm_target = &sess.target.llvm_target;
if sess.target.target_vendor != "apple"
if sess.target.vendor != "apple"
|| !matches!(os.as_str(), "ios" | "tvos")
|| flavor != LinkerFlavor::Gcc
{

View file

@ -320,7 +320,7 @@ impl<'a> Linker for GccLinker<'a> {
// any `#[link]` attributes in the `libc` crate, see #72782 for details.
// FIXME: Switch to using `#[link]` attributes in the `libc` crate
// similarly to other targets.
if self.sess.target.target_os == "vxworks"
if self.sess.target.os == "vxworks"
&& matches!(
output_kind,
LinkOutputKind::StaticNoPicExe

View file

@ -51,11 +51,11 @@ pub trait DerivedTypeMethods<'tcx>: BaseTypeMethods<'tcx> + MiscMethods<'tcx> {
}
fn type_int(&self) -> Self::Type {
match &self.sess().target.target_c_int_width[..] {
match &self.sess().target.c_int_width[..] {
"16" => self.type_i16(),
"32" => self.type_i32(),
"64" => self.type_i64(),
width => bug!("Unsupported target_c_int_width: {}", width),
width => bug!("Unsupported c_int_width: {}", width),
}
}

View file

@ -2601,15 +2601,14 @@ where
};
let target = &cx.tcx().sess.target;
let target_env_gnu_like = matches!(&target.target_env[..], "gnu" | "musl");
let win_x64_gnu =
target.target_os == "windows" && target.arch == "x86_64" && target.target_env == "gnu";
let target_env_gnu_like = matches!(&target.env[..], "gnu" | "musl");
let win_x64_gnu = target.os == "windows" && target.arch == "x86_64" && target.env == "gnu";
let linux_s390x_gnu_like =
target.target_os == "linux" && target.arch == "s390x" && target_env_gnu_like;
target.os == "linux" && target.arch == "s390x" && target_env_gnu_like;
let linux_sparc64_gnu_like =
target.target_os == "linux" && target.arch == "sparc64" && target_env_gnu_like;
target.os == "linux" && target.arch == "sparc64" && target_env_gnu_like;
let linux_powerpc_gnu_like =
target.target_os == "linux" && target.arch == "powerpc" && target_env_gnu_like;
target.os == "linux" && target.arch == "powerpc" && target_env_gnu_like;
let rust_abi = matches!(sig.abi, RustIntrinsic | PlatformIntrinsic | Rust | RustCall);
// Handle safe Rust thin and fat pointers.

View file

@ -735,12 +735,12 @@ pub const fn default_lib_output() -> CrateType {
}
pub fn default_configuration(sess: &Session) -> CrateConfig {
let end = &sess.target.target_endian;
let end = &sess.target.endian;
let arch = &sess.target.arch;
let wordsz = sess.target.pointer_width.to_string();
let os = &sess.target.target_os;
let env = &sess.target.target_env;
let vendor = &sess.target.target_vendor;
let os = &sess.target.os;
let env = &sess.target.env;
let vendor = &sess.target.vendor;
let min_atomic_width = sess.target.min_atomic_width();
let max_atomic_width = sess.target.max_atomic_width();
let atomic_cas = sess.target.atomic_cas;
@ -752,7 +752,7 @@ pub fn default_configuration(sess: &Session) -> CrateConfig {
ret.reserve(6); // the minimum number of insertions
// Target bindings.
ret.insert((sym::target_os, Some(Symbol::intern(os))));
if let Some(ref fam) = sess.target.target_family {
if let Some(ref fam) = sess.target.os_family {
ret.insert((sym::target_family, Some(Symbol::intern(fam))));
if fam == "windows" {
ret.insert((sym::windows, None));

View file

@ -584,7 +584,7 @@ impl<'a, Ty> FnAbi<'a, Ty> {
"nvptx64" => nvptx64::compute_abi_info(self),
"hexagon" => hexagon::compute_abi_info(self),
"riscv32" | "riscv64" => riscv::compute_abi_info(cx, self),
"wasm32" if cx.target_spec().target_os != "emscripten" => {
"wasm32" if cx.target_spec().os != "emscripten" => {
wasm32_bindgen_compat::compute_abi_info(self)
}
"wasm32" | "asmjs" => wasm32::compute_abi_info(cx, self),

View file

@ -119,7 +119,7 @@ where
Ty: TyAndLayoutMethods<'a, C> + Copy,
C: LayoutOf<Ty = Ty, TyAndLayout = TyAndLayout<'a, Ty>> + HasDataLayout + HasTargetSpec,
{
let abi = if cx.target_spec().target_env == "musl" {
let abi = if cx.target_spec().env == "musl" {
ELFv2
} else {
match cx.data_layout().endian {

View file

@ -156,11 +156,11 @@ impl TargetDataLayout {
Endian::Little => "little",
Endian::Big => "big",
};
if endian_str != target.target_endian {
if endian_str != target.endian {
return Err(format!(
"inconsistent target specification: \"data-layout\" claims \
architecture is {}-endian, while \"target-endian\" is `{}`",
endian_str, target.target_endian
endian_str, target.endian
));
}

View file

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

View file

@ -11,7 +11,7 @@ pub fn target() -> Target {
arch: "aarch64".to_string(),
options: TargetOptions {
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}_mcount".to_string(),
mcount: "\u{1}_mcount".to_string(),
..base
},
}

View file

@ -11,7 +11,7 @@ pub fn target() -> Target {
arch: "aarch64".to_string(),
options: TargetOptions {
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}_mcount".to_string(),
mcount: "\u{1}_mcount".to_string(),
..base
},
}

View file

@ -10,6 +10,6 @@ pub fn target() -> Target {
pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128".to_string(),
arch: "aarch64".to_string(),
options: TargetOptions { target_mcount: "__mcount".to_string(), ..base },
options: TargetOptions { mcount: "__mcount".to_string(), ..base },
}
}

View file

@ -10,7 +10,7 @@ use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOp
pub fn target() -> Target {
let opts = TargetOptions {
target_vendor: String::new(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()),
features: "+strict-align,+neon,+fp-armv8".to_string(),

View file

@ -10,7 +10,7 @@ use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOp
pub fn target() -> Target {
let opts = TargetOptions {
target_vendor: String::new(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()),
features: "+strict-align,-neon,-fp-armv8".to_string(),

View file

@ -2,7 +2,7 @@ use crate::spec::{LinkerFlavor, TargetOptions};
pub fn opts() -> TargetOptions {
let mut base = super::linux_base::opts();
base.target_os = "android".to_string();
base.os = "android".to_string();
// Many of the symbols defined in compiler-rt are also defined in libgcc.
// Android's linker doesn't like that by default.
base.pre_link_args

View file

@ -17,13 +17,13 @@ pub fn opts(os: &str) -> TargetOptions {
let version = macos_deployment_target();
TargetOptions {
target_os: os.to_string(),
target_vendor: "apple".to_string(),
os: os.to_string(),
vendor: "apple".to_string(),
// macOS has -dead_strip, which doesn't rely on function_sections
function_sections: false,
dynamic_linking: true,
executables: true,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
is_like_osx: true,
dwarf_version: Some(2),
has_rpath: true,

View file

@ -12,7 +12,7 @@ pub fn target() -> Target {
options: TargetOptions {
features: "+strict-align,+v6".to_string(),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}__gnu_mcount_nc".to_string(),
mcount: "\u{1}__gnu_mcount_nc".to_string(),
..base
},
}

View file

@ -12,7 +12,7 @@ pub fn target() -> Target {
options: TargetOptions {
features: "+strict-align,+v6,+vfp2,-d32".to_string(),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}__gnu_mcount_nc".to_string(),
mcount: "\u{1}__gnu_mcount_nc".to_string(),
..base
},
}

View file

@ -17,7 +17,7 @@ pub fn target() -> Target {
arch: "arm".to_string(),
options: TargetOptions {
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}mcount".to_string(),
mcount: "\u{1}mcount".to_string(),
..base
},
}

View file

@ -17,7 +17,7 @@ pub fn target() -> Target {
arch: "arm".to_string(),
options: TargetOptions {
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}mcount".to_string(),
mcount: "\u{1}mcount".to_string(),
..base
},
}

View file

@ -11,8 +11,8 @@ pub fn target() -> Target {
arch: "arm".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
target_vendor: String::new(),
endian: "big".to_string(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
executables: true,
linker: Some("rust-lld".to_owned()),

View file

@ -11,8 +11,8 @@ pub fn target() -> Target {
arch: "arm".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
target_vendor: String::new(),
endian: "big".to_string(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
executables: true,
linker: Some("rust-lld".to_owned()),

View file

@ -13,7 +13,7 @@ pub fn target() -> Target {
// Atomic operations provided by compiler-builtins
max_atomic_width: Some(32),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}__gnu_mcount_nc".to_string(),
mcount: "\u{1}__gnu_mcount_nc".to_string(),
has_thumb_interworking: true,
..base
},

View file

@ -13,7 +13,7 @@ pub fn target() -> Target {
// Atomic operations provided by compiler-builtins
max_atomic_width: Some(32),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}__gnu_mcount_nc".to_string(),
mcount: "\u{1}__gnu_mcount_nc".to_string(),
has_thumb_interworking: true,
..base
},

View file

@ -16,7 +16,7 @@ pub fn target() -> Target {
// Atomic operations provided by compiler-builtins
max_atomic_width: Some(32),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}mcount".to_string(),
mcount: "\u{1}mcount".to_string(),
has_thumb_interworking: true,
..base
},

View file

@ -9,11 +9,11 @@ pub fn target() -> Target {
arch: "arm".to_string(),
options: TargetOptions {
target_env: "gnueabihf".to_string(),
env: "gnueabihf".to_string(),
features: "+v6,+vfp2,-d32".to_string(),
max_atomic_width: Some(64),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}__gnu_mcount_nc".to_string(),
mcount: "\u{1}__gnu_mcount_nc".to_string(),
..base
},
}

View file

@ -10,10 +10,10 @@ pub fn target() -> Target {
arch: "arm".to_string(),
options: TargetOptions {
target_env: "eabihf".to_string(),
env: "eabihf".to_string(),
features: "+v6,+vfp2,-d32".to_string(),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "__mcount".to_string(),
mcount: "__mcount".to_string(),
..base
},
}

View file

@ -13,6 +13,6 @@ pub fn target() -> Target {
pointer_width: 32,
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(),
options: TargetOptions { target_mcount: "\u{1}mcount".to_string(), ..base },
options: TargetOptions { mcount: "\u{1}mcount".to_string(), ..base },
}
}

View file

@ -9,11 +9,11 @@ pub fn target() -> Target {
arch: "arm".to_string(),
options: TargetOptions {
target_env: "gnueabihf".to_string(),
env: "gnueabihf".to_string(),
features: "+v7,+vfp3,-d32,+thumb2,-neon".to_string(),
max_atomic_width: Some(64),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}__gnu_mcount_nc".to_string(),
mcount: "\u{1}__gnu_mcount_nc".to_string(),
..base
},
}

View file

@ -16,7 +16,7 @@ pub fn target() -> Target {
cpu: "generic".to_string(),
max_atomic_width: Some(64),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}__gnu_mcount_nc".to_string(),
mcount: "\u{1}__gnu_mcount_nc".to_string(),
..base
},
}

View file

@ -17,7 +17,7 @@ pub fn target() -> Target {
cpu: "generic".to_string(),
max_atomic_width: Some(64),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}__gnu_mcount_nc".to_string(),
mcount: "\u{1}__gnu_mcount_nc".to_string(),
..base
},
}

View file

@ -21,7 +21,7 @@ pub fn target() -> Target {
cpu: "generic".to_string(),
max_atomic_width: Some(64),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}mcount".to_string(),
mcount: "\u{1}mcount".to_string(),
..base
},
}

View file

@ -20,7 +20,7 @@ pub fn target() -> Target {
cpu: "generic".to_string(),
max_atomic_width: Some(64),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "\u{1}mcount".to_string(),
mcount: "\u{1}mcount".to_string(),
..base
},
}

View file

@ -9,12 +9,12 @@ pub fn target() -> Target {
arch: "arm".to_string(),
options: TargetOptions {
target_env: "eabihf".to_string(),
env: "eabihf".to_string(),
features: "+v7,+vfp3,-d32,+thumb2,-neon".to_string(),
cpu: "generic".to_string(),
max_atomic_width: Some(64),
unsupported_abis: super::arm_base::unsupported_abis(),
target_mcount: "__mcount".to_string(),
mcount: "__mcount".to_string(),
..base
},
}

View file

@ -10,7 +10,7 @@
// bare-metal binaries (the `gcc` linker has the advantage that it knows where C
// libraries and crt*.o are but it's not much of an advantage here); LLD is also
// faster
// - `target_os` set to `none`. rationale: matches `thumb` targets
// - `os` set to `none`. rationale: matches `thumb` targets
// - `target_{env,vendor}` set to an empty string. rationale: matches `thumb`
// targets
// - `panic_strategy` set to `abort`. rationale: matches `thumb` targets
@ -21,7 +21,7 @@ use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOp
pub fn target() -> Target {
let opts = TargetOptions {
target_vendor: String::new(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()),
features: "+v7,+thumb2,+soft-float,-neon,+strict-align".to_string(),

View file

@ -9,7 +9,7 @@ use super::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, Target, TargetOp
pub fn target() -> Target {
let opts = TargetOptions {
target_vendor: String::new(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()),
features: "+v7,+vfp3,-d32,+thumb2,-neon,+strict-align".to_string(),

View file

@ -11,7 +11,7 @@ pub fn target() -> Target {
arch: "arm".to_string(),
options: TargetOptions {
target_vendor: String::new(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
executables: true,
linker: Some("rust-lld".to_owned()),

View file

@ -11,7 +11,7 @@ pub fn target() -> Target {
arch: "arm".to_string(),
options: TargetOptions {
target_vendor: String::new(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
executables: true,
linker: Some("rust-lld".to_owned()),

View file

@ -10,8 +10,8 @@ pub fn target(target_cpu: String) -> Target {
llvm_target: "avr-unknown-unknown".to_string(),
pointer_width: 16,
options: TargetOptions {
target_c_int_width: "16".to_string(),
target_os: "unknown".to_string(),
c_int_width: "16".to_string(),
os: "unknown".to_string(),
cpu: target_cpu.clone(),
exe_suffix: ".elf".to_string(),

View file

@ -12,9 +12,9 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "cloudabi".to_string(),
os: "cloudabi".to_string(),
executables: true,
target_family: None,
os_family: None,
linker_is_gnu: true,
pre_link_args: args,
position_independent_executables: true,

View file

@ -16,10 +16,10 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "dragonfly".to_string(),
os: "dragonfly".to_string(),
dynamic_linking: true,
executables: true,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
linker_is_gnu: true,
has_rpath: true,
pre_link_args: args,

View file

@ -16,10 +16,10 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "freebsd".to_string(),
os: "freebsd".to_string(),
dynamic_linking: true,
executables: true,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
linker_is_gnu: true,
has_rpath: true,
pre_link_args: args,

View file

@ -20,14 +20,14 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "fuchsia".to_string(),
target_vendor: String::new(),
os: "fuchsia".to_string(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()),
lld_flavor: LldFlavor::Ld,
dynamic_linking: true,
executables: true,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
is_like_fuchsia: true,
linker_is_gnu: true,
has_rpath: false,

View file

@ -2,11 +2,11 @@ use crate::spec::{RelroLevel, TargetOptions};
pub fn opts() -> TargetOptions {
TargetOptions {
target_os: "haiku".to_string(),
os: "haiku".to_string(),
dynamic_linking: true,
executables: true,
has_rpath: false,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
relro_level: RelroLevel::Full,
linker_is_gnu: true,
..Default::default()

View file

@ -9,7 +9,7 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "hermit".to_string(),
os: "hermit".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
linker: Some("rust-lld".to_owned()),
executables: true,
@ -20,7 +20,7 @@ pub fn opts() -> TargetOptions {
position_independent_executables: true,
static_position_independent_executables: true,
relocation_model: RelocModel::Pic,
target_family: None,
os_family: None,
tls_model: TlsModel::InitialExec,
..Default::default()
}

View file

@ -9,7 +9,7 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "hermit".to_string(),
os: "hermit".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
disable_redzone: true,
linker: Some("rust-lld".to_owned()),
@ -21,7 +21,7 @@ pub fn opts() -> TargetOptions {
position_independent_executables: true,
static_position_independent_executables: true,
relocation_model: RelocModel::Pic,
target_family: None,
os_family: None,
tls_model: TlsModel::InitialExec,
..Default::default()
}

View file

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

View file

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

View file

@ -16,11 +16,11 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "illumos".to_string(),
os: "illumos".to_string(),
dynamic_linking: true,
executables: true,
has_rpath: true,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
is_like_solaris: true,
limit_rdylib_exports: false, // Linker doesn't support this
eliminate_frame_pointer: false,

View file

@ -17,15 +17,15 @@ pub fn opts() -> TargetOptions {
args.insert(LinkerFlavor::Gcc, vec![]);
TargetOptions {
target_os: "l4re".to_string(),
target_env: "uclibc".to_string(),
os: "l4re".to_string(),
env: "uclibc".to_string(),
linker_flavor: LinkerFlavor::Ld,
executables: true,
has_elf_tls: false,
panic_strategy: PanicStrategy::Abort,
linker: Some("ld".to_string()),
pre_link_args: args,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
..Default::default()
}
}

View file

@ -19,11 +19,11 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "linux".to_string(),
target_env: "gnu".to_string(),
os: "linux".to_string(),
env: "gnu".to_string(),
dynamic_linking: true,
executables: true,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
linker_is_gnu: true,
has_rpath: true,
pre_link_args: args,

View file

@ -8,7 +8,7 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_env: "gnu".to_string(),
env: "gnu".to_string(),
disable_redzone: true,
panic_strategy: PanicStrategy::Abort,
stack_probes: true,

View file

@ -4,7 +4,7 @@ use crate::spec::TargetOptions;
pub fn opts() -> TargetOptions {
let mut base = super::linux_base::opts();
base.target_env = "musl".to_string();
base.env = "musl".to_string();
base.pre_link_objects_fallback = crt_objects::pre_musl_fallback();
base.post_link_objects_fallback = crt_objects::post_musl_fallback();
base.crt_objects_fallback = Some(CrtObjectsFallback::Musl);

View file

@ -1,5 +1,5 @@
use crate::spec::TargetOptions;
pub fn opts() -> TargetOptions {
TargetOptions { target_env: "uclibc".to_string(), ..super::linux_base::opts() }
TargetOptions { env: "uclibc".to_string(), ..super::linux_base::opts() }
}

View file

@ -7,12 +7,12 @@ pub fn target() -> Target {
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
arch: "mips64".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
endian: "big".to_string(),
// NOTE(mips64r2) matches C toolchain
cpu: "mips64r2".to_string(),
features: "+mips64r2".to_string(),
max_atomic_width: Some(64),
target_mcount: "_mcount".to_string(),
mcount: "_mcount".to_string(),
..super::linux_base::opts()
},

View file

@ -11,10 +11,6 @@ pub fn target() -> Target {
pointer_width: 64,
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
arch: "mips64".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(),
..base
},
options: TargetOptions { endian: "big".to_string(), mcount: "_mcount".to_string(), ..base },
}
}

View file

@ -11,7 +11,7 @@ pub fn target() -> Target {
cpu: "mips64r2".to_string(),
features: "+mips64r2".to_string(),
max_atomic_width: Some(64),
target_mcount: "_mcount".to_string(),
mcount: "_mcount".to_string(),
..super::linux_base::opts()
},

View file

@ -11,6 +11,6 @@ pub fn target() -> Target {
pointer_width: 64,
data_layout: "e-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
arch: "mips64".to_string(),
options: TargetOptions { target_mcount: "_mcount".to_string(), ..base },
options: TargetOptions { mcount: "_mcount".to_string(), ..base },
}
}

View file

@ -7,11 +7,11 @@ pub fn target() -> Target {
data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
endian: "big".to_string(),
cpu: "mips32r2".to_string(),
features: "+mips32r2,+fpxx,+nooddspreg".to_string(),
max_atomic_width: Some(32),
target_mcount: "_mcount".to_string(),
mcount: "_mcount".to_string(),
..super::linux_base::opts()
},

View file

@ -11,10 +11,6 @@ pub fn target() -> Target {
pointer_width: 32,
data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(),
..base
},
options: TargetOptions { endian: "big".to_string(), mcount: "_mcount".to_string(), ..base },
}
}

View file

@ -7,11 +7,11 @@ pub fn target() -> Target {
data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
endian: "big".to_string(),
cpu: "mips32r2".to_string(),
features: "+mips32r2,+soft-float".to_string(),
max_atomic_width: Some(32),
target_mcount: "_mcount".to_string(),
mcount: "_mcount".to_string(),
..super::linux_uclibc_base::opts()
},

View file

@ -15,8 +15,8 @@ pub fn target() -> Target {
arch: "mips".to_string(),
options: TargetOptions {
target_os: "psp".to_string(),
target_vendor: "sony".to_string(),
os: "psp".to_string(),
vendor: "sony".to_string(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
cpu: "mips2".to_string(),
executables: true,

View file

@ -11,7 +11,7 @@ pub fn target() -> Target {
cpu: "mips32r2".to_string(),
features: "+mips32r2,+fpxx,+nooddspreg".to_string(),
max_atomic_width: Some(32),
target_mcount: "_mcount".to_string(),
mcount: "_mcount".to_string(),
..super::linux_base::opts()
},

View file

@ -11,6 +11,6 @@ pub fn target() -> Target {
pointer_width: 32,
data_layout: "e-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(),
options: TargetOptions { target_mcount: "_mcount".to_string(), ..base },
options: TargetOptions { mcount: "_mcount".to_string(), ..base },
}
}

View file

@ -11,7 +11,7 @@ pub fn target() -> Target {
cpu: "mips32r2".to_string(),
features: "+mips32r2,+soft-float".to_string(),
max_atomic_width: Some(32),
target_mcount: "_mcount".to_string(),
mcount: "_mcount".to_string(),
..super::linux_uclibc_base::opts()
},

View file

@ -14,7 +14,7 @@ pub fn target() -> Target {
arch: "mips".to_string(),
options: TargetOptions {
target_vendor: String::new(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
cpu: "mips32r2".to_string(),
features: "+mips32r2,+soft-float,+noabicalls".to_string(),

View file

@ -7,11 +7,11 @@ pub fn target() -> Target {
data_layout: "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64".to_string(),
arch: "mips".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
endian: "big".to_string(),
cpu: "mips32r6".to_string(),
features: "+mips32r6".to_string(),
max_atomic_width: Some(32),
target_mcount: "_mcount".to_string(),
mcount: "_mcount".to_string(),
..super::linux_base::opts()
},

View file

@ -11,7 +11,7 @@ pub fn target() -> Target {
cpu: "mips32r6".to_string(),
features: "+mips32r6".to_string(),
max_atomic_width: Some(32),
target_mcount: "_mcount".to_string(),
mcount: "_mcount".to_string(),
..super::linux_base::opts()
},

View file

@ -7,12 +7,12 @@ pub fn target() -> Target {
data_layout: "E-m:e-i8:8:32-i16:16:32-i64:64-n32:64-S128".to_string(),
arch: "mips64".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
endian: "big".to_string(),
// NOTE(mips64r6) matches C toolchain
cpu: "mips64r6".to_string(),
features: "+mips64r6".to_string(),
max_atomic_width: Some(64),
target_mcount: "_mcount".to_string(),
mcount: "_mcount".to_string(),
..super::linux_base::opts()
},

View file

@ -11,7 +11,7 @@ pub fn target() -> Target {
cpu: "mips64r6".to_string(),
features: "+mips64r6".to_string(),
max_atomic_width: Some(64),
target_mcount: "_mcount".to_string(),
mcount: "_mcount".to_string(),
..super::linux_base::opts()
},

View file

@ -701,15 +701,15 @@ pub struct TargetOptions {
pub is_builtin: bool,
/// String to use as the `target_endian` `cfg` variable. Defaults to "little".
pub target_endian: String,
pub endian: String,
/// Width of c_int type. Defaults to "32".
pub target_c_int_width: String,
pub c_int_width: String,
/// OS name to use for conditional compilation. Defaults to "none".
pub target_os: String,
pub os: String,
/// Environment name to use for conditional compilation. Defaults to "".
pub target_env: String,
pub env: String,
/// Vendor name to use for conditional compilation. Defaults to "unknown".
pub target_vendor: String,
pub 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,
@ -800,7 +800,7 @@ pub struct TargetOptions {
/// String to append to the name of every static library. Defaults to ".a".
pub staticlib_suffix: String,
/// OS family to use for conditional compilation. Valid options: "unix", "windows".
pub target_family: Option<String>,
pub os_family: Option<String>,
/// Whether the target toolchain's ABI supports returning small structs as an integer.
pub abi_return_struct_as_int: bool,
/// Whether the target toolchain is like macOS's. Only useful for compiling against iOS/macOS,
@ -961,7 +961,7 @@ pub struct TargetOptions {
pub merge_functions: MergeFunctions,
/// Use platform dependent mcount function
pub target_mcount: String,
pub mcount: String,
/// LLVM ABI name, corresponds to the '-mabi' parameter available in multilib C compilers
pub llvm_abiname: String,
@ -992,11 +992,11 @@ impl Default for TargetOptions {
fn default() -> TargetOptions {
TargetOptions {
is_builtin: false,
target_endian: "little".to_string(),
target_c_int_width: "32".to_string(),
target_os: "none".to_string(),
target_env: String::new(),
target_vendor: "unknown".to_string(),
endian: "little".to_string(),
c_int_width: "32".to_string(),
os: "none".to_string(),
env: String::new(),
vendor: "unknown".to_string(),
linker_flavor: LinkerFlavor::Gcc,
linker: option_env!("CFG_DEFAULT_LINKER").map(|s| s.to_string()),
lld_flavor: LldFlavor::Ld,
@ -1020,7 +1020,7 @@ impl Default for TargetOptions {
exe_suffix: String::new(),
staticlib_prefix: "lib".to_string(),
staticlib_suffix: ".a".to_string(),
target_family: None,
os_family: None,
abi_return_struct_as_int: false,
is_like_osx: false,
is_like_solaris: false,
@ -1077,7 +1077,7 @@ impl Default for TargetOptions {
limit_rdylib_exports: true,
override_export_symbols: None,
merge_functions: MergeFunctions::Aliases,
target_mcount: "mcount".to_string(),
mcount: "mcount".to_string(),
llvm_abiname: "".to_string(),
relax_elf_relocations: false,
llvm_args: vec![],
@ -1306,6 +1306,14 @@ impl Target {
.map(|s| s.to_string() );
}
} );
($key_name:ident = $json_name:expr, optional) => ( {
let name = $json_name;
if let Some(o) = obj.find(&name[..]) {
base.$key_name = o
.as_string()
.map(|s| s.to_string() );
}
} );
($key_name:ident, LldFlavor) => ( {
let name = (stringify!($key_name)).replace("_", "-");
obj.find(&name[..]).and_then(|o| o.as_string().and_then(|s| {
@ -1415,11 +1423,11 @@ impl Target {
}
key!(is_builtin, bool);
key!(target_endian);
key!(target_c_int_width);
key!(target_os = "os");
key!(target_env = "env");
key!(target_vendor = "vendor");
key!(endian = "target_endian");
key!(c_int_width = "target_c_int_width");
key!(os);
key!(env);
key!(vendor);
key!(linker_flavor, LinkerFlavor)?;
key!(linker, optional);
key!(lld_flavor, LldFlavor)?;
@ -1453,7 +1461,7 @@ impl Target {
key!(exe_suffix);
key!(staticlib_prefix);
key!(staticlib_suffix);
key!(target_family, optional);
key!(os_family = "target_family", optional);
key!(abi_return_struct_as_int, bool);
key!(is_like_osx, bool);
key!(is_like_solaris, bool);
@ -1499,7 +1507,7 @@ impl Target {
key!(limit_rdylib_exports, bool);
key!(override_export_symbols, opt_list);
key!(merge_functions, MergeFunctions)?;
key!(target_mcount);
key!(mcount = "target_mcount");
key!(llvm_abiname);
key!(relax_elf_relocations, bool);
key!(llvm_args, list);
@ -1651,11 +1659,11 @@ impl ToJson for Target {
target_val!(data_layout);
target_option_val!(is_builtin);
target_option_val!(target_endian);
target_option_val!(target_c_int_width);
target_option_val!(target_os, "os");
target_option_val!(target_env, "env");
target_option_val!(target_vendor, "vendor");
target_option_val!(endian, "target_endian");
target_option_val!(c_int_width, "target_c_int_width");
target_option_val!(os);
target_option_val!(env);
target_option_val!(vendor);
target_option_val!(linker_flavor);
target_option_val!(linker);
target_option_val!(lld_flavor);
@ -1689,7 +1697,7 @@ impl ToJson for Target {
target_option_val!(exe_suffix);
target_option_val!(staticlib_prefix);
target_option_val!(staticlib_suffix);
target_option_val!(target_family);
target_option_val!(os_family, "target_family");
target_option_val!(abi_return_struct_as_int);
target_option_val!(is_like_osx);
target_option_val!(is_like_solaris);
@ -1735,7 +1743,7 @@ impl ToJson for Target {
target_option_val!(limit_rdylib_exports);
target_option_val!(override_export_symbols);
target_option_val!(merge_functions);
target_option_val!(target_mcount);
target_option_val!(mcount, "target_mcount");
target_option_val!(llvm_abiname);
target_option_val!(relax_elf_relocations);
target_option_val!(llvm_args);

View file

@ -8,8 +8,8 @@ pub fn target() -> Target {
arch: "msp430".to_string(),
options: TargetOptions {
target_c_int_width: "16".to_string(),
target_vendor: String::new(),
c_int_width: "16".to_string(),
vendor: String::new(),
executables: true,
// The LLVM backend currently can't generate object files. To

View file

@ -14,10 +14,10 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "netbsd".to_string(),
os: "netbsd".to_string(),
dynamic_linking: true,
executables: true,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
linker_is_gnu: true,
no_default_libraries: false,
has_rpath: true,

View file

@ -9,8 +9,8 @@ pub fn target() -> Target {
pointer_width: 64,
options: TargetOptions {
target_os: "cuda".to_string(),
target_vendor: "nvidia".to_string(),
os: "cuda".to_string(),
vendor: "nvidia".to_string(),
linker_flavor: LinkerFlavor::PtxLinker,
// The linker can be installed from `crates.io`.
linker: Some("rust-ptx-linker".to_string()),

View file

@ -16,10 +16,10 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "openbsd".to_string(),
os: "openbsd".to_string(),
dynamic_linking: true,
executables: true,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
linker_is_gnu: true,
has_rpath: true,
abi_return_struct_as_int: true,

View file

@ -11,10 +11,6 @@ pub fn target() -> Target {
pointer_width: 64,
data_layout: "E-m:e-i64:64-n32:64".to_string(),
arch: "powerpc64".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(),
..base
},
options: TargetOptions { endian: "big".to_string(), mcount: "_mcount".to_string(), ..base },
}
}

View file

@ -15,10 +15,6 @@ pub fn target() -> Target {
pointer_width: 64,
data_layout: "E-m:e-i64:64-n32:64".to_string(),
arch: "powerpc64".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(),
..base
},
options: TargetOptions { endian: "big".to_string(), mcount: "_mcount".to_string(), ..base },
}
}

View file

@ -11,10 +11,6 @@ pub fn target() -> Target {
pointer_width: 64,
data_layout: "E-m:e-i64:64-n32:64".to_string(),
arch: "powerpc64".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
target_mcount: "_mcount".to_string(),
..base
},
options: TargetOptions { endian: "big".to_string(), mcount: "_mcount".to_string(), ..base },
}
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -11,8 +11,8 @@ pub fn target() -> Target {
data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(),
arch: "powerpc".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
target_mcount: "__mcount".to_string(),
endian: "big".to_string(),
mcount: "__mcount".to_string(),
..base
},
}

View file

@ -12,7 +12,7 @@ pub fn target() -> Target {
data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(),
arch: "powerpc".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
endian: "big".to_string(),
features: "+secure-plt".to_string(),
..base
},

View file

@ -12,7 +12,7 @@ pub fn target() -> Target {
data_layout: "E-m:e-p:32:32-i64:64-n32".to_string(),
arch: "powerpc".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
endian: "big".to_string(),
// feature msync would disable instruction 'fsync' which is not supported by fsl_p1p2
features: "+secure-plt,+msync".to_string(),
..base

View file

@ -19,11 +19,11 @@ pub fn opts() -> TargetOptions {
);
TargetOptions {
target_os: "redox".to_string(),
target_env: "relibc".to_string(),
os: "redox".to_string(),
env: "relibc".to_string(),
dynamic_linking: true,
executables: true,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
linker_is_gnu: true,
has_rpath: true,
pre_link_args: args,

View file

@ -2,7 +2,7 @@ use crate::spec::Target;
pub fn target() -> Target {
let mut base = super::linux_base::opts();
base.target_endian = "big".to_string();
base.endian = "big".to_string();
// z10 is the oldest CPU supported by LLVM
base.cpu = "z10".to_string();
// FIXME: The data_layout string below and the ABI implementation in

View file

@ -2,12 +2,12 @@ use crate::spec::TargetOptions;
pub fn opts() -> TargetOptions {
TargetOptions {
target_os: "solaris".to_string(),
target_vendor: "sun".to_string(),
os: "solaris".to_string(),
vendor: "sun".to_string(),
dynamic_linking: true,
executables: true,
has_rpath: true,
target_family: Some("unix".to_string()),
os_family: Some("unix".to_string()),
is_like_solaris: true,
limit_rdylib_exports: false, // Linker doesn't support this
eh_frame_header: false,

View file

@ -2,7 +2,7 @@ use crate::spec::Target;
pub fn target() -> Target {
let mut base = super::linux_base::opts();
base.target_endian = "big".to_string();
base.endian = "big".to_string();
base.cpu = "v9".to_string();
base.max_atomic_width = Some(64);

View file

@ -12,8 +12,8 @@ pub fn target() -> Target {
data_layout: "E-m:e-i64:64-n32:64-S128".to_string(),
arch: "sparc64".to_string(),
options: TargetOptions {
target_endian: "big".to_string(),
target_mcount: "__mcount".to_string(),
endian: "big".to_string(),
mcount: "__mcount".to_string(),
..base
},
}

View file

@ -2,7 +2,7 @@ use crate::spec::{LinkerFlavor, Target};
pub fn target() -> Target {
let mut base = super::openbsd_base::opts();
base.target_endian = "big".to_string();
base.endian = "big".to_string();
base.cpu = "v9".to_string();
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-m64".to_string());
base.max_atomic_width = Some(64);

View file

@ -2,7 +2,7 @@ use crate::spec::{LinkerFlavor, Target};
pub fn target() -> Target {
let mut base = super::linux_base::opts();
base.target_endian = "big".to_string();
base.endian = "big".to_string();
base.cpu = "v9".to_string();
base.max_atomic_width = Some(64);
base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap().push("-mv8plus".to_string());

View file

@ -2,7 +2,7 @@ use crate::spec::{LinkerFlavor, Target};
pub fn target() -> Target {
let mut base = super::solaris_base::opts();
base.target_endian = "big".to_string();
base.endian = "big".to_string();
base.pre_link_args.insert(LinkerFlavor::Gcc, vec!["-m64".to_string()]);
// llvm calls this "v9"
base.cpu = "v9".to_string();

View file

@ -32,7 +32,7 @@ use crate::spec::{LinkerFlavor, LldFlavor, PanicStrategy, RelocModel, TargetOpti
pub fn opts() -> TargetOptions {
// See rust-lang/rfcs#1645 for a discussion about these defaults
TargetOptions {
target_vendor: String::new(),
vendor: String::new(),
linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
executables: true,
// In most cases, LLD is good enough

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