summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-09-08 22:53:07 +0200
committerEugen Wissner <belka@caraus.de>2024-09-09 23:10:37 +0200
commitbb33423c31d7553e9d8f98967da4975385b35646 (patch)
treebb8f14172fa097b833cc38df3b428d61e00d080b /TODO
parent1cbbef19afcf997315431e3aa45f824fe8a8a0e7 (diff)
downloadelna-bb33423c31d7553e9d8f98967da4975385b35646.tar.gz
Create empty relocations section
Diffstat (limited to 'TODO')
-rw-r--r--TODO14
1 files changed, 14 insertions, 0 deletions
diff --git a/TODO b/TODO
index e676d1d..b358871 100644
--- a/TODO
+++ b/TODO
@@ -3,3 +3,17 @@
- Put symbol table in the reader monad and it to the stack
or use the state monad for everything.
- Add errors handling to the monad stack.
+
+# ELF generation
+
+- Don't ignore relocations where the symbol is not defined in the symbol table.
+ Report an error about an undefined symbol.
+- Since every function adds a section header use a state monad
+ in the generator and put the headers into the state to reduce the number of
+ returned values in the tuples.
+- Relocation section header relates to another section (e.g. .rel.text). The
+ index of that section should be passed together with collected relocations.
+- symstrtab creates 3 section headers and does some math to calculate the
+ offsets and names. Introducing the state monad can help to get rid of magic
+ numbers.
+- The final reutrn value of the state monad should be the Elf header.