diff --git a/src-self-hosted/clang_options_data.zig b/src-self-hosted/clang_options_data.zig index d94a6fd002..89cf29024f 100644 --- a/src-self-hosted/clang_options_data.zig +++ b/src-self-hosted/clang_options_data.zig @@ -96,7 +96,14 @@ sepd1("Zlinker-input"), .pd2 = true, .psl = false, }, -flagpd1("###"), +.{ + .name = "###", + .syntax = .flag, + .zig_equivalent = .verbose_cmds, + .pd1 = true, + .pd2 = false, + .psl = false, +}, .{ .name = "Brepro", .syntax = .flag, diff --git a/src-self-hosted/stage2.zig b/src-self-hosted/stage2.zig index a5ca6ccfa5..03cdcc5b08 100644 --- a/src-self-hosted/stage2.zig +++ b/src-self-hosted/stage2.zig @@ -1279,6 +1279,7 @@ pub const ClangArgIterator = extern struct { debug, sanitize, linker_script, + verbose_cmds, }; fn init(argv: []const [*:0]const u8) ClangArgIterator { diff --git a/src/main.cpp b/src/main.cpp index b90d2bbc8c..dd7cdead6c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -708,6 +708,10 @@ static int main0(int argc, char **argv) { case Stage2ClangArgLinkerScript: linker_script = it.only_arg; break; + case Stage2ClangArgVerboseCmds: + verbose_cc = true; + verbose_link = true; + break; } } // Parse linker args diff --git a/src/stage2.h b/src/stage2.h index 1aef0efe81..00a3b9451e 100644 --- a/src/stage2.h +++ b/src/stage2.h @@ -341,6 +341,7 @@ enum Stage2ClangArg { Stage2ClangArgDebug, Stage2ClangArgSanitize, Stage2ClangArgLinkerScript, + Stage2ClangArgVerboseCmds, }; // ABI warning diff --git a/tools/update_clang_options.zig b/tools/update_clang_options.zig index 6fd50de92e..97be4978d2 100644 --- a/tools/update_clang_options.zig +++ b/tools/update_clang_options.zig @@ -150,6 +150,10 @@ const known_options = [_]KnownOpt{ .name = "T", .ident = "linker_script", }, + .{ + .name = "###", + .ident = "verbose_cmds", + }, }; const blacklisted_options = [_][]const u8{};