Move rustllvm
into rustc_llvm
This commit is contained in:
parent
d92155bf6a
commit
10d3f8a484
1
.gitignore
vendored
1
.gitignore
vendored
@ -33,7 +33,6 @@ __pycache__/
|
||||
/mingw-build/
|
||||
# Created by default with `src/ci/docker/run.sh`:
|
||||
/obj/
|
||||
/rustllvm/
|
||||
/unicode-downloads
|
||||
/target
|
||||
# Generated by compiletest for incremental:
|
||||
|
@ -25,7 +25,7 @@ rustc_fs_util = { path = "../rustc_fs_util" }
|
||||
rustc_hir = { path = "../rustc_hir" }
|
||||
rustc_incremental = { path = "../rustc_incremental" }
|
||||
rustc_index = { path = "../rustc_index" }
|
||||
rustc_llvm = { path = "../../src/librustc_llvm" }
|
||||
rustc_llvm = { path = "../rustc_llvm" }
|
||||
rustc_session = { path = "../rustc_session" }
|
||||
rustc_serialize = { path = "../rustc_serialize" }
|
||||
rustc_target = { path = "../rustc_target" }
|
||||
|
@ -96,7 +96,7 @@ pub enum DLLStorageClass {
|
||||
DllExport = 2, // Function to be accessible from DLL.
|
||||
}
|
||||
|
||||
/// Matches LLVMRustAttribute in rustllvm.h
|
||||
/// Matches LLVMRustAttribute in LLVMWrapper.h
|
||||
/// Semantically a subset of the C++ enum llvm::Attribute::AttrKind,
|
||||
/// though it is not ABI compatible (since it's a C++ enum)
|
||||
#[repr(C)]
|
||||
@ -1705,7 +1705,7 @@ extern "C" {
|
||||
PM: &PassManager<'_>,
|
||||
);
|
||||
|
||||
// Stuff that's in rustllvm/ because it's not upstream yet.
|
||||
// Stuff that's in llvm-wrapper/ because it's not upstream yet.
|
||||
|
||||
/// Opens an object file.
|
||||
pub fn LLVMCreateObjectFile(
|
||||
|
@ -4,9 +4,6 @@ name = "rustc_llvm"
|
||||
version = "0.0.0"
|
||||
edition = "2018"
|
||||
|
||||
[lib]
|
||||
path = "lib.rs"
|
||||
|
||||
[features]
|
||||
static-libstdcpp = []
|
||||
emscripten = []
|
||||
@ -15,5 +12,5 @@ emscripten = []
|
||||
libc = "0.2.73"
|
||||
|
||||
[build-dependencies]
|
||||
build_helper = { path = "../build_helper" }
|
||||
build_helper = { path = "../../src/build_helper" }
|
||||
cc = "1.0.58"
|
@ -175,15 +175,15 @@ fn main() {
|
||||
cfg.debug(false);
|
||||
}
|
||||
|
||||
build_helper::rerun_if_changed_anything_in_dir(Path::new("../rustllvm"));
|
||||
cfg.file("../rustllvm/PassWrapper.cpp")
|
||||
.file("../rustllvm/RustWrapper.cpp")
|
||||
.file("../rustllvm/ArchiveWrapper.cpp")
|
||||
.file("../rustllvm/CoverageMappingWrapper.cpp")
|
||||
.file("../rustllvm/Linker.cpp")
|
||||
build_helper::rerun_if_changed_anything_in_dir(Path::new("llvm-wrapper"));
|
||||
cfg.file("llvm-wrapper/PassWrapper.cpp")
|
||||
.file("llvm-wrapper/RustWrapper.cpp")
|
||||
.file("llvm-wrapper/ArchiveWrapper.cpp")
|
||||
.file("llvm-wrapper/CoverageMappingWrapper.cpp")
|
||||
.file("llvm-wrapper/Linker.cpp")
|
||||
.cpp(true)
|
||||
.cpp_link_stdlib(None) // we handle this below
|
||||
.compile("rustllvm");
|
||||
.compile("llvm-wrapper");
|
||||
|
||||
let (llvm_kind, llvm_link_arg) = detect_llvm_link();
|
||||
|
||||
@ -259,7 +259,7 @@ fn main() {
|
||||
}
|
||||
|
||||
// Some LLVM linker flags (-L and -l) may be needed even when linking
|
||||
// librustc_llvm, for example when using static libc++, we may need to
|
||||
// rustc_llvm, for example when using static libc++, we may need to
|
||||
// manually specify the library search path and -ldl -lpthread as link
|
||||
// dependencies.
|
||||
let llvm_linker_flags = tracked_env_var_os("LLVM_LINKER_FLAGS");
|
@ -1,4 +1,4 @@
|
||||
#include "rustllvm.h"
|
||||
#include "LLVMWrapper.h"
|
||||
|
||||
#include "llvm/Object/Archive.h"
|
||||
#include "llvm/Object/ArchiveWriter.h"
|
@ -1,4 +1,4 @@
|
||||
#include "rustllvm.h"
|
||||
#include "LLVMWrapper.h"
|
||||
#include "llvm/ProfileData/Coverage/CoverageMapping.h"
|
||||
#include "llvm/ProfileData/Coverage/CoverageMappingWriter.h"
|
||||
#include "llvm/ProfileData/InstrProf.h"
|
@ -1,6 +1,6 @@
|
||||
#include "llvm/Linker/Linker.h"
|
||||
|
||||
#include "rustllvm.h"
|
||||
#include "LLVMWrapper.h"
|
||||
|
||||
using namespace llvm;
|
||||
|
@ -3,7 +3,7 @@
|
||||
#include <vector>
|
||||
#include <set>
|
||||
|
||||
#include "rustllvm.h"
|
||||
#include "LLVMWrapper.h"
|
||||
|
||||
#include "llvm/Analysis/TargetLibraryInfo.h"
|
||||
#include "llvm/Analysis/TargetTransformInfo.h"
|
@ -1,4 +1,4 @@
|
||||
#include "rustllvm.h"
|
||||
#include "LLVMWrapper.h"
|
||||
#include "llvm/IR/DebugInfoMetadata.h"
|
||||
#include "llvm/IR/DiagnosticInfo.h"
|
||||
#include "llvm/IR/DiagnosticPrinter.h"
|
@ -45,7 +45,7 @@
|
||||
# this flag will indicate that this version check should not be done.
|
||||
#version-check = true
|
||||
|
||||
# Link libstdc++ statically into the librustc_llvm instead of relying on a
|
||||
# Link libstdc++ statically into the rustc_llvm instead of relying on a
|
||||
# dynamic version to be available.
|
||||
#static-libstdcpp = false
|
||||
|
||||
|
@ -812,7 +812,7 @@ impl<'a> Builder<'a> {
|
||||
format!("CARGO_PROFILE_{}_{}", profile, name)
|
||||
};
|
||||
|
||||
// See comment in librustc_llvm/build.rs for why this is necessary, largely llvm-config
|
||||
// See comment in rustc_llvm/build.rs for why this is necessary, largely llvm-config
|
||||
// needs to not accidentally link to libLLVM in stage0/lib.
|
||||
cargo.env("REAL_LIBRARY_PATH_VAR", &util::dylib_path_var());
|
||||
if let Some(e) = env::var_os(util::dylib_path_var()) {
|
||||
@ -829,9 +829,9 @@ impl<'a> Builder<'a> {
|
||||
// scripts can do less work (i.e. not building/requiring LLVM).
|
||||
if cmd == "check" || cmd == "clippy" || cmd == "fix" {
|
||||
// If we've not yet built LLVM, or it's stale, then bust
|
||||
// the librustc_llvm cache. That will always work, even though it
|
||||
// the rustc_llvm cache. That will always work, even though it
|
||||
// may mean that on the next non-check build we'll need to rebuild
|
||||
// librustc_llvm. But if LLVM is stale, that'll be a tiny amount
|
||||
// rustc_llvm. But if LLVM is stale, that'll be a tiny amount
|
||||
// of work comparitively, and we'd likely need to rebuild it anyway,
|
||||
// so that's okay.
|
||||
if crate::native::prebuilt_llvm_config(self, target).is_err() {
|
||||
|
@ -560,7 +560,7 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
|
||||
}
|
||||
|
||||
// Pass down configuration from the LLVM build into the build of
|
||||
// librustc_llvm and librustc_codegen_llvm.
|
||||
// rustc_llvm and rustc_codegen_llvm.
|
||||
//
|
||||
// Note that this is disabled if LLVM itself is disabled or we're in a check
|
||||
// build. If we are in a check build we still go ahead here presuming we've
|
||||
@ -579,7 +579,7 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
|
||||
if let Some(s) = target_config.and_then(|c| c.llvm_config.as_ref()) {
|
||||
cargo.env("CFG_LLVM_ROOT", s);
|
||||
}
|
||||
// Some LLVM linker flags (-L and -l) may be needed to link librustc_llvm.
|
||||
// Some LLVM linker flags (-L and -l) may be needed to link rustc_llvm.
|
||||
if let Some(ref s) = builder.config.llvm_ldflags {
|
||||
cargo.env("LLVM_LINKER_FLAGS", s);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user