Biztonságok CFLAGS

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Safe CFLAGS and the translation is 100% complete.
Other languages:
  Note to translators
This page was improperly translated to Italian. It would be helpful if someone who can do Italian translations could use the content from this page to recreate an Italian translation using the standard wiki translation framework (click translation link at top of this page), then we can delete that imporperly translated page. See Help:Translating.
Not to be confused with CPU_FLAGS_*.


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.

See also
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:

FILE /etc/portage/make.conf
COMMON_FLAGS="-O2 -pipe -march=native"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Warning
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}"
Warning
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}"
Note
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.

Note
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
A cpuid modell (4 vs 3) nem a 64 bites kompatibilitás jelzője. Léteznek 32 bites 15.-ik család 4-ik modell processzorok!
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}"
Important
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}"
Important
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}"
Important
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}"
Important
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.
Important
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
Important
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

Note
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}"
Note
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
Note
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}"
Note
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

Important
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.
Note
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}"
Note
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

Külső források