@@ -497,7 +497,7 @@ impl TargetTriple {
497497 let mut sys_info;
498498 let ( sysname, machine) = unsafe {
499499 sys_info = mem:: zeroed ( ) ;
500- if libc:: uname ( & mut sys_info) != 0 {
500+ if libc:: uname ( & mut sys_info) == - 1 {
501501 return None ;
502502 }
503503
@@ -507,7 +507,11 @@ impl TargetTriple {
507507 )
508508 } ;
509509
510- #[ cfg( not( target_os = "android" ) ) ]
510+ #[ cfg( not( any(
511+ target_os = "android" ,
512+ target_os = "illumos" ,
513+ target_os = "solaris"
514+ ) ) ) ]
511515 let host_triple = match ( sysname, machine) {
512516 ( b"Linux" , b"x86_64" ) => Some ( TRIPLE_X86_64_UNKNOWN_LINUX ) ,
513517 ( b"Linux" , b"i686" ) => Some ( "i686-unknown-linux-gnu" ) ,
@@ -532,7 +536,6 @@ impl TargetTriple {
532536 ( b"NetBSD" , b"x86_64" ) => Some ( "x86_64-unknown-netbsd" ) ,
533537 ( b"NetBSD" , b"i686" ) => Some ( "i686-unknown-netbsd" ) ,
534538 ( b"DragonFly" , b"x86_64" ) => Some ( "x86_64-unknown-dragonfly" ) ,
535- ( b"SunOS" , b"i86pc" ) => Some ( "x86_64-unknown-illumos" ) ,
536539 _ => None ,
537540 } ;
538541
@@ -547,6 +550,19 @@ impl TargetTriple {
547550 _ => None ,
548551 } ;
549552
553+ #[ cfg( target_os = "illumos" ) ]
554+ let host_triple = match ( sysname, machine) {
555+ ( b"SunOS" , b"i86pc" ) => Some ( "x86_64-unknown-illumos" ) ,
556+ _ => None ,
557+ } ;
558+
559+ #[ cfg( target_os = "solaris" ) ]
560+ let host_triple = match ( sysname, machine) {
561+ ( b"SunOS" , b"i86pc" ) => Some ( "x86_64-pc-solaris" ) ,
562+ ( b"SunOS" , b"sun4v" ) => Some ( "sparcv9-sun-solaris" ) ,
563+ _ => None ,
564+ } ;
565+
550566 host_triple. map ( TargetTriple :: new)
551567 }
552568
0 commit comments