@@ -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