]> git.lizzy.rs Git - rust.git/commit - src/librustc_llvm/build.rs
Rollup merge of #74787 - petrochenkov:rustllvm, r=cuviper
authorTyler Mandry <tmandry@gmail.com>
Thu, 10 Sep 2020 04:02:24 +0000 (21:02 -0700)
committerGitHub <noreply@github.com>
Thu, 10 Sep 2020 04:02:24 +0000 (21:02 -0700)
commitf09372ab609236510187bd61ab1c6b30cfa69014
tree3f48d5fc5dd1e11c6cfb44b2781867a73c786e77
parent97eb606e4b2becd17d46a67d87169f52b210e67c
parent10d3f8a484a812db995198f17b17462718f477bc
Rollup merge of #74787 - petrochenkov:rustllvm, r=cuviper

Move `rustllvm` into `compiler/rustc_llvm`

The `rustllvm` directory is not self-contained, it contains C++ code built by a build script of the `rustc_llvm` crate which is then linked into that crate.
So it makes sense to make `rustllvm` a part of `rustc_llvm` and move it into its directory.
I replaced `rustllvm` with more obvious `llvm-wrapper` as the subdirectory name, but something like `llvm-adapter` would work as well, other suggestions are welcome.

To make things more confusing, the Rust side of FFI functions defined in `rustllvm` can be found in `rustc_codegen_llvm` rather than in `rustc_llvm`. Perhaps they need to be moved as well, but this PR doesn't do that.

The presence of multiple LLVM-related directories in `src` (`llvm-project`, `rustllvm`, `librustc_llvm`, `librustc_codegen_llvm` and their predecessors) historically confused me and made me wonder about their purpose.
With this PR we will have LLVM itself (`llvm-project`), a FFI crate (`rustc_llvm`, kind of `llvm-sys`) and a codegen backend crate using LLVM through the FFI crate (`rustc_codegen_llvm`).
config.toml.example