The stage1 make.conf example uses -mcpu=athlon-xp, If I'm reading the docs correctly http://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/i386-and-x86-64-Options.html#i386%20and%20x86-64%20Options states that just using -mcpu=athlon-xp implies that -march=i386 and will create code that schedules things correctly for the athlon-xp but will not create code that won't run on an i386. -march=athlon-xp should be the correct flag as it also implies -mcpu=athlon-xp. I am hoping that the stage 2 and 3 didn't get rolled with the flags set this way. This has caused me a major headache as I didn't notice it at first and gcc randomly segfaulted on almost every major package.changing to -march and recompiling solved this problem 100% THX Brad
my understanding of the gcc docs is -march=XXX ==> -mcpu=XXX not the other way round. so using -march=XXX alone should (to my understanding) be the same as giving both options. -mcpu=XXX without any -march option should only influence command scheduling but use i386 code. -mcpu=XXX with -march=YYY should generate code for cpu YYY scheduled for cpu XXX so if we assume no -march option meaning -march=i386, basically the same as above. in no way i interprete the docs as -mcpu changes the value of -march to some lesser cpu... so i really am screwed here... do *I* misinterprete the gcc docs?
from the gcc-docs: """While picking a specific cpu-type will schedule things appropriately for that particular chip, the compiler will *not* generate any code that does *not* run on the i386 without the -march=cpu-type option being used.""" I interprete the double negation (marked with "*") as -mcpu=XXX alone will produce code for i386, scheduled for the cpu XXX. (English is not my 1st language, i might need help here...)
I think you've got it, just saying that it needs to be -march= for full optimization."so i really am screwed here..." does that mean the stages were rolled with -mcpu?
-mcpu=athlon-xp implies -march=i386 -march=athlon-xp implies -march=athlon-xp -mcpu provides ALIGNMENT and instruction ordering that is best exploited by the CPU specified, but is still only i386 code -march enables arch specific code, and things like SSE, MMX, 3dNow
When we redid the make.conf for the latest portage we still left this example...can we change it please :)
The comments describe what it's for now.
was resolved afaik