Skip to content

Ar failure when cross-compiling host:aarch64-apple-darwin to target:x86_64-w64-mingw32

When cross compiling from host:aarch64-apple-darwin to target:x86_64-w64-mingw32 the compilation fails at stage0 with

ar: creating archive _build/stageBoot/linters/linters-common/build/libHSlinters-common-0.1.0.0.a
ar: @/var/folders/tv/35hlch6s3y15hfvndc71l6d40000gn/T/extra-file-94844998824-68860-132: No such file or directory

I've narrowed down the issue with the following clues:

  • The file does indeed exist
  • My host ar tool doesn't support the @ syntax and fails with No such file or directory because it's looking for a file that starts with @ (instead of interpreting the @ as special syntax)
  • The target ar tool does support @, but it doesn't come into play here because the error is in stage0, which uses the host ar.
  • I can successfully compile ghc using the same host and target with the ar that does not support @

The conclusion thus far is that we're not taking into consideration that when host /= target the ar might not support the same flags

CC: @bgamari

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information