about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2020-03-08 20:54:30 +0100
committerGitHub <noreply@github.com>2020-03-08 20:54:30 +0100
commit5e9888eec5f5e5d41be0d6ccd0b55bbd536f44e9 (patch)
treeb65d502293ab4fc84099d40c9cadfb3410cbd821
parentff961789bc11bcace77e789cd680ee18de37ca05 (diff)
parentdbd1514353a5aa38d08fbb08e05aa478ae926de0 (diff)
downloadrust-5e9888eec5f5e5d41be0d6ccd0b55bbd536f44e9.tar.gz
rust-5e9888eec5f5e5d41be0d6ccd0b55bbd536f44e9.zip
Rollup merge of #69608 - o01eg:expose-target-libdir-print, r=ehuss
Expose target libdir information via print command

With custom libdir it is required to have an access to library placement.

See https://github.com/RazrFalcon/cargo-bloat/issues/51
-rw-r--r--src/doc/rustc/src/command-line-arguments.md1
-rw-r--r--src/librustc_driver/lib.rs4
-rw-r--r--src/librustc_session/config.rs4
3 files changed, 8 insertions, 1 deletions
diff --git a/src/doc/rustc/src/command-line-arguments.md b/src/doc/rustc/src/command-line-arguments.md
index 659f8f65e65..7a7838d965b 100644
--- a/src/doc/rustc/src/command-line-arguments.md
+++ b/src/doc/rustc/src/command-line-arguments.md
@@ -146,6 +146,7 @@ The valid types of print values are:
 - `crate-name` — The name of the crate.
 - `file-names` — The names of the files created by the `link` emit kind.
 - `sysroot` — Path to the sysroot.
+- `target-libdir` - Path to the target libdir.
 - `cfg` — List of cfg values. See [conditional compilation] for more
   information about cfg values.
 - `target-list` — List of known targets. The target may be selected with the
diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs
index 789507fb48b..e6c98ad27e8 100644
--- a/src/librustc_driver/lib.rs
+++ b/src/librustc_driver/lib.rs
@@ -680,6 +680,10 @@ impl RustcDefaultCalls {
                     println!("{}", targets.join("\n"));
                 }
                 Sysroot => println!("{}", sess.sysroot.display()),
+                TargetLibdir => println!(
+                    "{}",
+                    sess.target_tlib_path.as_ref().unwrap_or(&sess.host_tlib_path).dir.display()
+                ),
                 TargetSpec => println!("{}", sess.target.target.to_json().pretty()),
                 FileNames | CrateName => {
                     let input = input.unwrap_or_else(|| {
diff --git a/src/librustc_session/config.rs b/src/librustc_session/config.rs
index db4412a18a3..c273e7fdbf9 100644
--- a/src/librustc_session/config.rs
+++ b/src/librustc_session/config.rs
@@ -391,6 +391,7 @@ impl ExternEntry {
 pub enum PrintRequest {
     FileNames,
     Sysroot,
+    TargetLibdir,
     CrateName,
     Cfg,
     TargetList,
@@ -912,7 +913,7 @@ pub fn rustc_short_optgroups() -> Vec<RustcOptGroup> {
             "",
             "print",
             "Compiler information to print on stdout",
-            "[crate-name|file-names|sysroot|cfg|target-list|\
+            "[crate-name|file-names|sysroot|target-libdir|cfg|target-list|\
              target-cpus|target-features|relocation-models|\
              code-models|tls-models|target-spec-json|native-static-libs]",
         ),
@@ -1344,6 +1345,7 @@ fn collect_print_requests(
         "crate-name" => PrintRequest::CrateName,
         "file-names" => PrintRequest::FileNames,
         "sysroot" => PrintRequest::Sysroot,
+        "target-libdir" => PrintRequest::TargetLibdir,
         "cfg" => PrintRequest::Cfg,
         "target-list" => PrintRequest::TargetList,
         "target-cpus" => PrintRequest::TargetCPUs,