diff --git a/src-self-hosted/clang_options_data.zig b/src-self-hosted/clang_options_data.zig index 1e472f80a522b8e3e1cf09ec44a19ef442e1397e..d94a6fd002114cd9afd61ff7d69306d1373521b6 100644 --- a/src-self-hosted/clang_options_data.zig +++ b/src-self-hosted/clang_options_data.zig @@ -5614,7 +5614,14 @@ jspd1("L"), .psl = false, }, joinpd1("R"), -jspd1("T"), +.{ + .name = "T", + .syntax = .joined_or_separate, + .zig_equivalent = .linker_script, + .pd1 = true, + .pd2 = false, + .psl = false, +}, jspd1("U"), jspd1("V"), joinpd1("W"), diff --git a/src-self-hosted/stage2.zig b/src-self-hosted/stage2.zig index ff6ef47344a85e5ff314a5902a1074234d3cd071..a5ca6ccfa59a63a3558c8551151cc268658e0bdf 100644 --- a/src-self-hosted/stage2.zig +++ b/src-self-hosted/stage2.zig @@ -1278,6 +1278,7 @@ pub const ClangArgIterator = extern struct { optimize, debug, sanitize, + linker_script, }; fn init(argv: []const [*:0]const u8) ClangArgIterator { diff --git a/src/main.cpp b/src/main.cpp index 23a933d53bab25a54943515637801ca24fb7ef94..edeaad356c9c18bce918bd52b3c7d120c9da09f7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -704,6 +704,9 @@ static int main0(int argc, char **argv) { } } break; + case Stage2ClangArgLinkerScript: + linker_script = it.only_arg; + break; } } // Parse linker args diff --git a/src/stage2.h b/src/stage2.h index 8893b1e27b6905c7cf3fc73895621149f0b960a9..1aef0efe811142a24aa07ce4298e19806ad74707 100644 --- a/src/stage2.h +++ b/src/stage2.h @@ -340,6 +340,7 @@ enum Stage2ClangArg { Stage2ClangArgOptimize, Stage2ClangArgDebug, Stage2ClangArgSanitize, + Stage2ClangArgLinkerScript, }; // ABI warning diff --git a/tools/update_clang_options.zig b/tools/update_clang_options.zig index f65c89c2588c811f0eafc532fa2263f72df97929..6fd50de92ec97f57929250602cdb2a79819c382a 100644 --- a/tools/update_clang_options.zig +++ b/tools/update_clang_options.zig @@ -146,6 +146,10 @@ const known_options = [_]KnownOpt{ .name = "fsanitize", .ident = "sanitize", }, + .{ + .name = "T", + .ident = "linker_script", + }, }; const blacklisted_options = [_][]const u8{};