Naming the ARM(64) binaries for Windows

Mojca Miklavec mojca.miklavec.lists at
Wed Dec 2 23:23:19 CET 2020

On Wed, 2 Dec 2020 at 14:42, Johannes Hielscher wrote:
> > > Naming the ARM(64) binaries for Windows
> Just to be sure: we are talking about pure native 64-bit ARM64 aka ARMv8
> here? Or has MS decided to also include some 32-bit legacy, not only
> with their x86 emulation, but also native ARM (NB: ARMv8 also supports
> 32-bit mode, coined AArch32)?

Just to clarify: I don't own any arm-based hardware running Windows,
so at the moment I probably have no simple way of testing anything

But (on a 64-bit Intel processor which I do have) Microsoft offers
four different options to compile binaries: Win32, x64, ARM, ARM64.

I have absolutely no idea under what circumstances one would want to
compile 32-bit arm Windows binaries. Maybe for Windows RT? (Which I
wouldn't bother supporting even if we do one day start supporting Arm
in TL.)

On Wed, 2 Dec 2020 at 09:43, Henri Menke via tex-live wrote:
> It should be named `aarch64`,

I was primarily asking about the full name for the binaries, not just
for the architecture name. Even if we decide to stick with "aarch64",
that still leaves the question about whether that means aarch64-win /
aarch64-windows / aarch64-mswin / win-aarch64 / windows-aarch64 / ...
etc. (in addition to possible replacing aarch64 with arm64)

Microsoft almost exclusively promotes "ARM64".

> because the GNU triplet for this architecture is
> `aarch64-linux-gnu` which is what GNU config.guess reports,
> which is used by TeX Live.

... except when it isn't [used by TL].
How do you run config.guess on a clean Windows box (without having
installed one of the toolsets like cygwin, msys, WSL, ...)?

> If C<$^O =~ /MSWin/i> is true we know that we're on
> Windows and we set the global variable C<$::_platform_> to C<win32>.
> Otherwise we call C<platform_name> with the output of C<config.guess>
> as argument.

> Note that the new Apple Silicon M1
> architecture is also called `aarch64-apple-darwin`.

Where did you get this piece of information. I don't have the hardware
to be able to try. In MacPorts it's certainly called "arm64". (And
"uname -p" hasn't always been the most reliable piece of information
when Apple was switching architectures; 64-bit capable macs would
often return "i386", for example.)

Also, it will be called universal-darwin in TeX Live, again overruling
the config.guess.

> What is the output of `uname -m` on a Windows ARM machine?

Apart from the fact that I don't have the hardware: how do you even
(somewhat officially) run uname on Windows?
Assuming we are not counting third-party tools which happily report
"x86_64-linux" (WSL) or "x86_64-cygwin" and alike, ...

Also note that we are already using inconsistent names by shipping
x86_64-linux, but amd64-freebsd.


More information about the tex-live mailing list.