Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build: Remove Windows ARM 32-bit build #4584

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

KobeArthurScofield
Copy link
Contributor

@KobeArthurScofield KobeArthurScofield commented Apr 4, 2025

根据 golang/go#71671 ,Go 官方已经数年没有可用的 Windows ARM 32 位 builder 以至于现在出来的 Windows ARM 32 工具链存在问题(Go 1.24 中已经标记为 broken 并且没有提供对应的工具链下载只能交叉编译,并且已经确定在 Go 1.26 移除对 Windows ARM 32 位的支持

因此不用太着急合并,可以最晚到 v26 才移除。

影响范围大概是 Windows 8.1 RT(如果能直接跑的话)、Windows 10 ARM 32 位(含 IoT 版本)、Windows Server Nano ARM 32 位,以及使用 Windows on ARM 64 位但是还在使用 ARM 32 位 Xray-core 的用户。基于 Windows 11 24H2 / Windows Server 2024 的用户不受此影响,因为新系统已经移除运行 32 位 ARM 应用的支持。

To those who wants to keep support for Windows ARM 32-bit:

Please,

  • find an available community solution for building and running apps with newer Go,
  • or maintain a go-windows-arm.

We do not have any Windows ARM devices that can be used to confirm the built binary, unless someone provide one for testing. We do not accept any baby cries like "Why not just keep supporting them?" or "Keeping supporting them does not hurt any thing.", etc. that without reaching out any helping hands.

@yuhan6665
Copy link
Member

Yeah I agree with remove support with official go. BTW I don't think we should support Windows 7 forever, especially now that protocols are rather stable

@KobeArthurScofield
Copy link
Contributor Author

移除 Windows ARM 32 位构建大概阻力大概不会很大,因为必须用到这个构建的人数可能非常少,甚至不知道真的有没有使用者。(Windows 10 开始 64 位版本 Windows on ARM 能支持原生 ARM64 二进制运行,支持 ARM32 大概相当于给之前的 32 位 ARM UWP APP 开支持)

而且目标是 Windows 的话,支持旧版比支持一个 CPU 架构容易:支持旧版大多数调换调用的 API 即可,但是支持一个 CPU 架构需要会汇编。

BTW I don't think we should support Windows 7 forever, especially now that protocols are rather stable

人力上来说永远支持 win7 就不可能,不过支持一段时间还是可以的。 更何况目前只提供编译支持
而且考虑到新功能加入和 bug 修复的话,能支持的时候不下放好像也不太恰当。

不过何时终止支持可以以以下三点其中至少一项来考量:

  • 特定地区(如 CN)使用份额是否一段时间内持续低于特定百分比;
  • 以现有方法支持 1-3 年(在 v26(小概率)/27(可能)/28(可能) 终止);
  • 新版 Go 调用了只有新版 Windows 才有的 API,但是该 API 在旧版 Windows 上没有等位替代或者相近替代。(硬性限制,直接无视上面两条)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants