Skip to content

Windows: ARM64EC support, long paths, and indirect OpenCL import patching - #491

Open
milishar wants to merge 1 commit into
intel:mainfrom
milishar:win-arm64ec-long-paths-iat-patching
Open

milishar wants to merge 1 commit into
intel:mainfrom
milishar:win-arm64ec-long-paths-iat-patching

Conversation

@milishar

@milishar milishar commented Oct 7, 2026

Copy link
Copy Markdown
  • Detect ARM64/ARM64EC platforms in CMake via CMAKE_GENERATOR_PLATFORM.
  • cliloader: compare PE header machine types instead of IsWow64Process, which cannot distinguish ARM64EC from ARM64. Warn and continue if a type is unknown.
  • cliloader: while loading the intercept DLL into the loader process, disable the controls that create log, trace, and report files, then restore them so the target process does not inherit the overrides.
  • Skip the report at shutdown if no enqueues occurred.
  • Patch the IAT of every loaded module so DLLs that import opencl.dll indirectly (e.g. SYCL runtimes) are also intercepted. Links Psapi.
  • Add Utils::OpenOutputFile() and use it for all dump files. Together with CreateDirectoryW for dump directories, this uses the ?\ prefix on Windows to support paths longer than MAX_PATH.

…hing

- Detect ARM64/ARM64EC platforms in CMake via CMAKE_GENERATOR_PLATFORM.
- cliloader: compare PE header machine types instead of IsWow64Process, which
  cannot distinguish ARM64EC from ARM64. Warn and continue if a type is unknown.
- cliloader: while loading the intercept DLL into the loader process, disable
  the controls that create log, trace, and report files, then restore them so
  the target process does not inherit the overrides.
- Skip the report at shutdown if no enqueues occurred.
- Patch the IAT of every loaded module so DLLs that import opencl.dll
  indirectly (e.g. SYCL runtimes) are also intercepted. Links Psapi.
- Add Utils::OpenOutputFile() and use it for all dump files. Together with
  CreateDirectoryW for dump directories, this uses the \?\ prefix on Windows
  to support paths longer than MAX_PATH.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant