diff options
| author | Motiejus Jakštys <motiejus@jakstys.lt> | 2022-05-09 09:44:14 +0300 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-09-08 22:30:32 -0400 |
| commit | a833bdcd7e6fcfee6e9cc33a3f7de78b16a36941 (patch) | |
| tree | 5b45c1662789e9743d328356167b3dce72495bfd /src/main.zig | |
| parent | ab4b26d8a6a36ccf75af8e25f0a1f7b88063b76f (diff) | |
| download | zig-a833bdcd7e6fcfee6e9cc33a3f7de78b16a36941.tar.gz zig-a833bdcd7e6fcfee6e9cc33a3f7de78b16a36941.zip | |
[ld] add --print-* for diagnostics
This adds the following for passthrough to lld:
- `--print-gc-sections`
- `--print-icf-sections`
- `--print-map`
I am not adding these to the cache manifest, since it does not change
the produced artifacts.
Tested with an example from #11398: it successfully prints the resulting
map and the GC'd sections.
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig index 6263a6a402..039dacc877 100644 --- a/src/main.zig +++ b/src/main.zig @@ -691,6 +691,9 @@ fn buildOutputType( var linker_max_memory: ?u64 = null; var linker_shared_memory: bool = false; var linker_global_base: ?u64 = null; + var linker_print_gc_sections: bool = false; + var linker_print_icf_sections: bool = false; + var linker_print_map: bool = false; var linker_z_nodelete = false; var linker_z_notext = false; var linker_z_defs = false; @@ -1816,6 +1819,12 @@ fn buildOutputType( linker_gc_sections = true; } else if (mem.eql(u8, arg, "--no-gc-sections")) { linker_gc_sections = false; + } else if (mem.eql(u8, arg, "--print-gc-sections")) { + linker_print_gc_sections = true; + } else if (mem.eql(u8, arg, "--print-icf-sections")) { + linker_print_icf_sections = true; + } else if (mem.eql(u8, arg, "--print-map")) { + linker_print_map = true; } else if (mem.eql(u8, arg, "--allow-shlib-undefined") or mem.eql(u8, arg, "-allow-shlib-undefined")) { @@ -2911,6 +2920,9 @@ fn buildOutputType( .linker_initial_memory = linker_initial_memory, .linker_max_memory = linker_max_memory, .linker_shared_memory = linker_shared_memory, + .linker_print_gc_sections = linker_print_gc_sections, + .linker_print_icf_sections = linker_print_icf_sections, + .linker_print_map = linker_print_map, .linker_global_base = linker_global_base, .linker_export_symbol_names = linker_export_symbol_names.items, .linker_z_nodelete = linker_z_nodelete, |
