Biztonságok CFLAGS
Ez a cikk összefoglalja a Gentoo Linux CFLAGS "biztonságos" beállításait.
Az alapértelmezett CFLAGS-ek a make.conf fájlban állíthatók be a Gentoo rendszereken. A CFLAGS-ek csomagonként is megadhatók.
További információkért tekintse meg a CFLAGS és CXXFLAGS leírást a Gentoo kézikönyvben, valamint a GCC optimizálás című cikket. Továbbá, tekintse meg a Gyakran ismételt kérdéseket.
Automatikus CPU felismerés a fordító által
A CFLAGS vagy a CXXFLAGS változó ajánlott alapértelmezett választása a -march=native
érték. Ez lehetővé teszi a CPU architektúrájának automatikus felismerését. Egy lehetséges bejegyzés így nézhet ki:
/etc/portage/make.conf
COMMON_FLAGS="-O2 -pipe -march=native"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Kérjük, hogy a make.conf fájlban, a CFLAGS vagy a CXXFLAGS változóban ne használja a
-march=native
vagy a -mtune=native
értéket, amikor a distcc-vel fordítod. Nézze meg a distcc oldalt a CFLAGS/CXXFLAGS helyes beállításával kapcsolatban.Annak megtekintéséhez, hogy a GCC mit észlel a "natív"-nak, kifejezetten bizonyos rendszereknél, a következő parancs futtatható:
user $
gcc -v -E -x c /dev/null -o /dev/null -march=native 2>&1 | grep /cc1 | grep mtune
A -march=native
belső fordítása látható lesz a kimenetben. Bizonyos esetekben, ha a processzor ismeretlen a GCC észlelési modellje számára, akkor egy szuboptimális -mtune=generic
(vagy akár nem is -mtune
) lesz látható. Ebben az esetben válassza ki a megfelelő -mtune=
-t a kézikönyvből. Néhány más esetben ugyanaz van, mint az észlelt -march=
vagy a közös -mtune=intel
a (túl) modern Intel processzorokhoz.
Szintén lehetséges szuboptimális -march=native
észlelés - teljes l2-cache-size
egyetlen processzorszálhoz többmagos processzorokon. Jelenleg csak előtöltésre használatos, de néha jó választás az alapértelmezett --param=l2-cache-size=512
-re visszaállni, vagy saját számított értékre visszatérni, hogy csökkentse a gyorsítótár egyidejűségét magas SMP terhelés esetén. Ám ez elméletben van így, és nem minden feladatra vonatkozik – ne tegyen semmit, ha bizonytalan.
További információk találhatók a GCC optimization oldalon.
A CPU típusának meghatározása a CFLAGS kézi beállításához
Ezek az eszközök jelenthetik a rendszer CPU információkat, amelyek az oldalon lejjebb található listában található CPU-val párosíthatók, hogy néhány javasolt CFLAGS értéket kapjanak, amelyek "biztonságosak" az adott rendszer számára.
Ezeket a beállításokat kell használni, különösen akkor, ha nem biztos abban, hogy a processzornak melyik CFLAGS-ra van szüksége.
CPU észlelés a resolve-march-native funkcióval
Létezik egy eszköz a -march=native
felbontási értékek automatikus meghatározására, amely itt található:app-misc/resolve-march-native. Telepítés után futtassa:
user $
resolve-march-native
A CPU típusának jelentése a /proc/cpuinfo segítségével
A processzor modelljének azonosításához nézze meg a /proc/cpuinfo fájlban a "cpu család" és a "modell" számokat. Például:
user $
grep -m1 -A3 "vendor_id" /proc/cpuinfo
Biztonságos CFLAGS lista
x86/amd64
Generikus psABI szintek
Ha egy distcc farmot használunk kissé eltérő processzorokkal, akkor észszerűbb lehet olyan kódot generálni, amely éppen elég régi ahhoz, hogy mindegyikhez működjön, anélkül, hogy az igazán általános kódra akadna. A psABI mikroarchitektúra szintjei pontosan ezt kívánják biztosítani az amd64 processzorok közös korszakaihoz. Tekintse meg a Mikróarchitektúra szintek leírást.
Intel
Alder Lake
Core i3/i5/i7 12th Gen vendor_id : GenuineIntel
cpu family : 6
model : 154
model name : 12th Gen Intel(R) Core(TM) i7-1260P
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=alderlake -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Skylake, Kaby Lake, Kaby Lake R, Coffee Lake, Comet Lake
Core i3/i5/i7 és Xeon E3/E5 *V5 vendor_id : GenuineIntel
cpu family : 6
model : 94
model name : Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
...
model : 165
model name : Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=skylake -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Noha illeszkednek a családhoz és a modellhez, ez a CFLAGS értékkészlet NEM működik a Skylake Pentium processzorok esetében (pl. G4400 vagy J5005). Tehát érvénytelen kód fog előállítódni, ami megfogja törni a rendszert. Ezekhez a rendszerekhez használja inkább a
-march=native
értéket.Broadwell
Core i3/i5/i7 és Xeon E3/E5 *V4 vendor_id : GenuineIntel
cpu family : 6
model : 79
model name : Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz
…
model : 79
model name : Intel(R) Core(TM) i7-5650U CPU @ 2.20GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=broadwell -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Haswell
Core i3/i5/i7 és Xeon E3/E5/E7 *V3 vendor_id : GenuineIntel
cpu family : 6
model : 60
model name : Intel(R) Xeon(R) CPU E3-1271 v3 @ 3.60GHz
…
model : 60
model name : Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=haswell -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Ivy Bridge
Core i3/i5/i7 és Xeon E3/E5/E7 *V2 vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=ivybridge -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Pentium vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Pentium(R) CPU G2020 @ 2.90GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=ivybridge -mno-avx -mno-aes -mno-rdrnd -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Sandy Bridge
Core i3/i5/i7 és Xeon E3/E5/E7 vendor_id : GenuineIntel
cpu family : 6
…
model : 42
model name : Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
…
model : 45
model name : Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz
…
model : 42
model name : Intel(R) Xeon(R) CPU E31245 @ 3.30GHz
…
model : 45
model name : Intel(R) Xeon(R) CPU E5-2407 0 @ 2.20GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=sandybridge -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Pentium vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Pentium(R) CPU B960 @ 2.20GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=sandybridge -mno-avx -mno-aes -mno-rdrnd -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Nehalem
Core i3/i5/i7 vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i5-750 CPU @ 2.66GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=nehalem -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Westmere
Core i3/i5/i7 vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i5-650 CPU @ 3.20GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=westmere -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Szükség lehet a -mno-aes -mno-pclmul hozzáadására, különösen i3 esetén (alapértelmezés szerint engedélyezve van). Ha nincs kimenet, akkor azt jelenti, hogy nem támogatott:
user $
grep -m1 -e aes -e pclmulqdq /proc/cpuinfo
Intel Core
Intel Core vendor_id : GenuineIntel
cpu family : 6
…
model : 15
model name : Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz
…
model : 15
model name : Intel(R) Xeon(R) CPU 3040 @ 1.86GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=core2 -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Régebbi mikroarchitektúrák
Pentium M (Dothan) vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : Intel(R) Pentium(R) M processor 2.13GHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=pentium-m -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Pentium 4 (Prescott) vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Pentium(R) 4 CPU XXXGHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=nocona -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
64 bites képes modellek: 505, 505J, 506, 511, 516, 517, 519K, 521, 524, 531, 541, 551, 561, 571, 6xx és a 3.73(3)GHz Pentium 4 Extreme Edition.
Ellenőrizze a /proc/cpuinfo tartalmát az lm jelólőzászlóért a 64 bites CPU észlelésének érdekében:
user $
grep lm /proc/cpuinfo
All other Prescotts vendor_id : GenuineIntel
cpu family : 15
model : 3
model name : Intel(R) Pentium(R) 4 CPU XXXGHz
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=prescott -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
AMD
Ryzen (Zen család)
Az 1000 és a 2000 sorozat vendor_id : AuthenticAMD
cpu family : 23
model : 1
model name : AMD Ryzen 7 1800X Eight-Core Processor
…
cpu family : 23
model : 8
model name : AMD Ryzen 7 2700X Eight-Core Processor
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=znver1 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
A 3000, 4000, 5000, és az EPYC 7xx2 sorozat vendor_id : AuthenticAMD
cpu family : 23
model : 113
model name : AMD Ryzen 9 3900X 12-Core Processor
...
cpu family : 23
model : 49
model name : AMD EPYC 7542 32-Core Processor
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=znver2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
5000 és EPYC 7xx3 sorozat vendor_id : AuthenticAMD
cpu family : 25
model : 80
model name : AMD Ryzen 7 PRO 5850U with Radeon Graphics
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=znver3 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
A6/A8/A9/A10/A12-8XXX/9XXX (Excavator)
Carrizo, Bristol Ridge, és Stoney Ridge vendor_id : AuthenticAMD
cpu family : 21
model : 96 or 101 or 112
model name : AMD A12-9800 RADEON R7, 12 COMPUTE CORES 4C+8G
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=bdver4 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
A4/A6/A8/A10-7XXX/8XXX (Steamroller)
Kaveri és Godavari vendor_id : AuthenticAMD
cpu family : 21
model : 48 or 56
model name : AMD A10-7850K Radeon R7, 12 Compute Cores 4C+8G
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=bdver3 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Az AX-7XXX márkájú kis teljesítményű AMD APU-k (pl. A4-7210) nem tartoznak a 21.-ik CPU családba!
E1/E2-XXXX, A4/A6/A8/A10-XXXX (Jaguar, Puma)
Kabini, Temash, Beema, Mullins, és Carrizo-L vendor_id : AuthenticAMD
cpu family : 22
model : 0 or 48
model name : AMD A4-5000 APU with Radeon(TM) HD Graphics
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=btver2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Az A4/A6/A8-XXXX márkájú AMD APU-k (pl. A4-5300, A4-4000 vagy A6-5345M) többsége nem tartozik a 22.-ik CPU családba! Az AMD APU modellhez a
cpu family
és a model
által megadott beállításokat kell használni.A4/A6/A8/A10-4XXX/5XXX/6XXX (Piledriver)
Trinity és Richland vendor_id : AuthenticAMD
cpu family : 21
model : 16 or 19
model name : AMD A8-4500M APU with Radeon(tm) HD Graphics
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=bdver2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Az AX-5XXX/6XXX márkájú kis teljesítményű AMD APU-k (pl. A4-5000, A4-5100 vagy A6-6310) nem tartoznak bele a 21.-ik CPU családba!
FX-XXXX
Bulldozer és Piledriver vendor_id : AuthenticAMD
cpu family : 21
model : 1 or 2
model name : AMD FX(tm)-8150 Eight-Core Processor
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=bdver1 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Győződjön meg róla, és ellenőrizze a
model
által mutatott számot a rendszeren, a -march
jelölőzászló legyen bdverX, ahol X a modellszám.Különböző AMD APU-k FX márkajelöléssel nem a
model
1 vagy 2 -ként vannak jelölve! A cpu family
és a model
által megadott AMD APU modell beállításait kell használni.Z-XX, C-X0, E-XX0, E1/E2-1X00, E2-2000 (Bobcat)
Ontario, Hondo, Desna, és Zacate vendor_id : AuthenticAMD
cpu family : 20
model : 1 or 2
model name : AMD E-350 Processor
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=btver1 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
A4/A6/A8-3XXX/3XXXM (12h)
Llano vendor_i : AuthenticAMD
cpu family : 18
model : 1
model name : AMD A8-3500M APU with Radeon(tm) HD Graphics
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=amdfam10 -mcx16 -mpopcnt -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Phenom/Phenom II, Athlon II, Sempron (10h)
Agena, Deneb, Thuban, és azok leszármazottjai vendor_id : AuthenticAMD
cpu family : 16
model : X
model nam : AMD Phenom(tm) II X6 1090T Processor
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=amdfam10 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Régebbi mikroarchitektúrák
Különböző AMD processzorok, melyek Sempron márkájúak (pl. Sempron 2200+ vagy Sempron 3000+) nem tartoznak a 15.-ik CPU családba!
E+ revisions - Athlon 64, Athlon 64 X2/FX, Sempron (0Fh) vendor_id : AuthenticAMD
cpu family : 15
model : >= 39
model name : AMD Athlon(tm) 64 X2 Dual Core Processor 4200+
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=opteron-sse3 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Geode LX vendor_id : AuthenticAMD
cpu family : 5
model : 10
model name : Geode(TM) Integrated Processor by AMD PCS
|
FILE /etc/portage/make.conf CHOST="i486-pc-linux-gnu"
COMMON_FLAGS="-Os -pipe -march=geode -mmmx -m3dnow -fomit-frame-pointer"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Pre-E revisions - Athlon 64, Athlon 64 FX, Sempron (0Fh) vendor_id : AuthenticAMD
cpu family : 15
model : < 39
model name : AMD Athlon(tm) 64 Processor 3200+
|
FILE /etc/portage/make.conf COMMON_FLAGS="-O2 -march=opteron -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
ARM
A SoC-on lévő ARM processzormag beazonosításában segíthet a ARM mikroarchitektúráinak listája, és az ARM alkalmazásainak listája a Wikipédián.
Cortex-A
ARMv7-A/Cortex-A9 MPCore
with optional VFPv3 FPU processor : 0
model name : ARMv7 Processor rev 0 (v7l)
BogoMIPS : 2.00
Features : half thumb fastmult vfp edsp vfpv3 vfpv3d16 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x1
CPU part : 0xc09
CPU revision : 0
processor : 1
model name : ARMv7 Processor rev 0 (v7l)
BogoMIPS : 2.00
Features : half thumb fastmult vfp edsp vfpv3 vfpv3d16 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x1
CPU part : 0xc09
CPU revision : 0
Hardware : NVIDIA Tegra SoC (Flattened Device Tree)
Revision : 0000
Serial : 0000000000000000
|
FILE /etc/portage/make.conf CHOST="armv7a-hardfloat-linux-gnueabi"
COMMON_FLAGS="-O2 -march=cortex-a9 -mfpu=vfpv3-d16 -mfloat-abi=hard -pipe -fomit-frame-pointer"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Ezt az ARM processzormagot (opcionális vfpv3d16 FPU-val felszerelt, de hiányzik a NEON kiterjesztés) a Toshiba AC100/Dynabook AZ/Compal Paz00 alaplapon használják.
ARMv8-A/BCM2837
Ez a Raspberry Pi 3 B Model-ben használt Broadcom chip.
AArch32, neon FPU-val processor : 0-3
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
Hardware : BCM2709
Revision : 0000
Serial : 0000000000000000
|
FILE /etc/portage/make.conf CHOST="armv7a-hardfloat-linux-gnueabi"
COMMON_FLAGS="-O2 -pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
AArch64 processor : 0-3
BogoMIPS : 38.40
Features : fp asimd evtstrm crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
|
FILE /etc/portage/make.conf COMMON_FLAGS="-march=armv8-a+crc -mtune=cortex-a53 -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
ARM11
ARMv6/ARM1176JZF-S
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2835
Revision : 0000
Serial : 000000000XXXXXXX
|
FILE /etc/portage/make.conf CHOST="armv6j-hardfloat-linux-gnueabi"
COMMON_FLAGS="-O2 -pipe -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Ezt az ARM magot a Raspberry Pi első generációjában használták.
ARMv6/ARM1136JF-S
Processor : ARMv6-compatible processor rev 5 (v6l)
BogoMIPS : 791.34
Features : swp half thumb fastmult vfp edsp java
CPU implementer : 0x41
CPU architecture: 6TEJ
CPU variant : 0x1
CPU part : 0xb36
CPU revision : 5
Hardware : IMAPX200
Revision : 0000
Serial : 0000000000000000
|
FILE /etc/portage/make.conf CHOST="armv6j-hardfloat-linux-gnueabi"
COMMON_FLAGS="-Os -mcpu=arm1136jf-s -mfpu=vfp -mfloat-abi=hard -pipe -fomit-frame-pointer"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
PowerPC / PowerPC 64
A
-march=
nem támogatott a PowerPC (és az RS/6000) utasításkészlet architektúrán (ISA). helyette az -mcpu=
és az --mtune=
értéket használja.Az
-mcpu=native
(és/vagy a -mtune=native
) használata PowerPC-n működik, de a distcc miatt nem ajánlott.POWER8
processor : 0
cpu : POWER8E (raw), altivec supported
clock : 3026.000000MHz
revision : 2.1 (pvr 004b 0201)
timebase : 512000000
platform : pSeries
model : IBM pSeries (emulated by qemu)
machine : CHRP IBM pSeries (emulated by qemu)
|
FILE /etc/portage/make.conf COMMON_FLAGS="-mcpu=power8 -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
Cell
processor : 0
cpu : Cell Broadband Engine, altivec supported
clock : 3192.000000MHz
revision : 5.1 (pvr 0070 0501)
processor : 1
cpu : Cell Broadband Engine, altivec supported
clock : 3192.000000MHz
revision : 5.1 (pvr 0070 0501)
timebase : 79800000
platform : PS3
model : SonyPS3
|
FILE /etc/portage/make.conf COMMON_FLAGS="-mcpu=cell -O2 -pipe -mabi=altivec -maltivec -mno-string -mno-multiple"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
A GCC -mspe és -mabi=spe beállításai nem a PS3 rendszereket és az IBM cellákat célozzák. Ugyan is, ezek a lehetőségek az IBM e500 részére vannak fenntartva. További információ:
PPC 970 (G5)
A kompatibilis processzorok az IBM PPC970, PPC970FX, PPC970MP és PPC970GX.
cpu : PPC970, altivec supported
clock : 1800MHz
revision : 2.2 (pvr 0039 0202)
bogomips : 1127.21
machine : PowerMac7,2
motherboard : PowerMac7,2 MacRISC4 Power Macintosh
board revision : 00000001
detected as : 336 (PowerMac G5)
pmac flags : 00000000
L2 cache : 512K unified
pmac-generation : NewWorld
|
FILE /etc/portage/make.conf COMMON_FLAGS="-mcpu=970 -O2 -maltivec -mabi=altivec -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
G4 (PPC 74xx)
PPC 7450 család
Kompatibilis processzorok a Motorola/Freescale MPC7450, MPC7440, MPC7451, MPC7441, MPC7455, MPC7445, MPC7457, MPC7447, MPC7447/A, és MPC7448.
processor : 0
cpu : 7447A, altivec supported
clock : 1666.666000MHz
revision : 1.5 (pvr 8003 0105)
bogomips : 33.28
timebase : 8320000
platform : PowerMac
model : PowerBook5,9
machine : PowerBook5,9
motherboard : PowerBook5,9 MacRISC3 Power Macintosh
detected as : 287 (PowerBook G4 17")
pmac flags : 00000018
L2 cache : 512K unified
pmac-generation : NewWorld
|
FILE /etc/portage/make.conf COMMON_FLAGS="-mcpu=7450 -O2 -maltivec -mabi=altivec -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
PPC 7400 család
A kompatibilis processzorok a motorola Motorola MPC7400 és az MPC7410. Megjegyzés: Az IBM gyártó az MPC7400-at 06K5319 és 10K8298 néven gyártotta, amikor a Motorola nem tudta teljesíteni az Apple igényeit.
processor : 0
cpu : 7400, altivec supported
clock : 400.000000MHz
revision : 2.9 (pvr 000c 0209)
bogomips : 49.66
timebase : 24908583
platform : PowerMac
machine : PowerMac3,1
motherboard : PowerMac3,1 MacRISC Power Macintosh
detected as : 65 (PowerMac G4 AGP Graphics)
pmac flags : 00000004
L2 cache : 1024K unified
pmac-generation : NewWorld
|
FILE /etc/portage/make.conf COMMON_FLAGS="-mcpu=7400 -O2 -maltivec -mabi=altivec -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
G3 (PPC 7XX)
A kompatibilis processzorok a Motorola/Freescale MPC750, MPC740, MPC755 és MPC745 valamint IBM PPC750, PPC740, PPC750L, PPC740L, PPC750CX, PPC750CXe, PPCDBK ("Gekko"), PPC750FX, PPC750GX, PPC750CXr, PPC750CL ("Broadway"), PPC750GL és PPC750FL. A BAE rendszerek RAD750-je a radiation hardened -jének a PPC750 változata. Az "Espresso" (a "Gekko"-t és a "Broadway"-t követve) ugyanúgy az PPC750-n alapul.
A beágyazott rendszerekhez által használt processzorokhoz, például a Gekko-hoz (PPCDBK, amit a Nintendo GameCube-ban használtak) további CFLAGS-ekre (például -meabi
) lesz szükség.
processor : 0
cpu : 740/750
clock : 400.000000MHz
revision : 131.0 (pvr 0008 8300)
bogomips : 49.93
timebase : 24966218
platform : PowerMac
model : PowerBook3,1
machine : PowerBook3,1
motherboard : PowerBook3,1 MacRISC2 MacRISC Power Macintosh
detected as : 70 (PowerBook Pismo)
pmac flags : 0000001f
L2 cache : 1024K unified
pmac-generation : NewWorld
|
FILE /etc/portage/make.conf COMMON_FLAGS="-mcpu=750 -Os -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
RISC-V
processor : 0 hart : 1 isa : rv64imafdc mmu : sv39 uarch : sifive,u74-mc |
FILE /etc/portage/make.conf COMMON_FLAGS="-march=rv64imafdc_zicsr_zba_zbb -mcpu=sifive-u74 -mtune=sifive-7-series -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
|
További olvasnivaló a témában
- CFLAGS and CXXFLAGS (AMD64 Handbook)
- CPU_FLAGS_* — a USE_EXPAND variable containing instruction set and other CPU-specific features.
- GCC optimization — bemutatja a lefordított kód optimalizálását biztonságos, értelmes CFLAGS és CXXFLAGS használatával.
- Gentoo documentation page on backtraces
- RUSTFLAGS