From d5fabbf2fe963db5096f156da7ab04568ea1ef06 Mon Sep 17 00:00:00 2001 From: Sunil Nimmagadda Date: Fri, 9 Oct 2026 22:25:52 +0530 Subject: Fixup rest of the ElfHeader fields. --- mkelf.lua | 48 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 13 deletions(-) (limited to 'mkelf.lua') diff --git a/mkelf.lua b/mkelf.lua index 1c2687a..b73f9d4 100644 --- a/mkelf.lua +++ b/mkelf.lua @@ -63,29 +63,51 @@ local Machine = { ---@field magic ElfMagic ---@field class Class ---@field data Endian ----@field version integer +---@field ident_version integer ---@field osabi Osabi ---@field abiversion integer ---@field type Type ---@field machine Machine +---@field version integer +---@field entry integer +---@field phoff integer +---@field shoff integer +---@field flags integer +---@field ehsize integer +---@field phentsize integer +---@field phnum integer +---@field shentsize integer +---@field shnum integer +---@field shstrndx integer ---@type ElfHeader local header = { magic = { 0x7f, 0x45, 0x4c, 0x46 }, class = Class.bit32, data = Endian.big, - version = version, + ident_version = version, osabi = Osabi.netbsd, abiversion = 0, type = Type.exec, machine = Machine.x86, + version = version, + entry = 0, + phoff = 0x34, + shoff = 0xff, + flags = 0, + ehsize = 52, + phentsize = 0x20, + phnum = 0, + shentsize = 0x28, + shnum = 0, + shstrndx = 0, pack = function(self) local ident = string.pack("BBBBBBBBBxxxxxxx", self.magic[1], self.magic[2], self.magic[3], self.magic[4], self.class, self.data, - self.version, + self.ident_version, self.osabi, self.abiversion) local e = (self.data == Endian.big) and ">" or "<" @@ -96,16 +118,16 @@ local header = { self.type, self.machine, self.version, - 0, - 0x34, - 0xff, - 0, - 52, - 0x20, - 0, - 0x28, - 0, - 0) + self.entry, + self.phoff, + self.shoff, + self.flags, + self.ehsize, + self.phentsize, + self.phnum, + self.shentsize, + self.shnum, + self.shstrndx) return ident .. hdr end } -- cgit v1.3