@@ -610,22 +610,28 @@ pub fn default_configuration(sess: &Session) -> ast::CrateConfig {
610
610
let env = & sess. target . target . target_env ;
611
611
let vendor = & sess. target . target . target_vendor ;
612
612
613
- let fam = match sess. target . target . options . is_like_windows {
614
- true => InternedString :: new ( "windows" ) ,
615
- false => InternedString :: new ( "unix" )
613
+ let fam = if let Some ( ref fam) = sess. target . target . options . target_family {
614
+ intern ( fam)
615
+ } else if sess. target . target . options . is_like_windows {
616
+ InternedString :: new ( "windows" )
617
+ } else {
618
+ InternedString :: new ( "unix" )
616
619
} ;
617
620
618
621
let mk = attr:: mk_name_value_item_str;
619
622
let mut ret = vec ! [ // Target bindings.
620
- attr:: mk_word_item( fam. clone( ) ) ,
621
- mk( InternedString :: new( "target_os" ) , intern( os) ) ,
622
- mk( InternedString :: new( "target_family" ) , fam) ,
623
- mk( InternedString :: new( "target_arch" ) , intern( arch) ) ,
624
- mk( InternedString :: new( "target_endian" ) , intern( end) ) ,
625
- mk( InternedString :: new( "target_pointer_width" ) , intern( wordsz) ) ,
626
- mk( InternedString :: new( "target_env" ) , intern( env) ) ,
627
- mk( InternedString :: new( "target_vendor" ) , intern( vendor) ) ,
623
+ mk( InternedString :: new( "target_os" ) , intern( os) ) ,
624
+ mk( InternedString :: new( "target_family" ) , fam. clone( ) ) ,
625
+ mk( InternedString :: new( "target_arch" ) , intern( arch) ) ,
626
+ mk( InternedString :: new( "target_endian" ) , intern( end) ) ,
627
+ mk( InternedString :: new( "target_pointer_width" ) , intern( wordsz) ) ,
628
+ mk( InternedString :: new( "target_env" ) , intern( env) ) ,
629
+ mk( InternedString :: new( "target_vendor" ) , intern( vendor) ) ,
628
630
] ;
631
+ match & fam[ ..] {
632
+ "windows" | "unix" => ret. push ( attr:: mk_word_item ( fam) ) ,
633
+ _ => ( ) ,
634
+ }
629
635
if sess. opts . debug_assertions {
630
636
ret. push ( attr:: mk_word_item ( InternedString :: new ( "debug_assertions" ) ) ) ;
631
637
}
0 commit comments