From ea9b7a0626c0191aa513549773c4d3b04e04de7c Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Mon, 20 Jun 2022 10:13:39 +0200 Subject: 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. --- src/Compilation.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/Compilation.zig') diff --git a/src/Compilation.zig b/src/Compilation.zig index 98d69ee78e..525835ce61 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -1744,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.* = .{ @@ -2476,7 +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); - if (comp.bin_file.options.pagezero_size) |value| man.hash.add(value); + man.hash.addOptional(comp.bin_file.options.pagezero_size); // COFF specific stuff man.hash.addOptional(comp.bin_file.options.subsystem); -- cgit v1.2.3