[8833] | 1 | This is Info file gcc.info, produced by Makeinfo-1.55 from the input |
---|
| 2 | file gcc.texi. |
---|
| 3 | |
---|
| 4 | This file documents the use and the internals of the GNU compiler. |
---|
| 5 | |
---|
| 6 | Published by the Free Software Foundation 59 Temple Place - Suite 330 |
---|
| 7 | Boston, MA 02111-1307 USA |
---|
| 8 | |
---|
| 9 | Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995 Free Software |
---|
| 10 | Foundation, Inc. |
---|
| 11 | |
---|
| 12 | Permission is granted to make and distribute verbatim copies of this |
---|
| 13 | manual provided the copyright notice and this permission notice are |
---|
| 14 | preserved on all copies. |
---|
| 15 | |
---|
| 16 | Permission is granted to copy and distribute modified versions of |
---|
| 17 | this manual under the conditions for verbatim copying, provided also |
---|
| 18 | that the sections entitled "GNU General Public License," "Funding for |
---|
| 19 | Free Software," and "Protect Your Freedom--Fight `Look And Feel'" are |
---|
| 20 | included exactly as in the original, and provided that the entire |
---|
| 21 | resulting derived work is distributed under the terms of a permission |
---|
| 22 | notice identical to this one. |
---|
| 23 | |
---|
| 24 | Permission is granted to copy and distribute translations of this |
---|
| 25 | manual into another language, under the above conditions for modified |
---|
| 26 | versions, except that the sections entitled "GNU General Public |
---|
| 27 | License," "Funding for Free Software," and "Protect Your Freedom--Fight |
---|
| 28 | `Look And Feel'", and this permission notice, may be included in |
---|
| 29 | translations approved by the Free Software Foundation instead of in the |
---|
| 30 | original English. |
---|
| 31 | |
---|
| 32 | |
---|
| 33 | File: gcc.info, Node: Top, Next: Copying, Up: (DIR) |
---|
| 34 | |
---|
| 35 | Introduction |
---|
| 36 | ************ |
---|
| 37 | |
---|
| 38 | This manual documents how to run, install and port the GNU compiler, |
---|
| 39 | as well as its new features and incompatibilities, and how to report |
---|
| 40 | bugs. It corresponds to GNU CC version 2.7.2. |
---|
| 41 | |
---|
| 42 | * Menu: |
---|
| 43 | |
---|
| 44 | * Copying:: GNU General Public License says |
---|
| 45 | how you can copy and share GNU CC. |
---|
| 46 | * Contributors:: People who have contributed to GNU CC. |
---|
| 47 | * Funding:: How to help assure funding for free software. |
---|
| 48 | * Look and Feel:: Protect your freedom--fight "look and feel". |
---|
| 49 | |
---|
| 50 | * G++ and GCC:: You can compile C or C++ programs. |
---|
| 51 | * Invoking GCC:: Command options supported by `gcc'. |
---|
| 52 | * Installation:: How to configure, compile and install GNU CC. |
---|
| 53 | * C Extensions:: GNU extensions to the C language family. |
---|
| 54 | * C++ Extensions:: GNU extensions to the C++ language. |
---|
| 55 | * Trouble:: If you have trouble installing GNU CC. |
---|
| 56 | * Bugs:: How, why and where to report bugs. |
---|
| 57 | * Service:: How to find suppliers of support for GNU CC. |
---|
| 58 | * VMS:: Using GNU CC on VMS. |
---|
| 59 | |
---|
| 60 | * Portability:: Goals of GNU CC's portability features. |
---|
| 61 | * Interface:: Function-call interface of GNU CC output. |
---|
| 62 | * Passes:: Order of passes, what they do, and what each file is for. |
---|
| 63 | * RTL:: The intermediate representation that most passes work on. |
---|
| 64 | * Machine Desc:: How to write machine description instruction patterns. |
---|
| 65 | * Target Macros:: How to write the machine description C macros. |
---|
| 66 | * Config:: Writing the `xm-MACHINE.h' file. |
---|
| 67 | * Fragments:: Writing the `t-TARGET' and `x-HOST' files. |
---|
| 68 | |
---|
| 69 | * Index:: Index of concepts and symbol names. |
---|
| 70 | |
---|
| 71 | |
---|
| 72 | File: gcc.info, Node: Copying, Next: Contributors, Prev: Top, Up: Top |
---|
| 73 | |
---|
| 74 | GNU GENERAL PUBLIC LICENSE |
---|
| 75 | ************************** |
---|
| 76 | |
---|
| 77 | Version 2, June 1991 |
---|
| 78 | |
---|
| 79 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
---|
| 80 | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA |
---|
| 81 | |
---|
| 82 | Everyone is permitted to copy and distribute verbatim copies |
---|
| 83 | of this license document, but changing it is not allowed. |
---|
| 84 | |
---|
| 85 | Preamble |
---|
| 86 | ======== |
---|
| 87 | |
---|
| 88 | The licenses for most software are designed to take away your |
---|
| 89 | freedom to share and change it. By contrast, the GNU General Public |
---|
| 90 | License is intended to guarantee your freedom to share and change free |
---|
| 91 | software--to make sure the software is free for all its users. This |
---|
| 92 | General Public License applies to most of the Free Software |
---|
| 93 | Foundation's software and to any other program whose authors commit to |
---|
| 94 | using it. (Some other Free Software Foundation software is covered by |
---|
| 95 | the GNU Library General Public License instead.) You can apply it to |
---|
| 96 | your programs, too. |
---|
| 97 | |
---|
| 98 | When we speak of free software, we are referring to freedom, not |
---|
| 99 | price. Our General Public Licenses are designed to make sure that you |
---|
| 100 | have the freedom to distribute copies of free software (and charge for |
---|
| 101 | this service if you wish), that you receive source code or can get it |
---|
| 102 | if you want it, that you can change the software or use pieces of it in |
---|
| 103 | new free programs; and that you know you can do these things. |
---|
| 104 | |
---|
| 105 | To protect your rights, we need to make restrictions that forbid |
---|
| 106 | anyone to deny you these rights or to ask you to surrender the rights. |
---|
| 107 | These restrictions translate to certain responsibilities for you if you |
---|
| 108 | distribute copies of the software, or if you modify it. |
---|
| 109 | |
---|
| 110 | For example, if you distribute copies of such a program, whether |
---|
| 111 | gratis or for a fee, you must give the recipients all the rights that |
---|
| 112 | you have. You must make sure that they, too, receive or can get the |
---|
| 113 | source code. And you must show them these terms so they know their |
---|
| 114 | rights. |
---|
| 115 | |
---|
| 116 | We protect your rights with two steps: (1) copyright the software, |
---|
| 117 | and (2) offer you this license which gives you legal permission to copy, |
---|
| 118 | distribute and/or modify the software. |
---|
| 119 | |
---|
| 120 | Also, for each author's protection and ours, we want to make certain |
---|
| 121 | that everyone understands that there is no warranty for this free |
---|
| 122 | software. If the software is modified by someone else and passed on, we |
---|
| 123 | want its recipients to know that what they have is not the original, so |
---|
| 124 | that any problems introduced by others will not reflect on the original |
---|
| 125 | authors' reputations. |
---|
| 126 | |
---|
| 127 | Finally, any free program is threatened constantly by software |
---|
| 128 | patents. We wish to avoid the danger that redistributors of a free |
---|
| 129 | program will individually obtain patent licenses, in effect making the |
---|
| 130 | program proprietary. To prevent this, we have made it clear that any |
---|
| 131 | patent must be licensed for everyone's free use or not licensed at all. |
---|
| 132 | |
---|
| 133 | The precise terms and conditions for copying, distribution and |
---|
| 134 | modification follow. |
---|
| 135 | |
---|
| 136 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
---|
| 137 | |
---|
| 138 | 0. This License applies to any program or other work which contains a |
---|
| 139 | notice placed by the copyright holder saying it may be distributed |
---|
| 140 | under the terms of this General Public License. The "Program", |
---|
| 141 | below, refers to any such program or work, and a "work based on |
---|
| 142 | the Program" means either the Program or any derivative work under |
---|
| 143 | copyright law: that is to say, a work containing the Program or a |
---|
| 144 | portion of it, either verbatim or with modifications and/or |
---|
| 145 | translated into another language. (Hereinafter, translation is |
---|
| 146 | included without limitation in the term "modification".) Each |
---|
| 147 | licensee is addressed as "you". |
---|
| 148 | |
---|
| 149 | Activities other than copying, distribution and modification are |
---|
| 150 | not covered by this License; they are outside its scope. The act |
---|
| 151 | of running the Program is not restricted, and the output from the |
---|
| 152 | Program is covered only if its contents constitute a work based on |
---|
| 153 | the Program (independent of having been made by running the |
---|
| 154 | Program). Whether that is true depends on what the Program does. |
---|
| 155 | |
---|
| 156 | 1. You may copy and distribute verbatim copies of the Program's |
---|
| 157 | source code as you receive it, in any medium, provided that you |
---|
| 158 | conspicuously and appropriately publish on each copy an appropriate |
---|
| 159 | copyright notice and disclaimer of warranty; keep intact all the |
---|
| 160 | notices that refer to this License and to the absence of any |
---|
| 161 | warranty; and give any other recipients of the Program a copy of |
---|
| 162 | this License along with the Program. |
---|
| 163 | |
---|
| 164 | You may charge a fee for the physical act of transferring a copy, |
---|
| 165 | and you may at your option offer warranty protection in exchange |
---|
| 166 | for a fee. |
---|
| 167 | |
---|
| 168 | 2. You may modify your copy or copies of the Program or any portion |
---|
| 169 | of it, thus forming a work based on the Program, and copy and |
---|
| 170 | distribute such modifications or work under the terms of Section 1 |
---|
| 171 | above, provided that you also meet all of these conditions: |
---|
| 172 | |
---|
| 173 | a. You must cause the modified files to carry prominent notices |
---|
| 174 | stating that you changed the files and the date of any change. |
---|
| 175 | |
---|
| 176 | b. You must cause any work that you distribute or publish, that |
---|
| 177 | in whole or in part contains or is derived from the Program |
---|
| 178 | or any part thereof, to be licensed as a whole at no charge |
---|
| 179 | to all third parties under the terms of this License. |
---|
| 180 | |
---|
| 181 | c. If the modified program normally reads commands interactively |
---|
| 182 | when run, you must cause it, when started running for such |
---|
| 183 | interactive use in the most ordinary way, to print or display |
---|
| 184 | an announcement including an appropriate copyright notice and |
---|
| 185 | a notice that there is no warranty (or else, saying that you |
---|
| 186 | provide a warranty) and that users may redistribute the |
---|
| 187 | program under these conditions, and telling the user how to |
---|
| 188 | view a copy of this License. (Exception: if the Program |
---|
| 189 | itself is interactive but does not normally print such an |
---|
| 190 | announcement, your work based on the Program is not required |
---|
| 191 | to print an announcement.) |
---|
| 192 | |
---|
| 193 | These requirements apply to the modified work as a whole. If |
---|
| 194 | identifiable sections of that work are not derived from the |
---|
| 195 | Program, and can be reasonably considered independent and separate |
---|
| 196 | works in themselves, then this License, and its terms, do not |
---|
| 197 | apply to those sections when you distribute them as separate |
---|
| 198 | works. But when you distribute the same sections as part of a |
---|
| 199 | whole which is a work based on the Program, the distribution of |
---|
| 200 | the whole must be on the terms of this License, whose permissions |
---|
| 201 | for other licensees extend to the entire whole, and thus to each |
---|
| 202 | and every part regardless of who wrote it. |
---|
| 203 | |
---|
| 204 | Thus, it is not the intent of this section to claim rights or |
---|
| 205 | contest your rights to work written entirely by you; rather, the |
---|
| 206 | intent is to exercise the right to control the distribution of |
---|
| 207 | derivative or collective works based on the Program. |
---|
| 208 | |
---|
| 209 | In addition, mere aggregation of another work not based on the |
---|
| 210 | Program with the Program (or with a work based on the Program) on |
---|
| 211 | a volume of a storage or distribution medium does not bring the |
---|
| 212 | other work under the scope of this License. |
---|
| 213 | |
---|
| 214 | 3. You may copy and distribute the Program (or a work based on it, |
---|
| 215 | under Section 2) in object code or executable form under the terms |
---|
| 216 | of Sections 1 and 2 above provided that you also do one of the |
---|
| 217 | following: |
---|
| 218 | |
---|
| 219 | a. Accompany it with the complete corresponding machine-readable |
---|
| 220 | source code, which must be distributed under the terms of |
---|
| 221 | Sections 1 and 2 above on a medium customarily used for |
---|
| 222 | software interchange; or, |
---|
| 223 | |
---|
| 224 | b. Accompany it with a written offer, valid for at least three |
---|
| 225 | years, to give any third party, for a charge no more than your |
---|
| 226 | cost of physically performing source distribution, a complete |
---|
| 227 | machine-readable copy of the corresponding source code, to be |
---|
| 228 | distributed under the terms of Sections 1 and 2 above on a |
---|
| 229 | medium customarily used for software interchange; or, |
---|
| 230 | |
---|
| 231 | c. Accompany it with the information you received as to the offer |
---|
| 232 | to distribute corresponding source code. (This alternative is |
---|
| 233 | allowed only for noncommercial distribution and only if you |
---|
| 234 | received the program in object code or executable form with |
---|
| 235 | such an offer, in accord with Subsection b above.) |
---|
| 236 | |
---|
| 237 | The source code for a work means the preferred form of the work for |
---|
| 238 | making modifications to it. For an executable work, complete |
---|
| 239 | source code means all the source code for all modules it contains, |
---|
| 240 | plus any associated interface definition files, plus the scripts |
---|
| 241 | used to control compilation and installation of the executable. |
---|
| 242 | However, as a special exception, the source code distributed need |
---|
| 243 | not include anything that is normally distributed (in either |
---|
| 244 | source or binary form) with the major components (compiler, |
---|
| 245 | kernel, and so on) of the operating system on which the executable |
---|
| 246 | runs, unless that component itself accompanies the executable. |
---|
| 247 | |
---|
| 248 | If distribution of executable or object code is made by offering |
---|
| 249 | access to copy from a designated place, then offering equivalent |
---|
| 250 | access to copy the source code from the same place counts as |
---|
| 251 | distribution of the source code, even though third parties are not |
---|
| 252 | compelled to copy the source along with the object code. |
---|
| 253 | |
---|
| 254 | 4. You may not copy, modify, sublicense, or distribute the Program |
---|
| 255 | except as expressly provided under this License. Any attempt |
---|
| 256 | otherwise to copy, modify, sublicense or distribute the Program is |
---|
| 257 | void, and will automatically terminate your rights under this |
---|
| 258 | License. However, parties who have received copies, or rights, |
---|
| 259 | from you under this License will not have their licenses |
---|
| 260 | terminated so long as such parties remain in full compliance. |
---|
| 261 | |
---|
| 262 | 5. You are not required to accept this License, since you have not |
---|
| 263 | signed it. However, nothing else grants you permission to modify |
---|
| 264 | or distribute the Program or its derivative works. These actions |
---|
| 265 | are prohibited by law if you do not accept this License. |
---|
| 266 | Therefore, by modifying or distributing the Program (or any work |
---|
| 267 | based on the Program), you indicate your acceptance of this |
---|
| 268 | License to do so, and all its terms and conditions for copying, |
---|
| 269 | distributing or modifying the Program or works based on it. |
---|
| 270 | |
---|
| 271 | 6. Each time you redistribute the Program (or any work based on the |
---|
| 272 | Program), the recipient automatically receives a license from the |
---|
| 273 | original licensor to copy, distribute or modify the Program |
---|
| 274 | subject to these terms and conditions. You may not impose any |
---|
| 275 | further restrictions on the recipients' exercise of the rights |
---|
| 276 | granted herein. You are not responsible for enforcing compliance |
---|
| 277 | by third parties to this License. |
---|
| 278 | |
---|
| 279 | 7. If, as a consequence of a court judgment or allegation of patent |
---|
| 280 | infringement or for any other reason (not limited to patent |
---|
| 281 | issues), conditions are imposed on you (whether by court order, |
---|
| 282 | agreement or otherwise) that contradict the conditions of this |
---|
| 283 | License, they do not excuse you from the conditions of this |
---|
| 284 | License. If you cannot distribute so as to satisfy simultaneously |
---|
| 285 | your obligations under this License and any other pertinent |
---|
| 286 | obligations, then as a consequence you may not distribute the |
---|
| 287 | Program at all. For example, if a patent license would not permit |
---|
| 288 | royalty-free redistribution of the Program by all those who |
---|
| 289 | receive copies directly or indirectly through you, then the only |
---|
| 290 | way you could satisfy both it and this License would be to refrain |
---|
| 291 | entirely from distribution of the Program. |
---|
| 292 | |
---|
| 293 | If any portion of this section is held invalid or unenforceable |
---|
| 294 | under any particular circumstance, the balance of the section is |
---|
| 295 | intended to apply and the section as a whole is intended to apply |
---|
| 296 | in other circumstances. |
---|
| 297 | |
---|
| 298 | It is not the purpose of this section to induce you to infringe any |
---|
| 299 | patents or other property right claims or to contest validity of |
---|
| 300 | any such claims; this section has the sole purpose of protecting |
---|
| 301 | the integrity of the free software distribution system, which is |
---|
| 302 | implemented by public license practices. Many people have made |
---|
| 303 | generous contributions to the wide range of software distributed |
---|
| 304 | through that system in reliance on consistent application of that |
---|
| 305 | system; it is up to the author/donor to decide if he or she is |
---|
| 306 | willing to distribute software through any other system and a |
---|
| 307 | licensee cannot impose that choice. |
---|
| 308 | |
---|
| 309 | This section is intended to make thoroughly clear what is believed |
---|
| 310 | to be a consequence of the rest of this License. |
---|
| 311 | |
---|
| 312 | 8. If the distribution and/or use of the Program is restricted in |
---|
| 313 | certain countries either by patents or by copyrighted interfaces, |
---|
| 314 | the original copyright holder who places the Program under this |
---|
| 315 | License may add an explicit geographical distribution limitation |
---|
| 316 | excluding those countries, so that distribution is permitted only |
---|
| 317 | in or among countries not thus excluded. In such case, this |
---|
| 318 | License incorporates the limitation as if written in the body of |
---|
| 319 | this License. |
---|
| 320 | |
---|
| 321 | 9. The Free Software Foundation may publish revised and/or new |
---|
| 322 | versions of the General Public License from time to time. Such |
---|
| 323 | new versions will be similar in spirit to the present version, but |
---|
| 324 | may differ in detail to address new problems or concerns. |
---|
| 325 | |
---|
| 326 | Each version is given a distinguishing version number. If the |
---|
| 327 | Program specifies a version number of this License which applies |
---|
| 328 | to it and "any later version", you have the option of following |
---|
| 329 | the terms and conditions either of that version or of any later |
---|
| 330 | version published by the Free Software Foundation. If the Program |
---|
| 331 | does not specify a version number of this License, you may choose |
---|
| 332 | any version ever published by the Free Software Foundation. |
---|
| 333 | |
---|
| 334 | 10. If you wish to incorporate parts of the Program into other free |
---|
| 335 | programs whose distribution conditions are different, write to the |
---|
| 336 | author to ask for permission. For software which is copyrighted |
---|
| 337 | by the Free Software Foundation, write to the Free Software |
---|
| 338 | Foundation; we sometimes make exceptions for this. Our decision |
---|
| 339 | will be guided by the two goals of preserving the free status of |
---|
| 340 | all derivatives of our free software and of promoting the sharing |
---|
| 341 | and reuse of software generally. |
---|
| 342 | |
---|
| 343 | NO WARRANTY |
---|
| 344 | |
---|
| 345 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO |
---|
| 346 | WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE |
---|
| 347 | LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT |
---|
| 348 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT |
---|
| 349 | WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT |
---|
| 350 | NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND |
---|
| 351 | FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE |
---|
| 352 | QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
---|
| 353 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY |
---|
| 354 | SERVICING, REPAIR OR CORRECTION. |
---|
| 355 | |
---|
| 356 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN |
---|
| 357 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY |
---|
| 358 | MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE |
---|
| 359 | LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, |
---|
| 360 | INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR |
---|
| 361 | INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF |
---|
| 362 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU |
---|
| 363 | OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY |
---|
| 364 | OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN |
---|
| 365 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
---|
| 366 | |
---|
| 367 | END OF TERMS AND CONDITIONS |
---|
| 368 | |
---|
| 369 | How to Apply These Terms to Your New Programs |
---|
| 370 | ============================================= |
---|
| 371 | |
---|
| 372 | If you develop a new program, and you want it to be of the greatest |
---|
| 373 | possible use to the public, the best way to achieve this is to make it |
---|
| 374 | free software which everyone can redistribute and change under these |
---|
| 375 | terms. |
---|
| 376 | |
---|
| 377 | To do so, attach the following notices to the program. It is safest |
---|
| 378 | to attach them to the start of each source file to most effectively |
---|
| 379 | convey the exclusion of warranty; and each file should have at least |
---|
| 380 | the "copyright" line and a pointer to where the full notice is found. |
---|
| 381 | |
---|
| 382 | ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. |
---|
| 383 | Copyright (C) 19YY NAME OF AUTHOR |
---|
| 384 | |
---|
| 385 | This program is free software; you can redistribute it and/or modify |
---|
| 386 | it under the terms of the GNU General Public License as published by |
---|
| 387 | the Free Software Foundation; either version 2 of the License, or |
---|
| 388 | (at your option) any later version. |
---|
| 389 | |
---|
| 390 | This program is distributed in the hope that it will be useful, |
---|
| 391 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
| 392 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
| 393 | GNU General Public License for more details. |
---|
| 394 | |
---|
| 395 | You should have received a copy of the GNU General Public License |
---|
| 396 | along with this program; if not, write to the Free Software |
---|
| 397 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
---|
| 398 | |
---|
| 399 | Also add information on how to contact you by electronic and paper |
---|
| 400 | mail. |
---|
| 401 | |
---|
| 402 | If the program is interactive, make it output a short notice like |
---|
| 403 | this when it starts in an interactive mode: |
---|
| 404 | |
---|
| 405 | Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR |
---|
| 406 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details |
---|
| 407 | type `show w'. |
---|
| 408 | This is free software, and you are welcome to redistribute it |
---|
| 409 | under certain conditions; type `show c' for details. |
---|
| 410 | |
---|
| 411 | The hypothetical commands `show w' and `show c' should show the |
---|
| 412 | appropriate parts of the General Public License. Of course, the |
---|
| 413 | commands you use may be called something other than `show w' and `show |
---|
| 414 | c'; they could even be mouse-clicks or menu items--whatever suits your |
---|
| 415 | program. |
---|
| 416 | |
---|
| 417 | You should also get your employer (if you work as a programmer) or |
---|
| 418 | your school, if any, to sign a "copyright disclaimer" for the program, |
---|
| 419 | if necessary. Here is a sample; alter the names: |
---|
| 420 | |
---|
| 421 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
---|
| 422 | `Gnomovision' (which makes passes at compilers) written by James Hacker. |
---|
| 423 | |
---|
| 424 | SIGNATURE OF TY COON, 1 April 1989 |
---|
| 425 | Ty Coon, President of Vice |
---|
| 426 | |
---|
| 427 | This General Public License does not permit incorporating your |
---|
| 428 | program into proprietary programs. If your program is a subroutine |
---|
| 429 | library, you may consider it more useful to permit linking proprietary |
---|
| 430 | applications with the library. If this is what you want to do, use the |
---|
| 431 | GNU Library General Public License instead of this License. |
---|
| 432 | |
---|
| 433 | |
---|
| 434 | File: gcc.info, Node: Contributors, Next: Funding, Prev: Copying, Up: Top |
---|
| 435 | |
---|
| 436 | Contributors to GNU CC |
---|
| 437 | ********************** |
---|
| 438 | |
---|
| 439 | In addition to Richard Stallman, several people have written parts |
---|
| 440 | of GNU CC. |
---|
| 441 | |
---|
| 442 | * The idea of using RTL and some of the optimization ideas came from |
---|
| 443 | the program PO written at the University of Arizona by Jack |
---|
| 444 | Davidson and Christopher Fraser. See "Register Allocation and |
---|
| 445 | Exhaustive Peephole Optimization", Software Practice and |
---|
| 446 | Experience 14 (9), Sept. 1984, 857-866. |
---|
| 447 | |
---|
| 448 | * Paul Rubin wrote most of the preprocessor. |
---|
| 449 | |
---|
| 450 | * Leonard Tower wrote parts of the parser, RTL generator, and RTL |
---|
| 451 | definitions, and of the Vax machine description. |
---|
| 452 | |
---|
| 453 | * Ted Lemon wrote parts of the RTL reader and printer. |
---|
| 454 | |
---|
| 455 | * Jim Wilson implemented loop strength reduction and some other loop |
---|
| 456 | optimizations. |
---|
| 457 | |
---|
| 458 | * Nobuyuki Hikichi of Software Research Associates, Tokyo, |
---|
| 459 | contributed the support for the Sony NEWS machine. |
---|
| 460 | |
---|
| 461 | * Charles LaBrec contributed the support for the Integrated Solutions |
---|
| 462 | 68020 system. |
---|
| 463 | |
---|
| 464 | * Michael Tiemann of Cygnus Support wrote the front end for C++, as |
---|
| 465 | well as the support for inline functions and instruction |
---|
| 466 | scheduling. Also the descriptions of the National Semiconductor |
---|
| 467 | 32000 series cpu, the SPARC cpu and part of the Motorola 88000 cpu. |
---|
| 468 | |
---|
| 469 | * Gerald Baumgartner added the signature extension to the C++ |
---|
| 470 | front-end. |
---|
| 471 | |
---|
| 472 | * Jan Stein of the Chalmers Computer Society provided support for |
---|
| 473 | Genix, as well as part of the 32000 machine description. |
---|
| 474 | |
---|
| 475 | * Randy Smith finished the Sun FPA support. |
---|
| 476 | |
---|
| 477 | * Robert Brown implemented the support for Encore 32000 systems. |
---|
| 478 | |
---|
| 479 | * David Kashtan of SRI adapted GNU CC to VMS. |
---|
| 480 | |
---|
| 481 | * Alex Crain provided changes for the 3b1. |
---|
| 482 | |
---|
| 483 | * Greg Satz and Chris Hanson assisted in making GNU CC work on HP-UX |
---|
| 484 | for the 9000 series 300. |
---|
| 485 | |
---|
| 486 | * William Schelter did most of the work on the Intel 80386 support. |
---|
| 487 | |
---|
| 488 | * Christopher Smith did the port for Convex machines. |
---|
| 489 | |
---|
| 490 | * Paul Petersen wrote the machine description for the Alliant FX/8. |
---|
| 491 | |
---|
| 492 | * Dario Dariol contributed the four varieties of sample programs |
---|
| 493 | that print a copy of their source. |
---|
| 494 | |
---|
| 495 | * Alain Lichnewsky ported GNU CC to the Mips cpu. |
---|
| 496 | |
---|
| 497 | * Devon Bowen, Dale Wiles and Kevin Zachmann ported GNU CC to the |
---|
| 498 | Tahoe. |
---|
| 499 | |
---|
| 500 | * Jonathan Stone wrote the machine description for the Pyramid |
---|
| 501 | computer. |
---|
| 502 | |
---|
| 503 | * Gary Miller ported GNU CC to Charles River Data Systems machines. |
---|
| 504 | |
---|
| 505 | * Richard Kenner of the New York University Ultracomputer Research |
---|
| 506 | Laboratory wrote the machine descriptions for the AMD 29000, the |
---|
| 507 | DEC Alpha, the IBM RT PC, and the IBM RS/6000 as well as the |
---|
| 508 | support for instruction attributes. He also made changes to |
---|
| 509 | better support RISC processors including changes to common |
---|
| 510 | subexpression elimination, strength reduction, function calling |
---|
| 511 | sequence handling, and condition code support, in addition to |
---|
| 512 | generalizing the code for frame pointer elimination. |
---|
| 513 | |
---|
| 514 | * Richard Kenner and Michael Tiemann jointly developed reorg.c, the |
---|
| 515 | delay slot scheduler. |
---|
| 516 | |
---|
| 517 | * Mike Meissner and Tom Wood of Data General finished the port to the |
---|
| 518 | Motorola 88000. |
---|
| 519 | |
---|
| 520 | * Masanobu Yuhara of Fujitsu Laboratories implemented the machine |
---|
| 521 | description for the Tron architecture (specifically, the Gmicro). |
---|
| 522 | |
---|
| 523 | * NeXT, Inc. donated the front end that supports the Objective C |
---|
| 524 | language. |
---|
| 525 | |
---|
| 526 | * James van Artsdalen wrote the code that makes efficient use of the |
---|
| 527 | Intel 80387 register stack. |
---|
| 528 | |
---|
| 529 | * Mike Meissner at the Open Software Foundation finished the port to |
---|
| 530 | the MIPS cpu, including adding ECOFF debug support, and worked on |
---|
| 531 | the Intel port for the Intel 80386 cpu. |
---|
| 532 | |
---|
| 533 | * Ron Guilmette implemented the `protoize' and `unprotoize' tools, |
---|
| 534 | the support for Dwarf symbolic debugging information, and much of |
---|
| 535 | the support for System V Release 4. He has also worked heavily on |
---|
| 536 | the Intel 386 and 860 support. |
---|
| 537 | |
---|
| 538 | * Torbjorn Granlund implemented multiply- and divide-by-constant |
---|
| 539 | optimization, improved long long support, and improved leaf |
---|
| 540 | function register allocation. |
---|
| 541 | |
---|
| 542 | * Mike Stump implemented the support for Elxsi 64 bit CPU. |
---|
| 543 | |
---|
| 544 | * John Wehle added the machine description for the Western Electric |
---|
| 545 | 32000 processor used in several 3b series machines (no relation to |
---|
| 546 | the National Semiconductor 32000 processor). |
---|
| 547 | |
---|
| 548 | * Holger Teutsch provided the support for the Clipper cpu. |
---|
| 549 | |
---|
| 550 | * Kresten Krab Thorup wrote the run time support for the Objective C |
---|
| 551 | language. |
---|
| 552 | |
---|
| 553 | * Stephen Moshier contributed the floating point emulator that |
---|
| 554 | assists in cross-compilation and permits support for floating |
---|
| 555 | point numbers wider than 64 bits. |
---|
| 556 | |
---|
| 557 | * David Edelsohn contributed the changes to RS/6000 port to make it |
---|
| 558 | support the PowerPC and POWER2 architectures. |
---|
| 559 | |
---|
| 560 | * Steve Chamberlain wrote the support for the Hitachi SH processor. |
---|
| 561 | |
---|
| 562 | * Peter Schauer wrote the code to allow debugging to work on the |
---|
| 563 | Alpha. |
---|
| 564 | |
---|
| 565 | * Oliver M. Kellogg of Deutsche Aerospace contributed the port to the |
---|
| 566 | MIL-STD-1750A. |
---|
| 567 | |
---|
| 568 | * Michael K. Gschwind contributed the port to the PDP-11. |
---|
| 569 | |
---|
| 570 | |
---|
| 571 | File: gcc.info, Node: Funding, Next: Look and Feel, Prev: Contributors, Up: Top |
---|
| 572 | |
---|
| 573 | Funding Free Software |
---|
| 574 | ********************* |
---|
| 575 | |
---|
| 576 | If you want to have more free software a few years from now, it makes |
---|
| 577 | sense for you to help encourage people to contribute funds for its |
---|
| 578 | development. The most effective approach known is to encourage |
---|
| 579 | commercial redistributors to donate. |
---|
| 580 | |
---|
| 581 | Users of free software systems can boost the pace of development by |
---|
| 582 | encouraging for-a-fee distributors to donate part of their selling price |
---|
| 583 | to free software developers--the Free Software Foundation, and others. |
---|
| 584 | |
---|
| 585 | The way to convince distributors to do this is to demand it and |
---|
| 586 | expect it from them. So when you compare distributors, judge them |
---|
| 587 | partly by how much they give to free software development. Show |
---|
| 588 | distributors they must compete to be the one who gives the most. |
---|
| 589 | |
---|
| 590 | To make this approach work, you must insist on numbers that you can |
---|
| 591 | compare, such as, "We will donate ten dollars to the Frobnitz project |
---|
| 592 | for each disk sold." Don't be satisfied with a vague promise, such as |
---|
| 593 | "A portion of the profits are donated," since it doesn't give a basis |
---|
| 594 | for comparison. |
---|
| 595 | |
---|
| 596 | Even a precise fraction "of the profits from this disk" is not very |
---|
| 597 | meaningful, since creative accounting and unrelated business decisions |
---|
| 598 | can greatly alter what fraction of the sales price counts as profit. |
---|
| 599 | If the price you pay is $50, ten percent of the profit is probably less |
---|
| 600 | than a dollar; it might be a few cents, or nothing at all. |
---|
| 601 | |
---|
| 602 | Some redistributors do development work themselves. This is useful |
---|
| 603 | too; but to keep everyone honest, you need to inquire how much they do, |
---|
| 604 | and what kind. Some kinds of development make much more long-term |
---|
| 605 | difference than others. For example, maintaining a separate version of |
---|
| 606 | a program contributes very little; maintaining the standard version of a |
---|
| 607 | program for the whole community contributes much. Easy new ports |
---|
| 608 | contribute little, since someone else would surely do them; difficult |
---|
| 609 | ports such as adding a new CPU to the GNU C compiler contribute more; |
---|
| 610 | major new features or packages contribute the most. |
---|
| 611 | |
---|
| 612 | By establishing the idea that supporting further development is "the |
---|
| 613 | proper thing to do" when distributing free software for a fee, we can |
---|
| 614 | assure a steady flow of resources into making more free software. |
---|
| 615 | |
---|
| 616 | Copyright (C) 1994 Free Software Foundation, Inc. |
---|
| 617 | Verbatim copying and redistribution of this section is permitted |
---|
| 618 | without royalty; alteration is not permitted. |
---|
| 619 | |
---|
| 620 | |
---|
| 621 | File: gcc.info, Node: Look and Feel, Next: G++ and GCC, Prev: Funding, Up: Top |
---|
| 622 | |
---|
| 623 | Protect Your Freedom--Fight "Look And Feel" |
---|
| 624 | ******************************************* |
---|
| 625 | |
---|
| 626 | This section is a political message from the League for Programming |
---|
| 627 | Freedom to the users of GNU CC. We have included it here because |
---|
| 628 | the issue of interface copyright is important to the GNU project. |
---|
| 629 | |
---|
| 630 | Apple, Lotus, and now CDC have tried to create a new form of legal |
---|
| 631 | monopoly: a copyright on a user interface. |
---|
| 632 | |
---|
| 633 | An interface is a kind of language--a set of conventions for |
---|
| 634 | communication between two entities, human or machine. Until a few years |
---|
| 635 | ago, the law seemed clear: interfaces were outside the domain of |
---|
| 636 | copyright, so programmers could program freely and implement whatever |
---|
| 637 | interface the users demanded. Imitating de-facto standard interfaces, |
---|
| 638 | sometimes with improvements, was standard practice in the computer |
---|
| 639 | field. These improvements, if accepted by the users, caught on and |
---|
| 640 | became the norm; in this way, much progress took place. |
---|
| 641 | |
---|
| 642 | Computer users, and most software developers, were happy with this |
---|
| 643 | state of affairs. However, large companies such as Apple and Lotus |
---|
| 644 | would prefer a different system--one in which they can own interfaces |
---|
| 645 | and thereby rid themselves of all serious competitors. They hope that |
---|
| 646 | interface copyright will give them, in effect, monopolies on major |
---|
| 647 | classes of software. |
---|
| 648 | |
---|
| 649 | Other large companies such as IBM and Digital also favor interface |
---|
| 650 | monopolies, for the same reason: if languages become property, they |
---|
| 651 | expect to own many de-facto standard languages. But Apple and Lotus are |
---|
| 652 | the ones who have actually sued. Apple's lawsuit was defeated, for |
---|
| 653 | reasons only partly related to the general issue of interface copyright. |
---|
| 654 | |
---|
| 655 | Lotus won lawsuits against two small companies, which were thus put |
---|
| 656 | out of business. Then Lotus sued Borland; Lotus won in the trial court |
---|
| 657 | (no surprise, since it was the same court that had ruled for Lotus twice |
---|
| 658 | before), but the court of appeals ruled in favor of Borland, which was |
---|
| 659 | assisted by a friend-of-the-court brief from the League for Programming |
---|
| 660 | Freedom. |
---|
| 661 | |
---|
| 662 | Lotus appealed the case to the Supreme Court, which heard the case |
---|
| 663 | but was unable to reach a decision. This failure means that the appeals |
---|
| 664 | court decision stands, in one portion of the United States, and may |
---|
| 665 | influence the other appeals courts, but it does not set a nationwide |
---|
| 666 | precedent. The battle is not over, and it is not limited to the United |
---|
| 667 | States. |
---|
| 668 | |
---|
| 669 | The battle is extending into other areas of software as well. In |
---|
| 670 | 1995 a company that produced a simulator for a CDC computer was shut |
---|
| 671 | down by a copyright lawsuit, in which CDC charged that the simulator |
---|
| 672 | infringed the copyright on the manuals for the computer. |
---|
| 673 | |
---|
| 674 | If the monopolists get their way, they will hobble the software |
---|
| 675 | field: |
---|
| 676 | |
---|
| 677 | * Gratuitous incompatibilities will burden users. Imagine if each |
---|
| 678 | car manufacturer had to design a different way to start, stop, and |
---|
| 679 | steer a car. |
---|
| 680 | |
---|
| 681 | * Users will be "locked in" to whichever interface they learn; then |
---|
| 682 | they will be prisoners of one supplier, who will charge a |
---|
| 683 | monopolistic price. |
---|
| 684 | |
---|
| 685 | * Large companies have an unfair advantage wherever lawsuits become |
---|
| 686 | commonplace. Since they can afford to sue, they can intimidate |
---|
| 687 | smaller developers with threats even when they don't really have a |
---|
| 688 | case. |
---|
| 689 | |
---|
| 690 | * Interface improvements will come slower, since incremental |
---|
| 691 | evolution through creative partial imitation will no longer occur. |
---|
| 692 | |
---|
| 693 | If interface monopolies are accepted, other large companies are |
---|
| 694 | waiting to grab theirs: |
---|
| 695 | |
---|
| 696 | * Adobe is expected to claim a monopoly on the interfaces of various |
---|
| 697 | popular application programs, if Lotus ultimately wins the case |
---|
| 698 | against Borland. |
---|
| 699 | |
---|
| 700 | * Open Computing magazine reported a Microsoft vice president as |
---|
| 701 | threatening to sue people who imitate the interface of Windows. |
---|
| 702 | |
---|
| 703 | Users invest a great deal of time and money in learning to use |
---|
| 704 | computer interfaces. Far more, in fact, than software developers |
---|
| 705 | invest in developing *and even implementing* the interfaces. Whoever |
---|
| 706 | can own an interface, has made its users into captives, and |
---|
| 707 | misappropriated their investment. |
---|
| 708 | |
---|
| 709 | To protect our freedom from monopolies like these, a group of |
---|
| 710 | programmers and users have formed a grass-roots political organization, |
---|
| 711 | the League for Programming Freedom. |
---|
| 712 | |
---|
| 713 | The purpose of the League is to oppose monopolistic practices such as |
---|
| 714 | interface copyright and software patents. The League calls for a return |
---|
| 715 | to the legal policies of the recent past, in which programmers could |
---|
| 716 | program freely. The League is not concerned with free software as an |
---|
| 717 | issue, and is not affiliated with the Free Software Foundation. |
---|
| 718 | |
---|
| 719 | The League's activities include publicizing the issues, as is being |
---|
| 720 | done here, and filing friend-of-the-court briefs on behalf of |
---|
| 721 | defendants sued by monopolists. |
---|
| 722 | |
---|
| 723 | The League's membership rolls include Donald Knuth, the foremost |
---|
| 724 | authority on algorithms, John McCarthy, inventor of Lisp, Marvin Minsky, |
---|
| 725 | founder of the MIT Artificial Intelligence lab, Guy L. Steele, Jr., |
---|
| 726 | author of well-known books on Lisp and C, as well as Richard Stallman, |
---|
| 727 | the developer of GNU CC. Please join and add your name to the list. |
---|
| 728 | Membership dues in the League are $42 per year for programmers, managers |
---|
| 729 | and professionals; $10.50 for students; $21 for others. |
---|
| 730 | |
---|
| 731 | Activist members are especially important, but members who have no |
---|
| 732 | time to give are also important. Surveys at major ACM conferences have |
---|
| 733 | indicated a vast majority of attendees agree with the League on both |
---|
| 734 | issues (interface copyrights and software patents). If just ten percent |
---|
| 735 | of the programmers who agree with the League join the League, we will |
---|
| 736 | probably triumph. |
---|
| 737 | |
---|
| 738 | To join, or for more information, phone (617) 243-4091 or write to: |
---|
| 739 | |
---|
| 740 | League for Programming Freedom |
---|
| 741 | 1 Kendall Square #143 |
---|
| 742 | P.O. Box 9171 |
---|
| 743 | Cambridge, MA 02139 |
---|
| 744 | |
---|
| 745 | You can also send electronic mail to `lpf@uunet.uu.net'. |
---|
| 746 | |
---|
| 747 | In addition to joining the League, here are some suggestions from the |
---|
| 748 | League for other things you can do to protect your freedom to write |
---|
| 749 | programs: |
---|
| 750 | |
---|
| 751 | * Tell your friends and colleagues about this issue and how it |
---|
| 752 | threatens to ruin the computer industry. |
---|
| 753 | |
---|
| 754 | * Mention that you are a League member in your `.signature', and |
---|
| 755 | mention the League's email address for inquiries. |
---|
| 756 | |
---|
| 757 | * Ask the companies you consider working for or working with to make |
---|
| 758 | statements against software monopolies, and give preference to |
---|
| 759 | those that do. |
---|
| 760 | |
---|
| 761 | * When employers ask you to sign contracts giving them copyright on |
---|
| 762 | your work, insist on a clause saying they will not claim the |
---|
| 763 | copyright covers imitating the interface. |
---|
| 764 | |
---|
| 765 | * When employers ask you to sign contracts giving them patent rights, |
---|
| 766 | insist on clauses saying they can use these rights only |
---|
| 767 | defensively. Don't rely on "company policy," since that can |
---|
| 768 | change at any time; don't rely on an individual executive's |
---|
| 769 | private word, since that person may be replaced. Get a commitment |
---|
| 770 | just as binding as the commitment they get from you. |
---|
| 771 | |
---|
| 772 | * Write to Congress to explain the importance of these issues. |
---|
| 773 | |
---|
| 774 | House Subcommittee on Intellectual Property |
---|
| 775 | 2137 Rayburn Bldg |
---|
| 776 | Washington, DC 20515 |
---|
| 777 | |
---|
| 778 | Senate Subcommittee on Patents, Trademarks and Copyrights |
---|
| 779 | United States Senate |
---|
| 780 | Washington, DC 20510 |
---|
| 781 | |
---|
| 782 | (These committees have received lots of mail already; let's give |
---|
| 783 | them even more.) |
---|
| 784 | |
---|
| 785 | Democracy means nothing if you don't use it. Stand up and be |
---|
| 786 | counted! |
---|
| 787 | |
---|
| 788 | |
---|
| 789 | File: gcc.info, Node: G++ and GCC, Next: Invoking GCC, Prev: Look and Feel, Up: Top |
---|
| 790 | |
---|
| 791 | Compile C, C++, or Objective C |
---|
| 792 | ****************************** |
---|
| 793 | |
---|
| 794 | The C, C++, and Objective C versions of the compiler are integrated; |
---|
| 795 | the GNU C compiler can compile programs written in C, C++, or Objective |
---|
| 796 | C. |
---|
| 797 | |
---|
| 798 | "GCC" is a common shorthand term for the GNU C compiler. This is |
---|
| 799 | both the most general name for the compiler, and the name used when the |
---|
| 800 | emphasis is on compiling C programs. |
---|
| 801 | |
---|
| 802 | When referring to C++ compilation, it is usual to call the compiler |
---|
| 803 | "G++". Since there is only one compiler, it is also accurate to call |
---|
| 804 | it "GCC" no matter what the language context; however, the term "G++" |
---|
| 805 | is more useful when the emphasis is on compiling C++ programs. |
---|
| 806 | |
---|
| 807 | We use the name "GNU CC" to refer to the compilation system as a |
---|
| 808 | whole, and more specifically to the language-independent part of the |
---|
| 809 | compiler. For example, we refer to the optimization options as |
---|
| 810 | affecting the behavior of "GNU CC" or sometimes just "the compiler". |
---|
| 811 | |
---|
| 812 | Front ends for other languages, such as Ada 9X, Fortran, Modula-3, |
---|
| 813 | and Pascal, are under development. These front-ends, like that for |
---|
| 814 | C++, are built in subdirectories of GNU CC and link to it. The result |
---|
| 815 | is an integrated compiler that can compile programs written in C, C++, |
---|
| 816 | Objective C, or any of the languages for which you have installed front |
---|
| 817 | ends. |
---|
| 818 | |
---|
| 819 | In this manual, we only discuss the options for the C, Objective-C, |
---|
| 820 | and C++ compilers and those of the GNU CC core. Consult the |
---|
| 821 | documentation of the other front ends for the options to use when |
---|
| 822 | compiling programs written in other languages. |
---|
| 823 | |
---|
| 824 | G++ is a *compiler*, not merely a preprocessor. G++ builds object |
---|
| 825 | code directly from your C++ program source. There is no intermediate C |
---|
| 826 | version of the program. (By contrast, for example, some other |
---|
| 827 | implementations use a program that generates a C program from your C++ |
---|
| 828 | source.) Avoiding an intermediate C representation of the program means |
---|
| 829 | that you get better object code, and better debugging information. The |
---|
| 830 | GNU debugger, GDB, works with this information in the object code to |
---|
| 831 | give you comprehensive C++ source-level editing capabilities (*note C |
---|
| 832 | and C++: (gdb.info)C.). |
---|
| 833 | |
---|
| 834 | |
---|
| 835 | File: gcc.info, Node: Invoking GCC, Next: Installation, Prev: G++ and GCC, Up: Top |
---|
| 836 | |
---|
| 837 | GNU CC Command Options |
---|
| 838 | ********************** |
---|
| 839 | |
---|
| 840 | When you invoke GNU CC, it normally does preprocessing, compilation, |
---|
| 841 | assembly and linking. The "overall options" allow you to stop this |
---|
| 842 | process at an intermediate stage. For example, the `-c' option says |
---|
| 843 | not to run the linker. Then the output consists of object files output |
---|
| 844 | by the assembler. |
---|
| 845 | |
---|
| 846 | Other options are passed on to one stage of processing. Some options |
---|
| 847 | control the preprocessor and others the compiler itself. Yet other |
---|
| 848 | options control the assembler and linker; most of these are not |
---|
| 849 | documented here, since you rarely need to use any of them. |
---|
| 850 | |
---|
| 851 | Most of the command line options that you can use with GNU CC are |
---|
| 852 | useful for C programs; when an option is only useful with another |
---|
| 853 | language (usually C++), the explanation says so explicitly. If the |
---|
| 854 | description for a particular option does not mention a source language, |
---|
| 855 | you can use that option with all supported languages. |
---|
| 856 | |
---|
| 857 | *Note Compiling C++ Programs: Invoking G++, for a summary of special |
---|
| 858 | options for compiling C++ programs. |
---|
| 859 | |
---|
| 860 | The `gcc' program accepts options and file names as operands. Many |
---|
| 861 | options have multiletter names; therefore multiple single-letter options |
---|
| 862 | may *not* be grouped: `-dr' is very different from `-d -r'. |
---|
| 863 | |
---|
| 864 | You can mix options and other arguments. For the most part, the |
---|
| 865 | order you use doesn't matter. Order does matter when you use several |
---|
| 866 | options of the same kind; for example, if you specify `-L' more than |
---|
| 867 | once, the directories are searched in the order specified. |
---|
| 868 | |
---|
| 869 | Many options have long names starting with `-f' or with `-W'--for |
---|
| 870 | example, `-fforce-mem', `-fstrength-reduce', `-Wformat' and so on. |
---|
| 871 | Most of these have both positive and negative forms; the negative form |
---|
| 872 | of `-ffoo' would be `-fno-foo'. This manual documents only one of |
---|
| 873 | these two forms, whichever one is not the default. |
---|
| 874 | |
---|
| 875 | * Menu: |
---|
| 876 | |
---|
| 877 | * Option Summary:: Brief list of all options, without explanations. |
---|
| 878 | * Overall Options:: Controlling the kind of output: |
---|
| 879 | an executable, object files, assembler files, |
---|
| 880 | or preprocessed source. |
---|
| 881 | * Invoking G++:: Compiling C++ programs. |
---|
| 882 | * C Dialect Options:: Controlling the variant of C language compiled. |
---|
| 883 | * C++ Dialect Options:: Variations on C++. |
---|
| 884 | * Warning Options:: How picky should the compiler be? |
---|
| 885 | * Debugging Options:: Symbol tables, measurements, and debugging dumps. |
---|
| 886 | * Optimize Options:: How much optimization? |
---|
| 887 | * Preprocessor Options:: Controlling header files and macro definitions. |
---|
| 888 | Also, getting dependency information for Make. |
---|
| 889 | * Assembler Options:: Passing options to the assembler. |
---|
| 890 | * Link Options:: Specifying libraries and so on. |
---|
| 891 | * Directory Options:: Where to find header files and libraries. |
---|
| 892 | Where to find the compiler executable files. |
---|
| 893 | * Target Options:: Running a cross-compiler, or an old version of GNU CC. |
---|
| 894 | * Submodel Options:: Specifying minor hardware or convention variations, |
---|
| 895 | such as 68010 vs 68020. |
---|
| 896 | * Code Gen Options:: Specifying conventions for function calls, data layout |
---|
| 897 | and register usage. |
---|
| 898 | * Environment Variables:: Env vars that affect GNU CC. |
---|
| 899 | * Running Protoize:: Automatically adding or removing function prototypes. |
---|
| 900 | |
---|