Nikita Smith and Ryan Fleury
00536f7ea8
rewrite set linked symbol logic to respect declaration order in obj symbol table
2025-09-08 16:07:31 -07:00
Nikita Smith and Ryan Fleury
8a22910d9b
add "Links" log type for diagnosing linked lib members
2025-09-08 16:07:31 -07:00
Nikita Smith and Ryan Fleury
8f749f4239
use global symbol table to detect duplicate imports
2025-09-08 16:07:31 -07:00
Nikita Smith and Ryan Fleury
7cea036bc1
clean up pass over symbol table
...
- rename functions for consistency
- remove unused code
2025-09-08 16:07:31 -07:00
Nikita Smith and Ryan Fleury
069d683690
fix crash when obj does not have debug info
2025-09-06 09:54:23 -07:00
Nikita Smith and Ryan Fleury
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 and Ryan Fleury
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 and Ryan Fleury
21163264d4
redirect entry point to CRT version if name is inferred
2025-09-06 09:54:22 -07:00
Nikita Smith and Ryan Fleury
f2ee135439
fix up symbols visibility
2025-09-05 15:19:31 -07:00
Nikita Smith and Ryan Fleury
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 and Ryan Fleury
6a3d7e65f3
remove year from the copyright
2025-09-05 15:19:31 -07:00
Nikita Smith and Ryan Fleury
e88dc44f31
clean up debug leftovers
2025-09-05 15:19:31 -07:00
Nikita Smith and Ryan Fleury
580303b0dd
emit jump thunks for imports only when needed
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
43e81b934b
move weak symbol replacer to the symbol table layer
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
8d75497bba
do not set function pad min switch by default
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
0b0a2664d1
merge .idata with .rdata
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
a64f8f4196
clean up over base strings in the linker layer
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
9f6da0ec63
simplify section removal and purging
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
43b35d43dc
change lib sort to preserve input order
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
845e225e81
push alt name strings after they are copied to the config arena
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
fdad3f4f58
natvis for lib member ref
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
1aac27095e
WIP: reorder input and library search order to match MSVC behavior
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
240935f0cc
WIP: use MSVC rule for COMDAT symbol replacement
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
d9eb26a830
infer subsystem when only entry point is specified
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
e1b7168605
update weak vs undefined replacement rule
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
d7cdaa98b5
oops forgot to set enum type
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
971f1b9a2f
ignore sign conversions in blake3
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
41fe8a7410
merge undefined and weak search passes
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
b64e1dca9a
WIP fix lib push order and sort new inputs
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
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 and Ryan Fleury
330c8ead38
move member queue-attempt flag from symbol to lib struct
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
f1b22dbe27
change library to use compressed member offsets
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
89d496c855
fix replacement rule for weak search library vs undefined
2025-09-05 15:19:30 -07:00
Nikita Smith and Ryan Fleury
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
Nikita Smith
cdf515793f
stop walking on reaching an undefined symbol
2025-08-18 19:09:32 -07:00
Nikita Smith
0983915f40
oops forgot to init the delay load dll hash table and the established name string
2025-08-18 19:09:32 -07:00
Nikita Smith
b05237ceec
handle anti-dependency weak symbol
2025-08-18 19:09:32 -07:00
Nikita Smith
31b2b1c0f7
add replacement cases for weak vs. undefined and vice versa
2025-08-18 19:09:32 -07:00
Nikita Smith and Nikita Smith
1bca83610f
changed symbol search logic to run in three steps: undefined, weak,
...
and anti-dependency weak, allowing linking to proceed only after
symbols from previous step are added to the symbol table
this solves the problem of anti-dependency symbols because they are
searched in libraries if the dependency is unresolved weak symbol
2025-08-18 19:09:32 -07:00
Nikita Smith and Nikita Smith
e1786d0a11
discard delay loads in the config before they get to link context builder
2025-08-18 19:09:32 -07:00
Nikita Smith and Nikita Smith
a3582332ee
push a null symbol as a terminator for /alternatename weak symbol chain
2025-08-18 19:09:31 -07:00
Nikita Smith and Nikita Smith
04d2877b40
strip leading white space
2025-08-18 19:09:31 -07:00
Nikita Smith and Nikita Smith
81381f9a6d
minor cleanups
2025-08-18 19:09:31 -07:00
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