Red Hat Bugzilla – Bug 178211
rpm does not recognise dothan as pentium3
Last modified: 2007-11-30 17:11:21 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (compatible; Konqueror/3.4; Linux) KHTML/3.4.2 (like Gecko)
Description of problem:
rpm does not recognize centrino dothan (family6,model13) as pentium3 cpu while
centrino banias (family6,model9) is.
Newer centrino cpu (family15,model 3 and 4) should be seen as pentium4 (not
in rpm sources lib/rpmrc.c, in the function is_pentium3()
case 9: // Pentium M
should be replaced by
case 9: // Pentium M - Banias
and a new line should be added
case 13: // Pentium M - Dothan and Sonoma
for newer centrino cpu (Yonah): don't know.
(around line 1044)
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create a .pentium3.rpm on a centrino Banias (cpu family 6 model 9)
2. try to install it on a centrino Dothan (cpu family 6 model 13)
Actual Results: Error message stating that this rpm is not for the current architecture
Expected Results: The rpm would have been installed
Don't have acces to CVS from my company so I cannot retrieve the latest RPM
source code and create a patch file.
ftp://jbj.org/pub/ seems down too.
But this fix should be very easy to do anyway ;-)
What is in /etc/rpm/platform?
Put "pentium3-vendor-linux" there, create the file if it does not exist.
Thank you very much, it works fine :-)
The /etc/rpm/platform was empty. I filled it up as
Would be cool to have rpm recognize all gcc arch. Thus, optimized packages
could be created according to arch (example: atlas, ...)
thanks a lot for your help.
arch is the wrong name space for packaging, and the voo-doo assembly language is the wrong
implementation. E.g. a new chip breaks every version of rpm installed everywhere.
WONTFIX in the sense above, use /etc/rpm/platform to set your arch, and (in rpm-4.4.4 and later)
use the cpuinfo dependency name space to add precise dependencies on specific cpu's
(Note: rpmlib parses /proc/cpuinfo and presents run-time Provides: for the values found within.
Display the cpuinfo() provides with rpm -v --showrc).
Ok, so IMHO in lib/rpmrc.c you should remove the is_pentium3() function as it
is half coded.
Either recogninze all centrino or recognize none. Make a choice as right now,
half of centrinos CPU are recognized (model 9) as pentium3 and others are
recongnized as i686 (model 13) which is no coherent.
Regarding cpuinfo, it's IMHO good to use informations from the system instad
of having it's own detection routines. The only problem is that there is no
naming convention regarding CPU in /rpoc/cpuinfo.
example: cpu 6 model 9: Intel(R) Pentium(R) M processor 1600MHz
cpu 6 model 13: Intel(R) Pentium(R) M processor 1.60GHz
Anyway, I'm happy as I have a working solution :-)