Hi - my first time on the forum. I’ve been programming in Go for a few years now, on a Macbook, a Dell Windows machine, even a Raspberry Pi 3 and 4. Seems my Mac is the one letting me down of late.
I recently did a clean install of MacOS 10.11.6 (el Capitan) on my MacbookPro5,5. Since Home Brew no longer supports 10.11.6 I decided to try and compile Go from source. I downloaded and installed Go1.14.6 with no problem. Downloaded Go1.16 source tarzip.
When I ran ./all.bash I got the following output:
BJD:src brent$ ./all.bash
Building Go cmd/dist using /usr/local/go. (go1.14.15 darwin/amd64)
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.
dyld: Symbol not found: _clock_gettime
Referenced from: /Users/brent/go/pkg/tool/darwin_amd64/go_bootstrap
Expected in: flat namespace
go tool dist: FAILED: /Users/brent/go/pkg/tool/darwin_amd64/go_bootstrap install -gcflags=all= -ldflags=all= -i cmd/asm cmd/cgo cmd/compile cmd/link: signal: trace/BPT trap
I’m not sure why this should happen. Using Go1.14.15 to compile Go1.16 and it’s telling me it still depends on some OS library? I don’t get it. Why isn’t it self-contained? I’m not seeing any Go code dependency issues.
Go doesn’t need to link to shared libraries but it does need an OS. Go 1.14 is the last version to support el Capitan according to the Go release notes. Versions of Go since then require functionality from MacOS that don’t exist in el Capitan.