summaryrefslogtreecommitdiff
path: root/mkelf.lua
diff options
context:
space:
mode:
authorSunil Nimmagadda <sunil@nimmagadda.net>2026-10-16 10:44:06 +0530
committerSunil Nimmagadda <sunil@nimmagadda.net>2026-10-16 10:44:06 +0530
commit6e0784c79584726fe200eb2ab136c89bea012e62 (patch)
tree38777f085fbd38714bd06da5b236df22373c3243 /mkelf.lua
parent559b5ef7ab2f9f7668823d60a21389604698c913 (diff)
Leave the annotation name as is but rename variable for clarity.
Diffstat (limited to 'mkelf.lua')
-rw-r--r--mkelf.lua38
1 files changed, 25 insertions, 13 deletions
diff --git a/mkelf.lua b/mkelf.lua
index b362077..e09c772 100644
--- a/mkelf.lua
+++ b/mkelf.lua
@@ -136,7 +136,7 @@ local function ElfHeader_pack(hdr)
hdr.shstrndx)
end
----@class ProgramHeaders
+---@class ProgramHeader
---@field type integer
---@field flags integer
---@field offset integer
@@ -169,7 +169,7 @@ local SegmentFlags <const> = {
r = 0x3,
}
----@param hdr ProgramHeaders
+---@param hdr ProgramHeader
---@param endian Endian
---@param class Class
---@nodiscard
@@ -220,16 +220,28 @@ local function main()
shnum = 0,
shstrndx = 0,
}
- ---@type ProgramHeaders
- local pheader <const> = {
- type = SegmentType.dynamic,
- flags = SegmentFlags.x,
- offset = 0xf,
- vaddr = 0xff,
- paddr = 0xfff,
- filesz = 0xffff,
- memsz = 0xfffff,
- align = 1,
+ ---@type ProgramHeader[]
+ local phdrs <const> = {
+ {
+ type = SegmentType.dynamic,
+ flags = SegmentFlags.x,
+ offset = 0xf,
+ vaddr = 0xff,
+ paddr = 0xfff,
+ filesz = 0xffff,
+ memsz = 0xfffff,
+ align = 1,
+ },
+ {
+ type = SegmentType.dynamic,
+ flags = SegmentFlags.r,
+ offset = 0xa,
+ vaddr = 0xaa,
+ paddr = 0xaaa,
+ filesz = 0xaaaa,
+ memsz = 0xaaaaa,
+ align = 1,
+ }
}
local output = "a.out"
for i in ipairs(arg) do
@@ -242,7 +254,7 @@ local function main()
end
local f = assert(io.open(output, "w"))
f:write(ElfHeader_pack(header))
- f:write(ElfPHeader_pack(pheader, header.data, header.class))
+ f:write(ElfPHeader_pack(phdrs, header.data, header.class))
f:close()
end