On Mon, 8 Sep 2008, H. Peter Anvin wrote:config X86_GENERIC
- bool "Generic x86 support"
+ bool "Generic x86 support" if EMBEDDED
Ok, so after having realized that this seems to be more about a bug with gcc, I'm really not as convinced any more.
As far as I can tell, there are three issues:
- "-mtune=core/core2/pentium4/.." is buggy in some gas/gcc versions on x86-32, and makes architectural choices.
Any actual _released_ versions? Maybe it's just a current SVN issue?
Workaround: don't use it. And yes, X86_GENERIC=y will do that, although quite frankly that seems to be dubious in itself. But quite frankly, it's a gcc bug, and we should see it as such.
The better workaround may well be "-Wa,-mtune=generic" as you pointed out.
- We do the CONFIG_P6_NOPL thing ourselves, and we should just stop doing that on 32-bit. There simply isn't a good enough reason to do so. I already posteed the Kconfig.cpu patch to just stop doing it.
- X86_GENERIC means _other_ things too, like doing a 128-bit cacheline just so that it won't suck horribly on P4's even if it's otherwise tuned for a good microarchitecture.
And they really do seem to be _separate_ issues. Do we really want to tie these things together under X86_GENERIC?