aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-06-20 17:51:20 +0200
committerGitHub <noreply@github.com>2022-06-20 17:51:20 +0200
commit74ed7c1f0998e9dd89aa3f3480fff845afd6b422 (patch)
treece9809fd8d6f92bf0d502cd1f50e3d7a43fb6c64 /src/Compilation.zig
parenta97a39bea6022fb7449620384641cdfa70303f8d (diff)
parent8752db3285060c6f2d85c0fa744c44094239a792 (diff)
downloadzig-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.zig8
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);