News Philosophy  Products Services Support  Contact
Location: Homepage -> CFLAGS


Onyx Compiler Flags

All software packages for Onyx have been compiled with a hardened version GCC 4.1.2 that has been patched for buffer overflow protection (FORTIFY_SOURCE) and stack-smashing protection (ProPolice) with the following CFLAGS: -Os -march=pentium3 -mtune=nocona -mfpmath=sse -pipe

-Os performs optimizations designed to produce faster binaries at reduced code size, and reduces application load time, memory usage, disk usage, and cache misses.

-march=pentium3 tells GCC to optimize binaries for the Pentium 3 processor, which includes MMX and SSE in the CPU instructions. This feature breaks backwards compatibility with older processors, so systems older than Pentium 3/AMD Athlon will not be able to run Onyx.

-march=nocona tells GCC to optimize everything but the ABI and the set of CPU-specific instructions for the latest Intel processors. This will still show very good performance on AMD processors as well.

-mfpmath=see tells GCC to use scalar floating point instructions present in the SSE instruction set instead of using the standard 387 floating point co-processor. The resulting code should be considerably faster in the majority of cases and avoid the numerical instability problems of 387 code.

-pipe is a benign flag that I use to help save compilation time -- it tells GCC to pipe data directly to the next function instead of creating temporary files when compiling.










Copyright © 2007, 2008 Blacksail Software, LLC. All rights reserved.
'Linux' is a registered trademark of Linus Torvalds.