Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 520028 Details for
Bug 647912
dev-lang/rust-1.25.0 version bump
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Fix separate libdir issue
1.23.0-separate-libdir.patch (text/plain), 7.10 KB, created by
Oleg
on 2018-02-18 14:22:58 UTC
(
hide
)
Description:
Fix separate libdir issue
Filename:
MIME Type:
Creator:
Oleg
Created:
2018-02-18 14:22:58 UTC
Size:
7.10 KB
patch
obsolete
>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 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 647912
:
520024
|
520026
|
520028
|
526114