1 \input texinfo @c -*-texinfo-*-
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)
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':
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':
17 @c (For FSF printing, turn on smallbook, comment out finalout below;
18 @c that is all that is needed.)
20 @c 6/27/96 FSF DO wants smallbook fmt for 1st bound edition.
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
28 @c NOTE: checks/things to do:
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
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
42 @c anything else? --mew 10feb93
44 @macro gcctabopt{body}
47 @macro gccoptlist{body}
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.
65 @settitle Using and Porting the GNU Compiler Collection (GCC)
68 @c seems reasonable to assume at least one of INTERNALS or USING is set...
70 @settitle Using the GNU Compiler Collection
73 @settitle Porting the GNU Compiler Collection
76 @c Create a separate index for command line options.
78 @c Merge the standard indexes into a single one.
87 @c Use with @@smallbook.
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.
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
97 @c (To provide the reverse effect, set bindingoffset to -0.75in.)
100 @c \global\bindingoffset=0.75in
101 @c \global\normaloffset =0.75in
104 @c Change the font used for @def... commands, since the default
105 @c proportional one used is bad for names starting __.
107 \global\setfont\defbf\ttbshape{10}{\magstep1}
111 @dircategory Programming
113 * gcc: (gcc). The GNU Compiler Collection.
117 This file documents the use and the internals of the GNU compiler.
121 This file documents the internals of the GNU compiler.
124 This file documents the use of the GNU compiler.
127 Published by the Free Software Foundation@*
128 59 Temple Place - Suite 330@*
129 Boston, MA 02111-1307 USA
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.
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''.
144 (a) The FSF's Front-Cover Text is:
148 (b) The FSF's Back-Cover Text is:
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.
155 @setchapternewpage odd
160 @center @titlefont{Using and Porting the GNU Compiler Collection}
165 @title Using the GNU Compiler Collection
168 @title Porting the GNU Compiler Collection
171 @center Richard M. Stallman
173 @center Last updated 22 June 2001
175 @c The version number appears five times more in this file.
179 @vskip 0pt plus 1filll
180 Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1998,
181 1999, 2000, 2001 Free Software Foundation, Inc.
183 For GCC Version 3.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.@*
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''.
200 (a) The FSF's Front-Cover Text is:
204 (b) The FSF's Back-Cover Text is:
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.
214 @node Top, G++ and GCC,, (DIR)
220 This manual documents how to run, install 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.
227 This manual documents how to run and install 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.
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.
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 * Installation:: How to configure, compile and install GCC.
243 * C Implementation:: How GCC implements the ISO C specification.
244 * C Extensions:: GNU extensions to the C language family.
245 * C++ Extensions:: GNU extensions to the C++ language.
246 * Objective-C:: GNU Objective-C runtime features.
247 * Gcov:: gcov: a GCC test coverage program.
248 * Trouble:: If you have trouble installing GCC.
249 * Bugs:: How, why and where to report bugs.
250 * Service:: How to find suppliers of support for GCC.
251 * Contributing:: How to contribute to testing and developing GCC.
252 * VMS:: Using GCC on VMS.
253 * Makefile:: Additional Makefile and configure information.
256 * Portability:: Goals of GCC's portability features.
257 * Interface:: Function-call interface of GCC output.
258 * Passes:: Order of passes, what they do, and what each file is for.
259 * Trees:: The source representation used by the C and C++ front ends.
260 * RTL:: The intermediate representation that most passes work on.
261 * Machine Desc:: How to write machine description instruction patterns.
262 * Target Macros:: How to write the machine description C macros and functions.
263 * Config:: Writing the @file{xm-@var{machine}.h} file.
264 * Fragments:: Writing the @file{t-@var{target}} and @file{x-@var{host}} files.
265 * Configuration Files:: Files created by running @code{configure}.
266 * Collect2:: How @code{collect2} works; how it finds @code{ld}.
267 * Header Dirs:: Understanding the standard header file directories.
270 * Funding:: How to help assure funding for free software.
271 * GNU Project:: The GNU Project and GNU/Linux.
273 * Copying:: GNU General Public License says
274 how you can copy and share GCC.
275 * GNU Free Documentation License:: How you can copy and share this manual.
276 * Contributors:: People who have contributed to GCC.
278 * Option Index:: Index to command line options.
279 * Index:: Index of concepts and symbol names.
284 @include frontends.texi
286 @include standards.texi
290 @include install-old.texi
298 @include trouble.texi
300 @include bugreport.texi
302 @include service.texi
304 @include contribute.texi
308 @include makefile.texi
310 @include configterms.texi
315 @include portability.texi
316 @include interface.texi
322 @include hostconfig.texi
323 @include fragments.texi
324 @include configfiles.texi
325 @include collect2.texi
326 @include headerdirs.texi
329 @include funding.texi
335 @c ---------------------------------------------------------------------
337 @c ---------------------------------------------------------------------
341 @include contrib.texi
343 @c ---------------------------------------------------------------------
345 @c ---------------------------------------------------------------------
348 @unnumbered Option Index
350 GCC's command line options are indexed here without any initial @samp{-}
351 or @samp{--}. Where an option has both positive and negative forms
352 (such as @option{-f@var{option}} and @option{-fno-@var{option}}),
353 relevant entries in the manual are indexed under the most appropriate
354 form; it may sometimes be useful to look up both forms.
363 @c ---------------------------------------------------------------------
365 @c ---------------------------------------------------------------------