Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions .github/workflows/release-auto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,18 +198,20 @@ jobs:
linux_cross: false
macos_cross: false

# NOTE: aarch64-pc-windows-msvc deliberately not in the
# matrix today. cargo-xwin + ring 0.17.x has a known
# incompatibility on linux-cross-to-arm64-windows: cc-rs
# selects plain `clang` (not `clang-cl`) for the aarch64
# MSVC target despite identical `CC_<target>=clang-cl` env
# vars working for the x86_64 lane. Ring's `curve25519.c`
# compile then fails at clang receiving `/imsvc <path>`
# (clang-cl-style include flags) and rejecting them. Adding
# this back blocks on either: ring 0.18+ with arm-msvc
# cross-fix; a cc-rs version bump that respects target env
# for arm64; or fbuild switching off `rustls-tls` (drops
# ring). Tracked in soldr#1006 Lane 2.
# aarch64-pc-windows-msvc re-enabled via soldr#1012 PR 6.
# The ring 0.17.x oversight (build.rs:563 hardcodes
# `c.compiler("clang")` for aarch64-windows-msvc, overriding
# whatever `CC_aarch64_pc_windows_msvc=clang-cl` says) is now
# sidestepped by soldr-clang-shim (soldr#1015) which routes
# plain `clang` to clang-cl when --target=*-pc-windows-msvc.
# `soldr build` (soldr#1013 / soldr#1016) installs the shim
# on PATH for any MSVC target, so ring's compile lands on
# clang-cl regardless of ring's hardcoded override.
- target: aarch64-pc-windows-msvc
runner: ubuntu-latest
binary_ext: ".exe"
linux_cross: false
macos_cross: false

uses: ./.github/workflows/template_native_build.yml
with:
Expand Down
27 changes: 17 additions & 10 deletions .github/workflows/template_native_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,15 @@ jobs:

- name: Setup soldr
id: setup-soldr
# v0.9.62 defaults to soldr 0.7.51 — predates the `soldr prepare`
# builtin (added 0.7.54). v0.9.63 ships with 0.7.59 as the default
# which is what the mac-cross-from-linux lane needs to fetch the
# Apple SDK. Bump in one place so the whole template benefits.
# Bumped from 0.7.59 → 0.7.63 to pull soldr#1012 PRs 1+4+5+6:
# `soldr build` blessed verb, soldr-clang-shim binary, and
# Commands::Build blessed-cross-compile prep. Required for
# the aarch64-pc-windows-msvc lane re-added in this PR to
# sidestep the ring 0.17.x build.rs:563 oversight via the
# clang shim.
uses: zackees/setup-soldr@v0.9.63
with:
# Pin the soldr version explicitly so a future bump of the
# action's default doesn't silently change build behavior in
# this template. 0.7.59 is the latest PyPI/npm/GH-Releases
# release at time of authoring (next release will be 0.7.60).
version: "0.7.59"
version: "0.7.63"
cache: true
build-cache: true
target-cache: true
Expand Down Expand Up @@ -200,7 +198,16 @@ jobs:
-p fbuild-cli \
-p fbuild-daemon
elif [ "${{ runner.os }}" = "Linux" ] && [[ "${{ inputs.target }}" == *-pc-windows-msvc ]]; then
cargo xwin build --release --target ${{ inputs.target }} \
# Blessed Linux→Windows MSVC path (soldr#1012 PR 6).
# `soldr build` installs the soldr-clang-shim ahead of
# system clang on PATH so ring's hardcoded
# `c.compiler("clang")` (build.rs:563) routes to clang-cl
# for aarch64-windows-msvc. For x64 the shim is harmless
# passthrough. cargo-xwin is still installed (handles
# SDK download); soldr build delegates to cargo-xwin via
# internal env vars when the catalogue xwin-cache row is
# absent for the target arch.
soldr build --release --target ${{ inputs.target }} \
-p fbuild-cli \
-p fbuild-daemon
elif [[ "${{ inputs.target }}" == *-unknown-linux-musl ]]; then
Expand Down
Loading