cargo.env("CFG_RELEASE", &build.release)
.env("CFG_RELEASE_CHANNEL", &build.config.channel)
.env("CFG_VERSION", &build.version)
- .env("CFG_PREFIX", build.config.prefix.clone().unwrap_or(PathBuf::new()))
- .env("CFG_LIBDIR_RELATIVE", "lib");
+ .env("CFG_PREFIX", build.config.prefix.clone().unwrap_or(PathBuf::new()));
+
+ 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);
+ }
// If we're not building a compiler with debugging information then remove
// these two env vars which would be set otherwise.
pub prefix: Option<PathBuf>,
pub docdir: Option<PathBuf>,
pub libdir: Option<PathBuf>,
+ pub libdir_relative: Option<PathBuf>,
pub mandir: Option<PathBuf>,
pub codegen_tests: bool,
pub nodejs: Option<PathBuf>,
"CFG_LIBDIR" => {
self.libdir = Some(PathBuf::from(value));
}
+ "CFG_LIBDIR_RELATIVE" => {
+ self.libdir_relative = Some(PathBuf::from(value));
+ }
"CFG_MANDIR" => {
self.mandir = Some(PathBuf::from(value));
}