[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