Commit Graph
288 Commits
Author SHA1 Message Date
Nikita Smith 9a1f96bda2 progress on /opt:ref
Link the debugger and strip unreferenced sections
TODO: Mark referenced undefined symbols for unresolved symbol reporting
2025-08-07 17:36:11 -07:00
Nikita SmithandRyan Fleury cff6426741 null check for obj 2025-08-05 08:39:12 -07:00
Nikita SmithandRyan Fleury d3dedd8bef simplifying symbol table scopes
Linker cannot register extern import symbols initially because
the import object files are not available until all other object files are
resolved. To work around this, we create a stub weak symbol and assign
it to each import symbol. This allows linker to proceed. Once the import
object files are generated, linker replaces the stub symbol with
the actual ones from the import objects.
2025-08-05 08:39:12 -07:00
Nikita SmithandRyan Fleury dd715dacf7 assign COMDAT symlinks as soon as the symbol table is processed 2025-08-05 08:39:11 -07:00
Nikita SmithandRyan Fleury 1fe85acff8 refactor include symbols to go through same code path as alternate name symbols 2025-08-05 08:39:11 -07:00
Nikita SmithandRyan Fleury c1958809eb make use of undocumented anti-dependency search property on weak symbols
to implement alternate name using weak symbols
2025-08-05 08:39:11 -07:00
Nikita SmithandRyan Fleury 8d246d0c6a pass down to config obj; preparing to refactor alternate name out of the symbol table 2025-08-05 08:39:11 -07:00
Nikita Smith 92e6069104 collapse obj directive directive code paths 2025-07-28 20:07:56 -07:00
Nikita Smith 18f83521e4 clean up pass over directives handler; preparing to collapse code paths 2025-07-28 20:07:56 -07:00
Nikita Smith 0b904f4e24 extract function size infer logic into its own block 2025-07-28 20:07:56 -07:00
Nikita Smith 7be9df0e90 move directive section gather logic to obj layer 2025-07-28 20:07:56 -07:00
Nikita Smith 72e073e4e6 fix typo that broke /NODEFAULTLIB usage 2025-07-28 20:07:56 -07:00
Nikita Smith b3efce4b9a better place for this helper function 2025-07-28 20:07:56 -07:00
Nikita Smith 1e1d903878 store library pointer in the obj instead of path; required for prioritized symbol lookup implementation 2025-07-28 20:07:56 -07:00
Nikita Smith 4cb09e73c2 remove warning pragma 2025-07-28 20:07:56 -07:00
Nikita Smith 0b37fac81c move delay load helper to mscrt layer 2025-07-28 20:07:55 -07:00
Nikita Smith 6fda20ec9c helper script for extracting obj paths out of pdb 2025-07-24 17:44:13 -07:00
Nikita Smith 54fad8a89c validate strong symbol interp type 2025-07-24 17:32:05 -07:00
Nikita Smith 2d52e274ce remove debug code 2025-07-24 17:32:05 -07:00
Nikita Smith cc6e56eee1 do full path check for thin objs only 2025-07-24 17:32:05 -07:00
Nikita SmithandRyan Fleury 07c7178770 filter out removed COMDATs from the PDB public symbols 2025-07-23 16:09:48 -07:00
Nikita SmithandRyan Fleury 17d35cd327 add garbage collector for COMDAT sections 2025-07-23 16:09:48 -07:00
Nikita SmithandRyan Fleury a6b2cf64ba WIP collect sections associations 2025-07-23 16:09:48 -07:00
Nikita SmithandRyan Fleury d32667546d factor out weak symbol resolution logic and apply it to the symbol table
when building link context
2025-07-23 16:09:48 -07:00
Nikita SmithandRyan Fleury 7cd5a670e3 WIP factoring out symbol table fixups 2025-07-23 16:09:48 -07:00
Nikita SmithandRyan Fleury db52ba32e6 helper for profiling parallel fors 2025-07-16 13:54:58 -07:00
Nikita SmithandRyan Fleury 17ca83697b draft symbol table fixups to prepare for refactoring symbol table patching step 2025-06-25 10:53:25 -07:00
Nikita SmithandRyan Fleury 08f2b749e8 omit file offset, file size, and hash on bss sections 2025-06-25 10:53:25 -07:00
Nikita SmithandRyan Fleury a954c2125c merge fixups 2025-06-25 10:53:25 -07:00
Nikita SmithandRyan Fleury fcb06579a4 collapse symbol scope and symbol type enums 2025-06-25 10:53:25 -07:00
Nikita SmithandRyan Fleury b1723ce066 gracefully handle invalid libs 2025-06-25 10:53:25 -07:00
Nikita SmithandRyan Fleury 153d78ec6a unpoison memory-mapped files 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 790c95fc80 organization pass over symbol table files 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 7120d0c1a4 share memory mapped files 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 2fbaafa32c parallel compute common block 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury a395398bdf remove global variable for null section contrib 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury f5b19675cb merge conflict 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 0aadf60359 update code block dividers 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 46663688e2 on read memory map files 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 16e72fd573 remove unused switch 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 6b3a63f474 correct task name for weak symbol patch 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 65095437b7 allow forward reference tag symbols 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury ba326924ee test for relocation against removed COMDAT 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury ad3e6e0b79 pipe obj reads through IO layer 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 4c972c0fba handle COMDAT symbols with non-zero section offset 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 422829b196 print align and debug sections 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury c7d6145ec9 print section contributions in RAD_MAP 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 1fde5a5120 linker natvis 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 06e844abaa remove default delay bind table 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 048600260c special case fill for bss contribs 2025-06-25 10:53:24 -07:00