summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSunil Nimmagadda <sunil@nimmagadda.net>2026-10-09 22:25:52 +0530
committerSunil Nimmagadda <sunil@nimmagadda.net>2026-10-09 22:25:52 +0530
commitd5fabbf2fe963db5096f156da7ab04568ea1ef06 (patch)
tree34178fef9a1a6e2f907c954ff59585882a0d64f1
parent3f3efc9e40ee07e6cf777f1e135e2219a24d0701 (diff)
Fixup rest of the ElfHeader fields.
-rw-r--r--mkelf.lua48
1 files changed, 35 insertions, 13 deletions
diff --git a/mkelf.lua b/mkelf.lua
index 1c2687a..b73f9d4 100644
--- a/mkelf.lua
+++ b/mkelf.lua
@@ -63,29 +63,51 @@ local Machine <const> = {
---@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 <const> = {
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 <const> = {
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
}