Linux development tools, part 1
  • Support for MMX, 3DNow!, SSE, and SSE2 instructions. Enable these with the -mmmx, -m3dnow, -msse, and -msse2 options.
  • Intel C++ compatible MMX/3DNow!/SSE intrinsics are implemented.
  • Targets were added for Intel Pentium® MMX, Pentium III, and Pentium 4 processors.
  • For those targets that support it, -mfpmath=sse causes the compiler to generate SSE/SSE2 instructions for floating point math instead of x87 instructions. Usually, this will lead to quicker code, especially on the Pentium 4 processor. Note that only scalar floating point instructions are used and GCC does not exploit SIMD features yet.
  • Prefetch support has been added to the Pentium III and Pentium 4 processors.
  • Code generated for floating-point-to-integer-conversions has been improved, leading to better performance of many 3D applications.
  • By default, gcc compiles code for the machine it is installed on. This is a configurable option, and different gcc configurations for various target machines can exist side-by-side.
Here is the basic syntax for invoking the C compiler:


$ gcc -o executable-name optimizations sourcefile.c 

A typical Hello World example:


$ gcc -o hello -Wall -march=i686 -ggdb -O2 hello.c
  • -Wall means display the most useful warnings
  • -march=i686 optimizes for Intel 686 CPU
  • -ggdb adds debugging information that gdb, the GNU debugger, can read
  • -O2 optimizes code size and increases execution speed. (Choices are O1-O3)
Intel CPU target options include the entire x86 family and 960. The O flag is interesting, O3 turns on automatic function inlining, which usually creates fatter code, as well as the fastest.

There are many compiler options, and here are some of the more commonly used ones:

-c = compile or assemble but do not link
-S = stop after compilation, do not assemble
-E = stop after preprocessing, do not compile
-fsyntax-only = check for syntax errors
-pedantic = issue all the warnings demanded by strict ISO C and ISO C++
-static = link against static libraries. The default is shared libraries.


Subscribers who liked this article also read:
Deploying Oracle9i Real Application Clusters on Intel® architecture-based clusters
Information storage and retrieval lies at the heart of almost all core...

If you're interested in this topic, these articles may be helpful:

Linux Unwired
by Roger Weeks, Edd Dumbill and Brian Jepson, O'Reilly This O'Reill...
IBM Rational Rose — Linux/Unix
IBM Rational Rose for UNIX and Linux has been replaced by IBM Rational...
Intel® C++ Compiler 8.1 for Linux
Gain optimal performance from your Linux applications running on the l...
Intel® Fortran Compiler 9 for Linux
Deliver outstanding performance on single and multiprocessor computers...
Using Intel C++ Compiler 8.0 with the Eclipse Integrated Development Environment on Linux systems
Intel Corp. The Eclipse Project is an open-source software-developm...

Related Jobs:

Builder #134140 - WA - Redmond - Microsoft Corporation
Come and change the way the world communicates! The Real-Time Collabor...
Builder #151464 - WA - Redmond - Microsoft Corporation
The Jamaica Team is looking for an experienced Build Engineer. This po...
R&D Engineer, Sr II #5728 - CA - Mountain View - Synopsys, Inc.
US01-Mountain View - R&D Engineering ----------------------------...
Sr. Systems Analyst #472 - MD - Rockville - Management Systems Designers, Inc.
MSD is an employee-owned company of over 600 professionals who support...
Software Development Engineer in Test #139236 - WA - Redmond - Microsoft Corporation
Do you want to be a part of the team creating the next version of the ...
Software Development Engineer #138696 - WA - Redmond - Microsoft Corporation
We need a cooperative team player who can work closely with their mana...
R&D Engineer, Sr II #5677 - CA - Mountain View - Synopsys, Inc.
ReqCode: 5677 Position: R&D Engineer, Sr II Location: US01-Mountain ...
CAE, Sr I #5747 - CA - Sunnyvale - Synopsys, Inc.
US02-Sunnyvale - Corp Applications Engineering ------------------...
Builder #150329 - WA - Redmond - Microsoft Corporation
Do you want to play a critical role in producing the next generation o...
Software Eng - Applications II #13289 - IL - Libertyville - Radiant Systems, Inc
Develop, create, and modify general computer applications software or ...