From 69de1a51cd4f43e1d7a1fab3208b835b6841579d Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Sat, 22 Aug 2020 09:23:48 +0200 Subject: [PATCH] Add entry_point_command struct to Mach-O definitions The `entry_point_command` is a replacement for `thread_command`, and is used for main executables to specify the location of `main()` entry point. Signed-off-by: Jakub Konka --- lib/std/macho.zig | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/std/macho.zig b/lib/std/macho.zig index 99a8cd776c..7eb22c7179 100644 --- a/lib/std/macho.zig +++ b/lib/std/macho.zig @@ -40,6 +40,24 @@ pub const uuid_command = extern struct { uuid: [16]u8, }; +/// The entry_point_command is a replacement for thread_command. +/// It is used for main executables to specify the location (file offset) +/// of main(). If -stack_size was used at link time, the stacksize +/// field will contain the stack size needed for the main thread. +pub const entry_point_command = struct { + /// LC_MAIN only used in MH_EXECUTE filetypes + cmd: u32, + + /// sizeof(struct entry_point_command) + cmdsize: u32, + + /// file (__TEXT) offset of main() + entryoff: u64, + + /// if not zero, initial stack size + stacksize: u64, +}; + /// The symtab_command contains the offsets and sizes of the link-edit 4.3BSD /// "stab" style symbol table information as described in the header files /// and .