@@ -352,21 +352,30 @@ builds on Windows using MSVC.
352352
353353The `MSYS2 <https://www.msys2.org/ >`_ project provides a Unix-like environment
354354for Windows and a package manager that can be used to install the dependencies.
355- The git repo for ``python-flint `` has a script `bin/cibw_before_all_windows.sh
356- <https://github.com/flintlib/python-flint/blob/master/bin/cibw_before_all_windows.sh> `_
357- that installs the dependencies under MSYS2 and builds ``GMP ``, ``MPFR ``,
358- ``FLINT ``. This script is used for building the Windows binaries for PyPI. We
359- use the ``UCRT64 `` (``mingw-w64-ucrt-x86_64 ``) toolchain under MSYS2 to build
360- ``GMP ``, ``MPFR `` and ``FLINT `` because it makes it possible to have a fat
361- build of ``GMP ``
362- (``--enable-fat ``) which bundles micro-architecture specific optimisations for
363- ``x86_64 `` in a redistributable shared library. This is important for
364- performance on modern ``x86_64 `` CPUs and is not possible if building ``GMP ``
365- with MSVC. The Python extension modules themselves are then built with MSVC via
355+ The git repo for ``python-flint `` has scripts
356+ `bin/cibw_before_all_windows_amd64.sh
357+ <https://github.com/flintlib/python-flint/blob/master/bin/cibw_before_all_windows_amd64.sh> `_
358+ and `bin/cibw_before_all_windows_arm64.sh
359+ <https://github.com/flintlib/python-flint/blob/master/bin/cibw_before_all_windows_arm64.sh> `_
360+ that install the dependencies under MSYS2 and build ``GMP ``, ``MPFR ``,
361+ ``FLINT ``. These scripts are used for building the Windows binaries for PyPI.
362+
363+ For ``x86_64 `` wheels we use the ``UCRT64 `` (``mingw-w64-ucrt-x86_64 ``)
364+ toolchain under MSYS2 to build ``GMP ``, ``MPFR `` and ``FLINT `` because it
365+ makes it possible to have a fat build of ``GMP `` (``--enable-fat ``) which
366+ bundles micro-architecture specific optimisations for ``x86_64 `` in a
367+ redistributable shared library. This is important for performance on modern
368+ ``x86_64 `` CPUs and is not possible if building ``GMP `` with MSVC.
369+
370+ For Windows ``arm64 `` wheels we use the ``CLANGARM64 `` MSYS2 toolchain instead.
371+ The ``GMP `` build there does not use ``--enable-fat `` and instead uses the
372+ generic build that works with that toolchain.
373+
374+ The Python extension modules themselves are then built with MSVC via
366375``meson --vsenv `` while linking against the MSYS2-built ``GMP ``, ``MPFR `` and
367376``FLINT `` libraries through ``pkg-config ``. This mixed-toolchain arrangement
368- keeps the `` GMP `` fat build while using the standard Windows compiler for the
369- extension modules.
377+ keeps the MSYS2 dependency builds while using the standard Windows compiler for
378+ the extension modules on both `` x86_64 `` and `` arm64 `` .
370379
371380
372381.. _non_standard_location :
0 commit comments