compiler.sgml
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
- <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 <ULink url="mailto:geek+@cmu.edu">Brian Gallew</ULink>
- </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>