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 linux-arm64-clang builder #69763

Closed
mknyszek opened this issue Oct 3, 2024 · 8 comments
Closed

x/build: add linux-arm64-clang builder #69763

mknyszek opened this issue Oct 3, 2024 · 8 comments
Labels
arch-arm64 Builders x/build issues (builders, bots, dashboards) NeedsFix The path to resolution is known, but the work has not been done. new-builder OS-Linux
Milestone

Comments

@mknyszek
Copy link
Contributor

mknyszek commented Oct 3, 2024

Requested by @randall77 for at least debugging clang-on-arm64 issues. Might as well just support it in general, it's about the same amount of work, assuming the tests pass.

@mknyszek mknyszek self-assigned this Oct 3, 2024
@gopherbot gopherbot added the Builders x/build issues (builders, bots, dashboards) label Oct 3, 2024
@gopherbot gopherbot added this to the Unreleased milestone Oct 3, 2024
@mknyszek mknyszek added the NeedsFix The path to resolution is known, but the work has not been done. label Oct 3, 2024
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/617577 mentions this issue: main.star: add linux-arm64-clang15 builder type

@dmitshur dmitshur moved this to In Progress in Go Release Oct 3, 2024
gopherbot pushed a commit to golang/build that referenced this issue Oct 3, 2024
I uploaded the toolchain to CIPD already, so assuming the tests pass it
should just work out of the box.

For golang/go#69763.

Change-Id: I3e4bbbfbb3f674475a0c3f6ec0ad45870e0cc960
Reviewed-on: https://go-review.googlesource.com/c/build/+/617577
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
@mknyszek
Copy link
Contributor Author

mknyszek commented Oct 3, 2024

Hrm, some problems:

Building Go cmd/dist using /home/swarming/.swarming/w/ir/cache/tools/go_bootstrap. (go1.22.6 linux/arm64)
Building Go toolchain1 using /home/swarming/.swarming/w/ir/cache/tools/go_bootstrap.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for linux/arm64.
# runtime/cgo
clang: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by clang)
clang: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by clang)
go tool dist: FAILED: /home/swarming/.swarming/w/ir/x/w/goroot/pkg/tool/linux_arm64/go_bootstrap install std: exit status 1

Is this just saying that the libstdc++ that's installed on our builders is too old for clang 15?

@ianlancetaylor
Copy link
Member

Yes. The errors are saying that we can't run the clang binary, because the installed libstdc++.so.6 is too old.

That said, GLIBCXX_3.4.29 and CXXABI_1.3.13 were released in 2021, so we seem to be using some relatively old versions.

@mknyszek
Copy link
Contributor Author

mknyszek commented Oct 3, 2024

Thanks. I'm not super surprised; our arm64 builder is based on Debian bullseye from 2021. It's a little weird that clang on amd64 works though. It's the same version of clang. Maybe we just haven't updated our arm64 image in a while?

Even weirder, it appears we've got Debian 11.2 for amd64, but Debian 11.7 for arm64...

@mknyszek mknyszek removed their assignment Oct 4, 2024
@dmitshur dmitshur moved this from In Progress to Planned in Go Release Oct 21, 2024
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/622039 mentions this issue: env/linux-arm64-bookworm: add image

@mknyszek
Copy link
Contributor Author

I've confirmed that the bookworm image does actually have a new enough libstdc++, so hopefully it'll work there.

@mknyszek
Copy link
Contributor Author

Huzzah! make.bash works now. https://ci.chromium.org/ui/p/golang/builders/ci-workers.shadow/gotip-linux-arm64-clang15-build_go/b8733166898151394753/infra

gopherbot pushed a commit to golang/build that referenced this issue Oct 24, 2024
This is an attempt to upgrade the Debian image for linux-arm64.

For golang/go#69763.

Change-Id: I73e579bcd5599e4eb4461d81cd79ed45d8239dad
Reviewed-on: https://go-review.googlesource.com/c/build/+/622039
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
@mknyszek
Copy link
Contributor Author

Turns out that was the only issue. Yay! All done. https://ci.chromium.org/ui/p/golang/builders/ci/gotip-linux-arm64-clang15/b8733158741102774385

@github-project-automation github-project-automation bot moved this from Planned to Done in Go Release Oct 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arch-arm64 Builders x/build issues (builders, bots, dashboards) NeedsFix The path to resolution is known, but the work has not been done. new-builder OS-Linux
Projects
Archived in project
Development

No branches or pull requests

4 participants