mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 12:59:04 +00:00
fix ABI mismatch of ZigTarget in stage2 glue code
This commit is contained in:
parent
9b02cab3da
commit
8fe636dafd
@ -1034,19 +1034,23 @@ const Stage2GLibCVersion = extern struct {
|
||||
|
||||
// ABI warning
|
||||
export fn stage2_detect_dynamic_linker(in_target: *const Stage2Target, out_ptr: *[*:0]u8, out_len: *usize) Error {
|
||||
const in_arch = in_target.arch - 1; // skip over ZigLLVM_UnknownArch
|
||||
const in_sub_arch = in_target.sub_arch - 1; // skip over ZigLLVM_NoSubArch
|
||||
const in_os = in_target.os;
|
||||
const in_abi = in_target.abi - 1; // skip over ZigLLVM_UnknownEnvironment
|
||||
const target: Target = if (in_target.is_native) .Native else .{
|
||||
.Cross = .{
|
||||
.arch = switch (enumInt(@TagType(Target.Arch), in_target.arch)) {
|
||||
.arm => .{ .arm = enumInt(Target.Arch.Arm32, in_target.sub_arch) },
|
||||
.armeb => .{ .armeb = enumInt(Target.Arch.Arm32, in_target.sub_arch) },
|
||||
.thumb => .{ .thumb = enumInt(Target.Arch.Arm32, in_target.sub_arch) },
|
||||
.thumbeb => .{ .thumbeb = enumInt(Target.Arch.Arm32, in_target.sub_arch) },
|
||||
.arch = switch (enumInt(@TagType(Target.Arch), in_arch)) {
|
||||
.arm => .{ .arm = enumInt(Target.Arch.Arm32, in_sub_arch) },
|
||||
.armeb => .{ .armeb = enumInt(Target.Arch.Arm32, in_sub_arch) },
|
||||
.thumb => .{ .thumb = enumInt(Target.Arch.Arm32, in_sub_arch) },
|
||||
.thumbeb => .{ .thumbeb = enumInt(Target.Arch.Arm32, in_sub_arch) },
|
||||
|
||||
.aarch64 => .{ .aarch64 = enumInt(Target.Arch.Arm64, in_target.sub_arch) },
|
||||
.aarch64_be => .{ .aarch64_be = enumInt(Target.Arch.Arm64, in_target.sub_arch) },
|
||||
.aarch64_32 => .{ .aarch64_32 = enumInt(Target.Arch.Arm64, in_target.sub_arch) },
|
||||
.aarch64 => .{ .aarch64 = enumInt(Target.Arch.Arm64, in_sub_arch) },
|
||||
.aarch64_be => .{ .aarch64_be = enumInt(Target.Arch.Arm64, in_sub_arch) },
|
||||
.aarch64_32 => .{ .aarch64_32 = enumInt(Target.Arch.Arm64, in_sub_arch) },
|
||||
|
||||
.kalimba => .{ .kalimba = enumInt(Target.Arch.Kalimba, in_target.sub_arch) },
|
||||
.kalimba => .{ .kalimba = enumInt(Target.Arch.Kalimba, in_sub_arch) },
|
||||
|
||||
.arc => .arc,
|
||||
.avr => .avr,
|
||||
@ -1091,8 +1095,8 @@ export fn stage2_detect_dynamic_linker(in_target: *const Stage2Target, out_ptr:
|
||||
.renderscript32 => .renderscript32,
|
||||
.renderscript64 => .renderscript64,
|
||||
},
|
||||
.os = enumInt(Target.Os, in_target.os),
|
||||
.abi = enumInt(Target.Abi, in_target.abi),
|
||||
.os = enumInt(Target.Os, in_os),
|
||||
.abi = enumInt(Target.Abi, in_abi),
|
||||
.cpu_features = in_target.cpu_features.cpu_features,
|
||||
},
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user