Commit Graph
21 Commits
Author SHA1 Message Date
Nikita SmithandRyan Fleury 58b5b3d92d search chunks only grow while resolving libraries, so revisit only symbols appended since this library's last search 2026-07-27 14:47:20 -07:00
Nikita Smith 1f51c6f25b ubsan cleanup 2026-02-13 20:59:26 -08:00
Nikita Smith 1c0e9030fa move lib member queue state to the link step and release it after link step is done 2026-01-20 15:27:31 -08:00
Nikita Smith 0c4009c328 bugfix import member queue detection 2026-01-16 18:53:03 -08:00
Nikita Smith 0c0b7ac6d3 bugfix import linking 2026-01-15 18:25:46 -08:00
Nikita SmithandRyan Fleury 630c3b42a7 do lightweight import gathering while resolving links 2025-09-17 15:21:37 -07:00
Nikita SmithandRyan Fleury fb46d0bba4 sort symbol names in first member header 2025-09-08 16:07:31 -07:00
Nikita SmithandRyan Fleury 6a3d7e65f3 remove year from the copyright 2025-09-05 15:19:31 -07:00
Nikita SmithandRyan Fleury 43b35d43dc change lib sort to preserve input order 2025-09-05 15:19:30 -07:00
Nikita SmithandRyan Fleury 1aac27095e WIP: reorder input and library search order to match MSVC behavior 2025-09-05 15:19:30 -07:00
Nikita SmithandRyan Fleury b64e1dca9a WIP fix lib push order and sort new inputs 2025-09-05 15:19:30 -07:00
Nikita SmithandRyan Fleury 330c8ead38 move member queue-attempt flag from symbol to lib struct 2025-09-05 15:19:30 -07:00
Nikita SmithandRyan Fleury f1b22dbe27 change library to use compressed member offsets 2025-09-05 15:19:30 -07:00
Nikita SmithandRyan Fleury b1723ce066 gracefully handle invalid libs 2025-06-25 10:53:25 -07:00
Nikita SmithandRyan Fleury 0aadf60359 update code block dividers 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 3a7afcd80c replace linker lib writer with one from COFF 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 SmithandRyan Fleury 3a2bb318c7 make import lib objs with COFF obj writer 2025-06-25 10:53:21 -07: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