Auto merge of #50336 - japaric:llvm-tools, r=Mark-Simulacrum
ship LLVM tools with the toolchain
this PR adds llvm-{nm,objcopy,objdump,size} to the rustc sysroot (right next to LLD)
this slightly increases the size of the rustc component. I measured these numbers on x86_64 Linux:
- rustc-1.27.0-dev-x86_64-unknown-linux-gnu.tar.gz 180M -> 193M (+7%)
- rustc-1.27.0-dev-x86_64-unknown-linux-gnu.tar.xz 129M -> 137M (+6%)
r? @alexcrichton
cc #49584
This commit is contained in:
@@ -199,6 +199,14 @@ use flags::Subcommand;
|
||||
use cache::{Interned, INTERNER};
|
||||
use toolstate::ToolState;
|
||||
|
||||
const LLVM_TOOLS: &[&str] = &[
|
||||
"llvm-nm", // used to inspect binaries; it shows symbol names, their sizes and visibility
|
||||
"llvm-objcopy", // used to transform ELFs into binary format which flashing tools consume
|
||||
"llvm-objdump", // used to disassemble programs
|
||||
"llvm-profdata", // used to inspect and merge files generated by profiles
|
||||
"llvm-size", // prints the size of the linker sections of a program
|
||||
];
|
||||
|
||||
/// A structure representing a Rust compiler.
|
||||
///
|
||||
/// Each compiler has a `stage` that it is associated with and a `host` that
|
||||
@@ -965,6 +973,27 @@ impl Build {
|
||||
self.package_vers(&self.release_num("rustfmt"))
|
||||
}
|
||||
|
||||
fn llvm_tools_vers(&self) -> String {
|
||||
// japaric: should we use LLVM version here?
|
||||
// let stdout = build_helper::output(
|
||||
// Command::new(self.llvm_out(self.config.build).join("build/bin/llvm-size"))
|
||||
// .arg("--version"),
|
||||
// );
|
||||
|
||||
// for line in stdout.lines() {
|
||||
// if line.contains("LLVM version") {
|
||||
// if let Some(vers) = line.split_whitespace().nth(2) {
|
||||
// return vers.to_string();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// panic!("The output of $LLVM_TOOL has changed; \
|
||||
// please fix `bootstrap::Build.llvm_tools_vers`");
|
||||
|
||||
self.rust_version()
|
||||
}
|
||||
|
||||
/// Returns the `version` string associated with this compiler for Rust
|
||||
/// itself.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user