summaryrefslogtreecommitdiff
path: root/dev-lang/rust/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-01-27 18:07:28 +0000
committerV3n3RiX <venerix@redcorelinux.org>2018-01-27 18:07:28 +0000
commit67f76a858f1ac826bd8a550d756d9ec6e340ed4f (patch)
tree45f4ada6be05bc180a14e017c9d5c6b58a0eec6e /dev-lang/rust/files
parent38b7258d086dd5e263c3bbe3880c8c956676bc71 (diff)
gentoo resync : 27.01.2018
Diffstat (limited to 'dev-lang/rust/files')
-rw-r--r--dev-lang/rust/files/1.23.0-separate-libdir.patch180
1 files changed, 180 insertions, 0 deletions
diff --git a/dev-lang/rust/files/1.23.0-separate-libdir.patch b/dev-lang/rust/files/1.23.0-separate-libdir.patch
new file mode 100644
index 000000000000..dcf1762d2fa5
--- /dev/null
+++ b/dev-lang/rust/files/1.23.0-separate-libdir.patch
@@ -0,0 +1,180 @@
+From c520b2dd277f13dc09e8e72c486e5c58fb97017d Mon Sep 17 00:00:00 2001
+From: O01eg <o01eg@yandex.ru>
+Date: Wed, 29 Nov 2017 12:32:03 +0300
+Subject: [PATCH] Fix #45345.
+
+Re-implement
+
+```bash
+CFG_LIBDIR_RELATIVE=`echo ${CFG_LIBDIR} | cut -c$((${#CFG_PREFIX}+${CAT_INC}))-`
+```
+
+from old `configure` script.
+
+Accept verbosity in rustdoc.
+
+Stage 1 and later use relative libdir.
+
+Build all stages with relative libdirs.
+
+Add library path for real rustdoc with `RUSTDOC_LIBDIR` environment variable.
+
+Remove unused argument `rustc_cargo`.
+
+Remove unused configuration parameter `libdir_relative`.
+---
+ src/bootstrap/bin/rustdoc.rs | 13 ++++++++++++-
+ src/bootstrap/builder.rs | 9 ++++++---
+ src/bootstrap/check.rs | 2 +-
+ src/bootstrap/compile.rs | 13 ++++---------
+ src/bootstrap/config.rs | 1 -
+ src/bootstrap/doc.rs | 2 +-
+ 6 files changed, 24 insertions(+), 16 deletions(-)
+
+diff --git a/src/bootstrap/bin/rustdoc.rs b/src/bootstrap/bin/rustdoc.rs
+index 4e975adc97..24312b50ec 100644
+--- a/src/bootstrap/bin/rustdoc.rs
++++ b/src/bootstrap/bin/rustdoc.rs
+@@ -23,10 +23,17 @@ use std::path::PathBuf;
+ fn main() {
+ let args = env::args_os().skip(1).collect::<Vec<_>>();
+ let rustdoc = env::var_os("RUSTDOC_REAL").expect("RUSTDOC_REAL was not set");
+- let libdir = env::var_os("RUSTC_LIBDIR").expect("RUSTC_LIBDIR was not set");
++ let libdir = env::var_os("RUSTDOC_LIBDIR").expect("RUSTDOC_LIBDIR was not set");
+ let stage = env::var("RUSTC_STAGE").expect("RUSTC_STAGE was not set");
+ let sysroot = env::var_os("RUSTC_SYSROOT").expect("RUSTC_SYSROOT was not set");
+
++ use std::str::FromStr;
++
++ let verbose = match env::var("RUSTC_VERBOSE") {
++ Ok(s) => usize::from_str(&s).expect("RUSTC_VERBOSE should be an integer"),
++ Err(_) => 0,
++ };
++
+ let mut dylib_path = bootstrap::util::dylib_path();
+ dylib_path.insert(0, PathBuf::from(libdir));
+
+@@ -59,6 +66,10 @@ fn main() {
+ .arg("--crate-version").arg(version);
+ }
+
++ if verbose > 1 {
++ eprintln!("rustdoc command: {:?}", cmd);
++ }
++
+ std::process::exit(match cmd.status() {
+ Ok(s) => s.code().unwrap_or(1),
+ Err(e) => panic!("\n\nfailed to run {:?}: {}\n\n", cmd, e),
+diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
+index c76900882b..1927a604c5 100644
+--- a/src/bootstrap/builder.rs
++++ b/src/bootstrap/builder.rs
+@@ -357,8 +357,8 @@ impl<'a> Builder<'a> {
+
+ fn run(self, builder: &Builder) -> Interned<PathBuf> {
+ let compiler = self.compiler;
+- let lib = if compiler.stage >= 2 && builder.build.config.libdir_relative.is_some() {
+- builder.build.config.libdir_relative.clone().unwrap()
++ let lib = if compiler.stage >= 1 && builder.build.config.libdir.is_some() {
++ builder.build.config.libdir.clone().unwrap()
+ } else {
+ PathBuf::from("lib")
+ };
+@@ -416,7 +416,7 @@ impl<'a> Builder<'a> {
+ let compiler = self.compiler(self.top_stage, host);
+ cmd.env("RUSTC_STAGE", compiler.stage.to_string())
+ .env("RUSTC_SYSROOT", self.sysroot(compiler))
+- .env("RUSTC_LIBDIR", self.sysroot_libdir(compiler, self.build.build))
++ .env("RUSTDOC_LIBDIR", self.sysroot_libdir(compiler, self.build.build))
+ .env("CFG_RELEASE_CHANNEL", &self.build.config.channel)
+ .env("RUSTDOC_REAL", self.rustdoc(host))
+ .env("RUSTDOC_CRATE_VERSION", self.build.rust_version())
+@@ -496,6 +496,9 @@ impl<'a> Builder<'a> {
+ if let Some(target_linker) = self.build.linker(target) {
+ cargo.env("RUSTC_TARGET_LINKER", target_linker);
+ }
++ if cmd != "build" {
++ cargo.env("RUSTDOC_LIBDIR", self.rustc_libdir(self.compiler(2, self.build.build)));
++ }
+
+ if mode != Mode::Tool {
+ // Tools don't get debuginfo right now, e.g. cargo and rls don't
+diff --git a/src/bootstrap/check.rs b/src/bootstrap/check.rs
+index 4d69b19c73..d926c2b901 100644
+--- a/src/bootstrap/check.rs
++++ b/src/bootstrap/check.rs
+@@ -1171,7 +1171,7 @@ impl Step for Crate {
+ }
+ Mode::Librustc => {
+ builder.ensure(compile::Rustc { compiler, target });
+- compile::rustc_cargo(build, &compiler, target, &mut cargo);
++ compile::rustc_cargo(build, target, &mut cargo);
+ ("librustc", "rustc-main")
+ }
+ _ => panic!("can only test libraries"),
+diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs
+index db013691bb..d60feb1aff 100644
+--- a/src/bootstrap/compile.rs
++++ b/src/bootstrap/compile.rs
+@@ -485,7 +485,7 @@ impl Step for Rustc {
+ build.clear_if_dirty(&stage_out, &libtest_stamp(build, compiler, target));
+
+ let mut cargo = builder.cargo(compiler, Mode::Librustc, target, "build");
+- rustc_cargo(build, &compiler, target, &mut cargo);
++ rustc_cargo(build, target, &mut cargo);
+ run_cargo(build,
+ &mut cargo,
+ &librustc_stamp(build, compiler, target));
+@@ -500,7 +500,6 @@ impl Step for Rustc {
+
+ /// Same as `std_cargo`, but for libtest
+ pub fn rustc_cargo(build: &Build,
+- compiler: &Compiler,
+ target: Interned<String>,
+ cargo: &mut Command) {
+ cargo.arg("--features").arg(build.rustc_features())
+@@ -514,13 +513,9 @@ pub fn rustc_cargo(build: &Build,
+ .env("CFG_VERSION", build.rust_version())
+ .env("CFG_PREFIX", build.config.prefix.clone().unwrap_or_default());
+
+- if compiler.stage == 0 {
+- cargo.env("CFG_LIBDIR_RELATIVE", "lib");
+- } else {
+- let libdir_relative =
+- build.config.libdir_relative.clone().unwrap_or(PathBuf::from("lib"));
+- cargo.env("CFG_LIBDIR_RELATIVE", libdir_relative);
+- }
++ let libdir_relative =
++ build.config.libdir.clone().unwrap_or(PathBuf::from("lib"));
++ cargo.env("CFG_LIBDIR_RELATIVE", libdir_relative);
+
+ // If we're not building a compiler with debugging information then remove
+ // these two env vars which would be set otherwise.
+diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs
+index 35e62f17f2..1ca19187cf 100644
+--- a/src/bootstrap/config.rs
++++ b/src/bootstrap/config.rs
+@@ -119,7 +119,6 @@ pub struct Config {
+ pub docdir: Option<PathBuf>,
+ pub bindir: Option<PathBuf>,
+ pub libdir: Option<PathBuf>,
+- pub libdir_relative: Option<PathBuf>,
+ pub mandir: Option<PathBuf>,
+ pub codegen_tests: bool,
+ pub nodejs: Option<PathBuf>,
+diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs
+index 3c12cfc4c7..1314d967d8 100644
+--- a/src/bootstrap/doc.rs
++++ b/src/bootstrap/doc.rs
+@@ -616,7 +616,7 @@ impl Step for Rustc {
+ t!(symlink_dir_force(&my_out, &out_dir));
+
+ let mut cargo = builder.cargo(compiler, Mode::Librustc, target, "doc");
+- compile::rustc_cargo(build, &compiler, target, &mut cargo);
++ compile::rustc_cargo(build, target, &mut cargo);
+
+ if build.config.compiler_docs {
+ // src/rustc/Cargo.toml contains a bin crate called rustc which
+--
+2.13.6
+