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 forráskódfordítónak, hogy ha képes rá, akkor
engedélyezett
megpróbálnia
generálni
bináris kódot ilyen utasítások segítségével. Ez nem jelenti azt, hogy sikerrel jár. Például a
-msse2
a
CFLAGS
-ban nem garantálja, hogy a forráskódfordító elég okos ahhoz, hogy SSE2 utasításkészletű kódot generáljon le egy adott függvény számára. 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 kizárólag egy példa. Kérjük Önt, hogy futtassa a 'cpuid2cpuflags' szoftvert, 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írelem: new CPU_FLAGS_PPC USE_EXPAND