Commit Graph
39 Commits
Author SHA1 Message Date
Nikita SmithandRyan Fleury afd454b41f fix DBI SC image-section range mapping
Log and skip section contributions that fail to map into the linked image.
Keep a file-range-to-section-number map so compact file ranges produce the
correct DBI section numbers.
2026-07-27 14:47:12 -07:00
Nikita Smith 3452f23839 add a new boot mode to RADLINK for launching as a type server
checkpoint
2026-06-12 11:40:01 -07:00
Nikita SmithandRyan Fleury 541d3afefa WIP /RAD_TYPE_SERVER
env vars

replace HashTable with HashMap in config
2026-06-02 12:11:12 -07:00
Nikita SmithandRyan Fleury 4ff6d2cc6c use the make library to generate RDI 2026-06-02 12:10:49 -07:00
Nikita Smith 0a791e5876 add support for LLVM ghash sections 2026-04-20 10:39:50 -07:00
Nikita Smith 89a5acba2c WIP stripped PDB 2026-04-10 17:02:04 -07:00
Nikita Smith 77ece3193e fix clang /O2 2026-04-06 12:04:32 -07:00
Nikita Smith 129f0326f7 use thread broadcasts to simplify global symbol mover 2026-04-06 12:04:32 -07:00
Nikita Smith b5f0862a91 fixup file checksums in the MSF streams 2026-04-06 12:04:32 -07:00
Nikita Smith d7cfd5f55a WIP rework GSI and PSI symbol writer 2026-04-06 12:04:32 -07:00
Nikita Smith 883935d44e WIP simplifying module stream layout step 2026-04-06 12:04:32 -07:00
Nikita Smith f7ac6767cf WIP symbol plumbing 2026-04-06 12:04:32 -07:00
Nikita Smith e0c6df710f WIP change symbol extraction approach 2026-04-06 12:04:31 -07:00
Nikita Smith 44a0efd207 test mismatched PCH signatures and presence of .debug$P and .debug$T in
same obj
2026-04-06 12:04:31 -07:00
Nikita Smith c0418b736d WIP: internal and external type servers are functioning except for the
PCH indirection
2026-04-06 12:04:31 -07:00
Nikita Smith e942dd0380 checkpoint 2026-02-23 12:04:32 -08:00
Nikita Smith 2083c1ed87 serialize symbols directly into MSF streams 2026-02-16 20:32:44 -08:00
Nikita Smith 442f41b51a inline byte hashing around type indices 2026-02-16 13:39:49 -08:00
Nikita Smith 76213ec5cd switch to using 32-bit offsets for leaf records over the pointers 2026-02-15 23:11:51 -08:00
Nikita Smith 1f51c6f25b ubsan cleanup 2026-02-13 20:59:26 -08:00
Nikita Smith f5fc3c66b7 reduce leaf hash table bucket size to 8 bytes 2026-02-13 15:03:51 -08:00
Nikita Smith 7720ba096e switch to 64-bit type hashes; 128-bits is unnecessary, CodeView can't
have more than 2^32 types
2026-02-12 13:11:36 -08:00
Nikita Smith 3d7afb58fa speed up symbol patching 2025-09-22 10:06:21 -07:00
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 SmithandRyan Fleury 6a3d7e65f3 remove year from the copyright 2025-09-05 15:19:31 -07:00
Nikita SmithandRyan Fleury 0ceadff525 maintain input order of objs in PDB 2025-09-05 15:19:30 -07:00
Nikita SmithandRyan Fleury 0aadf60359 update code block dividers 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 46663688e2 on read memory map files 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 9d93eda3ed simplify section table 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 1c08db2705 move image, import lib, and debug info builders outside of the state machine 2025-06-25 10:53:24 -07:00
Nikita SmithandRyan Fleury 37689b2e4a section collector 2025-06-25 10:53:23 -07:00
Nikita SmithandRyan Fleury 7c071e7238 linker checkpoint 2025-06-25 10:53:22 -07:00
Nikita Smith b631d431fa create section layout without copying chunk data and perform chunk data
copy in parallel given layout
2024-11-15 16:14:00 -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 4a2e1dd8d0 switch to thread safe hash trie map
Initial implementation of the symbol table allowed us to push symbols
from one thread at a time and required a wonky lock-step and spread out
logic for replacing symbols. And because it was a externally chained
hash table we had to guesstimate optimal capacity for small and big targets.
We erred on the side of larger capacity to prevent degradation and
rehashing, however this meant small targets had to spent unreasonable
amount of time memory allocing slots. With hash trie we can dynamically
scale up to 4 ^ 32 items and atomically replace symbols when needed. Neat!
2024-10-30 15:43:53 -07:00
Nikita Smith d2db4542cb check type server signature against signature in obj 2024-10-17 14:05:34 -07:00
Nikita Smith 932df7bf68 linker 2024-10-15 17:25:22 -07:00