Add a new rustc_driver dylib to rexport rustc_driver_impl

This commit is contained in:
John Kåre Alsaker 2023-02-02 07:17:46 +01:00
parent 73681323e6
commit 2aceaf4849
7 changed files with 54 additions and 29 deletions

View File

@ -3567,6 +3567,7 @@ dependencies = [
"jemalloc-sys", "jemalloc-sys",
"rustc_codegen_ssa", "rustc_codegen_ssa",
"rustc_driver", "rustc_driver",
"rustc_driver_impl",
"rustc_smir", "rustc_smir",
] ]
@ -3946,6 +3947,13 @@ dependencies = [
[[package]] [[package]]
name = "rustc_driver" name = "rustc_driver"
version = "0.0.0" version = "0.0.0"
dependencies = [
"rustc_driver_impl",
]
[[package]]
name = "rustc_driver_impl"
version = "0.0.0"
dependencies = [ dependencies = [
"libc", "libc",
"rustc_ast", "rustc_ast",

View File

@ -5,6 +5,7 @@ edition = "2021"
[dependencies] [dependencies]
rustc_driver = { path = "../rustc_driver" } rustc_driver = { path = "../rustc_driver" }
rustc_driver_impl = { path = "../rustc_driver_impl" }
# Make sure rustc_codegen_ssa ends up in the sysroot, because this # Make sure rustc_codegen_ssa ends up in the sysroot, because this
# crate is intended to be used by codegen backends, which may not be in-tree. # crate is intended to be used by codegen backends, which may not be in-tree.
@ -20,6 +21,6 @@ features = ['unprefixed_malloc_on_supported_platforms']
[features] [features]
jemalloc = ['jemalloc-sys'] jemalloc = ['jemalloc-sys']
llvm = ['rustc_driver/llvm'] llvm = ['rustc_driver_impl/llvm']
max_level_info = ['rustc_driver/max_level_info'] max_level_info = ['rustc_driver_impl/max_level_info']
rustc_use_parallel_compiler = ['rustc_driver/rustc_use_parallel_compiler'] rustc_use_parallel_compiler = ['rustc_driver_impl/rustc_use_parallel_compiler']

View File

@ -0,0 +1,10 @@
[package]
name = "rustc_driver"
version = "0.0.0"
edition = "2021"
[lib]
crate-type = ["dylib"]
[dependencies]
rustc_driver_impl = { path = "../rustc_driver_impl" }

View File

@ -0,0 +1,7 @@
// This crate is intentionally empty and a rexport of `rustc_driver_impl` to allow the code in
// `rustc_driver_impl` to be compiled in parallel with other crates.
#![allow(unused_extern_crates)]
extern crate rustc_driver_impl;
pub use rustc_driver_impl::*;

View File

@ -1,10 +1,9 @@
[package] [package]
name = "rustc_driver" name = "rustc_driver_impl"
version = "0.0.0" version = "0.0.0"
edition = "2021" edition = "2021"
[lib] [lib]
crate-type = ["dylib"]
[dependencies] [dependencies]
tracing = { version = "0.1.35" } tracing = { version = "0.1.35" }

View File

@ -1,67 +1,67 @@
use rustc_macros::Diagnostic; use rustc_macros::Diagnostic;
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_rlink_unable_to_read)] #[diag(driver_impl_rlink_unable_to_read)]
pub(crate) struct RlinkUnableToRead { pub(crate) struct RlinkUnableToRead {
pub err: std::io::Error, pub err: std::io::Error,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_rlink_wrong_file_type)] #[diag(driver_impl_rlink_wrong_file_type)]
pub(crate) struct RLinkWrongFileType; pub(crate) struct RLinkWrongFileType;
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_rlink_empty_version_number)] #[diag(driver_impl_rlink_empty_version_number)]
pub(crate) struct RLinkEmptyVersionNumber; pub(crate) struct RLinkEmptyVersionNumber;
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_rlink_encoding_version_mismatch)] #[diag(driver_impl_rlink_encoding_version_mismatch)]
pub(crate) struct RLinkEncodingVersionMismatch { pub(crate) struct RLinkEncodingVersionMismatch {
pub version_array: String, pub version_array: String,
pub rlink_version: u32, pub rlink_version: u32,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_rlink_rustc_version_mismatch)] #[diag(driver_impl_rlink_rustc_version_mismatch)]
pub(crate) struct RLinkRustcVersionMismatch<'a> { pub(crate) struct RLinkRustcVersionMismatch<'a> {
pub rustc_version: String, pub rustc_version: String,
pub current_version: &'a str, pub current_version: &'a str,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_rlink_no_a_file)] #[diag(driver_impl_rlink_no_a_file)]
pub(crate) struct RlinkNotAFile; pub(crate) struct RlinkNotAFile;
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_unpretty_dump_fail)] #[diag(driver_impl_unpretty_dump_fail)]
pub(crate) struct UnprettyDumpFail { pub(crate) struct UnprettyDumpFail {
pub path: String, pub path: String,
pub err: String, pub err: String,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_ice)] #[diag(driver_impl_ice)]
pub(crate) struct Ice; pub(crate) struct Ice;
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_ice_bug_report)] #[diag(driver_impl_ice_bug_report)]
pub(crate) struct IceBugReport<'a> { pub(crate) struct IceBugReport<'a> {
pub bug_report_url: &'a str, pub bug_report_url: &'a str,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_ice_version)] #[diag(driver_impl_ice_version)]
pub(crate) struct IceVersion<'a> { pub(crate) struct IceVersion<'a> {
pub version: &'a str, pub version: &'a str,
pub triple: &'a str, pub triple: &'a str,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_ice_flags)] #[diag(driver_impl_ice_flags)]
pub(crate) struct IceFlags { pub(crate) struct IceFlags {
pub flags: String, pub flags: String,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(driver_ice_exclude_cargo_defaults)] #[diag(driver_impl_ice_exclude_cargo_defaults)]
pub(crate) struct IceExcludeCargoDefaults; pub(crate) struct IceExcludeCargoDefaults;

View File

@ -1,19 +1,19 @@
driver_rlink_unable_to_read = failed to read rlink file: `{$err}` driver_impl_rlink_unable_to_read = failed to read rlink file: `{$err}`
driver_rlink_wrong_file_type = The input does not look like a .rlink file driver_impl_rlink_wrong_file_type = The input does not look like a .rlink file
driver_rlink_empty_version_number = The input does not contain version number driver_impl_rlink_empty_version_number = The input does not contain version number
driver_rlink_encoding_version_mismatch = .rlink file was produced with encoding version `{$version_array}`, but the current version is `{$rlink_version}` driver_impl_rlink_encoding_version_mismatch = .rlink file was produced with encoding version `{$version_array}`, but the current version is `{$rlink_version}`
driver_rlink_rustc_version_mismatch = .rlink file was produced by rustc version `{$rustc_version}`, but the current version is `{$current_version}` driver_impl_rlink_rustc_version_mismatch = .rlink file was produced by rustc version `{$rustc_version}`, but the current version is `{$current_version}`
driver_rlink_no_a_file = rlink must be a file driver_impl_rlink_no_a_file = rlink must be a file
driver_unpretty_dump_fail = pretty-print failed to write `{$path}` due to error `{$err}` driver_impl_unpretty_dump_fail = pretty-print failed to write `{$path}` due to error `{$err}`
driver_ice = the compiler unexpectedly panicked. this is a bug. driver_impl_ice = the compiler unexpectedly panicked. this is a bug.
driver_ice_bug_report = we would appreciate a bug report: {$bug_report_url} driver_impl_ice_bug_report = we would appreciate a bug report: {$bug_report_url}
driver_ice_version = rustc {$version} running on {$triple} driver_impl_ice_version = rustc {$version} running on {$triple}
driver_ice_flags = compiler flags: {$flags} driver_impl_ice_flags = compiler flags: {$flags}
driver_ice_exclude_cargo_defaults = some of the compiler flags provided by cargo are hidden driver_impl_ice_exclude_cargo_defaults = some of the compiler flags provided by cargo are hidden