-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Reorganize llvm and clang libs and bindings #2373
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
Comments
This arrangement probably won't work when it's time to make official Debian packages. |
when compiling the entire rust from a release tarball: why not depend on the host LLVM/Clang, if its installed? |
We have a number of GC-related patches on our fork right now, but the goal is to work on stock LLVM eventually. |
With some effort we could probably get Rust to work with upstream LLVM, because the GC stuff is releatively self contained and only used in experimental builds. |
Not critical for 0.6; de-milestoning |
visiting for triage. I considered nominating this for a milestone, but honestly, I could imagine shipping 1.0 without teasing out our locally patched LLVM. @brson When you said "This arrangement probably won't work when it's time to make official Debian packages.", which arrangement were you referring to? The current arrangement? Or the one you proposed? (my best guess is that you were referring to the current arrangement.) |
Debian and Fedora aren't going to care for us not using the upstream LLVM, and we're going to need to be able to use the system libuv/gyp. |
We have no clang bindings, and otherwise all the points of the issue have been worked out. The llvm and rustllvm libraries are both statically linked into rustc, so we don't have to worry about their distribution at all any more. Closing in favor of #8275 (which is what's left to do on this issue). |
Allow ui tests to have dependencies in a reliable way This completely sidesteps the issue that compiletest-rs has where old artifacts of a dependency cause `multiple available crates of name XXX` errors. At this point I think we've reached feature parity for clippy, too, so I'm going to try publishing a version once this is merged.
Add the #[unstable] attribute that will allow us to mark unstable APIs. This PR only adds the attributes and we still need to add the option to enable them and to error out if the user is trying to use an unstable item without explicitly opting-in.
avoid duplicating commands
avoid duplicating commands
Right now we have a native library, rustllvm, that contains LLVM + some extra Rust-specific glue-code, and we have hand-written LLVM bindings in rustc. Soon we will also need clang bindings.
As part of integrating bindgen and its clang bindings I would like to restructure our llvm libs.
The gist of it is that we have two rust crates, llvm and clang, which contain bindings and are statically linked to their native libraries. The primary benefit is that we will have no native libraries for rust-based llvm consumers to deal with. The secondary benefit is that it clearly exposes the rust APIs for llvm so other tools can use them.
The text was updated successfully, but these errors were encountered: