CPU_FLAGS_*

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page CPU FLAGS * and the translation is 100% complete.
Not to be confused with CFLAGS/hu.


A CPU_FLAGS_* egy USE_EXPAND változó, amely az utasításkészleteket és egyéb CPU-specifikus jellemzőket tartalmazza. Jelenleg a Gentoo a következőket támogatja: CPU_FLAGS_X86 (amd64 és x86 architektúrákhoz), CPU_FLAGS_ARM (arm és arm64 architektúrákhoz), valamint CPU_FLAGS_PPC (ppc és ppc64 architektúrákhoz).

See also
További információért tekintse meg a Gentoo kézikönyv CPU_FLAGS_* szakaszát.

Különbség a CFLAGS és a CPU_FLAGS_* között

Egy gyakran felmerülő kérdés a "Mi a különbség a CFLAGS és például a CPU_FLAGS_X86 között?"

A CPU_FLAGS_* egy USE_EXPAND példája. Lehetővé teszi az ebuild-ekben található specifikus opciók beállítását, amelyek továbbítódnak a build rendszerhez. Például a CPU_FLAGS_X86_SSE2 egy szoftvercsomaghoz meghatározva lehetővé teszi a kézzel írt ASM használatát. Ezek az opciók specifikus kódot engedélyeznek, amely már létezik a szoftvercsomagban.

A CFLAGS ezzel szemben egyszerűen arra szolgál, hogy megmondja a kódfordítónak, hogy engedélyezett megpróbálnia generálni kódot ilyen utasítások segítségével, ha képes rá. Ez nem jelenti azt, hogy sikerrel jár ebben. Például a -msse2 a CFLAGS-ban nem garantálja, hogy a kódfordító elég okos ahhoz, hogy SSE2-t generáljon egy adott függvényhez. Ezek az opciók csak engedélyezik a fordítónak, hogy bizonyos utasításokkal bizonyos kódot generáljon.

Ezért fontos a CPU_FLAGS_* megfelelő beállítása, hogy a szoftvercsomagokból a lehető legjobb teljesítményt érjük el.

Beállítás

Ezeket a változókat CPU_FLAGS_X86 (CPU_FLAGS_ARM, CPU_FLAGS_PPC) változóként kell beállítani egy fájlban a /etc/portage/package.use/ könyvtárban.

FILE /etc/portage/package.use/my-cpu-flagsCPU_FLAGS_X86 beállítása
# Ez csak egy példa. Kérjük, futtassa a 'cpuid2cpuflags' eszközt, hogy minden rendszerhez megfelelő értéket kapjon!
*/* cpu_flags_x86: aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sse sse2 sse3 sse4_1 sse4_2 ssse3

Kétség esetén konzultáljon a jelölőzászló leírásokkal a közismert eszközök valamelyikének használatával, például a equery uses parancssal a app-portage/gentoolkit szoftvercsomagból.

user $equery uses media-video/ffmpeg

A legtöbb jelölőzászló neve megegyezik a /proc/cpuinfo elérési úton található nevekkel, a figyelemre méltó kivétel a sse3, amelyet pni-nek neveznek a /proc/cpuinfo fájlban (kérjük, ne tévessze össze a különálló ssse3-mal).

A cpuid2cpuflags használata

A app-portage/cpuid2cpuflags segít a felhasználóknak meghatározni a megfelelő CPU_FLAGS_ USE_EXPAND változókat a CPU architektúrájukhoz.

Emerge

root #emerge --ask app-portage/cpuid2cpuflags

Meghívás

user $cpuid2cpuflags
CPU_FLAGS_X86: mmx mmxext sse sse2 sse3

Példa a globális alkalmazásra:

root #echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags

Külső források