[PATCH v2 0/6] Support Windows/ARM64
- From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Apr 23, 2025, 08:01 UTC
- Message-ID
- <pull.1904.v2.git.1745395308.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1904.git.1745239150.gitgitgadget@gmail.com>
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