diff --git a/src/cmd/link/internal/ld/macho.go b/src/cmd/link/internal/ld/macho.go index f55f342d6e..431dad9d6b 100644 --- a/src/cmd/link/internal/ld/macho.go +++ b/src/cmd/link/internal/ld/macho.go @@ -430,8 +430,10 @@ func (ctxt *Link) domacho() { // This must be fairly recent for Apple signing (go.dev/issue/30488). // Having too old a version here was also implicated in some problems // calling into macOS libraries (go.dev/issue/56784). - // In general this can be the most recent supported macOS version. - version = 11<<16 | 0<<8 | 0<<0 // 11.0.0 + // CL 460476 noted that in general this can be the most recent supported + // macOS version, but we haven't tested if going higher than Go's oldest + // supported macOS version could cause new problems. + version = 12<<16 | 0<<8 | 0<<0 // 12.0.0 } ml := newMachoLoad(ctxt.Arch, imacho.LC_BUILD_VERSION, 4) ml.data[0] = uint32(machoPlatform) diff --git a/src/cmd/link/link_test.go b/src/cmd/link/link_test.go index c3614c73f0..7c3ca427ed 100644 --- a/src/cmd/link/link_test.go +++ b/src/cmd/link/link_test.go @@ -397,8 +397,8 @@ func TestMachOBuildVersion(t *testing.T) { found := false checkMin := func(ver uint32) { major, minor, patch := (ver>>16)&0xff, (ver>>8)&0xff, (ver>>0)&0xff - if major < 11 { - t.Errorf("LC_BUILD_VERSION version %d.%d.%d < 11.0.0", major, minor, patch) + if major < 12 { + t.Errorf("LC_BUILD_VERSION version %d.%d.%d < 12.0.0", major, minor, patch) } } for _, cmd := range exem.Loads {