-
-
Notifications
You must be signed in to change notification settings - Fork 12.6k
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
gcc 12.1.0 #100411
gcc 12.1.0 #100411
Conversation
ARM patch needs to be rebased on top of the actual RC, I'll do that. Let's see how gcc 12 rc goes on Intel. |
D front-end now needs to be bootstrapped. It has so few users, remove for now. |
844cf5b
to
e74612c
Compare
This PR needs a brew change before we can test formulas that depend on GCC: Homebrew/brew#13221 |
So, both Intel and ARM builds seem to proceed okay, most depends build OK, I've completed the list of revision bumps and this should now look almost like the final thing. (Well, when GCC is released in a week.) |
On ARM macOS 12:
|
This is what I want to do but it will take a while to figure out as it's a bit more complicated than the other formula. I am very confident we can make the If this looks infeasible in the short term then I'm okay with leaving it to the user to get a new enough version of GCC to build the Can I propose a slightly more involved solution for migrating to GCC 12 that would allow us to save the bottles we already made and not force an immediate upgrade to a newer CI image? I am willing to take full responsibility for the work it would require and would start on it immediately if we're okay with it. These are the steps we would take:
Although we will have vastly fewer GCC Linux dependents in the near future, once we've switched to the |
I suggest…
|
This is where we disagree: I think Instead of worrying about making
Yes, this is one example of a viable migration path that I reference above.
This plan requires nearly twice as many rebuilds and/or |
Here's a PR to upgrade Glibc to version 2.35 to get the ball rolling. |
Agreed with all of this. Would suggest we take discussion of a plan into a dedicated issue.
This feels like something we could/should do now to get things rolling. |
I agree! |
Yes, we can see which formulae need this based on CI from #106755. |
Will these bottles get added back? I'm worried because some things have had the bottle removed that are exceedingly expensive to build from source. There has been a huge push that this isn't something we should be solving and instead we should rely on bottles, but if they go away this whole idea breaks down. For example, LLVM no longer has a bottle and that is going to make things very painful for users trying to install it as LLVM can be very slow and resource intensive to build. |
Yes. We intend to do so as soon as possible. Sorry for the inconvenience! |
Any estimates for the timescale of "soon" here? Our continuous builds on Linux are currently broken due to lack of bottles, so we'll have to work around this if its even on the order of days. We've been fine with the periodic bottle re-build that takes several hours in the worst case, but it seems like this is going to be a longer lasting problem than that. We also need to give users instructions as if they are on a laptop for example they may not realistically be able to build LLVM from source. |
We can do with keeping this for a little bit longer. In the meantime, external CI is relying on it. See Homebrew#100411. This reverts commit e90cd98.
I'll add this back in #107087. (Merged in 19dc6a6.) Note: the
I'll give you some warning before that happens. I'll work on merging #107018 so that users who cannot do any of the above can try using Does that work for you? |
We could temporarily go back to llvm@13 if we needed to, or better yet when landed manually install gcc@11. Also happy to know how to get bottles working again w/ the new GCC everywhere, I don't want to leave you all stuck in a weird state either. |
This lets us workaround issues that came up where Homebrew removed the LLVM bottles on Linux that we relied on to have reasonable install times for our CI. See Homebrew/homebrew-core#100411 for discussion of the challenges they're facing here. We raised this issue and they've temporarily worked around it for us so this PR isn't necessary. But I wanted to send it out for reference in case we eventually do need to briefly pin and work around things, we should know how. If interested, I can generalize this a bit so that we just have a simply commitish setting somewhere than enables and leverages this, and we can poke a new commitish into that any time we hit something and need to keep CI flowing.
FWIW, if its useful for us to pin everything for a few days (or even a week) while the world rebuilds against GCC-12, I think that'd be pretty easy for us at this point. |
Just as an update, we've now worked out a smoother transition plan that involves much less breakage. See: There will almost certainly still be some, but it will likely not be to any painful-to-build formulae. In particular, I don't expect any of the workarounds I mentioned above to be necessary. But feel free to shout if we break something again. |
@chandlerc GCC 12 will land in the next hour or so. If something breaks for you, let me know. Anything that does should be fixed by a If there is breakage, |
Just to close the loop, everything worked great with this approach! |
GCC 12.1.0 will be released in about a week: https://gcc.gnu.org/pipermail/gcc/2022-April/238628.html
ARM support was partly, but not fully, integrated into upstream (GCC has a slow development cycle). We can use a patch, based on the maintainer's branch at https://github.com/iains/gcc-darwin-arm64