mirror of
https://github.com/postgres/postgres.git
synced 2025-05-02 11:44:50 +03:00
78 lines
2.1 KiB
Plaintext
78 lines
2.1 KiB
Plaintext
<Chapter Id="compiler">
|
|
<DocInfo>
|
|
<AuthorGroup>
|
|
<Author>
|
|
<FirstName>Brian</FirstName>
|
|
<Surname>Gallew</Surname>
|
|
</Author>
|
|
</AuthorGroup>
|
|
<Date>Transcribed 1998-02-12</Date>
|
|
</DocInfo>
|
|
|
|
<Title><application>gcc</application> Default Optimizations</Title>
|
|
|
|
<Para>
|
|
<Note>
|
|
<Para>
|
|
Contributed by Brian Gallew (<email>geek+@cmu.edu</email>)
|
|
</Para>
|
|
</Note>
|
|
</para>
|
|
|
|
<Para>
|
|
Configuring gcc to use certain flags by default is a simple matter of
|
|
editing the
|
|
<FileName>/usr/local/lib/gcc-lib/<Replaceable>platform</Replaceable>/<Replaceable>version</Replaceable>/specs</FileName>
|
|
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
|
|
"*<Replaceable>section_name</Replaceable>:" (e.g. "*asm:").
|
|
The second line is a list of flags,
|
|
and the third line is blank.
|
|
</para>
|
|
|
|
<Para>
|
|
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:
|
|
<ProgramListing>
|
|
- ----------SECTION----------
|
|
*cc1:
|
|
|
|
|
|
- ----------SECTION----------
|
|
</ProgramListing>
|
|
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:
|
|
<ProgramListing>
|
|
- ----------SECTION----------
|
|
*cc1:
|
|
- -m486 -fomit-frame-pointer
|
|
|
|
- ----------SECTION----------
|
|
</ProgramListing>
|
|
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:
|
|
<ProgramListing>
|
|
- ----------SECTION----------
|
|
*cc1:
|
|
%{!m386:-m486} -fomit-frame-pointer
|
|
|
|
- ----------SECTION----------
|
|
</ProgramListing>
|
|
This will always omit frame pointers, any will build 486-optimized
|
|
code unless -m386 is specified on the command line.
|
|
</para>
|
|
|
|
<Para>
|
|
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.
|
|
</para>
|
|
|
|
</Chapter>
|