@@ -610,22 +610,28 @@ pub fn default_configuration(sess: &Session) -> ast::CrateConfig {
610610 let env = & sess. target . target . target_env ;
611611 let vendor = & sess. target . target . target_vendor ;
612612
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" )
616619 } ;
617620
618621 let mk = attr:: mk_name_value_item_str;
619622 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) ) ,
628630 ] ;
631+ match & fam[ ..] {
632+ "windows" | "unix" => ret. push ( attr:: mk_word_item ( fam) ) ,
633+ _ => ( ) ,
634+ }
629635 if sess. opts . debug_assertions {
630636 ret. push ( attr:: mk_word_item ( InternedString :: new ( "debug_assertions" ) ) ) ;
631637 }
0 commit comments