Safe compiler flags to use for gcc 3.x
Compiling with optimized flags makes the binaries run much faster.
These flags are stolen from Safe flags to use for gentoo-1.4 at http://www.freehackers.org/gentoo/gccflags/flag_gcc3.html .
Visit their page, it has tons of good information.
These settings will give you a stable, safe and fast system, optimized for the specified processor. Keep in mind that -march makes the binaries usable only on the specified cpu. Replace -march with -mcpu to make the binary optimized for the cpu yet usable on i386.
i386 (Intel) |
CHOST="i386-pc-linux-gnu" CFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer" |
i486 (Intel) |
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" |
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 -fsigned-char" CXXFLAGS="-O3 -pipe -fsigned-char" |
603e (PowerPC) |
CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fsigned-char" CXXFLAGS="-O3 -pipe -fsigned-char" |
604 (PowerPC) |
CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fsigned-char" CXXFLAGS="-O3 -pipe -fsigned-char" |
604e (PowerPC) |
CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fsigned-char" CXXFLAGS="-O3 -pipe -fsigned-char" |
750 aka as G3 (PowerPC) |
CHOST="powerpc-unknown-linux-gnu" CFLAGS="-mcpu=750 -O3 -pipe -fsigned-char -mpowerpc-gfxopt" CXXFLAGS="-mcpu=750 -O3 -pipe -fsigned-char -mpowerpc-gfxopt" |
7400, aka G4 (PowerPC) |
CHOST="powerpc-unknown-linux-gnu" CFLAGS="-mcpu=7400 -O2 -pipe -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt" CXXFLAGS="-mcpu=7400 -O2 -pipe -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt" -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt" |
Note: -O3 is unstable on G4
7450, aka G4 second generation (PowerPC) |
CHOST="powerpc-unknown-linux-gnu" CFLAGS="-mcpu=7450 -O2 -pipe -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt" CXXFLAGS="-mcpu=7450 -O2 -pipe -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt" |
Note: -O3 is unstable on G4
PowerPC (If you don't know which one) |
CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt" CXXFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt" |
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" |