CPU_FLAGS_X86 introduction

Title: CPU_FLAGS_X86 introduction
Author: Michał Górny <mgorny@gentoo.org>
Content-Type: text/plain
Posted: 2015-01-28
Revision: 2
News-Item-Format: 1.0
Display-If-Keyword: amd64
Display-If-Keyword: ~amd64
Display-If-Keyword: x86
Display-If-Keyword: ~x86

The USE flags corresponding to the instruction sets and other features
specific to the x86 (amd64) architecture are being moved into a separate
USE flag group called CPU_FLAGS_X86.

In order not to lose CPU-specific optimizations, users will be required
to update their make.conf (and package.use) file. For example, if
the following USE flags were present:

  USE="mmx mmxext sse sse2 sse3"

Those flags need to be copied into:

  CPU_FLAGS_X86="mmx mmxext sse sse2 sse3"

Please note that the same CPU_FLAGS_X86 variable is used both on x86
and amd64 systems.

When in doubt, you can consult the flag descriptions using one of
the commonly available tools, e.g. `equery uses` from gentoolkit:

  $ equery uses media-video/ffmpeg

Most of the flag names match /proc/cpuinfo names, with the notable
exception of SSE3 which is called 'pni' in /proc/cpuinfo (please also
do not confuse it with distinct SSSE3).

To help users enable the correct USE flags, we are providing a Python
script that generates the correct value using /proc/cpuinfo. It can be
found in the app-portage/cpuinfo2cpuflags package:

  $ emerge -1v app-portage/cpuinfo2cpuflags
  $ cpuinfo2cpuflags-x86

In order to ensure safe migration and maintain compatibility with
external repositories, it is recommended to preserve the old USE
settings for a period of one year or until no package of interest is
still using them.