gcc compiler cputype, prescott or nocona confusion

Garrett Cooper youshi10 at u.washington.edu
Thu Feb 1 03:06:48 UTC 2007


Jorn Argelo wrote:
> 
> On Wed, 31 Jan 2007 23:40:38 +1100, Scott Killen <salkillen at internode.on.net> wrote:
>> Hi,
>>
>> When recompiling the world or kernel in FreeBSD i386 Rel 6.1 with,
>>
>> "# make buildworld"
>> or
>> "# make buildkernel KERNCONF=MYSMPCONF"
>>
>> (or building anything anything else for that matter), even though I have
>> "CPUTYPE?=nocona" set in my "/etc/make.conf" file the compiler seems to
>> head
>> back to a default of  "-march=prescott" when compiling many of the
>> functions
>> on a Dual Xeon 3.6g (nocona) machine!
>>
>> This doesn't happen when compiling for other machine types, I've tried it
>> on a
>> Dual PentiumPro, Dual PII, Dual PIII setting the CPUTYPE to the correct
>> cpu
>> type and the -march sticks to the assigned cpu type through all operations
>> and produces nice quick optimized code.
>>
>> Why is this so?
>>
>> Is it because the "nocona" machine type optimization refers to the EMT64
>> technology and thus is rejected when compiling for i386 targets rather
>> than
>> amd64 or emt64 targets and Gcc rejects it?
> 
> That's right. AFAIK the Nocona core is a prescott with EM64T support (feel free to correct me if I am wrong). Basically you have an i386 version of FreeBSD, and with EM64T instructions enabled GCC will build a 64-bit version of FreeBSD. I think that's the reason it switches back to prescott.

Most of the time you're right. However (for starters), some nocona chips 
feature 2MB cache instead of 1MB cache:

<http://www.anandtech.com/IT/showdoc.aspx?i=2447&p=2>.

I'd have to look more in depth, but OTOH the nocona also featured some 
architecture upgrades, other than just the "64-bit'ness"

I heard that gcc 3.4.x was pretty funky with the nocona processors 
though, and prescott's a more stable target; that changed a bit in gcc 
4.x I think. Or maybe I'm just mixing up nocona and yonah in this case.
-Garrett


More information about the freebsd-questions mailing list