Nikita Smith and Ryan Fleury
ee3832ea3b
parallel for lib symbol search
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
6a3d7e65f3
remove year from the copyright
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
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
d9eb26a830
infer subsystem when only entry point is specified
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 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
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
7466da1479
mark referenced symbols as live for unresolved-symbol detection
2025-08-08 15:54:21 -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 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
92e6069104
collapse obj directive directive code paths
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 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
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
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
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
46663688e2
on read memory map files
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
a5119e3b51
WIP function pad min
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
5fb0d978b9
WIP function pad min
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
9d93eda3ed
simplify section table
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
15836572f4
factor out section sort index into contribution chunk and simplify
...
contribution sorting
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
205723f8d6
parallelize symbol tables patching
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
1c08db2705
move image, import lib, and debug info builders outside of the state machine
2025-06-25 10:53:24 -07:00
Nikita Smith and Ryan Fleury
1c656979d2
move MSVC lib symbols to CRT layer
2025-06-25 10:53:23 -07:00
Nikita Smith and Ryan Fleury
e911bf5368
move obj writer for PE debug directory to stand-alone file
2025-06-25 10:53:23 -07:00
Nikita Smith and Ryan Fleury
89e2ea15ad
add /RAD_REMOVE_SECTION switch and special case debug sections
2025-06-25 10:53:23 -07:00
Nikita Smith and Ryan Fleury
0f9321e92a
move default linker options to main file
2025-06-25 10:53:23 -07:00
Nikita Smith and Ryan Fleury
73fe9d223a
handle /ALTERNATENAME directive
2025-06-25 10:53:22 -07:00
Nikita Smith and Ryan Fleury
f75cdd23d7
collapse linker input states into one state
2025-06-25 10:53:22 -07:00
Nikita Smith and Ryan Fleury
f467ff8822
WIP move export and import table make code to appropriate layers
2025-06-25 10:53:22 -07:00
Nikita Smith and Ryan Fleury
69d5010245
WIP switching to creating import table objs
2025-06-25 10:53:22 -07:00
Nikita Smith and Ryan Fleury
f25dc5cc8d
pack export table into obj and input back to the linker
2025-06-25 10:53:22 -07:00
Nikita Smith and Ryan Fleury
3a7afcd80c
replace linker lib writer with one from COFF
2025-06-25 10:53:22 -07:00
Nikita Smith and Ryan Fleury
7c071e7238
linker checkpoint
2025-06-25 10:53:22 -07:00
Nikita Smith and Ryan Fleury
19a7ada1dc
make export table with COFF obj writer,
...
partially converted import table to COFF obj writer
2025-06-25 10:53:21 -07:00
Nikita Smith and Ryan Fleury
3a2bb318c7
make import lib objs with COFF obj writer
2025-06-25 10:53:21 -07:00
Nikita Smith and Ryan Fleury
e580b69180
make linker obj with COFF obj writer
2025-06-25 10:53:21 -07:00
Nikita Smith and Ryan Fleury
c45088b546
replaced dependency on linker's chunking for resource serialization
...
with COFF obj writer
2025-06-25 10:53:21 -07:00
Nikita Smith
ab05133f8a
picked better name convention for the section table
2025-04-04 15:47:56 -07:00
Nikita Smith
bbce89eada
added /RAD_WRITE_TEMP_FILES
...
When enabled linker writes image and debug info to temporary files
and renames them after all writes are done.
2025-02-25 14:41:34 -08:00
Nikita Smith
153bbc7b1d
pass over COFF layer
...
- updated naming convention on structs, enums, and macros to conform with code base style
- moved related structs closer to each other
- moved parser code to separate file
2025-01-20 19:31:52 -08:00