Skip to end of banner
Go to start of banner

Detailed How-To and Status sub pages

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Space Index

0-9 ... 0 A ... 5 B ... 5 C ... 9 D ... 3 E ... 0
F ... 2 G ... 4 H ... 1 I ... 4 J ... 2 K ... 1
L ... 3 M ... 3 N ... 5 O ... 5 P ... 17 Q ... 2
R ... 1 S ... 9 T ... 7 U ... 0 V ... 1 W ... 9
X ... 0 Y ... 0 Z ... 0 !@#$ ... 0    

0-9

A

Page: A tale of a dependency chain: Pillow and the crew
In this page I’d like to show what dependencies and unexpected issues I’ve found during Pillow Python package porting to win-arm64 investigation and how were these handled. I think these issues and cross-dependencies will be quite common on the road of wi
Page: Android Studio
Android Studio is the official integrated development environment for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development Status The project is still in the early stages and we ar
Page: ARM64EC
ARM64EC is a new ABI that appeared with Windows 11. It allows to mix x64 and arm64 code in the same process. Setup To be able to compile code targeting ARM64EC, you need to install: VS2019 or 2022 Windows 11 SDK (version >= 22000): https://developer.micro
Page: ARM64EC on LLVM
This page is to capture ARM64EC status and progress on LLVM https://github.com/llvm/llvm-project support for windows on arm. The documentation can be found here Understanding Arm64EC ABI and assembly code | Microsoft Docs 23 https://docs.microsoft.com/en-
Page: Audacity
Audacity is the world's most popular audio editing and recording app. It is widely used in Windows. Now, support has been added for building on ARM64. Audacity uses Conan build system to link against its dependencies. Various packages like RapidJSON, wxWi

B

Page: Bazel
This page captures the progress of Bazel for windows on arm. Status Bazel changes to enable WoA has been upstreamed and are present on the trunk. https://github.com/bazelbuild/bazel/pull/14689 https://github.com/bazelbuild/bazel/pull/14689 https://github.
Page: Blender
This page is a work in progress ! Motivation Blender is quite possibly the most popular 3D modelling appplication available, definitely the most popular free one. Enabling it would give considerably better performance on ARM64 platforms for Windows. To ru
Page: Brave
This page tracks Brave browser support for the Windows Arm64 platform. https://brave.com/ https://brave.com/ Status https://github.com/brave/brave-core/pull/15141 https://github.com/brave/brave-core/pull/15141 added support for WoA. Related GitHub issue h
Page: Build Packages from Source
Overview The following tutorials are targeting the currently known most simple and clean way of building any Python packages, even if those include platform specific extension (mostly C/C++) code. These steps assume clean (Win10) system. Third party depen
Page: Building Rust based package
An example of Rust based package is https://github.com/huggingface/tokenizers https://github.com/huggingface/tokenizers To be able to compile rust code: download installer from: https://win.rustup.rs/x86_64 https://win.rustup.rs/x86_64 install toolchain:

C

Page: CFFI
This page captures steps for installing Python cffi package for Windows on Arm platforms. Repository: https://foss.heptapod.net/pypy/cffi https://foss.heptapod.net/pypy/cffi Pypi: https://pypi.org/project/cffi/ https://pypi.org/project/cffi/ Prerequisite
Page: CI Runners for external projects
Since Azure started enabling arm64 virtual machines (april 2022), we have been investigating how to use them to implement CI/CD for external projects, using Github Actions/Azure pipelines and self-hosted runners/agents. We need to solve three different ch
Page: CMake
CMake is a widely used open-source, cross-platform family of tools designed to build, test, and package software. Project homepage: https://cmake.org/ https://cmake.org/ Source code: https://gitlab.kitware.com/cmake/cmake https://gitlab.kitware.com/cmake/
Page: CMake Limitations
1. CMAKE_SYSTEM_PROCESSOR wrongly configured in emulated CMake CMake provides a built-in flag CMAKE_SYSTEM_PROCESSOR to specify the target platform for the build. https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_PROCESSOR.html https://cmake.org/c
Page: CMake Nightly CI
Host We are using tcwg-surface-03.tcwglab machine for running CMake nighly test. Please check out Accessing Windows on Arm machines for instructions on accessing the machine. Following dependencies are installed and required for CMake Visual Studio 2022 I
Page: confluent-kafta
confluent-kafta python package can be compiled for windows/arm64 with following steps Step 1: Install librdkafka git clone https://github.com/Microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh ./vcpkg integrate install librdkafka --triplet arm64-windows #
Page: Continuous integration and delivery for WoA
This page captures the requirements and challenges for deploying CI/CD for WoA open-source projects. CI/CD requirement for Open source projects Most of the open-source projects prefer to use publically available cloud instances for deploying CI/CD for the
Page: cpuinfo - Pytorch
https://github.com/pytorch/cpuinfo#cpu-information-library https://github.com/pytorch/cpuinfo#cpu-information-library Information is needed by cpu info Concept image-20220301-094830.png Data representation image-20220301-095255.png Information is availabl
Page: Cryptography
Here are a set of steps to build python cryptography package Pre-requisite Microsoft Visual Studio 2019 or newer with ARM64 toolchain Rust compiler for Windows on ARM64 Build OpenSSL The first step is to build OpenSSL library which is a dependency for cry

D

Page: Dart/Flutter
Introduction https://en.wikipedia.org/wiki/Dart_(programming_language) https://en.wikipedia.org/wiki/Dart_(programming_language) is a language created by Google to replace Javascript. It is targetting a VM (DartVM). https://en.wikipedia.org/wiki/Flutter_(
Page: Debug run-time DLL issue
Issue found Debug run-time dlls for arm64 are not installed properly by Windows 10 SDK. C:\Windows\System32 path can’t be used for arm64 debug dll loading, even if dlls manual copied from Windows 10 SDK package directories. Steps to reproduce My system Ed
Page: Detailed How-To and Status sub pages

E

F

Page: FFMpeg
Motivation FFMpeg is a widely used tool for just about every conceivable media application, including transcoding, streaming, etc. Status Working via VCPKG. FFMpeg 4 only. Compiling and Binary Availability Install vcpkg, and then execute vcpkg install ffm
Page: Fortran
This page lists the status of FORTRAN compilers for windows on arm targets. Classic Flang Classic Flang is an out-of-tree Fortran compiler targeting LLVM. It is an open-sourced version of pgfortran, a commercial Fortran compiler from PGI/NVIDIA. https://g

G

Page: GIMP
Introduction https://www.gimp.org/ https://www.gimp.org/ is a Free & Open Source Image Editor. Status GIMP is available using msys2/clangarm64 https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-gimp3 https://github.com/msys2/MINGW-packages/tree
Page: Git For Windows
Project Git (SCM) and a set of tools like Git Bash, Git GUI for Windows platforms. Project Home: https://gitforwindows.org/ https://gitforwindows.org/ GitHub: https://github.com/git-for-windows https://github.com/git-for-windows Status Native port of Git
Page: GNU Toolchain for Windows on Arm
Motivation The GNU toolchain is the only major C/C++ toolchain not to support targeting Windows on ARM64. Clang/LLVM and MSVC already have support. Many downstream open-source toolchains; such as MSYS2, MINGW and Cygwin, expressed interested in supporting
Page: GNUStep/LibObjC2
GNUStep is a UI framework that matches Apple’s Cocoa app framework closely. It's widely use to create cross platform applications. https://gnustep.github.io https://gnustep.github.io LibObjC2 is the GNUstep Objective-C runtime was designed as a drop-in re

H

Page: How to setup WoA machine for python buildbot
This page describes how to setup WoA machine to run python buildbot. Credentials Login/password is allocated by python buildbot administrators. You can contact the three maintainers (together) for python buildbot server: Zachary Ware zach@python.org mailt

I

Page: Identify CPU architecture
On Windows, to identify your CPU architecture, the standard way is to read the PROCESSOR_ARCHITECTURE environment variable. For an x64 binary, it will always be set to AMD64. For an arm64 binary, it will always be set to ARM64. Even if you can set the var
Page: Install Packages
This page explains how to install python packages for Windows Arm64 with pip and pypi repository. Many of the python packages still doesn't provide binary wheels for Windows Arm64 targets and pip will be locally building and installing packages with the h
Page: Introduction
Linaro Virtual Connect 2021 Fall: https://www.youtube.com/watch?v=vah0IMpvbYI https://www.youtube.com/watch?v=vah0IMpvbYI
Page: Investigation

J

Page: Jenkins
https://github.com/jenkinsci/jenkins https://github.com/jenkinsci/jenkins Jenkins is an open source https://en.wikipedia.org/wiki/Open_source automation https://en.wikipedia.org/wiki/Automation server https://en.wikipedia.org/wiki/Server_(computing). It h
Page: Jupyter Dependencies
https://jupyter.org/ https://jupyter.org/ with python backend is popular among data scientists and many other professionals and it is one of the popular packages downloaded from pypi and conda repositories. This page captures the key dependencies for Jupy

K

Page: Known issues

L

Page: Lessons learnt from Python package investigations
Page: LibreOffice
https://www.libreoffice.org/ https://www.libreoffice.org/ is a free and open-source office productivity software suite, a project of The Document Foundation (TDF). It was forked in 2010 from http://OpenOffice.org http://OpenOffice.org , an open-sourced ve
Page: LuaJIT
LuaJIT is a Just-In-Time Compiler (JIT) for the Lua https://www.lua.org/ programming language. Lua is a powerful, dynamic and light-weight programming language. It may be embedded or used as a general-purpose, stand-alone language. https://luajit.org/luaj

M

Page: Missing x64 Intrinsics and Windows API for ARM64
This is a list of x64 intrinsics used in many popular codebases but is lacking an ARM64 implementation and an alternative MSVC intrinsics. An alternative ARM64 implementation in C is provided to help developers port code for windows arm64 targets. Intrins
Page: MPV
Motivation MPV is a frree media player that plays a variety of formats. Status Working using clang and msys2 via wenv. Compiling Mainly based on this page, with a few tweaks: https://github.com/mpv-player/mpv/blob/master/DOCS/compile-windows.md https://gi
Page: MySQL
Motivation MySQL is a hugely popular database server, and is used by a large number of enterprises. Enabling it would give considerably better performance on ARM64 platforms for Windows. Status Blocked upstream, awaiting response from Oracle. Their tracke

N

Page: nginx
nginx (pronounced engine-x) is a very popular web server application. Status Working OOB, no modifications required. An example script/wenv recipe can be found here: https://gitlab.com/Linaro/windowsonarm/packages/nginx https://gitlab.com/Linaro/windowson
Page: Ninja
Status Ninja for windows on arm can be compiled and executed successfully. No pre-built binaries are yet available for native windows on arm but can be built from source. Emulated Ninja(x64) also works well. Getting Ninja on Windows Arm64 Mode Known Limia
Page: Node.js
Status https://github.com/nodejs https://github.com/nodejs has added official support for Windows on Arm. CI run using Azure VM maintained by https://www.janeasystems.com/ https://www.janeasystems.com/ Build from Source Clone https://github.com/nodejs htt
Page: Numpy
Numpy support for WoA is available from v1.21. Numpy can be installed with and without BLAS support. Please see the instructions below for installation. Prerequisites Visual Studio 2019 or later with ARM64 toolchain This is a common prerequisite for both
Page: Numpy failing to enable CPU features
Compiling Numpy with MSVC entails the following output INFO: ########### CLIB COMPILER OPTIMIZATION ########### INFO: Platform : Architecture: aarch64 Compiler : msvc CPU baseline : Requested : '+neon' Enabled : none Flags : none Extra checks: none CPU di

O

Page: OBS Studio
https://obsproject.com/ https://obsproject.com/ is a free and open source software for video recording and live streaming. Two PR are currently open: https://github.com/obsproject/obs-studio/pull/4771 https://github.com/obsproject/obs-studio/pull/4771 Dep
Page: OpenBLAS
Status OpenBLAS can be built from source for WoA using LLVM toolchain (clang-cl and flang) Build and test passing for v0.3.24 https://github.com/OpenMathLib/OpenBLAS/releases/tag/v0.3.24 (prebuilt package https://woastorage.blob.core.windows.net/packages/
Page: OpenImageDenoise
This page is a work in progress. OIDN, as of right now, is ~7.5x slower than emulated Project link: https://github.com/OpenImageDenoise/oidn https://github.com/OpenImageDenoise/oidn Motivation OpenImageDenoise is a dependency of Blender, one that is espec
Page: OpenSSL
Status Status 06 January 2023 Building normally with both clang-cl and VS. It is now possible to use clang-cl as assembler which enhances performance of several crypto functions. Downloads Available LTS in OpenSSL 3.0 and later. Clang-cl assembler support
Page: osquery
https://github.com/osquery/osquery https://github.com/osquery/osquery Status PR https://github.com/osquery/osquery/pull/7918 https://github.com/osquery/osquery/pull/7918 enables the support for Windows on Arm64. Build from source Clone https://github.com/

P

Page: Package building tutorial
Page: Packages
This section summarises the progress of porting python packages for windows on arm64 platform. A large number of python packages have platform-specific code and they need to be ported explicitly for new platforms such as windows on arm64. Please see our i
Page: Perl
This page is to capture the status and progress of Perl support for windows on arm. Repository https://github.com/Perl https://github.com/Perl Status Perl can be compiled, and test suite is passing (from this commit https://github.com/Perl/perl5/commit/04
Page: Pillow
This page describes how to build python Pillow package from source. https://github.com/python-pillow/Pillow https://github.com/python-pillow/Pillow There are two at least two ways to build Pillow and its dependencies for Windows on Arm Method 1: Using bui
Page: Porting Overview
Platform agnostic packages Any package, that is distributed only by a generic “*none-any.whl” file, is considered a platform agnostic package. Installing these packages via pip shouldn’t cause any problems (except for dependency issues), as these are not
Page: PostgreSQL
https://www.postgresql.org/ https://www.postgresql.org/ Status PostgresSQL support for Windows on Arm has been requested with a PR. PostgresSQL can be compiled and run successfully with https://commitfest.postgresql.org/37/3561/ https://commitfest.postgre
Page: Power function
The following program gives slightly different results on win/arm64 vs win/x86 and wsl/arm64. This specific issue is found while running numpy test suite. #include <stdio.h> #include <math.h> int main(){ double x = 0.5; double y = 1022 + 52; double z = po
Page: Pre-release Python binary wheels and dependencies
This page contains the pre-release of binary wheels for Python packages being ported for early testing and feedback. How to install pip install <absolute path of wheel file> Limitations These wheel files are built locally, by pre-release 3.10 Python. Only
Page: Pre-release Python Installation
There was a time when is no official python installer was available for win/arm64 devices. However, packages for python 3.9 and above were available in Nuget and also could be compiled from sources as well. Please see the instructions below, if you intere
Page: Progress
Page: PyNaCl
PyNaCl is a Python binding to libsodium https://github.com/jedisct1/libsodium https://github.com/pyca/pynacl https://github.com/pyca/pynacl This page explains how to install the python package for Windows Arm64. Prerequisite Visual Studio installation Vcp
Page: Pyproj
PROJ is a library for performing conversions between cartographic projections. Pyproj is basically a wrapper around it, for interacting with it from the python runtime. There are currently no binary wheels for PyPROJ available on ARM64 Windows, so we need
Page: Python
This collaboration page is the landing page of the journey of Windows On Arm enablement for the Python ecosystem and every required dependency. All feedback, contribution, and findings are welcomed! This is a living page updated regularly, so worth coming
Page: Python package analysis
Feb 2022 Analysis Please see the list of top 500 python packages as of Feb 2022. The list is generated directly from PyPI public dataset https://packaging.python.org/en/latest/guides/analyzing-pypi-package-downloads/. July 2021 Analysis To understand the
Page: Pytorch
Get Native Windows Arm64 Python Please checkout Pre-release Python Installation for instructions Get the latest source https://github.com/pytorch/pytorch https://github.com/pytorch/pytorch Tutorial:https://github.com/pytorch/pytorch#from-source https://gi
Page: PyTorch Status
Status 06 January 2023 Status Open PRs https://github.com/pytorch/pytorch/pull/82967 https://github.com/pytorch/pytorch/pull/82967 https://github.com/pytorch/pytorch/pull/82723#issuecomment-1203970983 https://github.com/pytorch/pytorch/pull/82723#issuecom
Page: PyWin32
Pywin32 is an important python package and Linaro has enabled windows-arm64 support for it. https://github.com/mhammond/pywin32/pull/1793 https://github.com/mhammond/pywin32/pull/1793 Pywin32 yet doesn’t provide a python wheel for windows-arm64 and the fo

Q

Page: QEMU
QEMU is an open-source emulator and virtualization tool. https://www.qemu.org/ https://www.qemu.org/ QEMU can be used as a system emulator and supports multiple CPU architectures and devices. A full guest operating system can be run on the system emulator
Page: Qt
Qt is a cross-platform application development framework for desktop, embedded, and mobile. Status QT for Windows has enabled support for Arm architecture from Qt v6.2. Installers are available from their official website https://www.qt.io/download. You c

R

Page: Ruby
https://www.ruby-lang.org/en/ https://www.ruby-lang.org/en/ is a dynamic, open source programming language with a focus on simplicity and productivity. On Windows, https://rubyinstaller.org/ https://rubyinstaller.org/ is the most used distribution. It’s b

S

Page: SciPy
Prerequisites Visual Studio 2019 or later with ARM64 toolchain Fortran compiler Classic flang - https://github.com/kaadam/flang/releases/tag/v0.1 https://github.com/kaadam/flang/releases/tag/v0.1 Install Python packages numpy cython pybind11 pythran OpenB
Page: sentencepiece
https://github.com/google/sentencepiece https://github.com/google/sentencepiece https://pypi.org/project/sentencepiece/ https://pypi.org/project/sentencepiece/ Steps to build sentencepiece library and python package is given below. git clone https://githu
Page: Setting up PostgreSQL buildfarm animal
Generic instructions are here https://wiki.postgresql.org/wiki/PostgreSQL_Buildfarm_Howto https://wiki.postgresql.org/wiki/PostgreSQL_Buildfarm_Howto Following instructions are setting up an MSVC-based buildfarm animal for Windows on Arm machine. Install
Page: setuptools-distutils
1. Overview As package build process is controlled by distutils (superseded by setuptools), it’s important to know the current status of distutils and setuptools, why there are mutiple instances of an installation, how it’s possible that different package
Page: Shapely and PyGEOS
Shapely is a Python package for manipulation and analysis of planar geometric objects. PyGEOS is a C/Python library with vectorized geometry functions Shapely and PyGEOS doesn’t have python binary wheels for windows on arm. You can find instructions on bu
Page: Signal
Building from source Mostly follow the instructions under https://github.com/signalapp/Signal-Desktop/blob/main/CONTRIBUTING.md https://github.com/signalapp/Signal-Desktop/blob/main/CONTRIBUTING.md . Tested with version v6.36.0. You will need to update pa
Page: SPEC2017
Repository https://dev-private-git.linaro.org/restricted-benchmarks/CPU2017.git/ https://dev-private-git.linaro.org/restricted-benchmarks/CPU2017.git/ Status IntRate/FpRate with no_fortran can run on WOA with clang build. Fortran test need to be support a
Page: SQLite
Project SQLite is a lightweight SQL database engine. It is the most used database engine in the world. https://www.sqlite.org/ https://www.sqlite.org/ Status SQLite support for Windows Arm64 is available. SQLite doesn’t yet provide any pre-built libraries
Page: sse2neon
https://github.com/DLTcollab/sse2neon/ https://github.com/DLTcollab/sse2neon/ Project sse2neon is a header-file project that projects can include on ARM64 platforms instead of immintrin.h. It acts as something of a drop-in replacement for SSE intrinsics,

T

Page: Tcl/Tk
This page is to capture status and progress on Tcl/Tk support for windows on arm. Status Tcl and Tk changes required to support Windows on Arm are upstreamed and present on core-8-6-branch Tcl and Tk supports native and cross-compilation. Build from Sourc
Page: TensorFlow
This page captures steps to build TensorFlow for windows on arm from source and known issues with the build. TensorFlow uses Bazel build system so the first step is to compile Bazel for windows on arm. Build Bazel Bazel can be either built from scratch or
Page: Tensorflow Lite
TensorFlow https://www.tensorflow.org/ is a free and open-source AI/ML framework from Google used for training and inferencing of neural networks. Tensorflow Lite is designed as a smaller subset of Tensorflow aimed at deployment on mobile and edge devices
Page: Third Party Libraries
This section summarises the progress of porting third-party libraries that are required for python packages. Library status Dependencies commit/pull request comment OpenBLAS Released https://github.com/xianyi/OpenBLAS/pull/3345 https://github.com/xianyi/O
Page: Tips and tricks for porting to win-arm64
This page doesn’t try to be a complete porting guide, just a collection of the learnt approaches during porting Python packages and 3rd party libraries. Common issues Start with x86/x64 build as a reference and understand the "clean" build flow if possibl
Page: Toolchain for Python ecosystem
This section covers all toolchain and build system dependencies for the Python ecosystem package / distribution status dependencies CI/CD system commit/pull request commit/pull request date comment Ninja Local build for stand-alone project and Python dist
Page: Tutorials

U

V

Page: VLC
VLC Is one of the most popular and open-source cross-platform media players. Status VLC has been ported to Windows Arm64 and regular releases are available from the official website. https://www.videolan.org/vlc/ https://www.videolan.org/vlc/ CI VLC uses

W

Home page: Windows on Arm (WOA)
Introduction Establish a healthy self-sustaining Arm open source ecosystem for Windows Windows on Arm upstream support Adding support for Windows on Arm into open source projects requires official builds in CI, a long-term commitment to maintainership, an
Page: Windows on Arm Environments
Arm Laptop and dev boxes Limited availability Thinkpads x13 with Snapdragons are expensive. Volterra is out of stock Arm does not have any more to loan Linaro has a couple to spare surface-10 / Volterra• About 10 projects are being run on Linaro CI machin
Page: Windows on Arm GNU tools status page
Module Task Status Details binutils Create basic pe-aarch64 target Complete binutils Fix invalid pe-aarch64 alignment Complete binutils Fix invalid pe-aarch64 .align interpretation Complete binutils rename aarch64pe to arm64pe Complete https://sourceware.
Page: Windows on Arm Toolchain (WOATC)
Introduction Linaro is an active LLVM project contributor with our main goal of making sure that Arm and AArch64 Linux support in upstream LLVM remains highly performant, secure, free of regressions, and competitive against other architectures. This proje
Page: Windows Sandbox
https://learn.microsoft.com/en-us/windows/security/threat-protection/windows-sandbox/windows-sandbox-overview https://learn.microsoft.com/en-us/windows/security/threat-protection/windows-sandbox/windows-sandbox-overview is a technology that allows to laun
Page: Windows Service management
To run a batch file or program as a service, you need an intermediate tool. https://nssm.cc/ https://nssm.cc/ does all you need for your services. It’s free and open source. There exists a repository on Github with this name, but it is not managed by the
Page: windows-arm64 VM using qemu-system
This page describes the process to run a windows-arm64 VM using qemu-system-aarch64. Prerequisites Windows ISO Microsoft does not distribute official ISO for windows-arm64. UUPDump website allows you to build an iso from windows update servers. Pick most
Page: WiX
WiX is a toolset to create windows installation packages. See https://wixtoolset.org/ https://wixtoolset.org/ Status WiX added native support for Windows Arm64 from WiX v4. Wix4 was released on 5th April 2023: https://wixtoolset.org/docs/releasenotes/#v4
Page: WoA Emulation using qemu-user/wine-arm64
We have been experimenting to run Windows on Arm binaries from a Linux-x64 machine using qemu-user and wine-arm64. How it works QEMU can run aarch64 binaries on x64 host: qemu-aarch64 ./program Wine-arm64 is set of native aarch64 binaries that implements

X

Y

Z

!@#$

  • No labels