-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
ICE compiling stage2 libcore, when building with LLVM-3.5 #21620
Comments
I am experiencing the same issue with LLVM Debian packages (3.5.1-1~exp1) |
This seems related to how your LLVM is compiled (thanks @flaper87 and @sylvestre for testing).
This means both that rust should work with a vanilla LLVM 3.5.x, but that it doesn't work with debian one (as it is compiled with the switch and without that patch). |
@lucab I can confirm that it works with llvm>=3.5.x. Also, I'm having issues on getting it to compile with fedora's package. There's probably something going on with the flags fedora uses. I'll check in more details soon. |
But then clearly we hit #15793, whose fix is not for 3.5.x and also introduces an API change. I personally think that following @brson suggestions makes more sense: focus on 3.6 compatibility while we are still in time, and drop the rest which is anyway known to be non-working or producing bad code. |
@lucab it starts to seem so.
I agree with the above as long as we keep support for llvm>=3.6 long enough to allow distros to maintain such version. In addition to the above, once a distro has been released with a specific Rust version, it's likely to keep such version and just update minor points (which wouldn't break llvm's compatibility). |
LLVM seems to do bug-fix releases for stable branches these days. (3.4.1 and 3.4.2.) Can we get some fixes into 3.5.1, for example? |
@sanxiyn if we get the required fixes into say 3.5.2, I think it won't be hard for existing llvm packages based on 3.5.x to rebase on top of that version. |
@sanxiyn In theory it should be feasible, yes, but we have to pester upstream a bit about it and see how long they want to maintain old branches. I don't know their stable policy, but I think they mostly aren't too focused on backporting stuff. In practice, however, please consider that:
We (as downstream packager) crearly don't have enough manpower (nor knowledge) to review every commit on both rust and llvm, and pester for backports. I'm focusing on 3.6 right now. |
We, LLVM, are planning to make a 3.5.2. Drop an email to [email protected]. He is the 3.5.X release manager. |
@sylvestre awesome news, thanks for the heads up. |
I've pinged him (plus code owners) via mail asking for backports. I'll keep you posted on the updates. |
@lucab What's the status on the backports? The window for 3.5.2 closes on the 16th. |
I didn't get any answer to my original mail. Maybe it's better if you bring this to the ML? |
I'm probably just missing it, but what about #15793 and http://reviews.llvm.org/D4595? |
I'm torn on that one. We hit that because of the |
I don't exactly remember the details now, but I'm quite sure that only with the minimal lifetime backport on top of vanilla 3.5, |
sigh We'd at least also need the fix for #21721 and I accidently broke some 3.5 compat when I updated our fork to 3.6 (which currently stops me from checking if Before I spend even more time on trying to fix this, I'd like to ask for some "official" stance on supporting older LLVM versions. 3.4 lacks the fix for #21721 so I guess we can just forget about that and rip out our support for compiling against it. But what about 3.5? Do we want to spend the time required to get that working again (at least until we trigger the next bug)? @brson, @alexcrichton what do you think? |
We've never really had an officially supported version of LLVM just yet, we've largely just tracked whatever's "close to master" as far as I know. I would personally love to stick to 3.6 as long as possible (moving to 3.7 but maintaining 3.6 compatibility when it comes out) but I don't think we're willing at this point to commit to maintaining 3.6 compatibility. So I guess to answer your question I'm not sure if it would be all that worth it to invest effort in compatibility with 3.5 (especially with no regression tests). Right now we only "officially support" our own fork which is "pretty close" to 3.6, but this situation could always change over time! I'd love to start adding some bots to gate against older LLVM versions :) |
I at least asked for the fix for #21721 to go into 3.5.2, let's see. http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150309/265961.html |
Can this be closed now that LLVM 3.5.2 is out? |
Closing as it looks like this was fixed upstream |
When building with (system-installed) LLVM 3.5, the following assertion is triggered in
libstd/hash
.This ICE recently surfaced after PR #21588. However, it looks like somebody already experienced it in #2235.
The text was updated successfully, but these errors were encountered: