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

x/build: add a windows/386 builder with Windows 10 or newer #58007

Closed
dmitshur opened this issue Jan 25, 2023 · 15 comments
Closed

x/build: add a windows/386 builder with Windows 10 or newer #58007

dmitshur opened this issue Jan 25, 2023 · 15 comments
Labels
arch-386 Issues solely affecting the 32-bit x86 architecture Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done. new-builder OS-Windows
Milestone

Comments

@dmitshur
Copy link
Contributor

dmitshur commented Jan 25, 2023

The latest builder for the windows/386 port at this time is windows-386-2012 (Windows 8/8.1).
That builder will be going away as part of #57004.
As long as windows/386 is one of the first class ports, we'll need a builder with a newer version of Windows.

CC @golang/release.

@dmitshur dmitshur added NeedsDecision Feedback is required from experts, contributors, and/or the community before a change can be made. new-builder labels Jan 25, 2023
@dmitshur dmitshur added this to the Unreleased milestone Jan 25, 2023
@gopherbot gopherbot added the Builders x/build issues (builders, bots, dashboards) label Jan 25, 2023
@gopherbot
Copy link

Change https://go.dev/cl/463579 mentions this issue: dashboard: limit windows-{386,amd64}-2012 to build at most Go 1.20

@dmitshur
Copy link
Contributor Author

In CL 463579, @heschi commented:

For my understanding, is there some particular difficulty setting up a windows-386-2016 builder? This one was just a GOARCH setting on top of the amd64 OS, right?

Right. At least I currently can't think of a reason that just reusing the windows-amd64-2016 config with GOHOSTARCH set to 386 wouldn't be all that's needed. Unless someone else knows otherwise, just trying it is likely the easiest way to confirm.

@dmitshur dmitshur added OS-Windows arch-386 Issues solely affecting the 32-bit x86 architecture labels Jan 25, 2023
@bcmills
Copy link
Member

bcmills commented Jan 26, 2023

(CC @golang/windows)

@qmuntal
Copy link
Contributor

qmuntal commented Jan 26, 2023

I'm pretty sure setting GOHOSTARCH=386 will work. It should also support cgo if the builder has a 32-bit C toolchain.

@bcmills
Copy link
Member

bcmills commented Jan 27, 2023

See also #27402

@alexbrainman
Copy link
Member

I'm pretty sure setting GOHOSTARCH=386 will work. It should also support cgo if the builder has a 32-bit C toolchain.

I agree this should work.

And Go team would have to arrange to have 32-bit C toolchain installed. Windows does not come with C compiler - it is up to Go Team to test cgo with correct C toolchain.

Alex

@heschi
Copy link
Contributor

heschi commented Feb 7, 2023

@thanm sounds like we need to build a new Windows image with the 32-bit compiler installed. Is that something you could help with?

@thanm
Copy link
Contributor

thanm commented Feb 7, 2023

The recipe I used is described in https://go-review.googlesource.com/c/build/+/405154 . If you would prefer that I do the image creation though I can certainly look into it.

@thanm
Copy link
Contributor

thanm commented Feb 7, 2023

Hmm, looking at my windows-amd64-2016 gomote, I don't think we need a new image after all (32 bit compilers are already there):

C:\workdir>dir C:\godep 
 Volume in drive C has no label.
 Volume Serial Number is 3808-ACE8

 Directory of C:\godep

06/17/2022  09:18 PM    <DIR>          .
06/17/2022  09:18 PM    <DIR>          ..
06/17/2022  09:18 PM    <DIR>          gcc32
06/17/2022  09:18 PM        78,522,564 gcc32.tar.gz
06/17/2022  09:18 PM    <DIR>          gcc64
06/17/2022  09:18 PM        87,662,281 gcc64.tar.gz
               2 File(s)    166,184,845 bytes
               4 Dir(s)  17,935,249,408 bytes free

@gopherbot
Copy link

Change https://go.dev/cl/468540 mentions this issue: dashboard: add windows-386-2016{,-oldcc} builders

@dmitshur dmitshur added NeedsFix The path to resolution is known, but the work has not been done. and removed NeedsDecision Feedback is required from experts, contributors, and/or the community before a change can be made. labels Feb 15, 2023
gopherbot pushed a commit to golang/build that referenced this issue Feb 15, 2023
This builder is equivalent to windows-amd64-2016, but using
GOARCH/GOHOSTARCH=386.

Older versions of Windows will eventually drop Go support, so we need to
have builders for newer versions.

For golang/go#58007

Change-Id: Ifdbe38aff735c91f1714e82b3e70346dd9e40b9b
Reviewed-on: https://go-review.googlesource.com/c/build/+/468540
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
@prattmic
Copy link
Member

The builders have run on ~1 month of commits and there were 2 flakes, both seemingly new issues: #58569 and #58570.

@gopherbot
Copy link

Change https://go.dev/cl/468937 mentions this issue: dashboard: add windows-386-2016 trybot

gopherbot pushed a commit to golang/build that referenced this issue Feb 17, 2023
CL 468937 added a newer Windows 32-bit TryBot that will provide coverage
for the windows/386 port for Go 1.21 and newer. Stop the older Windows 8
builders from running on the relevant branches.

Updates golang/go#58007.
Fixes golang/go#58008.

Change-Id: I8664a74543b2225986586440ab027cda85b67a3e
Reviewed-on: https://go-review.googlesource.com/c/build/+/463579
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
@qmuntal
Copy link
Contributor

qmuntal commented Feb 23, 2023

@prattmic @thanm the slowbot alias windows-386 still points to the windows-386-2008 builder:

https://github.com/golang/build/blob/d65475a9c9ad54c16e7a2e0bb2ebea6394f0d11a/dashboard/builders.go#L99-L101

Is it necessary for old release branches? If not, can it be updated to windows-386-2016?

@thanm
Copy link
Contributor

thanm commented Feb 23, 2023

Thanks @qmuntal I will send a CL for that.

@gopherbot
Copy link

Change https://go.dev/cl/470715 mentions this issue: builders: redirect windows-386 slowbot alias to 2016 vintage

gopherbot pushed a commit to golang/build that referenced this issue Feb 23, 2023
Update the "windows-386" slowbot alias to windows-386-2016
from windows-386-2008.

Updates golang/go#58007.

Change-Id: I44e10500fcf0520976a80916b1fc4a42307cd7a3
Reviewed-on: https://go-review.googlesource.com/c/build/+/470715
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Michael Pratt <mpratt@google.com>
Run-TryBot: Than McIntosh <thanm@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
@golang golang locked and limited conversation to collaborators Feb 23, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-386 Issues solely affecting the 32-bit x86 architecture Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done. new-builder OS-Windows
Projects
Archived in project
Development

No branches or pull requests

8 participants