diff -urN rpm-4_0-4.0.4-orig/installplatform rpm-4_0-4.0.4/installplatform
--- rpm-4_0-4.0.4-orig/installplatform	2004-09-29 20:03:06 +0400
+++ rpm-4_0-4.0.4/installplatform	2004-09-29 19:40:14 +0400
@@ -35,7 +35,7 @@
 ln -s ${arch}-${VENDOR}-${OS} ${DESTDIR}/${pkglibdir}/noarch-${OS}
 
 case "$arch" in
-  i[3456]86|k6|athlon|pentium4) SUBSTS='s_\(i[3456]86\|k6\|athlon|pentium4\)_i386_ s_\(i[3456]86\|k6\|athlon|pentium4\)_i486_ s_\(i[3456]86\|k6\|athlon|pentium4\)_i586_ s_\(i[3456]86\|k6\|athlon|pentium4\)_i686_ s_\(i[3456]86\|k6\|athlon|pentium4\)_k6_ s_\(i[3456]86\|k6\|athlon|pentium4\)_athlon_ s_\(i[3456]86\|k6\|athlon|pentium4\)_pentium4_' ;;
+  i[3456]86|k6|athlon|athlonxp|pentium4) SUBSTS='s_\(i[3456]86\|k6\|athlon|athlonxp|pentium4\)_i386_ s_\(i[3456]86\|k6\|athlon|athlonxp|pentium4\)_i486_ s_\(i[3456]86\|k6\|athlonxp|athlon|pentium4\)_i586_ s_\(i[3456]86\|k6\|athlon|athlonxp|pentium4\)_i686_ s_\(i[3456]86\|k6\|athlon|athlonxp|pentium4\)_k6_ s_\(i[3456]86\|k6\|athlon|athlonxp|pentium4\)_athlon_ s_\(i[3456]86\|k6\|athlon|athlonxp|pentium4\)_athlonxp_ s_\(i[3456]86\|k6\|athlon|athlonxp|pentium4\)_pentium4_' ;;
   alpha*) SUBSTS='s_alpha_alpha_ s_alpha_alphaev5_ s_alpha_alphaev56_ s_alpha_alphapca56_ s_alpha_alphaev6_ s_alpha_alphaev67_' ;;
   sparc*) SUBSTS='s_sparc\(64\|v9\)_sparc_ s_sparc64_sparcv9_;s_sparc\([^v]\|$\)_sparcv9\1_ s_sparcv9_sparc64_;s_sparc\([^6]\|$\)_sparc64\1_' ;;
   powerpc*|ppc*) SUBSTS='s_ppc64_ppc_ s_ppc\([^6]\|$\)_ppc64\1_' ;;
diff -urN rpm-4_0-4.0.4-orig/lib/rpmrc.c rpm-4_0-4.0.4/lib/rpmrc.c
--- rpm-4_0-4.0.4-orig/lib/rpmrc.c	2004-09-29 20:03:06 +0400
+++ rpm-4_0-4.0.4/lib/rpmrc.c	2004-09-29 20:17:19 +0400
@@ -1045,6 +1045,9 @@
 		close( fd );
 
 		if ( strstr( buffer, "AMD" ) ) {
+			if ( strstr( buffer, "Athlon(tm) XP" ) )
+				return "athlonxp";
+		
 			if ( strstr( buffer, "Athlon" ) || strstr( buffer, "Duron" ) )
 				return "athlon";
 
diff -urN rpm-4_0-4.0.4-orig/macros.in rpm-4_0-4.0.4/macros.in
--- rpm-4_0-4.0.4-orig/macros.in	2004-09-29 20:03:06 +0400
+++ rpm-4_0-4.0.4/macros.in	2004-09-29 19:42:03 +0400
@@ -813,7 +813,7 @@
 #   conditionals.
 #
 %intel	i386 i486 i586 i686 i786 i886 i986 pentium4
-%amd	k6 athlon
+%amd	k6 athlon athlonxp
 %ix86	%intel %amd
 
 #------------------------------------------------------------------------
diff -urN rpm-4_0-4.0.4-orig/Makefile.am rpm-4_0-4.0.4/Makefile.am
--- rpm-4_0-4.0.4-orig/Makefile.am	2004-09-29 20:03:06 +0400
+++ rpm-4_0-4.0.4/Makefile.am	2004-09-29 19:42:58 +0400
@@ -141,6 +141,7 @@
 		$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/i586 ;\
 		$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/i686 ;\
 		$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/athlon ;\
+		$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/athlonxp ;\
 		$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/pentium4 ;;\
 	alpha*) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/alpha ;\
 		$(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/alphaev6 ;;\
diff -urN rpm-4_0-4.0.4-orig/rpmrc.in rpm-4_0-4.0.4/rpmrc.in
--- rpm-4_0-4.0.4-orig/rpmrc.in	2004-09-29 20:03:06 +0400
+++ rpm-4_0-4.0.4/rpmrc.in	2004-09-29 20:18:03 +0400
@@ -17,6 +17,7 @@
 optflags: i686 %optflags_default -march=i686
 optflags: k6 %optflags_default -march=k6
 optflags: athlon %optflags_default -march=athlon
+optflags: athlonxp %optflags_default -march=athlon-xp -mcpu=athlon-xp -msse -m3dnow -mmmx -mfpmath=sse
 optflags: pentium4 %optflags_default -march=pentium4
 optflags: ia64 %optflags_default
 
@@ -69,6 +70,7 @@
 # Canonical arch names and numbers
 
 arch_canon:	pentium4:	pentium4	1
+arch_canon:	athlonxp:	athlonxp	1
 arch_canon:	athlon:	athlon	1
 arch_canon:	i686:	i686	1
 arch_canon:	k6:	k6	1
@@ -167,6 +169,7 @@
 buildarchtranslate: ia64: ia64
 
 buildarchtranslate: pentium4: pentium4
+buildarchtranslate: athlonxp: athlonxp
 buildarchtranslate: athlon: athlon
 buildarchtranslate: i686: i686
 buildarchtranslate: k6: k6
@@ -214,6 +217,7 @@
 arch_compat: alpha: axp noarch
 
 arch_compat: pentium4: i686
+arch_compat: athlonxp: athlon
 arch_compat: athlon: i686 k6
 arch_compat: i686: i586
 arch_compat: k6: i586
@@ -302,6 +306,7 @@
 buildarch_compat: ia64: noarch
 
 buildarch_compat: pentium4: i686
+buildarch_compat: athlonxp: athlon
 buildarch_compat: athlon: i686 k6
 buildarch_compat: i686: i586
 buildarch_compat: k6: i586
diff -urN rpm-4_0-4.0.4-orig/rpm.spec.in rpm-4_0-4.0.4/rpm.spec.in
--- rpm-4_0-4.0.4-orig/rpm.spec.in	2004-09-29 20:03:06 +0400
+++ rpm-4_0-4.0.4/rpm.spec.in	2004-09-29 20:27:03 +0400
@@ -355,9 +355,10 @@
 %attr(0644, @RPMUSER@, @RPMGROUP@)	%{__prefix}/lib/rpm/rpmpopt*
 %attr(0644, @RPMUSER@, @RPMGROUP@)	%{__prefix}/lib/rpm/rpmrc
 
-%ifarch i386 i486 i586 i686 athlon pentium4
+%ifarch i386 i486 i586 i686 athlon athlonxp pentium4
 %attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/i[3456]86*
 %attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/athlon*
+%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/athlonxp*
 %attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/pentium4*
 %endif
 %ifarch alpha alphaev5 alphaev56 alphapca56 alphaev6 alphaev67
