# HG changeset patch # User diego # Date 1133405482 0 # Node ID 2f4f6c278741a3a637def7361390f43c7b9894d8 # Parent e84e5e9e9ef465e0e4ebfd330dd55f2b5116fbcc AMD's Family 6 CPUs come with two flavors: one that supports SSE and one that dosen't. However, they're not easily distinguishible from their signature (family, model and stepping). Original configure might set -march=athlon-4 for a CPU that dosen't support SSE and causes gcc to generate code that won't run on the target machine. Closes bug #267. patch by Zuxy Meng zuxy -- dot -- meng -- at -- gmail -- dot -- com diff -r e84e5e9e9ef4 -r 2f4f6c278741 configure --- a/configure Wed Nov 30 21:45:32 2005 +0000 +++ b/configure Thu Dec 01 02:51:22 2005 +0000 @@ -837,22 +837,15 @@ fi ;; 6) iproc=686 - if test "$pmodel" -ge 7; then - proc=athlon-4 - elif test "$pmodel" -ge 6; then - # only Athlon XP supports ssem MP, Duron etc not - # but most of them are CPUID 666, so check if sse detected - # btw. there is also athlon-mp opt, but we need extended - # CPUID to detect if CPU is SMP capable -> athlon-mp ::atmos - if test "$_sse" = yes && test "$pstepping" -ge 2; then - proc=athlon-xp - else - proc=athlon-4 - fi - elif test "$pmodel" -ge 4; then - proc=athlon-tbird + # It's a bit difficult to determine the correct type of Family 6 + # AMD CPUs just from their signature. Instead, we check directly + # whether it supports SSE. + if test "$_sse" = yes; then + # gcc treats athlon-xp, athlon-4 and athlon-mp similarly. + proc=athlon-xp else - proc=athlon # TODO: should the Duron Spitfire be considered a Thunderbird instead? + # Again, gcc treats athlon and athlon-tbird similarly. + proc=athlon fi ;; 15) iproc=686 @@ -861,7 +854,7 @@ proc=k8 ;; - *) proc=athlon-xp iproc=686 ;; + *) proc=k8 iproc=686 ;; esac ;; GenuineIntel)