aboutsummaryrefslogtreecommitdiff
path: root/lib/std/target.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-09-04 16:05:58 -0400
committerGitHub <noreply@github.com>2020-09-04 16:05:58 -0400
commitcff14dc2c67d9a35ae2c3e07bd6d2c5594d8a0a1 (patch)
treef0b980018b99375e198081ae1e24859bf5695900 /lib/std/target.zig
parent209a3da4f73ab6dd4182649af8fb7439e9145441 (diff)
parente9807418e7e58f3cb85d5d3a6d114d5084e305bd (diff)
downloadzig-cff14dc2c67d9a35ae2c3e07bd6d2c5594d8a0a1.tar.gz
zig-cff14dc2c67d9a35ae2c3e07bd6d2c5594d8a0a1.zip
Merge pull request #6247 from alexnask/stage2_pe
Added a basic Portable Executable linker to stage2
Diffstat (limited to 'lib/std/target.zig')
-rw-r--r--lib/std/target.zig58
1 files changed, 58 insertions, 0 deletions
diff --git a/lib/std/target.zig b/lib/std/target.zig
index 034ab780d0..37425a9a29 100644
--- a/lib/std/target.zig
+++ b/lib/std/target.zig
@@ -468,6 +468,7 @@ pub const Target = struct {
/// TODO Get rid of this one.
unknown,
coff,
+ pe,
elf,
macho,
wasm,
@@ -771,6 +772,63 @@ pub const Target = struct {
};
}
+ pub fn toCoffMachine(arch: Arch) std.coff.MachineType {
+ return switch (arch) {
+ .avr => .Unknown,
+ .msp430 => .Unknown,
+ .arc => .Unknown,
+ .arm => .ARM,
+ .armeb => .Unknown,
+ .hexagon => .Unknown,
+ .le32 => .Unknown,
+ .mips => .Unknown,
+ .mipsel => .Unknown,
+ .powerpc => .POWERPC,
+ .r600 => .Unknown,
+ .riscv32 => .RISCV32,
+ .sparc => .Unknown,
+ .sparcel => .Unknown,
+ .tce => .Unknown,
+ .tcele => .Unknown,
+ .thumb => .Thumb,
+ .thumbeb => .Thumb,
+ .i386 => .I386,
+ .xcore => .Unknown,
+ .nvptx => .Unknown,
+ .amdil => .Unknown,
+ .hsail => .Unknown,
+ .spir => .Unknown,
+ .kalimba => .Unknown,
+ .shave => .Unknown,
+ .lanai => .Unknown,
+ .wasm32 => .Unknown,
+ .renderscript32 => .Unknown,
+ .aarch64_32 => .ARM64,
+ .aarch64 => .ARM64,
+ .aarch64_be => .Unknown,
+ .mips64 => .Unknown,
+ .mips64el => .Unknown,
+ .powerpc64 => .Unknown,
+ .powerpc64le => .Unknown,
+ .riscv64 => .RISCV64,
+ .x86_64 => .X64,
+ .nvptx64 => .Unknown,
+ .le64 => .Unknown,
+ .amdil64 => .Unknown,
+ .hsail64 => .Unknown,
+ .spir64 => .Unknown,
+ .wasm64 => .Unknown,
+ .renderscript64 => .Unknown,
+ .amdgcn => .Unknown,
+ .bpfel => .Unknown,
+ .bpfeb => .Unknown,
+ .sparcv9 => .Unknown,
+ .s390x => .Unknown,
+ .ve => .Unknown,
+ .spu_2 => .Unknown,
+ };
+ }
+
pub fn endian(arch: Arch) builtin.Endian {
return switch (arch) {
.avr,