changeset 17067:2f4f6c278741

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
author diego
date Thu, 01 Dec 2005 02:51:22 +0000
parents e84e5e9e9ef4
children 400cc3f977a4
files configure
diffstat 1 files changed, 9 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- 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)