From 4adbab15715e43c98a55742a1164647d4fa6fc52 Mon Sep 17 00:00:00 2001 From: Kevin Minehart <5140827+kminehart@users.noreply.github.com> Date: Wed, 20 Aug 2025 11:59:07 -0500 Subject: [PATCH] =?UTF-8?q?CI:=20For=20community=20supported=20riscv64=20b?= =?UTF-8?q?uilds=20use=20musl-cross=20instead=20of=20zig=20for=E2=80=A6=20?= =?UTF-8?q?(#109931)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Community supported riscv64 builds: use musl-cross instead of zig for build --- pkg/build/daggerbuild/backend/builder.go | 4 +++- pkg/build/daggerbuild/backend/distributions.go | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/pkg/build/daggerbuild/backend/builder.go b/pkg/build/daggerbuild/backend/builder.go index 4b49efa1ba9..104a42687f7 100644 --- a/pkg/build/daggerbuild/backend/builder.go +++ b/pkg/build/daggerbuild/backend/builder.go @@ -106,7 +106,9 @@ func GolangContainer( WithExec([]string{"wget", "-q", "http://dl.grafana.com/ci/arm-linux-musleabihf-cross.tgz", "-P", "/toolchain"}). WithExec([]string{"tar", "-xf", "/toolchain/arm-linux-musleabihf-cross.tgz", "-C", "/toolchain"}). WithExec([]string{"wget", "-q", "https://dl.grafana.com/ci/s390x-linux-musl-cross.tgz", "-P", "/toolchain"}). - WithExec([]string{"tar", "-xf", "/toolchain/s390x-linux-musl-cross.tgz", "-C", "/toolchain"}) + WithExec([]string{"tar", "-xf", "/toolchain/s390x-linux-musl-cross.tgz", "-C", "/toolchain"}). + WithExec([]string{"wget", "-q", "https://dl.grafana.com/ci/riscv64-linux-musl-cross.tgz", "-P", "/toolchain"}). + WithExec([]string{"tar", "-xf", "/toolchain/riscv64-linux-musl-cross.tgz", "-C", "/toolchain"}) return WithGoEnv(log, container, distro, opts) } diff --git a/pkg/build/daggerbuild/backend/distributions.go b/pkg/build/daggerbuild/backend/distributions.go index 05322192a63..31ac6e63140 100644 --- a/pkg/build/daggerbuild/backend/distributions.go +++ b/pkg/build/daggerbuild/backend/distributions.go @@ -264,6 +264,22 @@ func BuildOptsStaticS390X(distro Distribution, experiments []string, tags []stri } } +// BuildOptsStaticS390X builds Grafana statically for the s390x arch +func BuildOptsStaticRiscv64(distro Distribution, experiments []string, tags []string) *GoBuildOpts { + var ( + os, _ = OSAndArch(distro) + ) + + return &GoBuildOpts{ + CC: "/toolchain/riscv64-linux-musl-cross/bin/riscv64-linux-musl-gcc", + CXX: "/toolchain/riscv64-linux-musl-cross/bin/riscv64-linux-musl-cpp", + ExperimentalFlags: experiments, + OS: os, + Arch: "riscv64", + CGOEnabled: true, + } +} + func StdZigBuildOpts(distro Distribution, experiments []string, tags []string) *GoBuildOpts { var ( os, arch = OSAndArch(distro) @@ -331,7 +347,7 @@ var DistributionGoOpts = map[Distribution]DistroBuildOptsFunc{ DistLinuxAMD64: StdZigBuildOpts, DistLinuxAMD64Dynamic: StdZigBuildOpts, DistPlan9AMD64: StdZigBuildOpts, - DistLinuxRISCV64: StdZigBuildOpts, + DistLinuxRISCV64: BuildOptsStaticRiscv64, // Non-Linux distros can have whatever they want in CC and CXX; it'll get overridden // but it's probably not best to rely on that.