Commit Graph
21 Commits
Author SHA1 Message Date
Nikita SmithandRyan Fleury 0aadf60359 update code block dividers 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 75d02f1c1e check symbol presence using stable name pointer 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury af00acd0f5 add missing symbol replacement logic 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 3d2b1e19e3 handle communal var vs regular non-comdat symbol 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury fb0e8d7579 fix crash on COMDAT folding communal variable 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury bf25b5b249 handle COMDAT Associative selection 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury bde11caf11 improve exact match selection 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury aafb980c6b prevent dropping of newly inserted symbol while selecting slot leader 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 3eb7debad5 check COMDAT symlink points to a defined symbol 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 3978181d02 check symbol type before patching section header 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 4aa6e6d132 store symbol links for COMDAT 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 73fe9d223a handle /ALTERNATENAME directive 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury f75cdd23d7 collapse linker input states into one state 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 7c071e7238 linker checkpoint 2025-06-25 10:53:22 -07:00
Nikita SmithandRyan Fleury 19a7ada1dc make export table with COFF obj writer,
partially converted import table to COFF obj writer
2025-06-25 10:53:21 -07:00
Nikita Smith 03a87fd4ee cleaned up a bit symbol replacement logic 2025-03-31 22:47:57 -07:00
Nikita Smith 153bbc7b1d pass over COFF layer
- updated naming convention on structs, enums, and macros to conform with code base style
- moved related structs closer to each other
- moved parser code to separate file
2025-01-20 19:31:52 -08:00
Nikita Smith 8e6a0ae4db errors and warnings fixes 2024-11-08 11:43:05 -08:00
Nikita Smith fad817fb9e apply communal variable rule for largest comdat only 2024-11-07 11:54:24 -08:00
Nikita Smith 4a2e1dd8d0 switch to thread safe hash trie map
Initial implementation of the symbol table allowed us to push symbols
from one thread at a time and required a wonky lock-step and spread out
logic for replacing symbols. And because it was a externally chained
hash table we had to guesstimate optimal capacity for small and big targets.
We erred on the side of larger capacity to prevent degradation and
rehashing, however this meant small targets had to spent unreasonable
amount of time memory allocing slots. With hash trie we can dynamically
scale up to 4 ^ 32 items and atomically replace symbols when needed. Neat!
2024-10-30 15:43:53 -07:00
Nikita Smith 932df7bf68 linker 2024-10-15 17:25:22 -07:00