authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-02-17 16:49:30-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-02-17 16:49:30-05:00
log8fe636dafdc0e4dfeb0e3913148b21df8c066443
tree9658adfd99ba78a16e6f50afd6efab03fed5e0fa
parent9b02cab3dacc40fdda2b0bd493f33bc7d17b326d
signaturelock-open Commit is signed but in an unrecognized format.

fix ABI mismatch of ZigTarget in stage2 glue code


1 files changed, 15 insertions(+), 11 deletions(-)

src-self-hosted/stage2.zig+15-11
...@@ -1034,19 +1034,23 @@ const Stage2GLibCVersion = extern struct {...@@ -1034,19 +1034,23 @@ const Stage2GLibCVersion = extern struct {
10341034
1035// ABI warning1035// ABI warning
1036export fn stage2_detect_dynamic_linker(in_target: *const Stage2Target, out_ptr: *[*:0]u8, out_len: *usize) Error {1036export fn stage2_detect_dynamic_linker(in_target: *const Stage2Target, out_ptr: *[*:0]u8, out_len: *usize) Error {
1037 const in_arch = in_target.arch - 1; // skip over ZigLLVM_UnknownArch
1038 const in_sub_arch = in_target.sub_arch - 1; // skip over ZigLLVM_NoSubArch
1039 const in_os = in_target.os;
1040 const in_abi = in_target.abi - 1; // skip over ZigLLVM_UnknownEnvironment
1037 const target: Target = if (in_target.is_native) .Native else .{1041 const target: Target = if (in_target.is_native) .Native else .{
1038 .Cross = .{1042 .Cross = .{
1039 .arch = switch (enumInt(@TagType(Target.Arch), in_target.arch)) {1043 .arch = switch (enumInt(@TagType(Target.Arch), in_arch)) {
1040 .arm => .{ .arm = enumInt(Target.Arch.Arm32, in_target.sub_arch) },1044 .arm => .{ .arm = enumInt(Target.Arch.Arm32, in_sub_arch) },
1041 .armeb => .{ .armeb = enumInt(Target.Arch.Arm32, in_target.sub_arch) },1045 .armeb => .{ .armeb = enumInt(Target.Arch.Arm32, in_sub_arch) },
1042 .thumb => .{ .thumb = enumInt(Target.Arch.Arm32, in_target.sub_arch) },1046 .thumb => .{ .thumb = enumInt(Target.Arch.Arm32, in_sub_arch) },
1043 .thumbeb => .{ .thumbeb = enumInt(Target.Arch.Arm32, in_target.sub_arch) },1047 .thumbeb => .{ .thumbeb = enumInt(Target.Arch.Arm32, in_sub_arch) },
10441048
1045 .aarch64 => .{ .aarch64 = enumInt(Target.Arch.Arm64, in_target.sub_arch) },1049 .aarch64 => .{ .aarch64 = enumInt(Target.Arch.Arm64, in_sub_arch) },
1046 .aarch64_be => .{ .aarch64_be = enumInt(Target.Arch.Arm64, in_target.sub_arch) },1050 .aarch64_be => .{ .aarch64_be = enumInt(Target.Arch.Arm64, in_sub_arch) },
1047 .aarch64_32 => .{ .aarch64_32 = enumInt(Target.Arch.Arm64, in_target.sub_arch) },1051 .aarch64_32 => .{ .aarch64_32 = enumInt(Target.Arch.Arm64, in_sub_arch) },
10481052
1049 .kalimba => .{ .kalimba = enumInt(Target.Arch.Kalimba, in_target.sub_arch) },1053 .kalimba => .{ .kalimba = enumInt(Target.Arch.Kalimba, in_sub_arch) },
10501054
1051 .arc => .arc,1055 .arc => .arc,
1052 .avr => .avr,1056 .avr => .avr,
...@@ -1091,8 +1095,8 @@ export fn stage2_detect_dynamic_linker(in_target: *const Stage2Target, out_ptr:...@@ -1091,8 +1095,8 @@ export fn stage2_detect_dynamic_linker(in_target: *const Stage2Target, out_ptr:
1091 .renderscript32 => .renderscript32,1095 .renderscript32 => .renderscript32,
1092 .renderscript64 => .renderscript64,1096 .renderscript64 => .renderscript64,
1093 },1097 },
1094 .os = enumInt(Target.Os, in_target.os),1098 .os = enumInt(Target.Os, in_os),
1095 .abi = enumInt(Target.Abi, in_target.abi),1099 .abi = enumInt(Target.Abi, in_abi),
1096 .cpu_features = in_target.cpu_features.cpu_features,1100 .cpu_features = in_target.cpu_features.cpu_features,
1097 },1101 },
1098 };1102 };