diff options
Diffstat (limited to 'test/link')
| -rw-r--r-- | test/link/pagezero/build.zig | 34 | ||||
| -rw-r--r-- | test/link/pagezero/main.c | 3 |
2 files changed, 37 insertions, 0 deletions
diff --git a/test/link/pagezero/build.zig b/test/link/pagezero/build.zig new file mode 100644 index 0000000000..65129008a4 --- /dev/null +++ b/test/link/pagezero/build.zig @@ -0,0 +1,34 @@ +const std = @import("std"); +const Builder = std.build.Builder; + +pub fn build(b: *Builder) void { + const mode = b.standardReleaseOptions(); + + const test_step = b.step("test", "Test"); + + const exe = b.addExecutable("main", null); + exe.setBuildMode(mode); + exe.addCSourceFile("main.c", &.{}); + exe.linkLibC(); + exe.pagezero_size = 0x4000; + + var name: [16]u8 = undefined; + std.mem.set(u8, &name, 0); + std.mem.copy(u8, &name, "__PAGEZERO"); + const pagezero_seg = std.macho.segment_command_64{ + .cmdsize = @sizeOf(std.macho.segment_command_64), + .segname = name, + .vmaddr = 0, + .vmsize = 0x4000, + .fileoff = 0, + .filesize = 0, + .maxprot = 0, + .initprot = 0, + .nsects = 0, + .flags = 0, + }; + const check_file = std.build.CheckFileStep.create(b, exe.getOutputSource(), &[_][]const u8{std.mem.asBytes(&pagezero_seg)}); + + test_step.dependOn(b.getInstallStep()); + test_step.dependOn(&check_file.step); +} diff --git a/test/link/pagezero/main.c b/test/link/pagezero/main.c new file mode 100644 index 0000000000..ca68d24cc7 --- /dev/null +++ b/test/link/pagezero/main.c @@ -0,0 +1,3 @@ +int main(int argc, char* argv[]) { + return 0; +} |
