Building golang on unsupported (freebsd/ppc64) system

124 views
Skip to first unread message

Curtis Hamilton

unread,
Nov 9, 2025, 4:10:39 PM (5 days ago) Nov 9
to golan...@googlegroups.com
I'm attempting to build a newer version of go on freebsd/ppc64.  I've been successful in building versions up to go1.19.  However, I'm unable to build any newer release version.  The newly built "go_boostrap" reports it cannot find "GOROOT" (See below).  

Can anyone provide any tips/hints on what I've done wrong?

root@blackbird-powerpc64:~/Devel2/go-go1.20.14/src # env GOOS=freebsd GOARCH=ppc64 ./bootstrap.bash
#### Copying to ../../go-freebsd-ppc64-bootstrap

#### Cleaning ../../go-freebsd-ppc64-bootstrap

#### Building ../../go-freebsd-ppc64-bootstrap

Building Go cmd/dist using /usr/local/go. (go1.19.13 freebsd/ppc64)
Building Go toolchain1 using /usr/local/go.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
go: cannot find GOROOT directory: /root/Devel2/go-freebsd-ppc64-bootstrap
go tool dist: FAILED: /root/Devel2/go-freebsd-ppc64-bootstrap/pkg/tool/freebsd_ppc64/go_bootstrap install cmd/asm cmd/cgo cmd/compile cmd/link: exit status 2
root@blackbird-powerpc64:~/Devel2/go-go1.20.14/src # ../../go-freebsd-ppc64-bootstrap/pkg/tool/freebsd_ppc64/go_bootstrap version
go: cannot find GOROOT directory: /usr/ports/tmp/go-freebsd-ppc64-bootstrap
root@blackbird-powerpc64:~/Devel2/go-go1.20.14/src # ../../go-freebsd-ppc64-bootstrap/pkg/tool/freebsd_ppc64/go_bootstrap
Go is a tool for managing Go source code.

Usage:

go <command> [arguments]

The commands are:

bug         start a bug report
build       compile packages and dependencies
clean       remove object files and cached files
doc         show documentation for package or symbol
env         print Go environment information
fix         update packages to use new APIs
fmt         gofmt (reformat) package sources
generate    generate Go files by processing source
get         add dependencies to current module and install them
install     compile and install packages and dependencies
list        list packages or modules
mod         module maintenance
work        workspace maintenance
run         compile and run Go program
test        test packages
tool        run specified go tool
version     print Go version
vet         report likely mistakes in packages

Use "go help <command>" for more information about a command.

Additional help topics:

buildconstraint build constraints
buildmode       build modes
c               calling between Go and C
cache           build and test caching
environment     environment variables
filetype        file types
go.mod          the go.mod file
gopath          GOPATH environment variable
gopath-get      legacy GOPATH go get
goproxy         module proxy protocol
importpath      import path syntax
modules         modules, module versions, and more
module-get      module-aware go get
module-auth     module authentication using go.sum
packages        package lists and patterns
private         configuration for downloading non-public code
testflag        testing flags
testfunc        testing functions
vcs             controlling version control with GOVCS

Use "go help <topic>" for more information about that topic.

root@blackbird-powerpc64:~/Devel2/go-go1.20.14/src #

Def Ceb

unread,
Nov 9, 2025, 5:17:35 PM (5 days ago) Nov 9
to Curtis Hamilton, golang-nuts
This is a bit of a wild guess, but do you not have procfs mounted? If not, try it with.

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CAP9EAifqz2F21nwm6Pue2NBdHnuWT_3XZvTL5Hix%3DZpkAacVjg%40mail.gmail.com.

Jason E. Aten

unread,
Nov 9, 2025, 11:12:02 PM (5 days ago) Nov 9
to golang-nuts
also just a stab in the dark, but setting/checking/confirm the env var
GOROOT_BOOTSTRAP
would be the first thing I would check. It is described here:

Curtis Hamilton

unread,
Nov 13, 2025, 12:34:57 AM (yesterday) Nov 13
to Def Ceb, golang-nuts
Thanks for the tip!

I resolved the issue.  I needed to update new files in “src/internal/platform”.

Kurtis Rader

unread,
Nov 13, 2025, 12:50:20 AM (yesterday) Nov 13
to Curtis Hamilton, golang-nuts
Okay, what did you change? It's not obvious how the question whether you have procfs mounted resulted in your updating files in “src/internal/platform” and what those changes were. Telling the Go community the details of what you changed might help someone else. Not to mention whether the build tooling should be changed to automatically include those changes.



--
Kurtis Rader
Caretaker of the exceptional canines Junior and Hank

Curtis Hamilton

unread,
Nov 13, 2025, 1:12:57 PM (yesterday) Nov 13
to Kurtis Rader, golang-nuts
My bad!

The changes were to ensure the "freebsd" and "ppc64" pairing are included in "zosarch".go for both "OSArch" and "osArchInfo" declarations.  I did not regenerate zosarch.go after adding the OS/ARCH pair in "cmd/dist/build.go"
Reply all
Reply to author
Forward
0 new messages