Configuring gcc to use certain flags by default is a simple matter of
editing the
/usr/local/lib/gcc-lib/platform/version/specs
file.
The format of this file pretty simple. The file is broken into
sections, each of which is three lines long. The first line is
"*section_name:" (e.g. "*asm:").
The second line is a list of flags,
and the third line is blank.
The easiest change to make is to append
the desired default flags to the list in the appropriate section. As
an example, let's suppose that I have linux running on a '486 with gcc
2.7.2 installed in the default location. In the file
/usr/local/lib/gcc-lib/i486-linux/2.7.2/specs, 13 lines down I find
the following section:
- ----------SECTION----------
*cc1:
- ----------SECTION----------
As you can see, there aren't any default flags. If I always wanted
compiles of C code to use "-m486 -fomit-frame-pointer", I would
change it to look like:
- ----------SECTION----------
*cc1:
- -m486 -fomit-frame-pointer
- ----------SECTION----------
If I wanted to be able to generate 386 code for another, older linux
box lying around, I'd have to make it look like this:
- ----------SECTION----------
*cc1:
%{!m386:-m486} -fomit-frame-pointer
- ----------SECTION----------
This will always omit frame pointers, any will build 486-optimized
code unless -m386 is specified on the command line.
You can actually do quite a lot of customization with the specs file.
Always remember, however, that these changes are global, and affect
all users of the system.