Commit Graph
50 Commits
Author SHA1 Message Date
Nikita Smith 371e52ad42 add /rad_alt_pch_dir for remapping objs in the local folder for pgo builds 2025-09-22 10:06:21 -07:00
Nikita Smith a060f581d9 stub /d2 2025-09-22 10:06:20 -07:00
Nikita Smith 0b154cef46 stub /brepro 2025-09-17 15:21:37 -07:00
Nikita Smith c653410af5 stub /errorreportlevel 2025-09-17 15:21:37 -07:00
Nikita Smith 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 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 6a3d7e65f3 remove year from the copyright 2025-09-05 15:19:31 -07:00
Nikita Smith 1aac27095e WIP: reorder input and library search order to match MSVC behavior 2025-09-05 15:19:30 -07:00
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 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 f5b19675cb merge conflict 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 c7d6145ec9 print section contributions in RAD_MAP 2025-06-25 10:53:24 -07:00
Nikita Smith a5119e3b51 WIP function pad min 2025-06-25 10:53:24 -07:00
Nikita Smith 5fb0d978b9 WIP function pad min 2025-06-25 10:53:24 -07:00
Nikita Smith 205723f8d6 parallelize symbol tables patching 2025-06-25 10:53:24 -07:00
Nikita Smith 89e2ea15ad add /RAD_REMOVE_SECTION switch and special case debug sections 2025-06-25 10:53:23 -07:00
Nikita Smith 73fe9d223a handle /ALTERNATENAME directive 2025-06-25 10:53:22 -07:00
Nikita Smith d3c3b672ea image name helper 2025-06-25 10:53:22 -07:00
Nikita Smith f467ff8822 WIP move export and import table make code to appropriate layers 2025-06-25 10:53:22 -07:00
Nikita Smith 69d5010245 WIP switching to creating import table objs 2025-06-25 10:53:22 -07:00
Nikita Smith f25dc5cc8d pack export table into obj and input back to the linker 2025-06-25 10:53:22 -07:00
Nikita Smith 7c071e7238 linker checkpoint 2025-06-25 10:53:22 -07:00
Nikita Smith 01c905dbbd reuse import table flags, and parameterize data directory count 2025-06-25 10:53:21 -07:00
Nikita Smith 55c76db902 handle linker directives in a separate step after obj is initialized,
this way we don't need to store directives in obj struct
2025-06-25 10:53:21 -07:00
Nikita Smith c6ba475427 produce image layout map 2025-04-04 15:45:51 -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 0ca9d97750 error out on /LIB and /DUMP switches 2025-01-24 14:40:27 -08:00
Nikita Smith f2f18b9798 replaced /RAD_IDLE_WORKERS with /RAD_SHARED_THREAD_POOL_MAX_WORKERS 2025-01-24 12:49:30 -08:00
Nikita Smith 61307aefbc reworked thread pool to share workers via semaphore 2025-01-21 01:55:13 -08:00
Nikita Smith d3fbc858b8 impl shared thread pool mode 2025-01-20 21:41:24 -08:00
Nikita Smith 190eb03ff3 removed default lib directive parser, moved directive code to obj file,
getting ready to deprecate LNK_Directive struct
2025-01-15 14:03:40 -08:00
Nikita Smith 3cec629a8c pipe obj directives through config path 2025-01-13 15:22:37 -08:00
Nikita Smith 723c950c01 add default params for /FUNCTIONPADMIN 2024-12-09 14:27:03 -08:00
Nikita Smith e44dd3aa07 instead of searching for manifest tool manually punt the job to CreateProcess 2024-11-18 15:38:00 -08:00
Nikita Smith 435f6c4ef6 append .lib to defaultlibs 2024-11-15 16:14:00 -08:00
Nikita Smith 680ea2ffdc added /RAD_IDLE_WORKERS 2024-11-08 16:09:56 -08:00
Nikita Smith 214be8c433 moved Guid struct and related helpers to base 2024-11-07 11:54:25 -08:00
Nikita Smith eba7500f73 /rad_pdb_hash_type_names:lenient
Less aggressive optimization for type names. When lenient enabled, linker
replaces only mangled names and compiler generated lambda types.
2024-10-30 15:56:10 -07:00
Nikita Smith f3fbf10754 replace type names with hashes 2024-10-30 15:56:09 -07:00
Nikita Smith 9ec7fb61ed implemented /noimplib /noexp 2024-10-22 11:02:59 -07:00
Nikita Smith 7260baea85 implemented /PDBALTPATH and /RAD_DEBUGALTPATH 2024-10-21 18:03:28 -07:00
Nikita Smith 800a2349e5 pass over COFF resource reader and writer 2024-10-19 13:44:36 -07:00
Nikita Smith 46390ba0b8 reworked manifest handling
- manifest files wont be created unless symbols are resolved
- delay mt.exe presence check until we launch it
- create explicit case that writes manifests to disk
- moved manifest dependency collection step to happen after obj input
- removed /rad_delete_manifest
2024-10-18 23:37:30 -07:00
Nikita Smith 932df7bf68 linker 2024-10-15 17:25:22 -07:00