Git for Windows has started building artifacts for Windows/ARM64 since v2.47.1 (November 25th 2024). Now that Windows/ARM64 GitHub Action runners are available in public preview [https://github.blog/changelog/2025-04-14-windows-arm64-hosted-runners-now-available-in-public-preview/] at long last, it is high time to upstream the minimal set of patches to build Git on Windows/ARM64 and pass the test suite. Changes since v1: * Replaced an #else #if construct by an #elif one. Dennis Ameling (2): bswap.h: add support for built-in bswap functions config.mak.uname: add support for clangarm64 Johannes Schindelin (4): mingw: do not use nedmalloc on Windows/ARM64 msvc: do handle builds on Windows/ARM64 mingw(arm64): do move the `/etc/git*` location max_tree_depth: lower it for clangarm64 on Windows compat/bswap.h | 14 +++++++++++++- config.mak.uname | 18 ++++++++++++++---- environment.c | 10 ++++++++++ 3 files changed, 37 insertions(+), 5 deletions(-) base-commit: 683c54c999c301c2cd6f715c411407c413b1d84e Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1904%2Fdscho%2Fsupport-clangarm64-v2 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1904/dscho/support-clangarm64-v2 Pull-Request: https://github.com/gitgitgadget/git/pull/1904 Range-diff vs v1: 1: b89f39cbac6 = 1: b89f39cbac6 bswap.h: add support for built-in bswap functions 2: 2feeadb0d3f = 2: 2feeadb0d3f config.mak.uname: add support for clangarm64 3: 6c2e17eca68 = 3: 6c2e17eca68 mingw: do not use nedmalloc on Windows/ARM64 4: c89ead8eaba = 4: c89ead8eaba msvc: do handle builds on Windows/ARM64 5: 939bcb0dc63 = 5: 939bcb0dc63 mingw(arm64): do move the `/etc/git*` location 6: 6ebc3ef57fd ! 6: e0e78bd5131 max_tree_depth: lower it for clangarm64 on Windows @@ environment.c: int max_allowed_tree_depth = * the stack overflow can occur. */ 512; -+#else -+#if defined(GIT_WINDOWS_NATIVE) && defined(__clang__) && defined(__aarch64__) ++#elif defined(GIT_WINDOWS_NATIVE) && defined(__clang__) && defined(__aarch64__) + /* + * Similar to Visual C, it seems that on Windows/ARM64 the clang-based + * builds have a smaller stack space available. When running out of @@ environment.c: int max_allowed_tree_depth = #else 2048; #endif -+#endif - - #ifndef PROTECT_HFS_DEFAULT - #define PROTECT_HFS_DEFAULT 0 -- gitgitgadget