Enable MSVC support for AArch64 code paths and Windows build fixes - #1305
Enable MSVC support for AArch64 code paths and Windows build fixes#1305Harishmcw wants to merge 2 commits into
Conversation
…ng WoA/MSVC fixes (TEMPORARY) These three submodules require patches for their builds to succeed under MSVC on Windows ARM64. The fixes have been submitted upstream but are not yet merged: oneDNN: openvinotoolkit/oneDNN#318 - in review ComputeLibrary: ARM-software/ComputeLibrary#1305 - in review kleidiai: https://gitlab.arm.com/kleidi/kleidiai/-/merge_requests/769 - in review Point each submodule at a personal fork carrying those patches so CI for this PR can actually build and run to validate the rest of the changes, until the upstream fixes land. This is NOT intended to merge as-is: revert .gitmodules to the upstream URLs once the corresponding upstream PRs are merged. This PR is kept in draft until all three are resolved.
…ng WoA/MSVC fixes (TEMPORARY) These three submodules require patches for their builds to succeed under MSVC on Windows ARM64. The fixes have been submitted upstream but are not yet merged: oneDNN: openvinotoolkit/oneDNN#318 - in review ComputeLibrary: ARM-software/ComputeLibrary#1305 - in review kleidiai: https://gitlab.arm.com/kleidi/kleidiai/-/merge_requests/769 - in review Point each submodule at a personal fork carrying those patches so CI for this PR can actually build and run to validate the rest of the changes, until the upstream fixes land. This PR is kept in draft until all three are resolved.
…C fixes (TEMPORARY) These two submodules require patches for their builds to succeed under MSVC on Windows ARM64. The fixes have been submitted upstream but are not yet merged: oneDNN: openvinotoolkit/oneDNN#318 - in review ComputeLibrary: ARM-software/ComputeLibrary#1305 - in review Point each submodule at a personal fork carrying those patches so CI for this PR can actually build and run to validate the rest of the changes, until the upstream fixes land. This PR is kept in draft until all three are resolved.
|
Hi, just a quick ping on this PR. Could you please take a look when you get a chance? Thanks! |
…(TEMPORARY) This submodule require patches for their builds to succeed under MSVC on Windows ARM64. The fixes have been submitted upstream but are not yet merged: ComputeLibrary: ARM-software/ComputeLibrary#1305 - in review Point each submodule at a personal fork carrying those patches so CI for this PR can actually build and run to validate the rest of the changes, until the upstream fixes land. This PR is kept in draft until all three are resolved.
…(TEMPORARY) This submodule require patches for their builds to succeed under MSVC on Windows ARM64. The fixes have been submitted upstream but are not yet merged: ComputeLibrary: ARM-software/ComputeLibrary#1305 - in review Point each submodule at a personal fork carrying those patches so CI for this PR can actually build and run to validate the rest of the changes, until the upstream fixes land. This PR is kept in draft until all three are resolved.
…(TEMPORARY) This submodule require patches for their build to succeed under MSVC on Windows ARM64. The fixes have been submitted upstream but are not yet merged: ComputeLibrary: ARM-software/ComputeLibrary#1305 - in review Point ComputeLibrary submodule at a personal fork carrying those patches so CI for this PR can actually build and run to validate the rest of the changes, until the upstream fixes land. This PR is kept in draft until this gets resolved.
…(TEMPORARY) This submodule require patches for their build to succeed under MSVC on Windows ARM64. The fixes have been submitted upstream but are not yet merged: ComputeLibrary: ARM-software/ComputeLibrary#1305 - in review Point ComputeLibrary submodule at a personal fork carrying those patches so CI for this PR can actually build and run to validate the rest of the changes, until the upstream fixes land. This PR is kept in draft until this gets resolved.
|
Hi @Harishmcw I'm confused, are you trying to build with MSVC/ cl.exe ? If so, this is not supported, building ACL natively on Windows requires clang |
|
Hi @morgolock, Yes, we are building ACL itself using The issue is that ACL is used as a dependency by OpenVINO, which is built with MSVC ( The changes in this PR are to make the ACL headers compatible with this use case. |
Summary
This PR improves MSVC compatibility for Windows on Arm64 by extending AArch64-specific code paths to also recognize
_M_ARM64, and fixes the SCons build system to work correctly on native ARM64 Windows hosts.Motivation
_M_ARM64instead of aarch64, causing those code paths to be excluded.This resulted in compilation errors such as:
Fix
This PR updates ARM64-specific code paths to support both GCC/Clang and MSVC by replacing architecture guards of the form:
#ifdef __aarch64__with
#if defined(__aarch64__) || defined(_M_ARM64)The changes include:
SConstruct
ASCOMandASPPCOMfor the Windows build. Theos == 'windows'block already overrides AS to clang-cl, but doesn't set the command template.