Hi folks,
something seems wrong with this one:
On 25.08.2014 23:33, gerrit@coreboot.org wrote:
the following patch was just integrated into master: commit 8414d3c0b407d9afc6a2446dba3ca358da2c7bb6 Author: Aaron Durbin adurbin@chromium.org Date: Thu Oct 10 12:44:11 2013 -0500
xcompile: always use -march=i686 When compiling coreboot for x86 on gcc the compiler is free to pick whatever defaults it is using at the time of gcc's compile/configuration when no -march is specified. Not properly specifying -march then opens up the use of SSE instructions for compilation units it should not be used such as the SMM module as this module doesn't save/restore SSE registers. Change-Id: I64d4a6c5fa9fadb4b35bc7097458e992a094dcba Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/172640 Reviewed-by: Stefan Reinauer <reinauer@google.com> (cherry picked from commit d49358f7959bb52c3e7ff67d37c21a1b294adf72) Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com> Reviewed-on: http://review.coreboot.org/6716 Tested-by: build bot (Jenkins)
I bisected a no-serial-output problem on a kontron/986lcd-m with a Core Duo (Yonah) CPU, leading to this commit. I don't see what is going wrong here. Core Duo is obviously kind of i686, but specifying -march=i386 works around the problem. So far I haven't spotted any differences in generated code (other than reordering).
If I don't specify -march=, the reference toolchain seems to generate the same code as with -march=i386. Maybe we should default to that?
Also, I was told, that if you specify -march=, the compiler may use CPU features that have to be enabled first.
Nico