Nikita Smith and Ryan 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 Smith and Ryan Fleury
541d3afefa
WIP /RAD_TYPE_SERVER
...
env vars
replace HashTable with HashMap in config
2026-06-02 12:11:12 -07:00
Nikita Smith and Ryan 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 Smith and Ryan Fleury
6a3d7e65f3
remove year from the copyright
2025-09-05 15:19:31 -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 and Ryan Fleury
0aadf60359
update code block dividers
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
9d93eda3ed
simplify section table
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
37689b2e4a
section collector
2025-06-25 10:53:23 -07:00
Nikita Smith and Ryan 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