authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-04-26 15:05:18+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-04-26 15:05:18+02:00
log99a79f98ecfe79fc3d043662448f1a6b44d52c5c
treeb42e93fbf476261ecac62ec703d015b12ff4611a
parent573d9aab5e8b5eb21f5dfd21fc92f16985ff7e05
parent6a8228603c924f8e091c52b98f8043e02843c358
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #23572 from alexrp/zig-cc-static-dynamic


3 files changed, 29 insertions(+), 3 deletions(-)

src/clang_options_data.zig+9-2
......@@ -2610,7 +2610,14 @@ flagpd1("dwarf-ext-refs"),
26102610},
26112611sepd1("dylib_file"),
26122612flagpd1("dylinker"),
2613flagpd1("dynamic"),
2613.{
2614 .name = "dynamic",
2615 .syntax = .flag,
2616 .zig_equivalent = .dynamic,
2617 .pd1 = true,
2618 .pd2 = false,
2619 .psl = false,
2620},
26142621.{
26152622 .name = "dynamiclib",
26162623 .syntax = .flag,
......@@ -5698,7 +5705,7 @@ flagpd1("startfiles"),
56985705.{
56995706 .name = "static",
57005707 .syntax = .flag,
5701 .zig_equivalent = .other,
5708 .zig_equivalent = .static,
57025709 .pd1 = true,
57035710 .pd2 = true,
57045711 .psl = false,
src/main.zig+12-1
......@@ -2348,6 +2348,16 @@ fn buildOutputType(
23482348 fatal("unsupported -rtlib option '{s}'", .{it.only_arg});
23492349 }
23502350 },
2351 .static => {
2352 create_module.opts.link_mode = .static;
2353 lib_preferred_mode = .static;
2354 lib_search_strategy = .no_fallback;
2355 },
2356 .dynamic => {
2357 create_module.opts.link_mode = .dynamic;
2358 lib_preferred_mode = .dynamic;
2359 lib_search_strategy = .mode_first;
2360 },
23512361 }
23522362 }
23532363 // Parse linker args.
......@@ -4111,7 +4121,6 @@ fn createModule(
41114121 color,
41124122 ) catch |err| fatal("failed to resolve link inputs: {s}", .{@errorName(err)});
41134123
4114 if (create_module.windows_libs.count() != 0) create_module.opts.any_dyn_libs = true;
41154124 if (!create_module.opts.any_dyn_libs) for (create_module.link_inputs.items) |item| switch (item) {
41164125 .dso, .dso_exact => {
41174126 create_module.opts.any_dyn_libs = true;
......@@ -5978,6 +5987,8 @@ pub const ClangArgIterator = struct {
59785987 san_cov,
59795988 no_san_cov,
59805989 rtlib,
5990 static,
5991 dynamic,
59815992 };
59825993
59835994 const Args = struct {
tools/update_clang_options.zig+8
......@@ -572,6 +572,14 @@ const known_options = [_]KnownOpt{
572572 .name = "rtlib=",
573573 .ident = "rtlib",
574574 },
575 .{
576 .name = "static",
577 .ident = "static",
578 },
579 .{
580 .name = "dynamic",
581 .ident = "dynamic",
582 },
575583};
576584
577585const blacklisted_options = [_][]const u8{};