Open bradfitz opened 6 years ago
The pre-announcement is added in the CL above, moving to the next.
Is there a hard technical reason why newer versions of Go can't be built on older versions of Mac OS X?
@probonopd Good question. Just because Apple no longer supports a version of Mac OS doesn't mean Go can't support it. I still use Mac OS 10.12 and find it very useful.
@probonopd I did the work and found out that there are technical reasons why newer versions of Go can't be built on older versions of Mac OS X. The reason is missing functions. While working on trying to make Go 1.22.0 build on Mac OS 10.12 I encountered these missing functions:
The chtimes() function doesn't work correctly on Mac OS 10.12.
Overall not a very impressive reason to give up compatibility with older versions of Mac OS X. I did finally figure out how to build Go 1.22.0 on Mac OS 10.12. My patch seems to work well. I am working with MacPorts to try to make a port for Go 1.22.0. Here is where I post my directions on building the compiler on Mac OS 10.12: https://trac.macports.org/ticket/69466#no1.
Thanks for taking the time to investigate this @programmingkidx. On my Macs, 10.6-10.9 is the latest I would like to install, and it would be awesome if Go programs could still run there. How hard is implementing the missing Mac OS X functions in Go?
Actually most of the missing functions have already been implemented in C. See https://github.com/macports/macports-legacy-support/tree/bce12afbf6e10e0216a87ba15c246b446fc810e1.
I am investigating calling C functions from Go's runtime. My theory is I can compile all the new functions into a static library file and somehow embed these functions into a binary. If this works then it could be possible to make binaries and the Go compiler run on Mac OS 10.4 (x86). As for PowerPC that would take a little more work.
CL 563856 added a note to Go 1.23 release notes, moving to the next.
Change https://go.dev/cl/627616 mentions this issue: doc/next: pre-announce dropping macOS 11 support
Note, Aug 2022: See https://github.com/golang/go/issues/23011#issuecomment-738395341 for the macOS deprecation schedule.
Apple continues to put out new macOS releases. We can't run builders for all of them forever.
I propose we announce in the Go 1.10 release notes that Go 1.10 will be the last release to officially support macOS 10.8 (Mountain Lion).
macOS 10.8 was last updated Oct 3, 2013, over 4 years ago.
(macOS 10.9 was last updated Mar 21, 2016, 19 months ago, which is somewhat more recent)
Apple doesn't publish official End-of-Life dates for macOS versions, but I read that their security policy is that they issue security updates for the past 3 releases.
Given that they're on 10.13 now, that means 10.13, 10.12, and 10.11 are supported by them.
Our policy of additionally supporting 10.10 and 10.9 in Go 1.11 would be even more.
/cc @rsc @ianlancetaylor