aboutsummaryrefslogtreecommitdiff
path: root/src/link/Elf/Object.zig
AgeCommit message (Collapse)Author
2023-09-21compiler: move struct types into InternPool properAndrew Kelley
Structs were previously using `SegmentedList` to be given indexes, but were not actually backed by the InternPool arrays. After this, the only remaining uses of `SegmentedList` in the compiler are `Module.Decl` and `Module.Namespace`. Once those last two are migrated to become backed by InternPool arrays as well, we can introduce state serialization via writing these arrays to disk all at once. Unfortunately there are a lot of source code locations that touch the struct type API, so this commit is still work-in-progress. Once I get it compiling and passing the test suite, I can provide some interesting data points such as how it affected the InternPool memory size and performance comparison against master branch. I also couldn't resist migrating over a bunch of alignment API over to use the log2 Alignment type rather than a mismash of u32 and u64 byte units with 0 meaning something implicitly different and special at every location. Turns out you can do all the math you need directly on the log2 representation of alignments.
2023-09-13elf: parse archivesJakub Konka
2023-09-13elf: add u64 to usize casts where requiredJakub Konka
2023-09-12elf: clean up and unify symbol ref handling in relocsJakub Konka
Also, this lets us re-enable proper undefined symbols tracking.
2023-09-12elf: resolve and write objects to fileJakub Konka
2023-09-12elf: set output section index of a global when resolvingJakub Konka
2023-09-12elf: set output section index when parsing objectsJakub Konka
2023-09-12elf: add simplistic reloc scanning mechanismJakub Konka
2023-09-12elf: claim unresolved dangling symbols that can be claimedJakub Konka
2023-09-12elf: mark imports-exports; populate symtab with objectsJakub Konka
2023-09-12elf: add simplistic symbol resolutionJakub Konka
2023-09-12elf: start fixing symbol resolutionJakub Konka
2023-09-12elf: report undefined symbols in objectsJakub Konka
2023-09-11elf: add prelim impl of Object parsingJakub Konka