-
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
Stable: Compatibility fixes for LLVM 3.5 #25739
Conversation
This commit introduce a third parameter for compatible_ifn!, as new intrinsics are being added in recent LLVM releases and there is no need to hardcode a specific case. Signed-off-by: Luca Bruno <lucab@debian.org>
Based on the patch from Luca Bruno. Instead of creating an empty C function in the rt, this version creates an shim noop function using llvm. This function is declared as internal, and the unsupported assume intrinsic and the shim gets completly removed by the optimizer.
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. The way Github handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see CONTRIBUTING.md for more information. |
This looks pretty good to me, thanks! I'm somewhat hesitant about landing before you have a local build completed first, though, as it may indicate that something else is awry internally. |
Hi Alex, Thanks for reviewing! I'm lost for now. Will look in the comming days again. Maybe this Problem is known to you? Program received signal SIGSEGV, Segmentation fault. Backtrace: |
Oh dear, that does look quite intimidating! Perhaps the ABI changed between LLVM versions and the signature listed in rustc_llvm/lib.rs is wrong somewhere? |
@davidvoit which LLVM version is that exactly? This looks like a bug that @eddyb hit, and the fix for that is only in 3.5.2. |
@dotdash Thanks for the pointer! Next step is to make sure that all checks are working. I don't have the fastest machine here, and this takes ages. Will report after i have more infos. |
This needs rebase because LLVMVersionMinor does not exist any more since #24635. |
rebase of #25739, closes #25739. r? @alexcrichton
Based on the pull request from Luca Bruno (#21588)
I'm trying to get the 1.0.0 release running on a Fedora system using the system supplied llvm.
It's still not running, but i getting somewhere.
Is this patch correct? This was my first practical contact with Rust code, and "hey, it's the rust compiler itself" :-)
Now i'm having a dynamical system llvm linked stage1 rustc, which can compile small rust programms. Next stages still don't work - not the referenced ICE, i get here illegal instructions, but only if i activate optimizations in rustc - need to investigate this.