Nikita Smith
1d6eae2b18
minor fixes for gathering library members
2025-08-12 19:03:51 -07:00
Nikita Smith
b50f309422
modified member queue logic to prioritize libs where pull-in reference
...
symbol is declared
2025-08-11 23:28:03 -07:00
Nikita Smith
829a35430c
add flag to exclude objs from debug info input
2025-08-11 02:49:26 -07:00
Nikita Smith
702fd74b23
minor cleanup in obj initer
2025-08-10 21:41:39 -07:00
Nikita Smith
2b02f5cec6
lifetime fixes
...
- fully serialize the lib because we cannot guarantee that its members
will have the same lifetime as the serialized lib
- put import stub symbols on the symbol table arena
2025-08-10 21:35:33 -07:00
Nikita Smith
7466da1479
mark referenced symbols as live for unresolved-symbol detection
2025-08-08 15:54:21 -07:00
Nikita Smith
9893a8135d
fix crash when linking undefined weak symbol
2025-08-08 13:35:47 -07:00
Nikita Smith
137eb6403a
fix crash when relocation points to an undefined section symbol
2025-08-07 22:40:20 -07:00
Nikita Smith
4f6f9d61ed
inline function for replacing weak symbols with default symbol
2025-08-07 17:41:45 -07:00
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
cff6426741
null check for obj
2025-08-05 08:39:12 -07:00
Nikita Smith
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
dd715dacf7
assign COMDAT symlinks as soon as the symbol table is processed
2025-08-05 08:39:11 -07:00
Nikita Smith
1fe85acff8
refactor include symbols to go through same code path as alternate name symbols
2025-08-05 08:39:11 -07:00
Nikita Smith
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
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
07c7178770
filter out removed COMDATs from the PDB public symbols
2025-07-23 16:09:48 -07:00
Nikita Smith
17d35cd327
add garbage collector for COMDAT sections
2025-07-23 16:09:48 -07:00
Nikita Smith
a6b2cf64ba
WIP collect sections associations
2025-07-23 16:09:48 -07:00
Nikita Smith
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
7cd5a670e3
WIP factoring out symbol table fixups
2025-07-23 16:09:48 -07:00
Nikita Smith
db52ba32e6
helper for profiling parallel fors
2025-07-16 13:54:58 -07:00
Nikita Smith
17ca83697b
draft symbol table fixups to prepare for refactoring symbol table patching step
2025-06-25 10:53:25 -07:00
Nikita Smith
08f2b749e8
omit file offset, file size, and hash on bss sections
2025-06-25 10:53:25 -07:00
Nikita Smith
a954c2125c
merge fixups
2025-06-25 10:53:25 -07:00
Nikita Smith
fcb06579a4
collapse symbol scope and symbol type enums
2025-06-25 10:53:25 -07:00
Nikita Smith
b1723ce066
gracefully handle invalid libs
2025-06-25 10:53:25 -07:00
Nikita Smith
153d78ec6a
unpoison memory-mapped files
2025-06-25 10:53:24 -07:00
Nikita Smith
790c95fc80
organization pass over symbol table files
2025-06-25 10:53:24 -07:00
Nikita Smith
7120d0c1a4
share memory mapped files
2025-06-25 10:53:24 -07:00
Nikita Smith
2fbaafa32c
parallel compute common block
2025-06-25 10:53:24 -07:00
Nikita Smith
a395398bdf
remove global variable for null section contrib
2025-06-25 10:53:24 -07:00
Nikita Smith
f5b19675cb
merge conflict
2025-06-25 10:53:24 -07:00
Nikita Smith
0aadf60359
update code block dividers
2025-06-25 10:53:24 -07:00
Nikita Smith
46663688e2
on read memory map files
2025-06-25 10:53:24 -07:00
Nikita Smith
16e72fd573
remove unused switch
2025-06-25 10:53:24 -07:00
Nikita Smith
6b3a63f474
correct task name for weak symbol patch
2025-06-25 10:53:24 -07:00