diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2022-06-20 10:13:39 +0200 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2022-06-20 13:39:33 +0200 |
| commit | ea9b7a0626c0191aa513549773c4d3b04e04de7c (patch) | |
| tree | ca93cad2889dc9fb1d0e9229e3ced706ecb3de73 /src/main.zig | |
| parent | 98138ba78c1540830a4fdb0537ed6ad5c7b57e7a (diff) | |
| download | zig-ea9b7a0626c0191aa513549773c4d3b04e04de7c.tar.gz zig-ea9b7a0626c0191aa513549773c4d3b04e04de7c.zip | |
macho: round down pagezero size to page size
If page aligned requested pagezero size is 0, skip generating
__PAGEZERO segment.
Add misc improvements to the pipeline, and correctly transfer the
requested __PAGEZERO size to the linker.
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig index bfd711fff7..cbba4a33b3 100644 --- a/src/main.zig +++ b/src/main.zig @@ -910,6 +910,13 @@ fn buildOutputType( install_name = args_iter.next() orelse { fatal("expected parameter after {s}", .{arg}); }; + } else if (mem.eql(u8, arg, "-pagezero_size")) { + const next_arg = args_iter.next() orelse { + fatal("expected parameter after {s}", .{arg}); + }; + pagezero_size = std.fmt.parseUnsigned(u64, next_arg, 0) catch |err| { + fatal("unable to parse '{s}': {s}", .{ arg, @errorName(err) }); + }; } else if (mem.eql(u8, arg, "-T") or mem.eql(u8, arg, "--script")) { linker_script = args_iter.next() orelse { fatal("expected parameter after {s}", .{arg}); |
