diff -r -u parrot-current/config/auto/arch.pm parrot-cc/config/auto/arch.pm --- parrot-current/config/auto/arch.pm 2009-07-03 10:33:43.000000000 -0400 +++ parrot-cc/config/auto/arch.pm 2009-07-03 11:44:01.063812389 -0400 @@ -78,9 +78,10 @@ $osname = 'cygwin'; } elsif ( $cpuarch eq 'i86pc' and $osname eq 'solaris' ) { - # That's only the perl 32/64 bit setting. We can override it with - # -m64 / -m32 for ccflags and ldflags though. - $cpuarch = $archname =~ /-64int/ ? 'x86_64' : 'i386'; + # That's only the perl value, and is the same for both i386 + # and amd64. Use uname -p instead to find the processor type. + chomp($archname = `uname -p`); + $cpuarch = $archname; } if ( $archname =~ m/powerpc/ ) { diff -r -u parrot-current/config/auto/jit.pm parrot-cc/config/auto/jit.pm --- parrot-current/config/auto/jit.pm 2009-07-03 10:33:43.000000000 -0400 +++ parrot-cc/config/auto/jit.pm 2009-07-03 11:39:46.602882019 -0400 @@ -173,6 +173,10 @@ if ( $cpuarch eq 'i386' && $osname eq 'darwin' ) { $jitcapable = 0; } + # And another exception (TT #423) + if ( $cpuarch eq 'i386' && $osname eq 'solaris' ) { + $jitcapable = 0; + } } return $jitcapable; }