Skip to content

Commit

Permalink
Add support for CLANGARM64 target (#3916)
Browse files Browse the repository at this point in the history
**This requires an ARM64-machine with Windows 11 installed (which
supports x64 emulation for MSYS2)**

### The main idea

- Use the main MSYS2/git-sdk-64 setup, which works on Windows 11 on ARM
thanks to x64-emulation
- Configure the official `clangarm64` MSYS2 repo
- Install `mingw-w64-clang-aarch64-toolchain` which contains the
ARM64-native Clang compiler
  • Loading branch information
dscho authored and Git for Windows Build Agent committed Oct 22, 2024
2 parents d687cab + 8ded2dc commit 6b4308e
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/clangarm64-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: CLANG build ARM64

on:
workflow_dispatch:

defaults:
run:
shell: bash

jobs:
clang-build:
runs-on: [Windows, ARM64]
env:
NO_PERL: 1
steps:
- uses: actions/checkout@v4
- uses: git-for-windows/setup-git-for-windows-sdk@v1
with:
flavor: makepkg-git
architecture: aarch64
# This assumes that the job is running on a self-hosted runner,
# in which case we need to cleanup SDK files.
cleanup: true
- name: Build Git CLANGARM64
run: make -j`nproc`
4 changes: 4 additions & 0 deletions config.mak.uname
Original file line number Diff line number Diff line change
Expand Up @@ -726,6 +726,10 @@ ifeq ($(uname_S),MINGW)
prefix = /mingw64
HOST_CPU = x86_64
BASIC_LDFLAGS += -Wl,--pic-executable,-e,mainCRTStartup
else ifeq (CLANGARM64,$(MSYSTEM))
prefix = /clangarm64
HOST_CPU = aarch64
BASIC_LDFLAGS += -Wl,--pic-executable,-e,mainCRTStartup
else
COMPAT_CFLAGS += -D_USE_32BIT_TIME_T
BASIC_LDFLAGS += -Wl,--large-address-aware
Expand Down

0 comments on commit 6b4308e

Please sign in to comment.