On Wednesday 20 July 2005 12:25, Ivan Yosifov wrote:For x86_64 the flags -mno-sse -mno-mmx -mno-sse2 -mno-3dnow are always used for compilation. Why is'nt the same thing done for x86 instead of using -march=i686 -mtune=?.
Seems to be this one:No, I'm afraid not. I only know that the advice came from RichardAlso, I believe that the -march=pentium4 option /was/ actually used upYou seem right. I fetched a 2.6.9 tarball and it is really built with
until kernel 2.6.10 where it was dropped because of a risk that some
versions of gcc would cause the kernel to use SSE registers for data
movement (which is a no-no).
-march=pentium4. Do you know which are versions of gcc in question ?
Henderson who (I think) is one of the core glibc hackers. You can see
the point at which it was introduced by Linus in the ChangeLog (2nd
message from last):
http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.10
<torvalds@xxxxxxxxxxxxxxx>
Don't use "-march=pentium3" for gcc tuning.
rth tells me that some versions of gcc may end up using the
SSE registers for data movement when you do that.
Use "-march=i686 -mtune=xxxx" instead.
(We do the same thing for march=pentium2/4 too, just for
consistency).
The way it is worded it seems that it is a problem with *some* versions
of gcc only on p3, not p4.
Why do you care? I bet that differences between i686 code and pentium4 code
are well below noise level.
--
vda