| author | |
| committer | |
| log | 6a8228603c924f8e091c52b98f8043e02843c358 |
| tree | c5147dcbdd0e3c4103075924ba6ea70daac3c665 |
| parent | 715984340b247a27469a3e789843aed3220dd748 |
| signature |
Before:
❯ zig cc main.c -target x86_64-linux-musl && musl-ldd ./a.out
musl-ldd: ./a.out: Not a valid dynamic program
❯ zig cc main.c -target x86_64-linux-musl -static && musl-ldd ./a.out
musl-ldd: ./a.out: Not a valid dynamic program
❯ zig cc main.c -target x86_64-linux-musl -dynamic && musl-ldd ./a.out
musl-ldd: ./a.out: Not a valid dynamic program
After:
❯ zig cc main.c -target x86_64-linux-musl && musl-ldd ./a.out
musl-ldd: ./a.out: Not a valid dynamic program
❯ zig cc main.c -target x86_64-linux-musl -static && musl-ldd ./a.out
musl-ldd: ./a.out: Not a valid dynamic program
❯ zig cc main.c -target x86_64-linux-musl -dynamic && musl-ldd ./a.out
/lib/ld-musl-x86_64.so.1 (0x72c10019e000)
libc.so => /lib/ld-musl-x86_64.so.1 (0x72c10019e000)
Closes #11909.3 files changed, 29 insertions(+), 2 deletions(-)
src/clang_options_data.zig+9-2| ... | ... | @@ -2610,7 +2610,14 @@ flagpd1("dwarf-ext-refs"), |
| 2610 | 2610 | }, |
| 2611 | 2611 | sepd1("dylib_file"), |
| 2612 | 2612 | flagpd1("dylinker"), |
| 2613 | flagpd1("dynamic"), | |
| 2613 | .{ | |
| 2614 | .name = "dynamic", | |
| 2615 | .syntax = .flag, | |
| 2616 | .zig_equivalent = .dynamic, | |
| 2617 | .pd1 = true, | |
| 2618 | .pd2 = false, | |
| 2619 | .psl = false, | |
| 2620 | }, | |
| 2614 | 2621 | .{ |
| 2615 | 2622 | .name = "dynamiclib", |
| 2616 | 2623 | .syntax = .flag, |
| ... | ... | @@ -5698,7 +5705,7 @@ flagpd1("startfiles"), |
| 5698 | 5705 | .{ |
| 5699 | 5706 | .name = "static", |
| 5700 | 5707 | .syntax = .flag, |
| 5701 | .zig_equivalent = .other, | |
| 5708 | .zig_equivalent = .static, | |
| 5702 | 5709 | .pd1 = true, |
| 5703 | 5710 | .pd2 = true, |
| 5704 | 5711 | .psl = false, |
src/main.zig+12| ... | ... | @@ -2338,6 +2338,16 @@ fn buildOutputType( |
| 2338 | 2338 | fatal("unsupported -rtlib option '{s}'", .{it.only_arg}); |
| 2339 | 2339 | } |
| 2340 | 2340 | }, |
| 2341 | .static => { | |
| 2342 | create_module.opts.link_mode = .static; | |
| 2343 | lib_preferred_mode = .static; | |
| 2344 | lib_search_strategy = .no_fallback; | |
| 2345 | }, | |
| 2346 | .dynamic => { | |
| 2347 | create_module.opts.link_mode = .dynamic; | |
| 2348 | lib_preferred_mode = .dynamic; | |
| 2349 | lib_search_strategy = .mode_first; | |
| 2350 | }, | |
| 2341 | 2351 | } |
| 2342 | 2352 | } |
| 2343 | 2353 | // Parse linker args. |
| ... | ... | @@ -5954,6 +5964,8 @@ pub const ClangArgIterator = struct { |
| 5954 | 5964 | san_cov, |
| 5955 | 5965 | no_san_cov, |
| 5956 | 5966 | rtlib, |
| 5967 | static, | |
| 5968 | dynamic, | |
| 5957 | 5969 | }; |
| 5958 | 5970 | |
| 5959 | 5971 | const Args = struct { |
tools/update_clang_options.zig+8| ... | ... | @@ -572,6 +572,14 @@ const known_options = [_]KnownOpt{ |
| 572 | 572 | .name = "rtlib=", |
| 573 | 573 | .ident = "rtlib", |
| 574 | 574 | }, |
| 575 | .{ | |
| 576 | .name = "static", | |
| 577 | .ident = "static", | |
| 578 | }, | |
| 579 | .{ | |
| 580 | .name = "dynamic", | |
| 581 | .ident = "dynamic", | |
| 582 | }, | |
| 575 | 583 | }; |
| 576 | 584 | |
| 577 | 585 | const blacklisted_options = [_][]const u8{}; |