diff --git a/src/clang_options_data.zig b/src/clang_options_data.zig index 25cdd04f828a..b4bef06c9eaf 100644 --- a/src/clang_options_data.zig +++ b/src/clang_options_data.zig @@ -4867,8 +4867,22 @@ flagpd1("version"), .psl = false, }, flagpd1("w"), -sepd1("weak_framework"), -sepd1("weak_library"), +.{ + .name = "weak_framework", + .syntax = .separate, + .zig_equivalent = .weak_framework, + .pd1 = true, + .pd2 = false, + .psl = false, +}, +.{ + .name = "weak_library", + .syntax = .separate, + .zig_equivalent = .weak_library, + .pd1 = true, + .pd2 = false, + .psl = false, +}, sepd1("weak_reference_mismatches"), flagpd1("whatsloaded"), flagpd1("why_load"), @@ -6200,7 +6214,14 @@ jspd1("iquote"), .pd2 = true, .psl = false, }, -joinpd1("weak-l"), +.{ + .name = "weak-l", + .syntax = .joined, + .zig_equivalent = .weak_library, + .pd1 = true, + .pd2 = false, + .psl = false, +}, .{ .name = "Ofast", .syntax = .flag, diff --git a/src/main.zig b/src/main.zig index ae1b95a4aa0f..f13fe342ca05 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1625,6 +1625,8 @@ fn buildOutputType( .entry => { entry = it.only_arg; }, + .weak_library => try system_libs.put(it.only_arg, .{ .weak = true }), + .weak_framework => try frameworks.put(gpa, it.only_arg, .{ .weak = true }), } } // Parse linker args. @@ -4577,6 +4579,8 @@ pub const ClangArgIterator = struct { emit_llvm, sysroot, entry, + weak_library, + weak_framework, }; const Args = struct { diff --git a/tools/update_clang_options.zig b/tools/update_clang_options.zig index 0a8b00537c18..b003a1bbb9c6 100644 --- a/tools/update_clang_options.zig +++ b/tools/update_clang_options.zig @@ -432,6 +432,18 @@ const known_options = [_]KnownOpt{ .name = "e", .ident = "entry", }, + .{ + .name = "weak-l", + .ident = "weak_library", + }, + .{ + .name = "weak_library", + .ident = "weak_library", + }, + .{ + .name = "weak_framework", + .ident = "weak_framework", + }, }; const blacklisted_options = [_][]const u8{};