Skip to content

.NET: Missing Windows ARM64 support #41

@EpicEric

Description

@EpicEric

https://github.com/EpicEric/duper/actions/runs/19632729687/job/56216090426

Run cargo xwin build --locked --all-features --release --target aarch64-pc-windows-msvc --manifest-path duper_uniffi/Cargo.toml
⏬ Downloading MSVC CRT...
✅ Downloaded MSVC CRT in 1m 12s.
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /home/runner/work/duper/duper/duper-js-wasm/rust/Cargo.toml
workspace: /home/runner/work/duper/duper/Cargo.toml
   Compiling windows-link v0.2.1
   Compiling serde_core v1.0.228
   Compiling cfg-if v1.0.4
   Compiling equivalent v1.0.2
   Compiling windows-sys v0.61.2
   Compiling windows_aarch64_msvc v0.42.2
   Compiling anyhow v1.0.100
   Compiling getrandom v0.3.4
   Compiling memchr v2.7.6
   Compiling once_cell v1.21.3
   Compiling windows_aarch64_msvc v0.52.6
   Compiling serde v1.0.228
   Compiling fastrand v2.3.0
   Compiling hashbrown v0.16.0
   Compiling tempfile v3.23.0
   Compiling windows-targets v0.42.2
   Compiling itoa v1.0.15
   Compiling ryu v1.0.20
   Compiling heck v0.5.0
   Compiling indexmap v2.12.0
   Compiling minimal-lexical v0.2.1
   Compiling libc v0.2.177
   Compiling windows-targets v0.52.6
   Compiling nom v7.1.3
   Compiling windows-sys v0.45.0
   Compiling uniffi_pipeline v0.29.4
   Compiling psm v0.1.28
   Compiling serde_json v1.0.145
   Compiling thiserror v2.0.17
   Compiling camino v1.2.1
   Compiling smawk v0.3.2
   Compiling siphasher v0.3.11
   Compiling textwrap v0.16.2
   Compiling uniffi_meta v0.29.4
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:29:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: GLOBL(rust_psm_stack_direction)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:31:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: TYPE(rust_psm_stack_direction)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:32:35: error: unexpected token in argument list
warning: psm@0.1.28: FUNCTION(rust_psm_stack_direction):
warning: psm@0.1.28:                                   ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:33:1: error: unexpected token at start of statement
warning: psm@0.1.28: /* extern "C" fn() -> u8 */
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:35:18: error: expected compatible register or logical immediate
warning: psm@0.1.28:     orr w0, wzr, #STACK_DIRECTION_DESCENDING
warning: psm@0.1.28:                  ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:37:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: END_FUNCTION(rust_psm_stack_direction)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:41:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: GLOBL(rust_psm_stack_pointer)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:43:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: TYPE(rust_psm_stack_pointer)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:44:33: error: unexpected token in argument list
warning: psm@0.1.28: FUNCTION(rust_psm_stack_pointer):
warning: psm@0.1.28:                                 ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:45:1: error: unexpected token at start of statement
warning: psm@0.1.28: /* extern "C" fn() -> *mut u8 */
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:49:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: END_FUNCTION(rust_psm_stack_pointer)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:53:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: GLOBL(rust_psm_replace_stack)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:55:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: TYPE(rust_psm_replace_stack)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:56:33: error: unexpected token in argument list
warning: psm@0.1.28: FUNCTION(rust_psm_replace_stack):
warning: psm@0.1.28:                                 ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:57:1: error: unexpected token at start of statement
warning: psm@0.1.28: /* extern "C" fn(r0: usize, r1: extern "C" fn(usize), r2: *mut u8) */
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:62:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: END_FUNCTION(rust_psm_replace_stack)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:66:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: GLOBL(rust_psm_on_stack)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:68:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: TYPE(rust_psm_on_stack)
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:69:28: error: unexpected token in argument list
warning: psm@0.1.28: FUNCTION(rust_psm_on_stack):
warning: psm@0.1.28:                            ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:70:1: error: unexpected token at start of statement
warning: psm@0.1.28: /* extern "C" fn(r0: usize, r1: usize, r2: extern "C" fn(usize, usize), r3: *mut u8) */
warning: psm@0.1.28: ^
warning: psm@0.1.28: src/arch/aarch_aapcs64.s:87:1: error: unrecognized instruction mnemonic
warning: psm@0.1.28: END_FUNCTION(rust_psm_on_stack)
warning: psm@0.1.28: ^
error: failed to run custom build command for `psm v0.1.28`

Caused by:
  process didn't exit successfully: `/home/runner/work/duper/duper/target/release/build/psm-b795b0cf902f6c02/build-script-build` (exit status: 1)
  --- stdout
  cargo:rustc-check-cfg=cfg(switchable_stack,asm,link_asm)
  OPT_LEVEL = Some(3)
  OUT_DIR = Some(/home/runner/work/duper/duper/target/aarch64-pc-windows-msvc/release/build/psm-fe5a8fdab7dd7b77/out)
  TARGET = Some(aarch64-pc-windows-msvc)
  CARGO_ENCODED_RUSTFLAGS = Some(-Clinker-flavor=lld-link-Lnative=/home/runner/.cache/cargo-xwin/xwin/crt/lib/aarch64-Lnative=/home/runner/.cache/cargo-xwin/xwin/sdk/lib/um/aarch64-Lnative=/home/runner/.cache/cargo-xwin/xwin/sdk/lib/ucrt/aarch64)
  cargo:rerun-if-env-changed=VCINSTALLDIR
  VCINSTALLDIR = None
  HOST = Some(x86_64-unknown-linux-gnu)
  cargo:rerun-if-env-changed=CC_aarch64-pc-windows-msvc
  CC_aarch64-pc-windows-msvc = None
  cargo:rerun-if-env-changed=CC_aarch64_pc_windows_msvc
  CC_aarch64_pc_windows_msvc = Some(clang-cl)
  cargo:rerun-if-env-changed=CC_KNOWN_WRAPPER_CUSTOM
  CC_KNOWN_WRAPPER_CUSTOM = None
  RUSTC_WRAPPER = None
  cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  CARGO_CFG_TARGET_FEATURE = Some(neon)
  DEBUG = Some(false)
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  cargo:rerun-if-env-changed=TARGET_CFLAGS
  TARGET_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS_aarch64_pc_windows_msvc
  CFLAGS_aarch64_pc_windows_msvc = Some(--target=aarch64-pc-windows-msvc -Wno-unused-command-line-argument -fuse-ld=lld-link /imsvc /home/runner/.cache/cargo-xwin/xwin/crt/include /imsvc /home/runner/.cache/cargo-xwin/xwin/sdk/include/ucrt /imsvc /home/runner/.cache/cargo-xwin/xwin/sdk/include/um /imsvc /home/runner/.cache/cargo-xwin/xwin/sdk/include/shared )
  cargo:rerun-if-env-changed=CC_SHELL_ESCAPED_FLAGS
  CC_SHELL_ESCAPED_FLAGS = None
  cargo:rerun-if-env-changed=CFLAGS_aarch64-pc-windows-msvc
  CFLAGS_aarch64-pc-windows-msvc = None
  cargo:rustc-cfg=asm
  cargo:rustc-cfg=link_asm
  cargo:warning=src/arch/aarch_aapcs64.s:29:1: error: unrecognized instruction mnemonic
  cargo:warning=GLOBL(rust_psm_stack_direction)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:31:1: error: unrecognized instruction mnemonic
  cargo:warning=TYPE(rust_psm_stack_direction)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:32:35: error: unexpected token in argument list
  cargo:warning=FUNCTION(rust_psm_stack_direction):
  cargo:warning=                                  ^
  cargo:warning=src/arch/aarch_aapcs64.s:33:1: error: unexpected token at start of statement
  cargo:warning=/* extern "C" fn() -> u8 */
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:35:18: error: expected compatible register or logical immediate
  cargo:warning=    orr w0, wzr, #STACK_DIRECTION_DESCENDING
  cargo:warning=                 ^
  cargo:warning=src/arch/aarch_aapcs64.s:37:1: error: unrecognized instruction mnemonic
  cargo:warning=END_FUNCTION(rust_psm_stack_direction)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:41:1: error: unrecognized instruction mnemonic
  cargo:warning=GLOBL(rust_psm_stack_pointer)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:43:1: error: unrecognized instruction mnemonic
  cargo:warning=TYPE(rust_psm_stack_pointer)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:44:33: error: unexpected token in argument list
  cargo:warning=FUNCTION(rust_psm_stack_pointer):
  cargo:warning=                                ^
  cargo:warning=src/arch/aarch_aapcs64.s:45:1: error: unexpected token at start of statement
  cargo:warning=/* extern "C" fn() -> *mut u8 */
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:49:1: error: unrecognized instruction mnemonic
  cargo:warning=END_FUNCTION(rust_psm_stack_pointer)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:53:1: error: unrecognized instruction mnemonic
  cargo:warning=GLOBL(rust_psm_replace_stack)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:55:1: error: unrecognized instruction mnemonic
  cargo:warning=TYPE(rust_psm_replace_stack)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:56:33: error: unexpected token in argument list
  cargo:warning=FUNCTION(rust_psm_replace_stack):
  cargo:warning=                                ^
  cargo:warning=src/arch/aarch_aapcs64.s:57:1: error: unexpected token at start of statement
  cargo:warning=/* extern "C" fn(r0: usize, r1: extern "C" fn(usize), r2: *mut u8) */
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:62:1: error: unrecognized instruction mnemonic
  cargo:warning=END_FUNCTION(rust_psm_replace_stack)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:66:1: error: unrecognized instruction mnemonic
  cargo:warning=GLOBL(rust_psm_on_stack)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:68:1: error: unrecognized instruction mnemonic
  cargo:warning=TYPE(rust_psm_on_stack)
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:69:28: error: unexpected token in argument list
  cargo:warning=FUNCTION(rust_psm_on_stack):
  cargo:warning=                           ^
  cargo:warning=src/arch/aarch_aapcs64.s:70:1: error: unexpected token at start of statement
  cargo:warning=/* extern "C" fn(r0: usize, r1: usize, r2: extern "C" fn(usize, usize), r3: *mut u8) */
  cargo:warning=^
  cargo:warning=src/arch/aarch_aapcs64.s:87:1: error: unrecognized instruction mnemonic
  cargo:warning=END_FUNCTION(rust_psm_on_stack)
  cargo:warning=^

  --- stderr


  error occurred in cc-rs: command did not execute successfully (status code exit status: 1): LC_ALL="C" "clang-cl" "-nologo" "-MD" "-O2" "-Brepro" "--target=aarch64-pc-windows-msvc" "--target=aarch64-pc-windows-msvc" "-Wno-unused-command-line-argument" "-fuse-ld=lld-link" "/imsvc" "/home/runner/.cache/cargo-xwin/xwin/crt/include" "/imsvc" "/home/runner/.cache/cargo-xwin/xwin/sdk/include/ucrt" "/imsvc" "/home/runner/.cache/cargo-xwin/xwin/sdk/include/um" "/imsvc" "/home/runner/.cache/cargo-xwin/xwin/sdk/include/shared" "-o" "/home/runner/work/duper/duper/target/aarch64-pc-windows-msvc/release/build/psm-fe5a8fdab7dd7b77/out/4f9a91766097c4c5-aarch_aapcs64.o" "-c" "--" "src/arch/aarch_aapcs64.s"


warning: build failed, waiting for other jobs to finish...

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions