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 Smith and Ryan Fleury
cff6426741
null check for obj
2025-08-05 08:39:12 -07:00
Nikita Smith and Ryan 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 Smith and Ryan Fleury
dd715dacf7
assign COMDAT symlinks as soon as the symbol table is processed
2025-08-05 08:39:11 -07:00
Nikita Smith and Ryan Fleury
1fe85acff8
refactor include symbols to go through same code path as alternate name symbols
2025-08-05 08:39:11 -07:00
Nikita Smith and Ryan 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 Smith and Ryan 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 Smith and Ryan Fleury
07c7178770
filter out removed COMDATs from the PDB public symbols
2025-07-23 16:09:48 -07:00
Nikita Smith and Ryan Fleury
17d35cd327
add garbage collector for COMDAT sections
2025-07-23 16:09:48 -07:00
Nikita Smith and Ryan Fleury
a6b2cf64ba
WIP collect sections associations
2025-07-23 16:09:48 -07:00
Nikita Smith and Ryan 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 Smith and Ryan Fleury
7cd5a670e3
WIP factoring out symbol table fixups
2025-07-23 16:09:48 -07:00
Nikita Smith and Ryan Fleury
db52ba32e6
helper for profiling parallel fors
2025-07-16 13:54:58 -07:00
Nikita Smith and Ryan Fleury
17ca83697b
draft symbol table fixups to prepare for refactoring symbol table patching step
2025-06-25 10:53:25 -07:00
Nikita Smith and Ryan Fleury
08f2b749e8
omit file offset, file size, and hash on bss sections
2025-06-25 10:53:25 -07:00
Nikita Smith and Ryan Fleury
a954c2125c
merge fixups
2025-06-25 10:53:25 -07:00
Nikita Smith and Ryan Fleury
fcb06579a4
collapse symbol scope and symbol type enums
2025-06-25 10:53:25 -07:00
Nikita Smith and Ryan Fleury
b1723ce066
gracefully handle invalid libs
2025-06-25 10:53:25 -07:00
Nikita Smith and Ryan Fleury
153d78ec6a
unpoison memory-mapped files
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
790c95fc80
organization pass over symbol table files
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
7120d0c1a4
share memory mapped files
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
2fbaafa32c
parallel compute common block
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
a395398bdf
remove global variable for null section contrib
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
f5b19675cb
merge conflict
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
0aadf60359
update code block dividers
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
46663688e2
on read memory map files
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
16e72fd573
remove unused switch
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
6b3a63f474
correct task name for weak symbol patch
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
65095437b7
allow forward reference tag symbols
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
ba326924ee
test for relocation against removed COMDAT
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
ad3e6e0b79
pipe obj reads through IO layer
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
4c972c0fba
handle COMDAT symbols with non-zero section offset
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
422829b196
print align and debug sections
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
c7d6145ec9
print section contributions in RAD_MAP
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
1fde5a5120
linker natvis
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
06e844abaa
remove default delay bind table
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
048600260c
special case fill for bss contribs
2025-06-25 10:53:24 -07:00