diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2022-06-20 17:51:20 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-20 17:51:20 +0200 |
| commit | 74ed7c1f0998e9dd89aa3f3480fff845afd6b422 (patch) | |
| tree | ce9809fd8d6f92bf0d502cd1f50e3d7a43fb6c64 /src/Compilation.zig | |
| parent | a97a39bea6022fb7449620384641cdfa70303f8d (diff) | |
| parent | 8752db3285060c6f2d85c0fa744c44094239a792 (diff) | |
| download | zig-74ed7c1f0998e9dd89aa3f3480fff845afd6b422.tar.gz zig-74ed7c1f0998e9dd89aa3f3480fff845afd6b422.zip | |
Merge pull request #11875 from motiejus/pagezero-size
[MachO] add -pagezero_size
Diffstat (limited to 'src/Compilation.zig')
| -rw-r--r-- | src/Compilation.zig | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig index 2646da2f6f..525835ce61 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -903,6 +903,8 @@ pub const InitOptions = struct { install_name: ?[]const u8 = null, /// (Darwin) Path to entitlements file entitlements: ?[]const u8 = null, + /// (Darwin) size of the __PAGEZERO segment + pagezero_size: ?u64 = null, }; fn addPackageTableToCacheHash( @@ -1742,6 +1744,7 @@ pub fn create(gpa: Allocator, options: InitOptions) !*Compilation { .native_darwin_sdk = options.native_darwin_sdk, .install_name = options.install_name, .entitlements = options.entitlements, + .pagezero_size = options.pagezero_size, }); errdefer bin_file.destroy(); comp.* = .{ @@ -2359,7 +2362,7 @@ fn prepareWholeEmitSubPath(arena: Allocator, opt_emit: ?EmitLoc) error{OutOfMemo /// to remind the programmer to update multiple related pieces of code that /// are in different locations. Bump this number when adding or deleting /// anything from the link cache manifest. -pub const link_hash_implementation_version = 3; +pub const link_hash_implementation_version = 4; fn addNonIncrementalStuffToCacheManifest(comp: *Compilation, man: *Cache.Manifest) !void { const gpa = comp.gpa; @@ -2369,7 +2372,7 @@ fn addNonIncrementalStuffToCacheManifest(comp: *Compilation, man: *Cache.Manifes defer arena_allocator.deinit(); const arena = arena_allocator.allocator(); - comptime assert(link_hash_implementation_version == 3); + comptime assert(link_hash_implementation_version == 4); if (comp.bin_file.options.module) |mod| { const main_zig_file = try mod.main_pkg.root_src_directory.join(arena, &[_][]const u8{ @@ -2474,6 +2477,7 @@ fn addNonIncrementalStuffToCacheManifest(comp: *Compilation, man: *Cache.Manifes man.hash.addListOfBytes(comp.bin_file.options.framework_dirs); man.hash.addListOfBytes(comp.bin_file.options.frameworks); try man.addOptionalFile(comp.bin_file.options.entitlements); + man.hash.addOptional(comp.bin_file.options.pagezero_size); // COFF specific stuff man.hash.addOptional(comp.bin_file.options.subsystem); |
