rustc_target/spec/targets/
sparcv9_sun_solaris.rs

1use rustc_abi::Endian;
2
3use crate::spec::{Cc, LinkerFlavor, Target, base};
4
5pub(crate) fn target() -> Target {
6    let mut base = base::solaris::opts();
7    base.endian = Endian::Big;
8    base.add_pre_link_args(LinkerFlavor::Unix(Cc::Yes), &["-m64"]);
9    // llvm calls this "v9"
10    base.cpu = "v9".into();
11    base.vendor = "sun".into();
12    base.max_atomic_width = Some(64);
13
14    Target {
15        llvm_target: "sparcv9-sun-solaris".into(),
16        metadata: crate::spec::TargetMetadata {
17            description: Some("SPARC Solaris 11.4".into()),
18            tier: Some(2),
19            host_tools: Some(false),
20            std: Some(true),
21        },
22        pointer_width: 64,
23        data_layout: "E-m:e-i64:64-i128:128-n32:64-S128".into(),
24        // Use "sparc64" instead of "sparcv9" here, since the former is already
25        // used widely in the source base. If we ever needed ABI
26        // differentiation from the sparc64, we could, but that would probably
27        // just be confusing.
28        arch: "sparc64".into(),
29        options: base,
30    }
31}