OSDN Git Service

2001-12-13 Aldy Hernandez <aldyh@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / doc / gcc.texi
1 \input texinfo  @c -*-texinfo-*-
2 @c %**start of header
3 @setfilename gcc.info
4 @c @setfilename usegcc.info
5 @c @setfilename portgcc.info
6 @c To produce the full manual, use the "gcc.info" setfilename, and
7 @c make sure the following do NOT begin with '@c' (and the @clear lines DO)
8 @set INTERNALS
9 @set USING
10 @c To produce a user-only manual, use the "usegcc.info" setfilename, and
11 @c make sure the following does NOT begin with '@c':
12 @c @clear INTERNALS
13 @c To produce a porter-only manual, use the "portgcc.info" setfilename,
14 @c and make sure the following does NOT begin with '@c':
15 @c @clear USING
16
17 @c (For FSF printing, turn on smallbook, comment out finalout below;
18 @c that is all that is needed.)
19
20 @c 6/27/96 FSF DO wants smallbook fmt for 1st bound edition.
21 @c @smallbook
22
23 @c i also commented out the finalout command, so if there *are* any
24 @c overfulls, you'll (hopefully) see the rectangle in the right hand
25 @c margin. -mew 15june93
26 @c @finalout
27
28 @c NOTE: checks/things to do:
29 @c
30 @c -have bob do a search in all seven files for "mew" (ideally --mew,
31 @c  but i may have forgotten the occasional "--"..).
32 @c     Just checked... all have `--'!  Bob 22Jul96
33 @c     Use this to search:   grep -n '\-\-mew' *.texi
34 @c -item/itemx, text after all (sub/sub)section titles, etc..
35 @c -consider putting the lists of options on pp 17--> etc in columns or
36 @c  some such.
37 @c -overfulls.  do a search for "mew" in the files, and you will see
38 @c   overfulls that i noted but could not deal with.
39 @c -have to add text:  beginning of chapter 8
40
41 @c
42 @c anything else?                       --mew 10feb93
43
44 @macro gcctabopt{body}
45 @code{\body\}
46 @end macro
47 @macro gccoptlist{body}
48 @smallexample
49 \body\
50 @end smallexample
51 @end macro
52 @c Makeinfo handles the above macro OK, TeX needs manual line breaks;
53 @c they get lost at some point in handling the macro.  But if @macro is
54 @c used here rather than @alias, it produces double line breaks.
55 @iftex
56 @alias gol = *
57 @end iftex
58 @ifnottex
59 @macro gol
60 @end macro
61 @end ifnottex
62
63 @ifset INTERNALS
64 @ifset USING
65 @settitle Using and Porting the GNU Compiler Collection (GCC)
66 @end ifset
67 @end ifset
68 @c seems reasonable to assume at least one of INTERNALS or USING is set...
69 @ifclear INTERNALS
70 @settitle Using the GNU Compiler Collection
71 @end ifclear
72 @ifclear USING
73 @settitle Porting the GNU Compiler Collection
74 @end ifclear
75
76 @c Create a separate index for command line options.
77 @defcodeindex op
78 @c Merge the standard indexes into a single one.
79 @syncodeindex fn cp
80 @syncodeindex vr cp
81 @syncodeindex ky cp
82 @syncodeindex pg cp
83 @syncodeindex tp cp
84
85 @c %**end of header
86
87 @c Use with @@smallbook.
88
89 @c Cause even numbered pages to be printed on the left hand side of
90 @c the page and odd numbered pages to be printed on the right hand
91 @c side of the page.  Using this, you can print on both sides of a
92 @c sheet of paper and have the text on the same part of the sheet.
93
94 @c The text on right hand pages is pushed towards the right hand
95 @c margin and the text on left hand pages is pushed toward the left
96 @c hand margin.
97 @c (To provide the reverse effect, set bindingoffset to -0.75in.)
98
99 @c @tex
100 @c \global\bindingoffset=0.75in
101 @c \global\normaloffset =0.75in
102 @c @end tex
103
104 @c Change the font used for @def... commands, since the default
105 @c proportional one used is bad for names starting __.
106 @tex
107 \global\setfont\defbf\ttbshape{10}{\magstep1}
108 @end tex
109
110 @ifnottex
111 @dircategory Programming
112 @direntry
113 * gcc: (gcc).                  The GNU Compiler Collection.
114 @end direntry
115 @ifset INTERNALS
116 @ifset USING
117 This file documents the use and the internals of the GNU compiler.
118 @end ifset
119 @end ifset
120 @ifclear USING
121 This file documents the internals of the GNU compiler.
122 @end ifclear
123 @ifclear INTERNALS
124 This file documents the use of the GNU compiler.
125 @end ifclear
126 @sp 1
127 Published by the Free Software Foundation@*
128 59 Temple Place - Suite 330@*
129 Boston, MA 02111-1307 USA
130 @sp 1
131 @c When you update the list of years below, search for copyright{} and
132 @c update the other copy too.
133 Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
134 1999, 2000, 2001 Free Software Foundation, Inc.
135 @sp 1
136 Permission is granted to copy, distribute and/or modify this document
137 under the terms of the GNU Free Documentation License, Version 1.1 or
138 any later version published by the Free Software Foundation; with the
139 Invariant Sections being ``GNU General Public License'' and ``Funding
140 Free Software'', the Front-Cover texts being (a) (see below), and with
141 the Back-Cover Texts being (b) (see below).  A copy of the license is
142 included in the section entitled ``GNU Free Documentation License''.
143
144 (a) The FSF's Front-Cover Text is:
145
146      A GNU Manual
147
148 (b) The FSF's Back-Cover Text is:
149
150      You have freedom to copy and modify this GNU Manual, like GNU
151      software.  Copies published by the Free Software Foundation raise
152      funds for GNU development.
153 @end ifnottex
154
155 @setchapternewpage odd
156 @c @finalout
157 @titlepage
158 @ifset INTERNALS
159 @ifset USING
160 @center @titlefont{Using and Porting the GNU Compiler Collection}
161
162 @end ifset
163 @end ifset
164 @ifclear INTERNALS
165 @title Using the GNU Compiler Collection
166 @end ifclear
167 @ifclear USING
168 @title Porting the GNU Compiler Collection
169 @end ifclear
170 @sp 2
171 @center Richard M. Stallman
172 @sp 3
173 @center Last updated 22 June 2001
174 @sp 1
175 @c The version number appears five times more in this file.
176
177 @center for GCC 3.1
178 @page
179 @vskip 0pt plus 1filll
180 Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
181 1999, 2000, 2001  Free Software Foundation, Inc.
182 @sp 2
183 For GCC Version 3.1@*
184 @sp 1
185 Published by the Free Software Foundation @*
186 59 Temple Place---Suite 330@*
187 Boston, MA 02111-1307, USA@*
188 Last printed April, 1998.@*
189 Printed copies are available for $50 each.@*
190 ISBN 1-882114-37-X
191 @sp 1
192 Permission is granted to copy, distribute and/or modify this document
193 under the terms of the GNU Free Documentation License, Version 1.1 or
194 any later version published by the Free Software Foundation; with the
195 Invariant Sections being ``GNU General Public License'', the Front-Cover
196 texts being (a) (see below), and with the Back-Cover Texts being (b)
197 (see below).  A copy of the license is included in the section entitled
198 ``GNU Free Documentation License''.
199
200 (a) The FSF's Front-Cover Text is:
201
202      A GNU Manual
203
204 (b) The FSF's Back-Cover Text is:
205
206      You have freedom to copy and modify this GNU Manual, like GNU
207      software.  Copies published by the Free Software Foundation raise
208      funds for GNU development.
209 @end titlepage
210 @summarycontents
211 @contents
212 @page
213
214 @node Top, G++ and GCC,, (DIR)
215 @top Introduction
216 @cindex introduction
217
218 @ifset INTERNALS
219 @ifset USING
220 This manual documents how to run and port the GNU
221 compiler, as well as its new features and incompatibilities, and how to
222 report bugs.  It corresponds to GCC version 3.1.
223 @end ifset
224 @end ifset
225
226 @ifclear INTERNALS
227 This manual documents how to run the GNU compiler,
228 as well as its new features and incompatibilities, and how to report
229 bugs.  It corresponds to GCC version 3.1.
230 @end ifclear
231 @ifclear USING
232 This manual documents how to port the GNU compiler,
233 as well as its new features and incompatibilities, and how to report
234 bugs.  It corresponds to GCC version 3.1.
235 @end ifclear
236
237 @menu
238 @ifset USING
239 * G++ and GCC::     You can compile C or C++ programs.
240 * Standards::       Language standards supported by GCC.
241 * Invoking GCC::    Command options supported by @samp{gcc}.
242 * C Implementation:: How GCC implements the ISO C specification.
243 * C Extensions::    GNU extensions to the C language family.
244 * C++ Extensions::  GNU extensions to the C++ language.
245 * Objective-C::     GNU Objective-C runtime features.
246 * Gcov::            gcov: a GCC test coverage program.
247 * Trouble::         If you have trouble using GCC.
248 * Bugs::            How, why and where to report bugs.
249 * Service::         How to find suppliers of support for GCC.
250 * Contributing::    How to contribute to testing and developing GCC.
251 * VMS::             Using GCC on VMS.
252 * Makefile::        Additional Makefile and configure information.
253 @end ifset
254 @ifset INTERNALS
255 * Portability::     Goals of GCC's portability features.
256 * Interface::       Function-call interface of GCC output.
257 * Passes::          Order of passes, what they do, and what each file is for.
258 * Trees::           The source representation used by the C and C++ front ends.
259 * RTL::             The intermediate representation that most passes work on.
260 * Machine Desc::    How to write machine description instruction patterns.
261 * Target Macros::   How to write the machine description C macros and functions.
262 * Config::          Writing the @file{xm-@var{machine}.h} file.
263 * Fragments::       Writing the @file{t-@var{target}} and @file{x-@var{host}} files.
264 * Configuration Files::  Files created by running @code{configure}.
265 * Collect2::        How @code{collect2} works; how it finds @code{ld}.
266 * Header Dirs::     Understanding the standard header file directories.
267 @end ifset
268
269 * Funding::         How to help assure funding for free software.
270 * GNU Project::     The GNU Project and GNU/Linux.
271
272 * Copying::         GNU General Public License says
273                      how you can copy and share GCC.
274 * GNU Free Documentation License:: How you can copy and share this manual.
275 * Contributors::    People who have contributed to GCC.
276
277 * Option Index::    Index to command line options.
278 * Index::           Index of concepts and symbol names.
279 @end menu
280
281 @ifset USING
282
283 @include frontends.texi
284
285 @include standards.texi
286
287 @include invoke.texi
288
289 @include extend.texi
290
291 @include objc.texi
292
293 @include gcov.texi
294
295 @include trouble.texi
296
297 @include bugreport.texi
298
299 @include service.texi
300
301 @include contribute.texi
302
303 @include vms.texi
304
305 @include makefile.texi
306
307 @include configterms.texi
308
309 @end ifset
310
311 @ifset INTERNALS
312 @include portability.texi
313 @include interface.texi
314 @include passes.texi
315 @include c-tree.texi
316 @include rtl.texi
317 @include md.texi
318 @include tm.texi
319 @include hostconfig.texi
320 @include fragments.texi
321 @include configfiles.texi
322 @include collect2.texi
323 @include headerdirs.texi
324 @end ifset
325
326 @include funding.texi
327
328 @include gnu.texi
329
330 @include gpl.texi
331
332 @c ---------------------------------------------------------------------
333 @c GFDL
334 @c ---------------------------------------------------------------------
335
336 @include fdl.texi
337
338 @include contrib.texi
339
340 @c ---------------------------------------------------------------------
341 @c Indexes
342 @c ---------------------------------------------------------------------
343
344 @node Option Index
345 @unnumbered Option Index
346
347 GCC's command line options are indexed here without any initial @samp{-}
348 or @samp{--}.  Where an option has both positive and negative forms
349 (such as @option{-f@var{option}} and @option{-fno-@var{option}}),
350 relevant entries in the manual are indexed under the most appropriate
351 form; it may sometimes be useful to look up both forms.
352
353 @printindex op
354
355 @node Index
356 @unnumbered Index
357
358 @printindex cp
359
360 @c ---------------------------------------------------------------------
361 @c Epilogue
362 @c ---------------------------------------------------------------------
363
364 @bye