CPU_FLAGS_*
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).
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.
/etc/portage/package.use/my-cpu-flags
CPU_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
- Hírek elem: new CPU_FLAGS_PPC USE_EXPAND