conf/112997: [patch] Add note about the 'native' mtune option
to share/examples/etc/make.conf
Anonymous
swell.k at gmail.com
Mon May 3 11:20:23 UTC 2010
The following reply was made to PR conf/112997; it has been noted by GNATS.
From: Anonymous <swell.k at gmail.com>
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: conf/112997: [patch] Add note about the 'native' mtune option to share/examples/etc/make.conf
Date: Mon, 03 May 2010 15:18:33 +0400
I disagree, native and ${YOUR_CPU} aren't equivalent. Here is what I get
on gcc45 + core2 at amd64 system:
$ cc -E -v -march=core2 - </dev/null |& fgrep cc1
.../cc1 -E -quiet -v - -march=core2
$ cc -E -v -mtune=core2 - </dev/null |& fgrep cc1
.../cc1 -E -quiet -v - -mtune=core2 -march=x86-64
$ cc -E -v -march=native - </dev/null |& fgrep cc1
.../cc1 -E -quiet -v - -march=core2 -mcx16 -msahf -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=core2
$ cc -E -v -mtune=native - </dev/null |& fgrep cc1
.../cc1 -E -quiet -v - --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=core2 -march=x86-64
And bsd.cpu.mk is oblivious about gcc43+. It will degrade native to
nocona even though core2 is supported. Good example that overriding
CPUTYPE is bad idea.
Better leave CPUTYPE as is and populate MACHINE_CPU directly, smth like
$ cat a.mk
CPUTYPE = ${MACHINE_ARCH}
MACHINE_CPU != echo ${MACHINE_ARCH}; ${CC} -E -dM -v -march=${CPUTYPE:S/amd64/x86-64/:S/i386/i486/} - </dev/null 2>&1 \
| awk '/SSE|MMX/ && !/MATH/ { FS="__"; gsub("_",".",$$2); print tolower($$2) }'
$ make -f a.mk -V MACHINE_CPU
amd64 mmx sse2 sse
$ make -f a.mk -V MACHINE_CPU CPUTYPE=native
amd64 sse4.1 mmx sse2 ssse3 sse sse3
$ make -f a.mk -V MACHINE_CPU CPUTYPE=native CC=/usr/bin/cc
amd64 mmx sse sse2 sse3
More information about the freebsd-bugs
mailing list