@@ -317,8 +317,15 @@ impl Cargo {
317
317
let cc = ccacheify ( & builder. cc ( target) ) ;
318
318
self . command . env ( format ! ( "CC_{triple_underscored}" ) , & cc) ;
319
319
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) ;
322
329
323
330
if let Some ( ar) = builder. ar ( target) {
324
331
let ranlib = format ! ( "{} s" , ar. display( ) ) ;
@@ -329,11 +336,17 @@ impl Cargo {
329
336
330
337
if let Ok ( cxx) = builder. cxx ( target) {
331
338
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 =
333
344
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) ;
337
350
}
338
351
}
339
352
0 commit comments