Re: [MacPorts] #73086: Go is broken on 10.13–10.15
MacPorts
noreply at macports.org
Sun Aug 2 17:01:48 UTC 2026
#73086: Go is broken on 10.13–10.15
---------------------------+------------------------------------------
Reporter: barracuda156 | Owner: herbygillot
Type: defect | Status: assigned
Priority: High | Milestone:
Component: ports | Version: 2.11.5
Resolution: | Keywords: catalina, mojave, highsierra
Port: go |
---------------------------+------------------------------------------
Comment (by herbygillot):
In [changeset:"d247f8b8c653826d33501428e31f085e7e5a3700/macports-ports"
d247f8b8c653826d33501428e31f085e7e5a3700/macports-ports] (master):
{{{
#!ConfigurableCommitTicketReference repository="macports-ports"
revision="d247f8b8c653826d33501428e31f085e7e5a3700"
go_toolchain, go: separate where a release loads from where it is offered
go_toolchain.min_darwin held upstream's supported-macOS floor per series,
which is a support statement rather than a limit dyld enforces. It now
holds
the load-time floor, and 1.21 through 1.24 move to darwin 17.
What actually stops a Go binary is an unresolved symbol.
Security.framework
is reached through //go:cgo_import_dynamic even with CGO disabled, and the
imports are non-lazy, so dyld must bind them all at load.
src/crypto/x509/internal/macos/security.go declares the same twelve
symbols
in 1.20, 1.21, 1.22, 1.23 and 1.24; 1.25 replaces four of them with
SecTrustCopyCertificateChain, macOS 12 and later only. That substitution
is
the whole cliff and it falls between 1.24 and 1.25 -- exactly where
#73086's
bootstrap aborts. LC_BUILD_VERSION is not the limit either: 1.24.8
declares
minos 11.0 and ran on 10.13 through 11 for the nine months MacPorts
shipped
it, since macOS dyld loads a binary whose minos exceeds the running
system.
That reasoning says those releases load on 10.13. It does not say they
behave, and the buildbots have never built them below their old floors. So
min_darwin now drives only where a toolchain may be installed, and a
second
table, go_toolchain.min_default, decides where a series may become the
default `go`. It holds 1.21 through 1.24 exactly where they were.
`go` is therefore unchanged on every system: 1.17 below 10.13, 1.20 on
10.13
and 10.14, 1.22 on 10.15, 1.24 on 11, 1.26 from 12. What changes is that
go-1.22, go-1.23 and go-1.24 become installable on 10.13 through 10.15, so
the buildbots build them there for the first time and the claim gets
tested
before anyone is moved onto it.
Relaxing it later is deleting a min_default entry. No revisions change:
widening a toolchain's platforms does not alter what was built where it
already applied, and no port's version moves.
See: https://trac.macports.org/ticket/73086
}}}
--
Ticket URL: <https://trac.macports.org/ticket/73086#comment:6>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list