| ... | @@ -4,7 +4,7 @@ const Dir = std.Io.Dir; | ... | @@ -4,7 +4,7 @@ const Dir = std.Io.Dir; |
| 4 | const Allocator = std.mem.Allocator; | 4 | const Allocator = std.mem.Allocator; |
| 5 | const Cache = std.Build.Cache; | 5 | const Cache = std.Build.Cache; |
| 6 | | 6 | |
| 7 | const usage = "usage: incr-check <zig binary path> <input file> [--zig-lib-dir lib] [--debug-zcu] [--debug-dwarf] [--debug-link] [--preserve-tmp] [--zig-cc-binary /path/to/zig]"; | 7 | const usage = "usage: incr-check <zig binary path> <input file> [--zig-lib-dir lib] [--debug-log foo] [--preserve-tmp] [--zig-cc-binary /path/to/zig]"; |
| 8 | | 8 | |
| 9 | pub fn main() !void { | 9 | pub fn main() !void { |
| 10 | const fatal = std.process.fatal; | 10 | const fatal = std.process.fatal; |
| ... | @@ -23,27 +23,25 @@ pub fn main() !void { | ... | @@ -23,27 +23,25 @@ pub fn main() !void { |
| 23 | var opt_input_file_name: ?[]const u8 = null; | 23 | var opt_input_file_name: ?[]const u8 = null; |
| 24 | var opt_lib_dir: ?[]const u8 = null; | 24 | var opt_lib_dir: ?[]const u8 = null; |
| 25 | var opt_cc_zig: ?[]const u8 = null; | 25 | var opt_cc_zig: ?[]const u8 = null; |
| 26 | var debug_zcu = false; | | |
| 27 | var debug_dwarf = false; | | |
| 28 | var debug_link = false; | | |
| 29 | var preserve_tmp = false; | 26 | var preserve_tmp = false; |
| 30 | var enable_qemu: bool = false; | 27 | var enable_qemu: bool = false; |
| 31 | var enable_wine: bool = false; | 28 | var enable_wine: bool = false; |
| 32 | var enable_wasmtime: bool = false; | 29 | var enable_wasmtime: bool = false; |
| 33 | var enable_darling: bool = false; | 30 | var enable_darling: bool = false; |
| 34 | | 31 | |
| | 32 | var debug_log_args: std.ArrayList([]const u8) = .empty; |
| | 33 | |
| 35 | var arg_it = try std.process.argsWithAllocator(arena); | 34 | var arg_it = try std.process.argsWithAllocator(arena); |
| 36 | _ = arg_it.skip(); | 35 | _ = arg_it.skip(); |
| 37 | while (arg_it.next()) |arg| { | 36 | while (arg_it.next()) |arg| { |
| 38 | if (arg.len > 0 and arg[0] == '-') { | 37 | if (arg.len > 0 and arg[0] == '-') { |
| 39 | if (std.mem.eql(u8, arg, "--zig-lib-dir")) { | 38 | if (std.mem.eql(u8, arg, "--zig-lib-dir")) { |
| 40 | opt_lib_dir = arg_it.next() orelse fatal("expected arg after '--zig-lib-dir'\n{s}", .{usage}); | 39 | opt_lib_dir = arg_it.next() orelse fatal("expected arg after --zig-lib-dir\n{s}", .{usage}); |
| 41 | } else if (std.mem.eql(u8, arg, "--debug-zcu")) { | 40 | } else if (std.mem.eql(u8, arg, "--debug-log")) { |
| 42 | debug_zcu = true; | 41 | try debug_log_args.append( |
| 43 | } else if (std.mem.eql(u8, arg, "--debug-dwarf")) { | 42 | arena, |
| 44 | debug_dwarf = true; | 43 | arg_it.next() orelse fatal("expected arg after --debug-log\n{s}", .{usage}), |
| 45 | } else if (std.mem.eql(u8, arg, "--debug-link")) { | 44 | ); |
| 46 | debug_link = true; | | |
| 47 | } else if (std.mem.eql(u8, arg, "--preserve-tmp")) { | 45 | } else if (std.mem.eql(u8, arg, "--preserve-tmp")) { |
| 48 | preserve_tmp = true; | 46 | preserve_tmp = true; |
| 49 | } else if (std.mem.eql(u8, arg, "-fqemu")) { | 47 | } else if (std.mem.eql(u8, arg, "-fqemu")) { |
| ... | @@ -55,7 +53,7 @@ pub fn main() !void { | ... | @@ -55,7 +53,7 @@ pub fn main() !void { |
| 55 | } else if (std.mem.eql(u8, arg, "-fdarling")) { | 53 | } else if (std.mem.eql(u8, arg, "-fdarling")) { |
| 56 | enable_darling = true; | 54 | enable_darling = true; |
| 57 | } else if (std.mem.eql(u8, arg, "--zig-cc-binary")) { | 55 | } else if (std.mem.eql(u8, arg, "--zig-cc-binary")) { |
| 58 | opt_cc_zig = arg_it.next() orelse fatal("expect arg after '--zig-cc-binary'\n{s}", .{usage}); | 56 | opt_cc_zig = arg_it.next() orelse fatal("expected arg after --zig-cc-binary\n{s}", .{usage}); |
| 59 | } else { | 57 | } else { |
| 60 | fatal("unknown option '{s}'\n{s}", .{ arg, usage }); | 58 | fatal("unknown option '{s}'\n{s}", .{ arg, usage }); |
| 61 | } | 59 | } |
| ... | @@ -108,7 +106,7 @@ pub fn main() !void { | ... | @@ -108,7 +106,7 @@ pub fn main() !void { |
| 108 | | 106 | |
| 109 | const host = try std.zig.system.resolveTargetQuery(io, .{}); | 107 | const host = try std.zig.system.resolveTargetQuery(io, .{}); |
| 110 | | 108 | |
| 111 | const debug_log_verbose = debug_zcu or debug_dwarf or debug_link; | 109 | const debug_log_verbose = debug_log_args.items.len != 0; |
| 112 | | 110 | |
| 113 | for (case.targets) |target| { | 111 | for (case.targets) |target| { |
| 114 | const target_prog_node = node: { | 112 | const target_prog_node = node: { |
| ... | @@ -146,14 +144,8 @@ pub fn main() !void { | ... | @@ -146,14 +144,8 @@ pub fn main() !void { |
| 146 | .llvm => try child_args.appendSlice(arena, &.{ "-fllvm", "-flld" }), | 144 | .llvm => try child_args.appendSlice(arena, &.{ "-fllvm", "-flld" }), |
| 147 | .cbe => try child_args.appendSlice(arena, &.{ "-ofmt=c", "-lc" }), | 145 | .cbe => try child_args.appendSlice(arena, &.{ "-ofmt=c", "-lc" }), |
| 148 | } | 146 | } |
| 149 | if (debug_zcu) { | 147 | for (debug_log_args.items) |arg| { |
| 150 | try child_args.appendSlice(arena, &.{ "--debug-log", "zcu" }); | 148 | try child_args.appendSlice(arena, &.{ "--debug-log", arg }); |
| 151 | } | | |
| 152 | if (debug_dwarf) { | | |
| 153 | try child_args.appendSlice(arena, &.{ "--debug-log", "dwarf" }); | | |
| 154 | } | | |
| 155 | if (debug_link) { | | |
| 156 | try child_args.appendSlice(arena, &.{ "--debug-log", "link", "--debug-log", "link_state", "--debug-log", "link_relocs" }); | | |
| 157 | } | 149 | } |
| 158 | for (case.modules) |mod| { | 150 | for (case.modules) |mod| { |
| 159 | try child_args.appendSlice(arena, &.{ "--dep", mod.name }); | 151 | try child_args.appendSlice(arena, &.{ "--dep", mod.name }); |