[Buildroot] [git commit] arch/x86: get rid of BR2_GCC_TARGET_TUNE

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Fri Nov 7 17:17:02 UTC 2014


Dear Peter Korsgaard,

On Fri, 07 Nov 2014 17:33:35 +0100, Peter Korsgaard wrote:

> It looks like you are right. From
> https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/i386-and-x86-64-Options.html#i386-and-x86-64-Options:
> 
> -mtune=cpu-type
>     Tune to cpu-type everything applicable about the generated code,
>     except for the ABI and the set of available instructions. While
>     picking a specific cpu-type schedules things appropriately for that
>     particular chip, the compiler does not generate any code that cannot
>     run on the default machine type unless you use a -march=cpu-type
>     option. For example, if GCC is configured for i686-pc-linux-gnu then
>     -mtune=pentium4 generates code that is tuned for Pentium 4 but still
>     runs on i686 machines.
> 
>     The choices for cpu-type are the same as for -march. In addition,
>     -mtune supports 2 extra choices for cpu-type:
> 
>     ‘generic’
>         Produce code optimized for the most common IA32/AMD64/EM64T
>         processors. If you know the CPU on which your code will run,
>         then you should use the corresponding -mtune or -march option
>         instead of -mtune=generic. But, if you do not know exactly what
>         CPU users of your application will have, then you should use
>         this option.
> 
>         As new processors are deployed in the marketplace, the behavior
>         of this option will change. Therefore, if you upgrade to a newer
>         version of GCC, code generation controlled by this option will
>         change to reflect the processors that are most common at the
>         time that version of GCC is released.
> 
>         There is no -march=generic option because -march indicates the
>         instruction set the compiler can use, and there is no generic
>         instruction set applicable to all processors. In contrast,
>         -mtune indicates the processor (or, in this case, collection of
>         processors) for which the code is optimized.
> 
> So we shouldn't pass -march=generic. I'm not sure it even makes sense to
> have the BR2_x86_generic option.
> 
> Thomas, Yann - Any comments?

As you suggest, I think the BR2_x86_generic option doesn't make any
sense, and we should simply get rid of it.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


More information about the buildroot mailing list