Commit Graph

356 Commits

Author SHA1 Message Date
Nikita Smith 5aff575feb discard empty symbol nodes 2025-09-16 10:31:01 -07:00
Nikita Smith b5a2bbaf54 early-out of default library searches 2025-09-16 10:31:01 -07:00
Nikita Smith d6596efac8 allow weak symbols to resolve to other weak symbols 2025-09-16 10:31:01 -07:00
Nikita Smith c47b35f635 update link symbol set logic to replace import address symbols with jump
thunk symbols
2025-09-16 10:31:01 -07:00
Nikita Smith c7c86cd360 do not report unresolved symbols in debug info sections 2025-09-16 10:31:01 -07:00
Nikita Smith b1609017c5 inline xxhash functions 2025-09-08 16:07:31 -07:00
Nikita Smith 98a05728b3 add check for whether weak symbol is resolved 2025-09-08 16:07:31 -07:00
Nikita Smith 24b427fe72 delete unused blake3 headers 2025-09-08 16:07:31 -07:00
Nikita Smith ee3832ea3b parallel for lib symbol search 2025-09-08 16:07:31 -07:00
Nikita Smith fb46d0bba4 sort symbol names in first member header 2025-09-08 16:07:31 -07:00
Nikita Smith 7193986305 binary search for strings 2025-09-08 16:07:31 -07:00
Nikita Smith 00536f7ea8 rewrite set linked symbol logic to respect declaration order in obj symbol table 2025-09-08 16:07:31 -07:00
Nikita Smith 8a22910d9b add "Links" log type for diagnosing linked lib members 2025-09-08 16:07:31 -07:00
Nikita Smith 8f749f4239 use global symbol table to detect duplicate imports 2025-09-08 16:07:31 -07:00
Nikita Smith 7cea036bc1 clean up pass over symbol table
- rename functions for consistency
- remove unused code
2025-09-08 16:07:31 -07:00
Nikita Smith 069d683690 fix crash when obj does not have debug info 2025-09-06 09:54:23 -07:00
Nikita Smith a6432cce8e improve unresolved symbol errors
- collect symbol references and print out objs that reference
  unresolved symbol
- print source file location of the references
2025-09-06 09:54:23 -07:00
Nikita Smith d92f45784d rename defined symbol to obj ref, as the symbol table no longer has
scopes and it makes no sense to refer to them that way
2025-09-06 09:54:22 -07:00
Nikita Smith 21163264d4 redirect entry point to CRT version if name is inferred 2025-09-06 09:54:22 -07:00
Nikita Smith f2ee135439 fix up symbols visibility 2025-09-05 15:19:31 -07:00
Nikita Smith 56c43ad614 clean up HashTable, removed unused command line switches, added
list wrapper for alt names, added natvis for HashTable, AltNameList,
MergeDirectiveList, and IncludeSymbolList
2025-09-05 15:19:31 -07:00
Nikita Smith 6a3d7e65f3 remove year from the copyright 2025-09-05 15:19:31 -07:00
Nikita Smith e88dc44f31 clean up debug leftovers 2025-09-05 15:19:31 -07:00
Nikita Smith 580303b0dd emit jump thunks for imports only when needed 2025-09-05 15:19:30 -07:00
Nikita Smith 43e81b934b move weak symbol replacer to the symbol table layer 2025-09-05 15:19:30 -07:00
Nikita Smith 8d75497bba do not set function pad min switch by default 2025-09-05 15:19:30 -07:00
Nikita Smith 0b0a2664d1 merge .idata with .rdata 2025-09-05 15:19:30 -07:00
Nikita Smith a64f8f4196 clean up over base strings in the linker layer 2025-09-05 15:19:30 -07:00
Nikita Smith 9f6da0ec63 simplify section removal and purging 2025-09-05 15:19:30 -07:00
Nikita Smith 43b35d43dc change lib sort to preserve input order 2025-09-05 15:19:30 -07:00
Nikita Smith 845e225e81 push alt name strings after they are copied to the config arena 2025-09-05 15:19:30 -07:00
Nikita Smith fdad3f4f58 natvis for lib member ref 2025-09-05 15:19:30 -07:00
Nikita Smith 1aac27095e WIP: reorder input and library search order to match MSVC behavior 2025-09-05 15:19:30 -07:00
Nikita Smith 240935f0cc WIP: use MSVC rule for COMDAT symbol replacement 2025-09-05 15:19:30 -07:00
Nikita Smith d9eb26a830 infer subsystem when only entry point is specified 2025-09-05 15:19:30 -07:00
Nikita Smith e1b7168605 update weak vs undefined replacement rule 2025-09-05 15:19:30 -07:00
Nikita Smith d7cdaa98b5 oops forgot to set enum type 2025-09-05 15:19:30 -07:00
Nikita Smith 971f1b9a2f ignore sign conversions in blake3 2025-09-05 15:19:30 -07:00
Nikita Smith 41fe8a7410 merge undefined and weak search passes 2025-09-05 15:19:30 -07:00
Nikita Smith b64e1dca9a WIP fix lib push order and sort new inputs 2025-09-05 15:19:30 -07:00
Nikita Smith 67e66dc26e WIP switching to serial library search-style, removed lib scope from
the symbol table
2025-09-05 15:19:30 -07:00
Nikita Smith 330c8ead38 move member queue-attempt flag from symbol to lib struct 2025-09-05 15:19:30 -07:00
Nikita Smith f1b22dbe27 change library to use compressed member offsets 2025-09-05 15:19:30 -07:00
Nikita Smith 89d496c855 fix replacement rule for weak search library vs undefined 2025-09-05 15:19:30 -07:00
Nikita Smith 0ceadff525 maintain input order of objs in PDB 2025-09-05 15:19:30 -07:00
Nikita Smith 0656020ab3 sync primitive fixes 2025-08-18 19:26:35 -07:00
Nikita Smith eee6a9c08a natvis for obj list 2025-08-18 19:09:32 -07:00
Nikita Smith b56ce72b7f test cases for weak vs weak 2025-08-18 19:09:32 -07:00
Nikita Smith 257914da2f handle alternate name directive after obj input 2025-08-18 19:09:32 -07:00
Nikita Smith b19f73b93a change unresolved weak symbol type to undefined 2025-08-18 19:09:32 -07:00