-
Notifications
You must be signed in to change notification settings - Fork 17.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
compiling tip on macos 12.0.1
fails
#49472
Comments
have you tried using a newer version of |
I think go1.4 is the one which was in |
No, go1.4 is bootstrappable using a C compiler so it's what you need when compiling on a platform that currently has no Go support. But the only thing you need to bootstrap -in general- is a working Go version, and since we release binaries for your platform (darwin/amd64), you can just download the 1.17 binary from golang.org and use that to bootstrap tip. You don't need to build go1.4 from source with a C compiler. Anyway this is #49425, except you're hitting it on go1.4. Closing as a dup of #49425. |
So, what if one pedantically wants to bootstrap, from scratch (i.e. from nothing but a C compiler), on any modern machine such as macOS 12.x or newer, on which go-1.4 will no longer run? Doesn't that mean we would have to somehow fix go-1.4 to get it working on these more modern platforms again? I'm well aware of #44505 (and I applaud the progress there), but I also think #49425 wasn't really a very suitable place to discuss any bootstrap-from-scratch issues. Perhaps this is a better place? |
The fix was a significant change, it would no longer really be 1.4 if the system call code changed. |
You can also bootstrap from C on Linux or any other non-macOS system that 1.4 supports, and then cross-compile. See src/bootstrap.bash. |
Personally I wouldn't find it too hard to swallow the fact that changing even the whole runtime for a compiler would not necessitate changing its common public version identifier, provided of course that it would still produce the same output from the same input. It's really just a hidden fix -- it literally shouldn't change the outward behaviour of the code in any measurable way that matters. On the other hand, bootstrapping by using a cross-compiler isn't too outlandish either (though it is tremendously more difficult to automate), made slightly better if the cross compiler can run in a virtual machine (though that is only slightly less difficult to automate). Indeed if only macOS were one of those platforms that better supported virtualization it would then even make it easier to cross-compile from a bootstrap running on an older version of itself. I'm not sure which feels more the orphan here -- in some ways it feels like macOS is orphaned by the Go bootstrap compiler chain; even though in literal terms it is actually macOS that orphaned the compiler chain. I guess with my preferred environment actually being NetBSD it seems like the whole situation is absurd and should never have even been possible and both Go and macOS have failed to play strictly by the rule book! |
What version of Go are you using (
go version
)?tip -> 6dcf83d
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
./make.bash -v
What did you expect to see?
Building successfully
What did you see instead?
The text was updated successfully, but these errors were encountered: