Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/compiler.sgml')
-rw-r--r--doc/src/sgml/compiler.sgml73
1 files changed, 73 insertions, 0 deletions
diff --git a/doc/src/sgml/compiler.sgml b/doc/src/sgml/compiler.sgml
new file mode 100644
index 00000000000..5d9c0eb0755
--- /dev/null
+++ b/doc/src/sgml/compiler.sgml
@@ -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>