Skip to content

Commit ea68a47

Browse files
committed
bootstrap: Don't overwrite CFLAGS_* set in the environment
1 parent d8e93c7 commit ea68a47

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

src/bootstrap/src/core/builder/cargo.rs

+19-6
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,15 @@ impl Cargo {
317317
let cc = ccacheify(&builder.cc(target));
318318
self.command.env(format!("CC_{triple_underscored}"), &cc);
319319

320-
let cflags = builder.cc_unhandled_cflags(target, GitRepo::Rustc, CLang::C).join(" ");
321-
self.command.env(format!("CFLAGS_{triple_underscored}"), &cflags);
320+
// Extend `CXXFLAGS_$TARGET` with our extra flags.
321+
let env = format!("CFLAGS_{triple_underscored}");
322+
let mut cflags =
323+
builder.cc_unhandled_cflags(target, GitRepo::Rustc, CLang::C).join(" ");
324+
if let Ok(var) = std::env::var(&env) {
325+
cflags.push(' ');
326+
cflags.push_str(&var);
327+
}
328+
self.command.env(env, &cflags);
322329

323330
if let Some(ar) = builder.ar(target) {
324331
let ranlib = format!("{} s", ar.display());
@@ -329,11 +336,17 @@ impl Cargo {
329336

330337
if let Ok(cxx) = builder.cxx(target) {
331338
let cxx = ccacheify(&cxx);
332-
let cxxflags =
339+
self.command.env(format!("CXX_{triple_underscored}"), &cxx);
340+
341+
// Extend `CXXFLAGS_$TARGET` with our extra flags.
342+
let env = format!("CXXFLAGS_{triple_underscored}");
343+
let mut cxxflags =
333344
builder.cc_unhandled_cflags(target, GitRepo::Rustc, CLang::Cxx).join(" ");
334-
self.command
335-
.env(format!("CXX_{triple_underscored}"), &cxx)
336-
.env(format!("CXXFLAGS_{triple_underscored}"), cxxflags);
345+
if let Ok(var) = std::env::var(&env) {
346+
cxxflags.push(' ');
347+
cxxflags.push_str(&var);
348+
}
349+
self.command.env(&env, cxxflags);
337350
}
338351
}
339352

0 commit comments

Comments
 (0)