Nikita Smith
f3c631973b
various fixes in torture for Linux compatibility
2026-06-02 12:10:15 -07:00
Nikita Smith
0c656563b8
todo
2026-05-18 18:11:48 -07:00
Nikita Smith
1dc72b2bcf
replace single-hop associative section walk to multi-hop
2026-05-18 18:11:48 -07:00
Ryan Fleury
aea4a4ff9d
eliminate os_core, move into base; eliminate regs, move into arch abstraction layer, define x64 regs in x64 layer; move win32 backend for os core (now base) functionality to top-level win32 layer
2026-05-08 15:21:21 -07:00
Ryan Fleury
ad0d023c93
d2r2 type deduplication: further work on type content hashing; correct .debug_str_offsets handling; sketch out type dependency chain build
2026-04-24 20:34:20 -07:00
Nikita Smith
a2aab5967c
add support for /DEBUG:GHASH
2026-04-22 09:30:45 -07:00
Nikita Smith
8cf14b5acb
minor fix
2026-04-20 15:28:12 -07:00
Nikita Smith
d607d6377d
build fixes
2026-04-20 11:00:54 -07:00
Nikita Smith
0a791e5876
add support for LLVM ghash sections
2026-04-20 10:39:50 -07:00
Nikita Smith
e6f49aaded
test stripped PDB
2026-04-20 10:39:50 -07:00
Nikita Smith
d0364dc39c
minor fixes for handling cyclic and corrupted types
2026-04-15 15:32:51 -07:00
Nikita Smith
5f3e7e7175
whoops proc refences were pointing to stale symbols
...
ideally linker parse module streams for proc references
2026-04-15 15:32:51 -07:00
Nikita Smith
0299b6922f
sort global symbols deterministically within GSI bucket
2026-04-11 13:42:30 -07:00
Nikita Smith
89a5acba2c
WIP stripped PDB
2026-04-10 17:02:04 -07:00
Nikita Smith
aad1805124
make GSI and PSI serialization deterministic
2026-04-06 12:04:33 -07:00
Nikita Smith
608a0df058
fix race in the type merger
2026-04-06 12:04:33 -07:00
Nikita Smith
232815dbe6
branchless compact
2026-04-06 12:04:33 -07:00
Nikita Smith
f69532e11d
tweak thread broadcasting and balance symbol inputs
2026-04-06 12:04:33 -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
ef712a36e7
minor bugfix
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
46243548f3
fixup symbol tree offsets in module stream
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
91b50bab00
no need to validate signature in S_OBJ; discard debug info if PCH
...
is missing instead of exiting
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
d1594f796d
fix type source for PCH type indices
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
1c6baf18f2
msf_parsed_from_data now always returns non-null result
2026-03-04 11:41:51 -08:00
Ryan Fleury
4312ee14fd
first pass at (rdi -> loose rdim) path, used in (rdi * ... * rdi) -> rdi joining in radbin; plug in regular conversion path before voff -> line & breakpad paths in radbin, such that PDBs, DWARFs, RDIs, etc. can be used as input; fix up voff -> line path to plug into regular output systems; remove String8 union thing - three reasons: (a) it was only ever introduced for convenience in Linux layers, so let's just keep zero-terminated Linux nonsense in Linux land, (b) it was just alternate syntax for a cast, so let's just cast, (c) it was misleading - 'cstr' implies null-termination, which String8 of course doesn't guarantee. this led to some misuses, where .cstr was trusted to be zero-terminated, when that was not necessarily true (semaphore opening).
2026-03-03 16:24:54 -08:00
Nikita Smith
eb8fd11b20
input for hashing external leaves was assuming different array layout
2026-02-23 13:55:04 -08:00
Nikita Smith
e942dd0380
checkpoint
2026-02-23 12:04:32 -08:00
Nikita Smith
516365e97b
rename CodeView leaf/symbol/debug_s helpers for consistent naming
2026-02-17 03:04:14 -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
d7a87b7765
share arena between type deduper and MSF
2026-02-13 16:06:54 -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
880b8135cc
add per-item purging to the hash table
2025-11-07 14:39:46 -08:00
Nikita Smith
eb4e6d2883
alloc slots for null
2025-09-26 16:28:46 -07:00
Nikita Smith
647bc4206f
minor typo
2025-09-24 12:42:17 -07:00
Nikita Smith
a75a33e6d3
minor fix for UBA detour
2025-09-22 10:06:21 -07: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
5a12513306
parallelize section garbage collection
...
currently we tag pointers to solve ABA problem however if the list
has more than max_U16 items, the tag will overflow and cause serious issues.
To fix this, we need to use 64-bit tags together with 128-bit interlocked
compare-exchange intrinsic
2025-09-17 15:21:37 -07:00