Introduction
Microsoft Build is an annual conference event held by Microsoft, targeted at software engineers and web developers from the Azure and Windows ecosystem. Linaro was present at the Microsoft BUILD event in Seattle on May 23rd-25th, 2023. From a broad conference perspective, the focus was on the integration of generative AI across the entire range of products by Microsoft. This enables unprecedented use cases, for example the new Microsoft copilot AI-based assistant could analyse a test report from github, identify every test failure and create a corresponding Jira ticket, assign it to the right engineers, send email notifications and calendar reminders.
At the conference, Microsoft also announced an increasing number of new applications being released with native support for Windows on Arm. In this blog we take a closer look at what this means for the Windows on Arm ecosystem and the role Linaro has played in these significant achievements.
Building the best Arm apps for Windows
From a Linaro specific perspective, Windows on Arm was very well covered by both qualcomm and Microsoft at Microsoft Build. In particular, the video recording from the closing session “Learn how to build the best Arm apps for Windows” by Ivette Carreras, Jamshed Damkewala and Marcus Perryman is now publicly available on the BUILD website.
The message shared by the speakers is that the majority of dependencies from open source tools has been removed and new applications are now being released with native support for Windows On Arm. There is no magic needed or different tools or different ways of developing applications when adopting the Arm architecture embedded in the qualcomm Snapdragon chips. It is just a question of rebuilding with Arm64 as a target.
Fast-forward to 6’00” into the video and the testimonials include announcements by Ned Stankus from Cisco for their Webex communication suite, Aidan Fitzpatrick from Reincubate for their Camo studio camera filters, Armand Rochette and Yvan Grabit from Steinberg for Cubase and other sound production tools, Graham Booker from Plex for their Plex Media Server.
At 20’00”, Ivette Carreras also announced that Dropbox is now in beta and will become available later this summer thanks to python, Bazel and node being fully supported. This is thanks to the collaboration between Microsoft, Arm, qualcomm and Linaro, as these packages have been at the top of our priority list for the last several months.
Jamshed and Marcus gave a few demonstrations of the latest games, applications and tools now supported natively, including Wine and Flutter.
Fast forward to 32’00” into the public video: Marcus invited every developer to visit the http://aka.ms/ArmOSS page, verify the status of native support for Windows on Arm for most open source packages and request new open source projects that may still be a dependency. Interestingly enough, the short URL recommended by Microsoft redirects to the Linaro-hosted Windows on Arm landing page!
Ivette called out Linaro again at 36’00” in their talk!
The closing and most exciting announcement by the speakers at the end of their session was that Unity 23.1 tech stream release will have Arm native support this summer, it is already available now in beta.
Solving the Open Source Dependencies
The slides presented by Ivette are available on the Microsoft BUILD website and it is worth calling out the “Arm development ecosystem” page:
Ivette clearly walked the audience through the slide and explained the three phases of their approach: (1) deliver critical development tools (2) solve the open source dependencies and then (3) deploy powerful development platforms to all developers.
Since late 2020, Linaro has been focusing on #2, solving the open source dependencies and in February 2022 we announced that Microsoft joined Linaro, Arm and qualcomm to advance Windows on Arm.
Actually the first breakthrough was in April 2021, when Linaro announced the first piece of collaborative work: Linaro, Arm and qualcomm® collaborate to enable native LLVM for Windows 10 on Arm. This was the first LLVM release for Windows 10 on Arm and marked a significant step towards enabling developers to build natively with LLVM on Windows 10 on Arm.
LLVM is one of the main tools the open-source community uses to compile their code and Linaro is the maintainer of LLVM for Arm for Linux, it was just straightforward for our engineers to extend coverage to include Windows on Arm too. Probably the complexity was not on the software engineering side but on setting up a build farm in the early days when Arm nodes running Windows were not available yet from Azure.
In October 2022 Linaro announced: Windows on Arm now supported in Python 3.11 Release. It took a few months of work, after contributing to several key packages, and providing a CI machine to build and test for Windows on Arm.
In October 2022 Linaro started contributing to Flutter, the open source framework by Google for building beautiful, natively compiled, multi-platform applications from a single codebase. It is a key component that allows Android applications to be recompiled for Windows on Arm and then run natively under Windows.
The work is showing good progress, as demonstrated by Marcus in their video at 30’36”. You can follow the Flutter porting notes on our Flutter Enablement Notes page.
Bazel was mentioned by Ivette in her talk as a dependency for DropBox. Bazel is an open-source build and test tool that scalably supports multi-language and multi-platform projects. Bazel is used for many popular projects and is the only support build platform for popular frameworks like TensorFlow.
Linaro started contributing to the Windows on Arm port of Bazel as early as February 2022 with the submission of multiple patches, all now available from trunk.
How can I find out more about Windows on Arm?
A summary of all projects is available from our Windows On Arm page while the engineering landing page at http://aka.ms/ArmOSS provides full details for all open source projects and dependencies on our radar with full status and enablement notes.
For more information on Windows on Arm you can also scroll down on the Windows on Arm page to find videos and blogs:
Linaro.org Windows On Arm Resources
If you would like to get involved in Linaro’s Windows on Arm Group, please contact us at contact@linaro.org.