@@ -522,12 +522,14 @@ impl Build {
522
522
let mut cmd = compiler. to_command ( ) ;
523
523
let is_arm = target. contains ( "aarch64" ) || target. contains ( "arm" ) ;
524
524
let clang = compiler. family == ToolFamily :: Clang ;
525
+ let gnu = compiler. family == ToolFamily :: Gnu ;
525
526
command_add_output_file (
526
527
& mut cmd,
527
528
& obj,
528
529
self . cuda ,
529
530
target. contains ( "msvc" ) ,
530
531
clang,
532
+ gnu,
531
533
false ,
532
534
is_arm,
533
535
) ;
@@ -1377,6 +1379,7 @@ impl Build {
1377
1379
let msvc = target. contains ( "msvc" ) ;
1378
1380
let compiler = self . try_get_compiler ( ) ?;
1379
1381
let clang = compiler. family == ToolFamily :: Clang ;
1382
+ let gnu = compiler. family == ToolFamily :: Gnu ;
1380
1383
1381
1384
let ( mut cmd, name) = if msvc && asm_ext == Some ( AsmFileExt :: DotAsm ) {
1382
1385
self . msvc_macro_assembler ( ) ?
@@ -1396,7 +1399,9 @@ impl Build {
1396
1399
)
1397
1400
} ;
1398
1401
let is_arm = target. contains ( "aarch64" ) || target. contains ( "arm" ) ;
1399
- command_add_output_file ( & mut cmd, & obj. dst , self . cuda , msvc, clang, is_asm, is_arm) ;
1402
+ command_add_output_file (
1403
+ & mut cmd, & obj. dst , self . cuda , msvc, clang, gnu, is_asm, is_arm,
1404
+ ) ;
1400
1405
// armasm and armasm64 don't requrie -c option
1401
1406
if !msvc || !is_asm || !is_arm {
1402
1407
cmd. arg ( "-c" ) ;
@@ -3578,10 +3583,11 @@ fn command_add_output_file(
3578
3583
cuda : bool ,
3579
3584
msvc : bool ,
3580
3585
clang : bool ,
3586
+ gnu : bool ,
3581
3587
is_asm : bool ,
3582
3588
is_arm : bool ,
3583
3589
) {
3584
- if msvc && !clang && !cuda && !( is_asm && is_arm) {
3590
+ if msvc && !clang && !gnu && ! cuda && !( is_asm && is_arm) {
3585
3591
let mut s = OsString :: from ( "-Fo" ) ;
3586
3592
s. push ( & dst) ;
3587
3593
cmd. arg ( s) ;
0 commit comments