2024-08-17 14:16:16 +02:00
|
|
|
# Intermediate code generation
|
|
|
|
|
2024-08-27 14:21:50 +02:00
|
|
|
- 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.
|
2024-09-08 22:53:07 +02:00
|
|
|
|
|
|
|
# ELF generation
|
|
|
|
|
|
|
|
- Don't ignore relocations where the symbol is not defined in the symbol table.
|
|
|
|
Report an error about an undefined symbol.
|
2024-09-10 02:03:20 +02:00
|
|
|
- elfObject always uses LSB. It should decide the byte order based on the ELF
|
|
|
|
header.
|
2024-09-08 22:53:07 +02:00
|
|
|
- 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.
|