| ... | ... | @@ -679,44 +679,42 @@ fn stage2TargetParse( |
| 679 | 679 | mcpu_oz: ?[*:0]const u8, |
| 680 | 680 | dynamic_linker_oz: ?[*:0]const u8, |
| 681 | 681 | ) !void { |
| 682 | | const target: CrossTarget = if (zig_triple_oz) |zig_triple_z| blk: { |
| 683 | | const zig_triple = mem.toSliceConst(u8, zig_triple_z); |
| 684 | | const mcpu = if (mcpu_oz) |mcpu_z| mem.toSliceConst(u8, mcpu_z) else null; |
| 685 | | const dynamic_linker = if (dynamic_linker_oz) |dl_z| mem.toSliceConst(u8, dl_z) else null; |
| 686 | | var diags: CrossTarget.ParseOptions.Diagnostics = .{}; |
| 687 | | break :blk CrossTarget.parse(.{ |
| 688 | | .arch_os_abi = zig_triple, |
| 689 | | .cpu_features = mcpu, |
| 690 | | .dynamic_linker = dynamic_linker, |
| 691 | | .diagnostics = &diags, |
| 692 | | }) catch |err| switch (err) { |
| 693 | | error.UnknownCpuModel => { |
| 694 | | std.debug.warn("Unknown CPU: '{}'\nAvailable CPUs for architecture '{}':\n", .{ |
| 695 | | diags.cpu_name.?, |
| 696 | | @tagName(diags.arch.?), |
| 697 | | }); |
| 698 | | for (diags.arch.?.allCpuModels()) |cpu| { |
| 699 | | std.debug.warn(" {}\n", .{cpu.name}); |
| 700 | | } |
| 701 | | process.exit(1); |
| 702 | | }, |
| 703 | | error.UnknownCpuFeature => { |
| 704 | | std.debug.warn( |
| 705 | | \\Unknown CPU feature: '{}' |
| 706 | | \\Available CPU features for architecture '{}': |
| 707 | | \\ |
| 708 | | , .{ |
| 709 | | diags.unknown_feature_name, |
| 710 | | @tagName(diags.arch.?), |
| 711 | | }); |
| 712 | | for (diags.arch.?.allFeaturesList()) |feature| { |
| 713 | | std.debug.warn(" {}: {}\n", .{ feature.name, feature.description }); |
| 714 | | } |
| 715 | | process.exit(1); |
| 716 | | }, |
| 717 | | else => |e| return e, |
| 718 | | }; |
| 719 | | } else .{}; |
| 682 | const zig_triple = if (zig_triple_oz) |zig_triple_z| mem.toSliceConst(u8, zig_triple_z) else "native"; |
| 683 | const mcpu = if (mcpu_oz) |mcpu_z| mem.toSliceConst(u8, mcpu_z) else null; |
| 684 | const dynamic_linker = if (dynamic_linker_oz) |dl_z| mem.toSliceConst(u8, dl_z) else null; |
| 685 | var diags: CrossTarget.ParseOptions.Diagnostics = .{}; |
| 686 | const target: CrossTarget = CrossTarget.parse(.{ |
| 687 | .arch_os_abi = zig_triple, |
| 688 | .cpu_features = mcpu, |
| 689 | .dynamic_linker = dynamic_linker, |
| 690 | .diagnostics = &diags, |
| 691 | }) catch |err| switch (err) { |
| 692 | error.UnknownCpuModel => { |
| 693 | std.debug.warn("Unknown CPU: '{}'\nAvailable CPUs for architecture '{}':\n", .{ |
| 694 | diags.cpu_name.?, |
| 695 | @tagName(diags.arch.?), |
| 696 | }); |
| 697 | for (diags.arch.?.allCpuModels()) |cpu| { |
| 698 | std.debug.warn(" {}\n", .{cpu.name}); |
| 699 | } |
| 700 | process.exit(1); |
| 701 | }, |
| 702 | error.UnknownCpuFeature => { |
| 703 | std.debug.warn( |
| 704 | \\Unknown CPU feature: '{}' |
| 705 | \\Available CPU features for architecture '{}': |
| 706 | \\ |
| 707 | , .{ |
| 708 | diags.unknown_feature_name, |
| 709 | @tagName(diags.arch.?), |
| 710 | }); |
| 711 | for (diags.arch.?.allFeaturesList()) |feature| { |
| 712 | std.debug.warn(" {}: {}\n", .{ feature.name, feature.description }); |
| 713 | } |
| 714 | process.exit(1); |
| 715 | }, |
| 716 | else => |e| return e, |
| 717 | }; |
| 720 | 718 | |
| 721 | 719 | try stage1_target.fromTarget(target); |
| 722 | 720 | } |