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: windows/arm (32-bit ARM) port is broken #70705

Open
dmitshur opened this issue Dec 5, 2024 · 6 comments
Open

build: windows/arm (32-bit ARM) port is broken #70705

dmitshur opened this issue Dec 5, 2024 · 6 comments
Labels
arch-arm Issues solely affecting the 32-bit arm architecture. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-Windows umbrella
Milestone

Comments

@dmitshur
Copy link
Contributor

dmitshur commented Dec 5, 2024

The Go porting policy has a section on broken ports, https://go.dev/wiki/PortingPolicy#broken-ports. The GOOS=windows GOARCH=arm (not arm64) port was marked broken in August 2024 (CL 601777) for the following reasons:

This is an umbrella issue to track the status of the port.

CC @golang/windows, @golang/release.

@dmitshur dmitshur added OS-Windows umbrella arch-arm Issues solely affecting the 32-bit arm architecture. labels Dec 5, 2024
@dmitshur dmitshur added this to the Backlog milestone Dec 5, 2024
@gabyhelp
Copy link

gabyhelp commented Dec 5, 2024

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/634077 mentions this issue: _content/doc/go1.24: document broken windows/arm port

gopherbot pushed a commit to golang/website that referenced this issue Dec 6, 2024
For golang/go#70705.
For golang/go#68545.

Change-Id: Ib4c51b28cdff72d2b608423f85ed465dd5fb815d
Reviewed-on: https://go-review.googlesource.com/c/website/+/634077
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
@mknyszek mknyszek added NeedsDecision Feedback is required from experts, contributors, and/or the community before a change can be made. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. and removed NeedsDecision Feedback is required from experts, contributors, and/or the community before a change can be made. labels Dec 6, 2024
@qmuntal
Copy link
Member

qmuntal commented Dec 9, 2024

IMO, the important fact here is that windows/arm32 has been broken since Go 1.17 and nobody complained until now, almost 4 years later. Additionally, Windows 11 no longer supports arm32, not even via arm64 to arm32 emulation. From https://learn.microsoft.com/en-us/windows/arm/arm32-to-arm64:

Windows devices running on an Arm processor (for example, Snapdragon processors from Qualcomm) will no longer support AArch32 (Arm32).

Given these facts, I'm inclined to remove the windows/arm32 port altogether. This will also help making the Windows port easier to maintain, as it's one less architecture to touch when refactoring the compiler and the runtime.

@mcandre
Copy link

mcandre commented Feb 11, 2025

Please elide broken platforms from go tool dist list.

That mechanism can act as a single source of truth for working platforms, so that dev utilities like factorio can function without requiring constantly republishing manual lists of broken ports.

https://github.com/mcandre/factorio

Could there be a Go stdlib API member, so we don't need to shell out every time?

@dmitshur
Copy link
Contributor Author

@mcandre go tool dist list already leaves out broken ports by default. Broken ports can be listed too by passing in the -broken flag.


$ go version
go version go1.24.0 darwin/arm64
$ go tool dist list | grep windows/arm
windows/arm64
$ go tool dist list -broken | grep windows/arm
windows/arm
windows/arm64

$ GOTOOLCHAIN=go1.17.13 go tool dist list | grep windows/arm
windows/arm
windows/arm64

That was issue #56679.

There's no package in the standard library that's a good fit for this, and this information can changes only in major Go releases, so at most once every 6 month, so executing a cmd/dist shouldn't be too onerous. If you still think there's more to do, please file a separate issue for that, since this issue is about the window/arm port specifically. Thanks.

@mcandre

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-arm Issues solely affecting the 32-bit arm architecture. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-Windows umbrella
Projects
None yet
Development

No branches or pull requests

6 participants