mirror of
https://github.com/postgres/postgres.git
synced 2025-10-25 13:17:41 +03:00
SGML source for new documentation.
This commit is contained in:
73
doc/src/sgml/compiler.sgml
Normal file
73
doc/src/sgml/compiler.sgml
Normal file
@@ -0,0 +1,73 @@
|
||||
<Chapter>
|
||||
<DocInfo>
|
||||
<AuthorGroup>
|
||||
<Author>
|
||||
<FirstName>Brian</FirstName>
|
||||
<Surname>Gallew</Surname>
|
||||
</Author>
|
||||
</AuthorGroup>
|
||||
<Date>Transcribed 1998-02-12</Date>
|
||||
</DocInfo>
|
||||
|
||||
<Title>GCC Default Optimizations</Title>
|
||||
|
||||
<Para>
|
||||
<Note>
|
||||
<Para>
|
||||
Contributed by <ULink url="mailto:geek+@cmu.edu">Brian Gallew</ULink>
|
||||
</Para>
|
||||
</Note>
|
||||
|
||||
<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>
|
||||
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>
|
||||
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.
|
||||
|
||||
</Chapter>
|
||||
Reference in New Issue
Block a user