fix build
Some checks failed
vs2026-ci / win-amd64-build (debug, x64) (push) Has been cancelled
vs2026-ci / win-amd64-build (release, x64) (push) Has been cancelled
vs2026-ci / Deploy release (push) Has been cancelled

This commit is contained in:
Max Raulea 2026-08-17 15:33:46 +02:00
parent 82ad5fc9b6
commit a5b2c13c4b
3 changed files with 57 additions and 0 deletions

View file

@ -139,6 +139,11 @@
<ClCompile Include="..\include\components\optimizations\code\OptimizationsExamples.c" />
<ClCompile Include="..\include\components\spinlock\code\Spinlock.c" />
<ClCompile Include="..\include\platform\kernel\code\PlatformBroadcast.c" />
<ClCompile Include="..\include\platform\kernel\code\PlatformCpu.c" />
<ClCompile Include="..\include\platform\kernel\code\PlatformDpc.c" />
<ClCompile Include="..\include\platform\kernel\code\PlatformEvent.c" />
<ClCompile Include="..\include\platform\kernel\code\PlatformIrql.c" />
<ClCompile Include="..\include\platform\kernel\code\PlatformProcess.c" />
<ClCompile Include="..\include\platform\kernel\code\PlatformIntrinsics.c" />
<ClCompile Include="..\include\platform\kernel\code\PlatformIntrinsicsVmx.c" />
<ClCompile Include="..\include\platform\kernel\code\PlatformMem.c" />
@ -247,6 +252,11 @@
<ClInclude Include="..\include\components\spinlock\header\Spinlock.h" />
<ClInclude Include="..\include\macros\MetaMacros.h" />
<ClInclude Include="..\include\platform\kernel\header\PlatformBroadcast.h" />
<ClInclude Include="..\include\platform\kernel\header\PlatformCpu.h" />
<ClInclude Include="..\include\platform\kernel\header\PlatformDpc.h" />
<ClInclude Include="..\include\platform\kernel\header\PlatformEvent.h" />
<ClInclude Include="..\include\platform\kernel\header\PlatformIrql.h" />
<ClInclude Include="..\include\platform\kernel\header\PlatformProcess.h" />
<ClInclude Include="..\include\platform\kernel\header\PlatformIntrinsics.h" />
<ClInclude Include="..\include\platform\kernel\header\PlatformIntrinsicsVmx.h" />
<ClInclude Include="..\include\platform\kernel\header\PlatformMem.h" />

View file

@ -338,6 +338,21 @@
<ClCompile Include="..\include\platform\kernel\code\PlatformBroadcast.c">
<Filter>code\platform</Filter>
</ClCompile>
<ClCompile Include="..\include\platform\kernel\code\PlatformCpu.c">
<Filter>code\platform</Filter>
</ClCompile>
<ClCompile Include="..\include\platform\kernel\code\PlatformDpc.c">
<Filter>code\platform</Filter>
</ClCompile>
<ClCompile Include="..\include\platform\kernel\code\PlatformEvent.c">
<Filter>code\platform</Filter>
</ClCompile>
<ClCompile Include="..\include\platform\kernel\code\PlatformIrql.c">
<Filter>code\platform</Filter>
</ClCompile>
<ClCompile Include="..\include\platform\kernel\code\PlatformProcess.c">
<Filter>code\platform</Filter>
</ClCompile>
<ClCompile Include="..\include\components\callback\code\HyperLogCallback.c">
<Filter>code\components\callback</Filter>
</ClCompile>
@ -619,6 +634,21 @@
<ClInclude Include="..\include\platform\kernel\header\PlatformBroadcast.h">
<Filter>header\platform</Filter>
</ClInclude>
<ClInclude Include="..\include\platform\kernel\header\PlatformCpu.h">
<Filter>header\platform</Filter>
</ClInclude>
<ClInclude Include="..\include\platform\kernel\header\PlatformDpc.h">
<Filter>header\platform</Filter>
</ClInclude>
<ClInclude Include="..\include\platform\kernel\header\PlatformEvent.h">
<Filter>header\platform</Filter>
</ClInclude>
<ClInclude Include="..\include\platform\kernel\header\PlatformIrql.h">
<Filter>header\platform</Filter>
</ClInclude>
<ClInclude Include="..\include\platform\kernel\header\PlatformProcess.h">
<Filter>header\platform</Filter>
</ClInclude>
<ClInclude Include="..\include\components\callback\header\HyperLogCallback.h">
<Filter>header\components\callback</Filter>
</ClInclude>

View file

@ -1216,6 +1216,23 @@ unpinned `queue_work` path.
ia32-doc test it to select MSVC intrinsics, so defining it would steer them into
Windows-only code paths.
**⚠️ A Platform swap is TWO edits, and the Linux build cannot see the second one.**
Windows builds each driver as its own DLL that compiles only the `Platform*.c`
files listed in ITS `.vcxproj`; Linux links one module, so every wrapper is always
present. Swapping a call site therefore links fine here and fails on the Windows
CI with `LNK2001: unresolved external symbol Platform...`. This pass needed
`PlatformCpu/Dpc/Event/Irql/Process.c` added to `hyperhv.vcxproj` (+ `.filters`),
which had only Broadcast/Intrinsics/IntrinsicsVmx/Mem.
What each project compiles today, i.e. what the next sweep has to top up:
| project | has |
|---|---|
| hyperkd | Broadcast, Cpu, Intrinsics, Mem, Process, Str |
| hypertrace / hyperperf | Broadcast, Cpu, Intrinsics, Mem |
| hyperevade | Intrinsics, Mem |
| hyperlog | everything except Broadcast/IntrinsicsVmx |
Open, all needing a decision before hyperhv finishes: `DbgBreakPoint` (16 errors —
it comes from the `LogError` macro, so it hits nearly every file),
`KeGenericCallDpc` (3), the `Mm*`/`Zw*` memory family (~15), TSX `_xbegin/_xend`,