Commit a69f55a7cc
Changed files (5)
lib/std/coff.zig
@@ -1060,23 +1060,6 @@ pub const MachineType = enum(u16) {
WCEMIPSV2 = 0x169,
_,
-
- pub fn toTargetCpuArch(machine_type: MachineType) ?std.Target.Cpu.Arch {
- return switch (machine_type) {
- .ARM => .arm,
- .POWERPC => .powerpc,
- .RISCV32 => .riscv32,
- .THUMB => .thumb,
- .I386 => .x86,
- .ARM64 => .aarch64,
- .RISCV64 => .riscv64,
- .X64 => .x86_64,
- .LOONGARCH32 => .loongarch32,
- .LOONGARCH64 => .loongarch64,
- // there's cases we don't (yet) handle
- else => null,
- };
- }
};
pub const CoffError = error{
lib/std/elf.zig
@@ -1646,44 +1646,6 @@ pub const EM = enum(u16) {
FRV = 0x5441,
_,
-
- pub fn toTargetCpuArch(em: EM) ?std.Target.Cpu.Arch {
- return switch (em) {
- .AVR => .avr,
- .MSP430 => .msp430,
- .ARC => .arc,
- .ARM => .arm,
- .HEXAGON => .hexagon,
- .@"68K" => .m68k,
- .MIPS => .mips,
- .MIPS_RS3_LE => .mipsel,
- .PPC => .powerpc,
- .SPARC => .sparc,
- .@"386" => .x86,
- .XCORE => .xcore,
- .CSR_KALIMBA => .kalimba,
- .LANAI => .lanai,
- .AARCH64 => .aarch64,
- .PPC64 => .powerpc64,
- .RISCV => .riscv64,
- .X86_64 => .x86_64,
- .BPF => .bpfel,
- .SPARCV9 => .sparc64,
- .S390 => .s390x,
- .SPU_2 => .spu_2,
- // FIXME:
- // No support for .loongarch32 yet so it is safe to assume we are on .loongarch64.
- //
- // However, when e_machine is .LOONGARCH, we should check
- // ei_class's value to decide the CPU architecture.
- // - ELFCLASS32 => .loongarch32
- // - ELFCLASS64 => .loongarch64
- .LOONGARCH => .loongarch64,
- // there's many cases we don't (yet) handle, or will never have a
- // zig target cpu arch equivalent (such as null).
- else => null,
- };
- }
};
pub const GRP_COMDAT = 1;
src/link/Elf/Object.zig
@@ -105,12 +105,12 @@ fn parseCommon(self: *Object, allocator: Allocator, handle: std.fs.File, elf_fil
defer allocator.free(header_buffer);
self.header = @as(*align(1) const elf.Elf64_Ehdr, @ptrCast(header_buffer)).*;
- const target = elf_file.base.comp.root_mod.resolved_target.result;
- if (target.cpu.arch != self.header.?.e_machine.toTargetCpuArch().?) {
+ const em = elf_file.base.comp.root_mod.resolved_target.result.toElfMachine();
+ if (em != self.header.?.e_machine) {
try elf_file.reportParseError2(
self.index,
- "invalid cpu architecture: {s}",
- .{@tagName(self.header.?.e_machine.toTargetCpuArch().?)},
+ "invalid ELF machine type: {s}",
+ .{@tagName(self.header.?.e_machine)},
);
return error.InvalidCpuArch;
}
test/link/elf.zig
@@ -2257,7 +2257,7 @@ fn testMismatchedCpuArchitectureError(b: *Build, opts: Options) *Step {
exe.linkLibC();
expectLinkErrors(exe, test_step, .{ .exact = &.{
- "invalid cpu architecture: aarch64",
+ "invalid ELF machine type: AARCH64",
"note: while parsing /?/a.o",
} });