当前位置:Linux教程 - Linux - gcc最佳编译参数

gcc最佳编译参数

一、1.2版(gcc 2.9.x版)

i386 (Intel), do you really want to install gentoo on that?
CHOST=""i386-pc-linux-gnu""
CFLAGS=""-march=i386 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=i386 -O3 -pipe -fomit-frame-pointer""

i486 (Intel), do you really want to install gentoo on that?
CHOST=""i486-pc-linux-gnu""
CFLAGS=""-march=i486 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=i486 -O3 -pipe -fomit-frame-pointer""

Pentium, Pentium MMX+, Celeron (Mendocino) (Intel)
CHOST=""i586-pc-linux-gnu""
CFLAGS=""-march=pentium -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=pentium -O3 -pipe -fomit-frame-pointer""

Pentium Pro/II/III/4, Celeron (Coppermine), Celeron (Willamette?) (Intel)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=i686 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=i686 -O3 -pipe -fomit-frame-pointer""

Eden C3/Ezra (Via)
CHOST=""i586-pc-linux-gnu""
CFLAGS=""-march=i586 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=i586 -O3 -pipe -fomit-frame-pointer""

Quote : I did the original gentoo install using 1.2, with gcc 2.95 using -march=i586. i686 won''t work.

K6 or beyond (AMD)
CHOST=""i586-pc-linux-gnu""
CFLAGS=""-march=k6 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=k6 -O3 -pipe -fomit-frame-pointer""

(A Duron will report ""Athlon"" in its /proc/cpuinfo)

Athlon (AMD)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=k6 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=k6 -O3 -pipe -fomit-frame-pointer""

For the following, i don''t know of any flag that enhance performances..., do you ?

PowerPC
CHOST=""powerpc-unknown-linux-gnu""
CFLAGS=""-O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-O3 -pipe -fomit-frame-pointer""

Sparc
CHOST=""sparc-unknown-linux-gnu""
CFLAGS=""-O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-O3 -pipe -fomit-frame-pointer""

Sparc 64
CHOST=""sparc64-unknown-linux-gnu""
CFLAGS=""-O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-O3 -pipe -fomit-frame-pointer""



二、1.4版(gcc 3.x版):


i386 (Intel), do you really want to install gentoo on that ?
CHOST=""i386-pc-linux-gnu""
CFLAGS=""-march=i386 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=i386 -O3 -pipe -fomit-frame-pointer""

i486 (Intel), do you really want to install gentoo on that ?
CHOST=""i486-pc-linux-gnu""
CFLAGS=""-march=i486 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=i486 -O3 -pipe -fomit-frame-pointer""

Pentium 1 (Intel)
CHOST=""i586-pc-linux-gnu""
CFLAGS=""-march=pentium -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=pentium -O3 -pipe -fomit-frame-pointer""

Pentium MMX (Intel)
CHOST=""i586-pc-linux-gnu""
CFLAGS=""-march=pentium-mmx -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=pentium-mmx -O3 -pipe -fomit-frame-pointer""

Pentium PRO (Intel)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=pentiumpro -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=pentiumpro -O3 -pipe -fomit-frame-pointer""

Pentium II (Intel)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=pentium2 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=pentium2 -O3 -pipe -fomit-frame-pointer""

Celeron (Mendocino), aka Celeron1 (Intel)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=pentium2 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=pentium2 -O3 -pipe -fomit-frame-pointer""

Pentium III (Intel)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=pentium3 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=pentium3 -O3 -pipe -fomit-frame-pointer""

Celeron (Coppermine) aka Celeron2 (Intel)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=pentium3 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=pentium3 -O3 -pipe -fomit-frame-pointer""

Celeron (Willamette?) (Intel)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=pentium4 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=pentium4 -O3 -pipe -fomit-frame-pointer""

Pentium 4 (Intel)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=pentium4 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=pentium4 -O3 -pipe -fomit-frame-pointer""

Eden C3/Ezra (Via)
CHOST=""i586-pc-linux-gnu""
CFLAGS=""-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer""

quote : the ezra doesn''t have any special instructions that you could optimize for, just consider is a K6-3...basically
a p2 with 3dnow

K6 (AMD)
CHOST=""i586-pc-linux-gnu""
CFLAGS=""-march=k6 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=k6 -O3 -pipe -fomit-frame-pointer""

K6-2 (AMD)
CHOST=""i586-pc-linux-gnu""
CFLAGS=""-march=k6-2 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=k6-2 -O3 -pipe -fomit-frame-pointer""

K6-3 (AMD)
CHOST=""i586-pc-linux-gnu""
CFLAGS=""-march=k6-3 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=k6-3 -O3 -pipe -fomit-frame-pointer""

Athlon (AMD)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=athlon -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=athlon -O3 -pipe -fomit-frame-pointer""

Athlon-tbird, aka K7 (AMD)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=athlon-tbird -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=athlon-tbird -O3 -pipe -fomit-frame-pointer""

Athlon-tbird XP (AMD)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=athlon-xp -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=athlon-xp -O3 -pipe -fomit-frame-pointer""

Athlon 4(AMD)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=athlon-4 -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=athlon-4 -O3 -pipe -fomit-frame-pointer""

Athlon XP (AMD)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=athlon-xp -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=athlon-xp -O3 -pipe -fomit-frame-pointer""

Athlon MP (AMD)
CHOST=""i686-pc-linux-gnu""
CFLAGS=""-march=athlon-mp -O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-march=athlon-mp -O3 -pipe -fomit-frame-pointer""

603 (PowerPC)
CHOST=""powerpc-unknown-linux-gnu""
CFLAGS=""-O3 -pipe -fomit-frame-pointer -fsigned-char""
CXXFLAGS=""-O3 -pipe -fomit-frame-pointer -fsigned-char""

603e (PowerPC)
CHOST=""powerpc-unknown-linux-gnu""
CFLAGS=""-O3 -pipe -fomit-frame-pointer -fsigned-char""
CXXFLAGS=""-O3 -pipe -fomit-frame-pointer -fsigned-char""

604 (PowerPC)
CHOST=""powerpc-unknown-linux-gnu""
CFLAGS=""-O3 -pipe -fomit-frame-pointer -fsigned-char""
CXXFLAGS=""-O3 -pipe -fomit-frame-pointer -fsigned-char""

604e (PowerPC)
CHOST=""powerpc-unknown-linux-gnu""
CFLAGS=""-O3 -pipe -fomit-frame-pointer -fsigned-char""
CXXFLAGS=""-O3 -pipe -fomit-frame-pointer -fsigned-char""

750 aka as G3 (PowerPC)
CHOST=""powerpc-unknown-linux-gnu""
CFLAGS=""-mcpu=750 -O3 -pipe -fomit-frame-pointer
-fsigned-char""
CXXFLAGS=""-mcpu=750 -O3 -pipe -fomit-frame-pointer
-fsigned-char""

Note: do not use -march=

7400, aka G4 (PowerPC)
CHOST=""powerpc-unknown-linux-gnu""
CFLAGS=""-mcpu=7400 -O3 -pipe -fomit-frame-pointer
-fsigned-char -maltivec""
CXXFLAGS=""-mcpu=7400 -O3 -pipe -fomit-frame-pointer
-fsigned-char -maltivec""

Note: do not use -march=

7450, aka G4 second generation (PowerPC)
CHOST=""powerpc-unknown-linux-gnu""
CFLAGS=""-mcpu=7450 -O3 -pipe -fomit-frame-pointer
-fsigned-char -maltivec""
CXXFLAGS=""-mcpu=7450 -O3 -pipe -fomit-frame-pointer
-fsigned-char -maltivec""

Note: do not use -march=

PowerPC (If you don''t know which one)
CHOST=""powerpc-unknown-linux-gnu""
CFLAGS=""-O3 -pipe -fomit-frame-pointer -fsigned-char""
CXXFLAGS=""-O3 -pipe -fomit-frame-pointer -fsigned-char""

Sparc
CHOST=""sparc-unknown-linux-gnu""
CFLAGS=""-O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-O3 -pipe -fomit-frame-pointer""

Sparc 64
CHOST=""sparc64-unknown-linux-gnu""
CFLAGS=""-O3 -pipe -fomit-frame-pointer""
CXXFLAGS=""-O3 -pipe -fomit-frame-pointer""