Commit Graph
100 Commits
Author SHA1 Message Date
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