[coreboot] [coreboot-gerrit] Patch merged into coreboot/master: 8414d3c xcompile: always use -march=i686
Nico Huber
nico.h at gmx.de
Sun Oct 12 20:26:44 CEST 2014
Hi folks,
something seems wrong with this one:
On 25.08.2014 23:33, gerrit at coreboot.org wrote:
> the following patch was just integrated into master:
> commit 8414d3c0b407d9afc6a2446dba3ca358da2c7bb6
> Author: Aaron Durbin <adurbin at 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 at chromium.org>
> Reviewed-on: https://chromium-review.googlesource.com/172640
> Reviewed-by: Stefan Reinauer <reinauer at google.com>
> (cherry picked from commit d49358f7959bb52c3e7ff67d37c21a1b294adf72)
> Signed-off-by: Isaac Christensen <isaac.christensen at 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
More information about the coreboot
mailing list