Skip to content

Commit a372c5c

Browse files
committed
Add binary_format to rustc target specs
1 parent c753cb9 commit a372c5c

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

compiler/rustc_target/src/spec/mod.rs

+12
Original file line numberDiff line numberDiff line change
@@ -2077,6 +2077,16 @@ enum TargetKind {
20772077
Builtin,
20782078
}
20792079

2080+
#[derive(PartialEq, Clone, Debug)]
2081+
pub enum BinaryFormat {
2082+
Coff,
2083+
Elf,
2084+
MachO,
2085+
Pe,
2086+
Wasm,
2087+
Xcoff,
2088+
}
2089+
20802090
/// Everything `rustc` knows about how to compile for a specific target.
20812091
///
20822092
/// Every field here must be specified, and has no default value.
@@ -2099,6 +2109,8 @@ pub struct Target {
20992109
pub arch: StaticCow<str>,
21002110
/// [Data layout](https://llvm.org/docs/LangRef.html#data-layout) to pass to LLVM.
21012111
pub data_layout: StaticCow<str>,
2112+
///
2113+
pub binary_format: BinaryFormat,
21022114
/// Optional settings with defaults.
21032115
pub options: TargetOptions,
21042116
}

compiler/rustc_target/src/spec/targets/aarch64_apple_darwin.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::spec::base::apple::{Arch, TargetAbi, base};
2-
use crate::spec::{FramePointer, SanitizerSet, Target, TargetOptions};
2+
use crate::spec::{BinaryFormat, FramePointer, SanitizerSet, Target, TargetOptions};
33

44
pub(crate) fn target() -> Target {
55
let (opts, llvm_target, arch) = base("macos", Arch::Arm64, TargetAbi::Normal);
@@ -15,6 +15,7 @@ pub(crate) fn target() -> Target {
1515
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
1616
.into(),
1717
arch,
18+
binary_format: BinaryFormat::MachO,
1819
options: TargetOptions {
1920
mcount: "\u{1}mcount".into(),
2021
frame_pointer: FramePointer::NonLeaf,

compiler/rustc_target/src/spec/targets/aarch64_apple_ios.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::spec::base::apple::{Arch, TargetAbi, base};
2-
use crate::spec::{FramePointer, SanitizerSet, Target, TargetOptions};
2+
use crate::spec::{BinaryFormat, FramePointer, SanitizerSet, Target, TargetOptions};
33

44
pub(crate) fn target() -> Target {
55
let (opts, llvm_target, arch) = base("ios", Arch::Arm64, TargetAbi::Normal);
@@ -15,6 +15,7 @@ pub(crate) fn target() -> Target {
1515
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
1616
.into(),
1717
arch,
18+
binary_format: BinaryFormat::MachO,
1819
options: TargetOptions {
1920
features: "+neon,+fp-armv8,+apple-a7".into(),
2021
max_atomic_width: Some(128),

compiler/rustc_target/src/spec/targets/aarch64_apple_ios_macabi.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::spec::base::apple::{Arch, TargetAbi, base};
2-
use crate::spec::{FramePointer, SanitizerSet, Target, TargetOptions};
2+
use crate::spec::{BinaryFormat, FramePointer, SanitizerSet, Target, TargetOptions};
33

44
pub(crate) fn target() -> Target {
55
let (opts, llvm_target, arch) = base("ios", Arch::Arm64, TargetAbi::MacCatalyst);
@@ -15,6 +15,7 @@ pub(crate) fn target() -> Target {
1515
data_layout: "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
1616
.into(),
1717
arch,
18+
binary_format: BinaryFormat::MachO,
1819
options: TargetOptions {
1920
features: "+neon,+fp-armv8,+apple-a12".into(),
2021
max_atomic_width: Some(128),

0 commit comments

Comments
 (0)