Hi all,
cross-posting for reach (guess that only few read internals-win).
We had a feature request the other day to ship PHP builds for Windows on
arm64[1]. It seems to me that Windows on arm64 has left its infancy,
and we may not want to fall too far behind in supporting that platform.
We already have basic support for doing PHP builds for Windows on arm64
for a few years, but there are still two major issues:
(1) The libraries on which several extensions rely are not yet available
for Windows on arm64; at least the winlib-builder[2] would need to be
improved in this regard, but of course, some libraries may not even
support Windows on arm64 yet.
(2) To my knowledge, none of the core developers has a Windows on arm64
environment available, and I presume that nobody wants to run an arm64
emulator on an x64 machine. And since there are no public GH runners
for that platform (that might change in a couple of months, though[3]),
we cannot actually test (let alone develop) these builds.
If we ship builds with what we have now, we may get user feedback, and
might be able to fix an issue or three. And we may even get some help
regarding (1), so (hope dies last) we might be able to ship a full
fledged PHP 8.4.0 for Windows on arm64.
Therefore I suggest to make PHP 8.4 builds for Windows on arm64
available on https://windows.php.net/, either on the QA releases page,
or on the snapshots page, but to clearly mark these as highly
experimental and incomplete.
Thoughts?
[1] https://github.com/php/php-src/issues/15610
[2] https://github.com/winlibs/winlib-builder
[3]
https://github.blog/news-insights/product-news/arm64-on-github-actions-powering-faster-more-efficient-build-systems/
Christoph
Hey,
(1) The libraries on which several extensions rely are not yet available
for Windows on arm64; at least the winlib-builder[2] would need to be
improved in this regard, but of course, some libraries may not even
support Windows on arm64 yet.(2) To my knowledge, none of the core developers has a Windows on arm64
environment available, and I presume that nobody wants to run an arm64
emulator on an x64 machine. And since there are no public GH runners
for that platform (that might change in a couple of months, though[3]),
we cannot actually test (let alone develop) these builds.
I don't have much knowledge about the compiler aspects but to your point 1 from what I understand (as a user of a Surface Pro 11) some apps are built for ARM64 but with some x64 compatibility in mind, that's referred to as ARM64EChttps://learn.microsoft.com/en-us/windows/arm/arm64ec - I've seen this done for Microsoft Office which needs to support some legacy x64 plugins and also foobar2000 to support x64 plugins that are abandoned and won't be recompiled any time soon. I'm thinking this might help with lib dependencies here?
As for 2, I kinda need my computer still but I can offer to test run some builds if it helps.
Best,
Jordi
--
Jordi Boggiano
@seldaek -https://seld.be
(1) The libraries on which several extensions rely are not yet available
for Windows on arm64; at least the winlib-builder[2] would need to be
improved in this regard, but of course, some libraries may not even
support Windows on arm64 yet.(2) To my knowledge, none of the core developers has a Windows on arm64
environment available, and I presume that nobody wants to run an arm64
emulator on an x64 machine. And since there are no public GH runners
for that platform (that might change in a couple of months, though[3]),
we cannot actually test (let alone develop) these builds.I don't have much knowledge about the compiler aspects but to your point
1 from what I understand (as a user of a Surface Pro 11) some apps are
built for ARM64 but with some x64 compatibility in mind, that's referred
to as ARM64EChttps://learn.microsoft.com/en-us/windows/arm/arm64ec -
I've seen this done for Microsoft Office which needs to support some
legacy x64 plugins and also foobar2000 to support x64 plugins that are
abandoned and won't be recompiled any time soon. I'm thinking this might
help with lib dependencies here?
Generally, doing ARM64EC builds might make sense, but since these
require Windows 11, we have the same issue regarding Github, where
currently available windows-2022 runners run on Windows 10.
As for 2, I kinda need my computer still but I can offer to test run
some builds if it helps.
Thank you, that would be very welcome, if we decide to ship builds for
Windows on arm64. That decision is, of course, not up to me.
Christoph