mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 06:44:35 +00:00
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/
|
/mingw-build/
|
||||||
# Created by default with `src/ci/docker/run.sh`:
|
# Created by default with `src/ci/docker/run.sh`:
|
||||||
/obj/
|
/obj/
|
||||||
/rustllvm/
|
|
||||||
/unicode-downloads
|
/unicode-downloads
|
||||||
/target
|
/target
|
||||||
# Generated by compiletest for incremental:
|
# Generated by compiletest for incremental:
|
||||||
|
@ -25,7 +25,7 @@ rustc_fs_util = { path = "../rustc_fs_util" }
|
|||||||
rustc_hir = { path = "../rustc_hir" }
|
rustc_hir = { path = "../rustc_hir" }
|
||||||
rustc_incremental = { path = "../rustc_incremental" }
|
rustc_incremental = { path = "../rustc_incremental" }
|
||||||
rustc_index = { path = "../rustc_index" }
|
rustc_index = { path = "../rustc_index" }
|
||||||
rustc_llvm = { path = "../../src/librustc_llvm" }
|
rustc_llvm = { path = "../rustc_llvm" }
|
||||||
rustc_session = { path = "../rustc_session" }
|
rustc_session = { path = "../rustc_session" }
|
||||||
rustc_serialize = { path = "../rustc_serialize" }
|
rustc_serialize = { path = "../rustc_serialize" }
|
||||||
rustc_target = { path = "../rustc_target" }
|
rustc_target = { path = "../rustc_target" }
|
||||||
|
@ -96,7 +96,7 @@ pub enum DLLStorageClass {
|
|||||||
DllExport = 2, // Function to be accessible from DLL.
|
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,
|
/// Semantically a subset of the C++ enum llvm::Attribute::AttrKind,
|
||||||
/// though it is not ABI compatible (since it's a C++ enum)
|
/// though it is not ABI compatible (since it's a C++ enum)
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
@ -1705,7 +1705,7 @@ extern "C" {
|
|||||||
PM: &PassManager<'_>,
|
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.
|
/// Opens an object file.
|
||||||
pub fn LLVMCreateObjectFile(
|
pub fn LLVMCreateObjectFile(
|
||||||
|
@ -4,9 +4,6 @@ name = "rustc_llvm"
|
|||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[lib]
|
|
||||||
path = "lib.rs"
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
static-libstdcpp = []
|
static-libstdcpp = []
|
||||||
emscripten = []
|
emscripten = []
|
||||||
@ -15,5 +12,5 @@ emscripten = []
|
|||||||
libc = "0.2.73"
|
libc = "0.2.73"
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
build_helper = { path = "../build_helper" }
|
build_helper = { path = "../../src/build_helper" }
|
||||||
cc = "1.0.58"
|
cc = "1.0.58"
|
@ -175,15 +175,15 @@ fn main() {
|
|||||||
cfg.debug(false);
|
cfg.debug(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
build_helper::rerun_if_changed_anything_in_dir(Path::new("../rustllvm"));
|
build_helper::rerun_if_changed_anything_in_dir(Path::new("llvm-wrapper"));
|
||||||
cfg.file("../rustllvm/PassWrapper.cpp")
|
cfg.file("llvm-wrapper/PassWrapper.cpp")
|
||||||
.file("../rustllvm/RustWrapper.cpp")
|
.file("llvm-wrapper/RustWrapper.cpp")
|
||||||
.file("../rustllvm/ArchiveWrapper.cpp")
|
.file("llvm-wrapper/ArchiveWrapper.cpp")
|
||||||
.file("../rustllvm/CoverageMappingWrapper.cpp")
|
.file("llvm-wrapper/CoverageMappingWrapper.cpp")
|
||||||
.file("../rustllvm/Linker.cpp")
|
.file("llvm-wrapper/Linker.cpp")
|
||||||
.cpp(true)
|
.cpp(true)
|
||||||
.cpp_link_stdlib(None) // we handle this below
|
.cpp_link_stdlib(None) // we handle this below
|
||||||
.compile("rustllvm");
|
.compile("llvm-wrapper");
|
||||||
|
|
||||||
let (llvm_kind, llvm_link_arg) = detect_llvm_link();
|
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
|
// 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
|
// manually specify the library search path and -ldl -lpthread as link
|
||||||
// dependencies.
|
// dependencies.
|
||||||
let llvm_linker_flags = tracked_env_var_os("LLVM_LINKER_FLAGS");
|
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/Archive.h"
|
||||||
#include "llvm/Object/ArchiveWriter.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/CoverageMapping.h"
|
||||||
#include "llvm/ProfileData/Coverage/CoverageMappingWriter.h"
|
#include "llvm/ProfileData/Coverage/CoverageMappingWriter.h"
|
||||||
#include "llvm/ProfileData/InstrProf.h"
|
#include "llvm/ProfileData/InstrProf.h"
|
@ -1,6 +1,6 @@
|
|||||||
#include "llvm/Linker/Linker.h"
|
#include "llvm/Linker/Linker.h"
|
||||||
|
|
||||||
#include "rustllvm.h"
|
#include "LLVMWrapper.h"
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
@ -3,7 +3,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
#include "rustllvm.h"
|
#include "LLVMWrapper.h"
|
||||||
|
|
||||||
#include "llvm/Analysis/TargetLibraryInfo.h"
|
#include "llvm/Analysis/TargetLibraryInfo.h"
|
||||||
#include "llvm/Analysis/TargetTransformInfo.h"
|
#include "llvm/Analysis/TargetTransformInfo.h"
|
@ -1,4 +1,4 @@
|
|||||||
#include "rustllvm.h"
|
#include "LLVMWrapper.h"
|
||||||
#include "llvm/IR/DebugInfoMetadata.h"
|
#include "llvm/IR/DebugInfoMetadata.h"
|
||||||
#include "llvm/IR/DiagnosticInfo.h"
|
#include "llvm/IR/DiagnosticInfo.h"
|
||||||
#include "llvm/IR/DiagnosticPrinter.h"
|
#include "llvm/IR/DiagnosticPrinter.h"
|
@ -45,7 +45,7 @@
|
|||||||
# this flag will indicate that this version check should not be done.
|
# this flag will indicate that this version check should not be done.
|
||||||
#version-check = true
|
#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.
|
# dynamic version to be available.
|
||||||
#static-libstdcpp = false
|
#static-libstdcpp = false
|
||||||
|
|
||||||
|
@ -812,7 +812,7 @@ impl<'a> Builder<'a> {
|
|||||||
format!("CARGO_PROFILE_{}_{}", profile, name)
|
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.
|
// needs to not accidentally link to libLLVM in stage0/lib.
|
||||||
cargo.env("REAL_LIBRARY_PATH_VAR", &util::dylib_path_var());
|
cargo.env("REAL_LIBRARY_PATH_VAR", &util::dylib_path_var());
|
||||||
if let Some(e) = env::var_os(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).
|
// scripts can do less work (i.e. not building/requiring LLVM).
|
||||||
if cmd == "check" || cmd == "clippy" || cmd == "fix" {
|
if cmd == "check" || cmd == "clippy" || cmd == "fix" {
|
||||||
// If we've not yet built LLVM, or it's stale, then bust
|
// 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
|
// 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,
|
// of work comparitively, and we'd likely need to rebuild it anyway,
|
||||||
// so that's okay.
|
// so that's okay.
|
||||||
if crate::native::prebuilt_llvm_config(self, target).is_err() {
|
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
|
// 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
|
// 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
|
// 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()) {
|
if let Some(s) = target_config.and_then(|c| c.llvm_config.as_ref()) {
|
||||||
cargo.env("CFG_LLVM_ROOT", s);
|
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 {
|
if let Some(ref s) = builder.config.llvm_ldflags {
|
||||||
cargo.env("LLVM_LINKER_FLAGS", s);
|
cargo.env("LLVM_LINKER_FLAGS", s);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user