Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please add build for Windows 10 arm64 #12

Closed
dennisameling opened this issue Sep 12, 2020 · 8 comments · Fixed by #15
Closed

Please add build for Windows 10 arm64 #12

dennisameling opened this issue Sep 12, 2020 · 8 comments · Fixed by #15
Assignees

Comments

@dennisameling
Copy link

I saw that you're planning to do some tests with Windows arm64: https://github.com/libvips/build-win64-mxe/blob/master/TODO.md

Please let me know if I can be of any help with testing. Have a Surface Pro X which runs Windows 10 arm64.

Thanks in advance!

@kleisauke kleisauke self-assigned this Sep 22, 2020
@kleisauke
Copy link
Member

Testing this on a Surface Pro X would be great! I was indeed planning to build these binaries for ARM-based Windows versions as well. The current master should already support ARM on Windows, but it's currently missing SVG support. The work-in-progress arm-rust branch should fix this.

I might be able to upload some test binaries tomorrow.

@kleisauke
Copy link
Member

kleisauke commented Sep 25, 2020

This will take a little longer than expected. The ARM64 binaries passes the libvips test suite for the "web" variant but heifsave (included in the "all" variant) appears to be broken (it segfaults within x265). Curiously, the ARM32 binaries passes the heifsave test without issues. Although there is one test that seems to fail for this architecture, PR libvips/libvips#1832 should fix this.

(This was tested on a Raspberry Pi 3B with Windows 10 IoT (ARM32) and on a Raspberry Pi 4B with Windows 10 ARM64)

@kleisauke
Copy link
Member

PR #15 should resolve this issue. The segfault in x265 for ARM64 is still present but this dependency will excluded from the prebuilt binaries in the future, so there's no point in investigating that further.

I intend to release only the statically-linked "web" variants for possible integration in NetVips and sharp. I'm not sure if there is interest in the other variants.

@lovell Do you think sharp can benefit from this?

@lovell
Copy link
Member

lovell commented Sep 27, 2020

Yes, most probably. Do you know of a CI service that provides the Windows+ARM combo?

@kleisauke
Copy link
Member

A pre-release of the ARM-binaries can be found here: https://github.com/libvips/build-win64-mxe/releases/tag/v8.10.1-arm.

I'm not sure whether there is a CI service that can test this. AFAIK, AppVeyor is only capable of cross-compiling for Windows on ARM, and unable to actually test these binaries. Perhaps Azure Pipelines supports Windows on ARM?

@dennisameling
Copy link
Author

@lovell No CI service that supports Windows on ARM unfortunately, even Azure Pipelines doesn't support it ATM. Some large OSS projects like VS Code and Electron have ARM devices like the Surface Pro X in their office and then installed the x86 Windows Azure Pipelines Agent to make it available in Azure Pipelines.

So yes, cross-compiling is currently possible using different CI providers, but if you want to run actual tests on an ARM64 device, you'll need to have one at your disposal that you can link to Azure Pipelines or a different CI provider 😞

@dennisameling
Copy link
Author

Also, here's a feature request for hosted ARM64 Windows agents in Azure Pipelines, please feel free to upvote: https://developercommunity.visualstudio.com/idea/1015752/please-add-a-windows-arm64-hosted-agent.html

@wojtekmaj
Copy link

Related issue: actions/runner-images#768

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants