Annotation of gcc/gcc.info-1, revision 1.1.1.4

1.1.1.4 ! root        1: This is Info file gcc.info, produced by Makeinfo-1.49 from the input
1.1       root        2: file gcc.texi.
                      3: 
                      4:    This file documents the use and the internals of the GNU compiler.
                      5: 
                      6:    Copyright (C) 1988, 1989, 1992 Free Software Foundation, Inc.
                      7: 
1.1.1.3   root        8:    Permission is granted to make and distribute verbatim copies of this
                      9: manual provided the copyright notice and this permission notice are
                     10: preserved on all copies.
1.1       root       11: 
                     12:    Permission is granted to copy and distribute modified versions of
                     13: this manual under the conditions for verbatim copying, provided also
1.1.1.4 ! root       14: that the sections entitled "GNU General Public License" and "Protect
        !            15: Your Freedom--Fight `Look And Feel'" are included exactly as in the
        !            16: original, and provided that the entire resulting derived work is
        !            17: distributed under the terms of a permission notice identical to this
        !            18: one.
1.1       root       19: 
                     20:    Permission is granted to copy and distribute translations of this
                     21: manual into another language, under the above conditions for modified
1.1.1.3   root       22: versions, except that the sections entitled "GNU General Public
1.1.1.4 ! root       23: License" and "Protect Your Freedom--Fight `Look And Feel'", and this
        !            24: permission notice, may be included in translations approved by the Free
        !            25: Software Foundation instead of in the original English.
1.1       root       26: 
                     27: 
                     28: File: gcc.info,  Node: Top,  Next: Copying,  Up: (DIR)
                     29: 
                     30: Introduction
                     31: ************
                     32: 
                     33:    This manual documents how to run, install and port the GNU C
1.1.1.3   root       34: compiler, as well as its new features and incompatibilities, and how to
1.1.1.4 ! root       35: report bugs. It corresponds to GNU CC version 2.3.
1.1       root       36: 
                     37: * Menu:
                     38: 
                     39: * Copying::         GNU General Public License says
                     40:                      how you can copy and share GNU CC.
                     41: * Contributors::    People who have contributed to GNU CC.
                     42: * Boycott::        Protect your freedom--fight "look and feel".
1.1.1.3   root       43: * Invoking GCC::    Command options supported by `gcc'.
1.1       root       44: * Installation::    How to configure, compile and install GNU CC.
1.1.1.3   root       45: * Extensions::      GNU extensions to the C language.
1.1       root       46: * Trouble::         If you have trouble installing GNU CC.
1.1.1.3   root       47: * Bugs::            How, why and where to report bugs.
1.1       root       48: * Service::         How to find suppliers of support for GNU CC.
                     49: * VMS::             Using GNU CC on VMS.
                     50: * Portability::     Goals of GNU CC's portability features.
                     51: * Interface::       Function-call interface of GNU CC output.
                     52: * Passes::          Order of passes, what they do, and what each file is for.
                     53: * RTL::             The intermediate representation that most passes work on.
                     54: * Machine Desc::    How to write machine description instruction patterns.
1.1.1.2   root       55: * Target Macros::   How to write the machine description C macros.
1.1       root       56: * Config::          Writing the `xm-MACHINE.h' file.
                     57: * Index::          Index of concepts and symbol names.
                     58: 
                     59: 
                     60: File: gcc.info,  Node: Copying,  Next: Contributors,  Prev: Top,  Up: Top
                     61: 
                     62: GNU GENERAL PUBLIC LICENSE
                     63: **************************
                     64: 
1.1.1.3   root       65:                          Version 2, June 1991
1.1       root       66: 
                     67:      Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                     68:      675 Mass Ave, Cambridge, MA 02139, USA
                     69:      
                     70:      Everyone is permitted to copy and distribute verbatim copies
                     71:      of this license document, but changing it is not allowed.
                     72: 
                     73: Preamble
                     74: ========
                     75: 
                     76:    The licenses for most software are designed to take away your
                     77: freedom to share and change it.  By contrast, the GNU General Public
                     78: License is intended to guarantee your freedom to share and change free
                     79: software--to make sure the software is free for all its users.  This
                     80: General Public License applies to most of the Free Software
                     81: Foundation's software and to any other program whose authors commit to
                     82: using it.  (Some other Free Software Foundation software is covered by
                     83: the GNU Library General Public License instead.)  You can apply it to
                     84: your programs, too.
                     85: 
                     86:    When we speak of free software, we are referring to freedom, not
                     87: price.  Our General Public Licenses are designed to make sure that you
                     88: have the freedom to distribute copies of free software (and charge for
                     89: this service if you wish), that you receive source code or can get it
1.1.1.3   root       90: if you want it, that you can change the software or use pieces of it in
                     91: new free programs; and that you know you can do these things.
1.1       root       92: 
                     93:    To protect your rights, we need to make restrictions that forbid
1.1.1.3   root       94: anyone to deny you these rights or to ask you to surrender the rights.
1.1       root       95: These restrictions translate to certain responsibilities for you if you
                     96: distribute copies of the software, or if you modify it.
                     97: 
                     98:    For example, if you distribute copies of such a program, whether
                     99: gratis or for a fee, you must give the recipients all the rights that
                    100: you have.  You must make sure that they, too, receive or can get the
                    101: source code.  And you must show them these terms so they know their
                    102: rights.
                    103: 
                    104:    We protect your rights with two steps: (1) copyright the software,
1.1.1.3   root      105: and (2) offer you this license which gives you legal permission to copy,
                    106: distribute and/or modify the software.
1.1       root      107: 
                    108:    Also, for each author's protection and ours, we want to make certain
                    109: that everyone understands that there is no warranty for this free
1.1.1.3   root      110: software.  If the software is modified by someone else and passed on, we
                    111: want its recipients to know that what they have is not the original, so
                    112: that any problems introduced by others will not reflect on the original
                    113: authors' reputations.
1.1       root      114: 
                    115:    Finally, any free program is threatened constantly by software
                    116: patents.  We wish to avoid the danger that redistributors of a free
                    117: program will individually obtain patent licenses, in effect making the
                    118: program proprietary.  To prevent this, we have made it clear that any
                    119: patent must be licensed for everyone's free use or not licensed at all.
                    120: 
                    121:    The precise terms and conditions for copying, distribution and
                    122: modification follow.
                    123: 
1.1.1.3   root      124:     TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1.1       root      125: 
1.1.1.3   root      126:   1. This License applies to any program or other work which contains a
                    127:      notice placed by the copyright holder saying it may be distributed
                    128:      under the terms of this General Public License.  The "Program",
                    129:      below, refers to any such program or work, and a "work based on
                    130:      the Program" means either the Program or any derivative work under
                    131:      copyright law: that is to say, a work containing the Program or a
                    132:      portion of it, either verbatim or with modifications and/or
                    133:      translated into another language.  (Hereinafter, translation is
                    134:      included without limitation in the term "modification".)  Each
                    135:      licensee is addressed as "you".
                    136: 
                    137:      Activities other than copying, distribution and modification are
                    138:      not covered by this License; they are outside its scope.  The act
                    139:      of running the Program is not restricted, and the output from the
                    140:      Program is covered only if its contents constitute a work based on
                    141:      the Program (independent of having been made by running the
                    142:      Program). Whether that is true depends on what the Program does.
1.1       root      143: 
                    144:   2. You may copy and distribute verbatim copies of the Program's
                    145:      source code as you receive it, in any medium, provided that you
1.1.1.3   root      146:      conspicuously and appropriately publish on each copy an appropriate
                    147:      copyright notice and disclaimer of warranty; keep intact all the
                    148:      notices that refer to this License and to the absence of any
                    149:      warranty; and give any other recipients of the Program a copy of
                    150:      this License along with the Program.
                    151: 
                    152:      You may charge a fee for the physical act of transferring a copy,
                    153:      and you may at your option offer warranty protection in exchange
                    154:      for a fee.
1.1       root      155: 
                    156:   3. You may modify your copy or copies of the Program or any portion
                    157:      of it, thus forming a work based on the Program, and copy and
                    158:      distribute such modifications or work under the terms of Section 1
                    159:      above, provided that you also meet all of these conditions:
                    160: 
                    161:        a. You must cause the modified files to carry prominent notices
1.1.1.3   root      162:           stating that you changed the files and the date of any change.
1.1       root      163: 
                    164:        b. You must cause any work that you distribute or publish, that
                    165:           in whole or in part contains or is derived from the Program
                    166:           or any part thereof, to be licensed as a whole at no charge
                    167:           to all third parties under the terms of this License.
                    168: 
                    169:        c. If the modified program normally reads commands interactively
                    170:           when run, you must cause it, when started running for such
1.1.1.3   root      171:           interactive use in the most ordinary way, to print or display
                    172:           an announcement including an appropriate copyright notice and
                    173:           a notice that there is no warranty (or else, saying that you
                    174:           provide a warranty) and that users may redistribute the
                    175:           program under these conditions, and telling the user how to
                    176:           view a copy of this License.  (Exception: if the Program
                    177:           itself is interactive but does not normally print such an
                    178:           announcement, your work based on the Program is not required
                    179:           to print an announcement.)
1.1       root      180: 
1.1.1.3   root      181:      These requirements apply to the modified work as a whole.  If
1.1       root      182:      identifiable sections of that work are not derived from the
1.1.1.3   root      183:      Program, and can be reasonably considered independent and separate
                    184:      works in themselves, then this License, and its terms, do not
                    185:      apply to those sections when you distribute them as separate
                    186:      works.  But when you distribute the same sections as part of a
                    187:      whole which is a work based on the Program, the distribution of
                    188:      the whole must be on the terms of this License, whose permissions
                    189:      for other licensees extend to the entire whole, and thus to each
                    190:      and every part regardless of who wrote it.
1.1       root      191: 
1.1.1.3   root      192:      Thus, it is not the intent of this section to claim rights or
1.1       root      193:      contest your rights to work written entirely by you; rather, the
                    194:      intent is to exercise the right to control the distribution of
                    195:      derivative or collective works based on the Program.
                    196: 
1.1.1.3   root      197:      In addition, mere aggregation of another work not based on the
1.1       root      198:      Program with the Program (or with a work based on the Program) on
                    199:      a volume of a storage or distribution medium does not bring the
                    200:      other work under the scope of this License.
                    201: 
                    202:   4. You may copy and distribute the Program (or a work based on it,
1.1.1.3   root      203:      under Section 2) in object code or executable form under the terms
                    204:      of Sections 1 and 2 above provided that you also do one of the
                    205:      following:
1.1       root      206: 
                    207:        a. Accompany it with the complete corresponding machine-readable
                    208:           source code, which must be distributed under the terms of
                    209:           Sections 1 and 2 above on a medium customarily used for
                    210:           software interchange; or,
                    211: 
                    212:        b. Accompany it with a written offer, valid for at least three
1.1.1.3   root      213:           years, to give any third party, for a charge no more than your
                    214:           cost of physically performing source distribution, a complete
                    215:           machine-readable copy of the corresponding source code, to be
                    216:           distributed under the terms of Sections 1 and 2 above on a
                    217:           medium customarily used for software interchange; or,
                    218: 
                    219:        c. Accompany it with the information you received as to the offer
                    220:           to distribute corresponding source code.  (This alternative is
                    221:           allowed only for noncommercial distribution and only if you
                    222:           received the program in object code or executable form with
                    223:           such an offer, in accord with Subsection b above.)
                    224: 
                    225:      The source code for a work means the preferred form of the work for
                    226:      making modifications to it.  For an executable work, complete
                    227:      source code means all the source code for all modules it contains,
                    228:      plus any associated interface definition files, plus the scripts
                    229:      used to control compilation and installation of the executable. 
                    230:      However, as a special exception, the source code distributed need
                    231:      not include anything that is normally distributed (in either
                    232:      source or binary form) with the major components (compiler,
                    233:      kernel, and so on) of the operating system on which the executable
                    234:      runs, unless that component itself accompanies the executable.
                    235: 
                    236:      If distribution of executable or object code is made by offering
                    237:      access to copy from a designated place, then offering equivalent
                    238:      access to copy the source code from the same place counts as
                    239:      distribution of the source code, even though third parties are not
                    240:      compelled to copy the source along with the object code.
1.1       root      241: 
                    242:   5. You may not copy, modify, sublicense, or distribute the Program
                    243:      except as expressly provided under this License.  Any attempt
                    244:      otherwise to copy, modify, sublicense or distribute the Program is
                    245:      void, and will automatically terminate your rights under this
1.1.1.3   root      246:      License. However, parties who have received copies, or rights,
1.1       root      247:      from you under this License will not have their licenses
                    248:      terminated so long as such parties remain in full compliance.
                    249: 
                    250:   6. You are not required to accept this License, since you have not
                    251:      signed it.  However, nothing else grants you permission to modify
                    252:      or distribute the Program or its derivative works.  These actions
                    253:      are prohibited by law if you do not accept this License. 
                    254:      Therefore, by modifying or distributing the Program (or any work
                    255:      based on the Program), you indicate your acceptance of this
                    256:      License to do so, and all its terms and conditions for copying,
                    257:      distributing or modifying the Program or works based on it.
                    258: 
                    259:   7. Each time you redistribute the Program (or any work based on the
                    260:      Program), the recipient automatically receives a license from the
                    261:      original licensor to copy, distribute or modify the Program
                    262:      subject to these terms and conditions.  You may not impose any
                    263:      further restrictions on the recipients' exercise of the rights
1.1.1.3   root      264:      granted herein. You are not responsible for enforcing compliance
1.1       root      265:      by third parties to this License.
                    266: 
                    267:   8. If, as a consequence of a court judgment or allegation of patent
                    268:      infringement or for any other reason (not limited to patent
                    269:      issues), conditions are imposed on you (whether by court order,
                    270:      agreement or otherwise) that contradict the conditions of this
                    271:      License, they do not excuse you from the conditions of this
1.1.1.3   root      272:      License.  If you cannot distribute so as to satisfy simultaneously
                    273:      your obligations under this License and any other pertinent
                    274:      obligations, then as a consequence you may not distribute the
                    275:      Program at all.  For example, if a patent license would not permit
                    276:      royalty-free redistribution of the Program by all those who
                    277:      receive copies directly or indirectly through you, then the only
                    278:      way you could satisfy both it and this License would be to refrain
                    279:      entirely from distribution of the Program.
                    280: 
                    281:      If any portion of this section is held invalid or unenforceable
                    282:      under any particular circumstance, the balance of the section is
                    283:      intended to apply and the section as a whole is intended to apply
                    284:      in other circumstances.
                    285: 
                    286:      It is not the purpose of this section to induce you to infringe any
                    287:      patents or other property right claims or to contest validity of
                    288:      any such claims; this section has the sole purpose of protecting
                    289:      the integrity of the free software distribution system, which is
                    290:      implemented by public license practices.  Many people have made
                    291:      generous contributions to the wide range of software distributed
                    292:      through that system in reliance on consistent application of that
                    293:      system; it is up to the author/donor to decide if he or she is
                    294:      willing to distribute software through any other system and a
                    295:      licensee cannot impose that choice.
1.1       root      296: 
1.1.1.3   root      297:      This section is intended to make thoroughly clear what is believed
                    298:      to be a consequence of the rest of this License.
1.1       root      299: 
                    300:   9. If the distribution and/or use of the Program is restricted in
                    301:      certain countries either by patents or by copyrighted interfaces,
                    302:      the original copyright holder who places the Program under this
                    303:      License may add an explicit geographical distribution limitation
                    304:      excluding those countries, so that distribution is permitted only
                    305:      in or among countries not thus excluded.  In such case, this
                    306:      License incorporates the limitation as if written in the body of
                    307:      this License.
                    308: 
                    309:  10. The Free Software Foundation may publish revised and/or new
                    310:      versions of the General Public License from time to time.  Such
1.1.1.3   root      311:      new versions will be similar in spirit to the present version, but
                    312:      may differ in detail to address new problems or concerns.
1.1       root      313: 
1.1.1.3   root      314:      Each version is given a distinguishing version number.  If the
1.1       root      315:      Program specifies a version number of this License which applies
                    316:      to it and "any later version", you have the option of following
                    317:      the terms and conditions either of that version or of any later
1.1.1.3   root      318:      version published by the Free Software Foundation.  If the Program
                    319:      does not specify a version number of this License, you may choose
                    320:      any version ever published by the Free Software Foundation.
1.1       root      321: 
                    322:  11. If you wish to incorporate parts of the Program into other free
1.1.1.3   root      323:      programs whose distribution conditions are different, write to the
                    324:      author to ask for permission.  For software which is copyrighted
                    325:      by the Free Software Foundation, write to the Free Software
                    326:      Foundation; we sometimes make exceptions for this.  Our decision
                    327:      will be guided by the two goals of preserving the free status of
                    328:      all derivatives of our free software and of promoting the sharing
                    329:      and reuse of software generally.
1.1       root      330: 
1.1.1.3   root      331:                                 NO WARRANTY
1.1       root      332: 
                    333:  12. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
                    334:      WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
                    335:      LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
                    336:      HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
                    337:      WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
                    338:      NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
                    339:      FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE
                    340:      QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
                    341:      PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
                    342:      SERVICING, REPAIR OR CORRECTION.
                    343: 
                    344:  13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
                    345:      WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
                    346:      MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
                    347:      LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
                    348:      INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
1.1.1.3   root      349:      INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
                    350:      DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
                    351:      OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
                    352:      OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
1.1       root      353:      ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
                    354: 
1.1.1.3   root      355:                       END OF TERMS AND CONDITIONS
1.1       root      356: 
1.1.1.4 ! root      357: How to Apply These Terms to Your New Programs
        !           358: =============================================
1.1       root      359: 
                    360:    If you develop a new program, and you want it to be of the greatest
                    361: possible use to the public, the best way to achieve this is to make it
                    362: free software which everyone can redistribute and change under these
                    363: terms.
                    364: 
                    365:    To do so, attach the following notices to the program.  It is safest
                    366: to attach them to the start of each source file to most effectively
                    367: convey the exclusion of warranty; and each file should have at least
                    368: the "copyright" line and a pointer to where the full notice is found.
                    369: 
1.1.1.4 ! root      370:      ONE LINE TO GIVE THE PROGRAM'S NAME AND AN IDEA OF WHAT IT DOES.
1.1       root      371:      Copyright (C) 19YY  NAME OF AUTHOR
                    372:      
1.1.1.4 ! root      373:      This program is free software; you can redistribute it and/or
        !           374:      modify it under the terms of the GNU General Public License
        !           375:      as published by the Free Software Foundation; either version 2
        !           376:      of the License, or (at your option) any later version.
1.1       root      377:      
                    378:      This program is distributed in the hope that it will be useful,
                    379:      but WITHOUT ANY WARRANTY; without even the implied warranty of
                    380:      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                    381:      GNU General Public License for more details.
                    382:      
                    383:      You should have received a copy of the GNU General Public License
                    384:      along with this program; if not, write to the Free Software
                    385:      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
                    386: 
                    387:    Also add information on how to contact you by electronic and paper
                    388: mail.
                    389: 
                    390:    If the program is interactive, make it output a short notice like
                    391: this when it starts in an interactive mode:
                    392: 
                    393:      Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
1.1.1.4 ! root      394:      Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
        !           395:      type `show w'.  This is free software, and you are welcome
        !           396:      to redistribute it under certain conditions; type `show c'
        !           397:      for details.
1.1       root      398: 
                    399:    The hypothetical commands `show w' and `show c' should show the
                    400: appropriate parts of the General Public License.  Of course, the
                    401: commands you use may be called something other than `show w' and `show
                    402: c'; they could even be mouse-clicks or menu items--whatever suits your
                    403: program.
                    404: 
                    405:    You should also get your employer (if you work as a programmer) or
                    406: your school, if any, to sign a "copyright disclaimer" for the program,
                    407: if necessary.  Here is a sample; alter the names:
                    408: 
1.1.1.4 ! root      409:      Yoyodyne, Inc., hereby disclaims all copyright
        !           410:      interest in the program `Gnomovision'
        !           411:      (which makes passes at compilers) written
        !           412:      by James Hacker.
1.1       root      413:      
                    414:      SIGNATURE OF TY COON, 1 April 1989
                    415:      Ty Coon, President of Vice
                    416: 
                    417:    This General Public License does not permit incorporating your
                    418: program into proprietary programs.  If your program is a subroutine
                    419: library, you may consider it more useful to permit linking proprietary
1.1.1.3   root      420: applications with the library.  If this is what you want to do, use the
                    421: GNU Library General Public License instead of this License.
1.1       root      422: 
                    423: 
                    424: File: gcc.info,  Node: Contributors,  Next: Boycott,  Prev: Copying,  Up: Top
                    425: 
                    426: Contributors to GNU CC
                    427: **********************
                    428: 
                    429:    In addition to Richard Stallman, several people have written parts
                    430: of GNU CC.
                    431: 
1.1.1.3   root      432:    * The idea of using RTL and some of the optimization ideas came from
                    433:      the program PO written at the University of Arizona by Jack
1.1       root      434:      Davidson and Christopher Fraser.  See "Register Allocation and
                    435:      Exhaustive Peephole Optimization", Software Practice and
                    436:      Experience 14 (9), Sept. 1984, 857-866.
                    437: 
                    438:    * Paul Rubin wrote most of the preprocessor.
                    439: 
                    440:    * Leonard Tower wrote parts of the parser, RTL generator, and RTL
                    441:      definitions, and of the Vax machine description.
                    442: 
                    443:    * Ted Lemon wrote parts of the RTL reader and printer.
                    444: 
1.1.1.3   root      445:    * Jim Wilson implemented loop strength reduction and some other loop
                    446:      optimizations.
1.1       root      447: 
                    448:    * Nobuyuki Hikichi of Software Research Associates, Tokyo,
                    449:      contributed the support for the Sony NEWS machine.
                    450: 
1.1.1.3   root      451:    * Charles LaBrec contributed the support for the Integrated Solutions
                    452:      68020 system.
1.1       root      453: 
                    454:    * Michael Tiemann of Cygnus Support wrote the front end for C++, as
                    455:      well as the support for inline functions and instruction
                    456:      scheduling.  Also the descriptions of the National Semiconductor
1.1.1.3   root      457:      32000 series cpu, the SPARC cpu and part of the Motorola 88000 cpu.
1.1       root      458: 
                    459:    * Jan Stein of the Chalmers Computer Society provided support for
                    460:      Genix, as well as part of the 32000 machine description.
                    461: 
                    462:    * Randy Smith finished the Sun FPA support.
                    463: 
                    464:    * Robert Brown implemented the support for Encore 32000 systems.
                    465: 
                    466:    * David Kashtan of SRI adapted GNU CC to the Vomit-Making System
                    467:      (VMS).
                    468: 
                    469:    * Alex Crain provided changes for the 3b1.
                    470: 
1.1.1.3   root      471:    * Greg Satz and Chris Hanson assisted in making GNU CC work on HP-UX
                    472:      for the 9000 series 300.
1.1       root      473: 
                    474:    * William Schelter did most of the work on the Intel 80386 support.
                    475: 
                    476:    * Christopher Smith did the port for Convex machines.
                    477: 
                    478:    * Paul Petersen wrote the machine description for the Alliant FX/8.
                    479: 
                    480:    * Alain Lichnewsky ported GNU CC to the Mips cpu.
                    481: 
                    482:    * Devon Bowen, Dale Wiles and Kevin Zachmann ported GNU CC to the
                    483:      Tahoe.
                    484: 
                    485:    * Jonathan Stone wrote the machine description for the Pyramid
                    486:      computer.
                    487: 
1.1.1.3   root      488:    * Gary Miller ported GNU CC to Charles River Data Systems machines.
                    489: 
1.1.1.4 ! root      490:    * Richard Kenner of the New York University Ultracomputer Research
        !           491:      Laboratory wrote the machine descriptions for the AMD 29000, the
        !           492:      DEC Alpha, the IBM RT PC, and the IBM RS/6000 as well as the
        !           493:      support for instruction attributes.  He also made changes to
        !           494:      better support RISC processors including changes to common
        !           495:      subexpression elimination, strength reduction, function calling
        !           496:      sequence handling, and condition code support, in addition to
        !           497:      generalizing the code for frame pointer elimination.
1.1       root      498: 
                    499:    * Richard Kenner and Michael Tiemann jointly developed reorg.c, the
                    500:      delay slot scheduler.
                    501: 
1.1.1.3   root      502:    * Mike Meissner and Tom Wood of Data General finished the port to the
                    503:      Motorola 88000.
1.1       root      504: 
                    505:    * Masanobu Yuhara of Fujitsu Laboratories implemented the machine
                    506:      description for the Tron architecture (specifically, the Gmicro).
                    507: 
                    508:    * NeXT, Inc. donated the front end that supports the Objective C
                    509:      language.
                    510: 
1.1.1.3   root      511:    * James van Artsdalen wrote the code that makes efficient use of the
                    512:      Intel 80387 register stack.
1.1       root      513: 
1.1.1.3   root      514:    * Mike Meissner at the Open Software Foundation finished the port to
                    515:      the MIPS cpu, including adding ECOFF debug support.
1.1       root      516: 
1.1.1.4 ! root      517:    * Ron Guilmette implemented the `protoize' and `unprotoize' tools,
        !           518:      the support for Dwarf symbolic debugging information, and much of
        !           519:      the support for System V Release 4.  He has also worked heavily on
        !           520:      the Intel 386 and 860 support.
1.1       root      521: 
1.1.1.2   root      522:    * Torbjorn Granlund of the Swedish Institute of Computer Science
                    523:      implemented multiply-by-constant optimization and better long long
                    524:      support, and improved leaf function register allocation.
                    525: 
1.1.1.4 ! root      526:    * Mike Stump implemented the support for Elxsi 64 bit CPU.
        !           527: 
1.1       root      528: 
                    529: File: gcc.info,  Node: Boycott,  Next: Invoking GCC,  Prev: Contributors,  Up: Top
                    530: 
                    531: Protect Your Freedom--Fight "Look And Feel"
                    532: *******************************************
                    533: 
1.1.1.3   root      534:      This section is a political message from the League for Programming
                    535:      Freedom to the users of GNU CC.  It is included here as an
                    536:      expression of support for the League on the part of the Free
                    537:      Software Foundation.
1.1       root      538: 
1.1.1.2   root      539:    Apple and Lotus are trying to create a new form of legal monopoly: a
                    540: copyright on a class of user interfaces.  These monopolies would cause
                    541: serious problems for users and developers of computer software and
                    542: systems.  Xerox, too, has tried to make a monopoly for itself on window
                    543: systems; their suit against Apple was thrown out on a technicality, but
                    544: Xerox has not said anything to indicate it wouldn't try again.
1.1       root      545: 
                    546:    Until a few years ago, the law seemed clear: no one could restrict
                    547: others from using a user interface; programmers were free to implement
1.1.1.3   root      548: any interface they chose.  Imitating interfaces, sometimes with changes,
                    549: was standard practice in the computer field.  The interfaces we know
                    550: evolved gradually in this way; for example, the Macintosh user interface
                    551: drew ideas from the Xerox interface, which in turn drew on work done at
                    552: Stanford and SRI.  1-2-3 imitated VisiCalc, and dBase imitated a
                    553: database program from JPL.
1.1       root      554: 
                    555:    Most computer companies, and nearly all computer users, were happy
                    556: with this state of affairs.  The companies that are suing say it does
                    557: not offer "enough incentive" to develop their products, but they must
                    558: have considered it "enough" when they made their decision to do so.  It
1.1.1.3   root      559: seems they are not satisfied with the opportunity to continue to compete
                    560: in the marketplace--not even with a head start.
1.1       root      561: 
1.1.1.2   root      562:    If companies like Xerox, Lotus, and Apple are permitted to make law
                    563: through the courts, the precedent will hobble the software industry:
1.1       root      564: 
                    565:    * Gratuitous incompatibilities will burden users.  Imagine if each
                    566:      car manufacturer had to arrange the pedals in a different order.
                    567: 
                    568:    * Software will become and remain more expensive.  Users will be
                    569:      "locked in" to proprietary interfaces, for which there is no real
                    570:      competition.
                    571: 
                    572:    * Large companies have an unfair advantage wherever lawsuits become
                    573:      commonplace.  Since they can easily afford to sue, they can
                    574:      intimidate small companies with threats even when they don't
                    575:      really have a case.
                    576: 
                    577:    * User interface improvements will come slower, since incremental
                    578:      evolution through creative imitation will no longer be permitted.
                    579: 
1.1.1.3   root      580:    * Even Apple, etc., will find it harder to make improvements if they
                    581:      can no longer adapt the good ideas that others introduce, for fear
                    582:      of weakening their own legal positions.  Some users suggest that
                    583:      this stagnation may already have started.
1.1       root      584: 
                    585:    * If you use GNU software, you might find it of some concern that
                    586:      user interface copyright will make it hard for the Free Software
1.1.1.3   root      587:      Foundation to develop programs compatible with the interfaces that
                    588:      you already know.
1.1       root      589: 
                    590:    To protect our freedom from lawsuits like these, a group of
                    591: programmers and users have formed a new grass-roots political
                    592: organization, the League for Programming Freedom.
                    593: 
                    594:    The purpose of the League is to oppose new monopolistic practices
                    595: such as user-interface copyright and software patents; it calls for a
                    596: return to the legal policies of the recent past, in which these
                    597: practices were not allowed.  The League is not concerned with free
                    598: software as an issue, and not affiliated with the Free Software
                    599: Foundation.
                    600: 
                    601:    The League's membership rolls include John McCarthy, inventor of
1.1.1.3   root      602: Lisp, Marvin Minsky, founder of the Artificial Intelligence lab, Guy L.
1.1       root      603: Steele, Jr., author of well-known books on Lisp and C, as well as
                    604: Richard Stallman, the developer of GNU CC.  Please join and add your
                    605: name to the list.  Membership dues in the League are $42 per year for
                    606: programmers, managers and professionals; $10.50 for students; $21 for
                    607: others.
                    608: 
1.1.1.3   root      609:    The League needs both activist members and members who only pay their
                    610: dues.
1.1       root      611: 
1.1.1.4 ! root      612:    To join, or for more information, phone (617) 243-4091 or write to:
1.1       root      613: 
                    614:      League for Programming Freedom
                    615:      1 Kendall Square #143
                    616:      P.O. Box 9171
                    617:      Cambridge, MA 02139
                    618: 
                    619:    You can also send electronic mail to `[email protected]'.
                    620: 
                    621:    Here are some suggestions from the League for things you can do to
                    622: protect your freedom to write programs:
                    623: 
                    624:    * Don't buy from Xerox, Lotus or Apple.  Buy from their competitors
                    625:      or from the defendants they are suing.
                    626: 
                    627:    * Don't develop software to work with the systems made by these
                    628:      companies.
                    629: 
                    630:    * Port your existing software to competing systems, so that you
                    631:      encourage users to switch.
                    632: 
                    633:    * Write letters to company presidents to let them know their conduct
                    634:      is unacceptable.
                    635: 
                    636:    * Tell your friends and colleagues about this issue and how it
                    637:      threatens to ruin the computer industry.
                    638: 
                    639:    * Above all, don't work for the look-and-feel plaintiffs, and don't
                    640:      accept contracts from them.
                    641: 
                    642:    * Write to Congress to explain the importance of this issue.
                    643: 
                    644:           House Subcommittee on Intellectual Property
                    645:           2137 Rayburn Bldg
                    646:           Washington, DC 20515
                    647:           
                    648:           Senate Subcommittee on Patents, Trademarks and Copyrights
                    649:           United States Senate
                    650:           Washington, DC 20510
                    651: 
                    652:      (These committees have received lots of mail already; let's give
                    653:      them even more.)
                    654: 
                    655:    Express your opinion!  You can make a difference.
                    656: 
                    657: 
                    658: File: gcc.info,  Node: Invoking GCC,  Next: Installation,  Prev: Boycott,  Up: Top
                    659: 
                    660: GNU CC Command Options
                    661: **********************
                    662: 
                    663:    When you invoke GNU CC, it normally does preprocessing, compilation,
                    664: assembly and linking.  The "overall options" allow you to stop this
                    665: process at an intermediate stage.  For example, the `-c' option says
1.1.1.3   root      666: not to run the linker.  Then the output consists of object files output
                    667: by the assembler.
1.1       root      668: 
1.1.1.3   root      669:    Other options are passed on to one stage of processing.  Some options
                    670: control the preprocessor and others the compiler itself.  Yet other
                    671: options control the assembler and linker; most of these are not
1.1       root      672: documented here, since you rarely need to use any of them.
                    673: 
1.1.1.4 ! root      674:    The `gcc' program accepts options and file names as operands.  Many
        !           675: options have multiletter names; therefore multiple single-letter options
        !           676: may *not* be grouped: `-dr' is very different from `-d -r'.
1.1       root      677: 
                    678:    You can mix options and other arguments.  For the most part, the
1.1.1.4 ! root      679: order you use doesn't matter.  Order does matter when you use several
        !           680: options of the same kind; for example, if you specify `-L' more than
        !           681: once, the directories are searched in the order specified.
1.1       root      682: 
                    683:    Many options have long names starting with `-f' or with `-W'--for
                    684: example, `-fforce-mem', `-fstrength-reduce', `-Wformat' and so on. 
                    685: Most of these have both positive and negative forms; the negative form
                    686: of `-ffoo' would be `-fno-foo'.  This manual documents only one of
                    687: these two forms, whichever one is not the default.
                    688: 
1.1.1.4 ! root      689: * Menu:
        !           690: 
        !           691: * Option Summary::     Brief list of all options, without explanations.
        !           692: * Overall Options::     Controlling the kind of output:
        !           693:                         an executable, object files, assembler files,
        !           694:                         or preprocessed source.
        !           695: * Dialect Options::     Controlling the variant of C language compiled.
        !           696: * Warning Options::     How picky should the compiler be?
        !           697: * Debugging Options::   Symbol tables, measurements, and debugging dumps.
        !           698: * Optimize Options::    How much optimization?
        !           699: * Preprocessor Options:: Controlling header files and macro definitions.
        !           700:                          Also, getting dependency information for Make.
        !           701: * Assembler Options::   Passing options to the assembler.
        !           702: * Link Options::        Specifying libraries and so on.
        !           703: * Directory Options::   Where to find header files and libraries.
        !           704:                         Where to find the compiler executable files.
        !           705: * Target Options::      Running a cross-compiler, or an old version of GNU CC.
        !           706: * Submodel Options::    Specifying minor hardware or convention variations,
        !           707:                         such as 68010 vs 68020.
        !           708: * Code Gen Options::    Specifying conventions for function calls, data layout
        !           709:                         and register usage.
        !           710: * Environment Variables:: Env vars that affect GNU CC.
        !           711: * Running Protoize::    Automatically adding or removing function prototypes.
        !           712: 
        !           713: 
        !           714: File: gcc.info,  Node: Option Summary,  Next: Overall Options,  Up: Invoking GCC
        !           715: 
        !           716: Option Summary
        !           717: ==============
        !           718: 
1.1.1.3   root      719:    Here is a summary of all the options, grouped by type.  Explanations
                    720: are in the following sections.
1.1       root      721: 
                    722: *Overall Options*
                    723:      *Note Options Controlling the Kind of Output: Overall Options.
                    724:           -c  -S  -E  -o FILE  -pipe  -v  -x LANGUAGE
                    725: 
                    726: *Language Options*
                    727:      *Note Options Controlling Dialect: Dialect Options.
1.1.1.4 ! root      728:           -ansi  -fcond-mismatch  -fno-asm  -fno-builtin
1.1       root      729:           -fsigned-bitfields  -fsigned-char
                    730:           -funsigned-bitfields  -funsigned-char  -fwritable-strings
                    731:           -traditional  -traditional-cpp  -trigraphs
1.1.1.4 ! root      732:           -fall-virtual  -fdollars-in-identifiers  -fenum-int-equiv
        !           733:           -fno-strict-prototype  -fthis-is-variable
1.1       root      734: 
                    735: *Warning Options*
                    736:      *Note Options to Request or Suppress Warnings: Warning Options.
                    737:           -fsyntax-only  -pedantic  -pedantic-errors
                    738:           -w  -W  -Wall  -Waggregate-return
                    739:           -Wcast-align  -Wcast-qual  -Wcomment  -Wconversion  -Werror
1.1.1.4 ! root      740:           -Wformat  -Wid-clash-LEN  -Wenum-clash  -Wimplicit  -Wimport
        !           741:           -Winline -Wmissing-prototypes  -Wnested-externs  -Wparentheses
        !           742:           -Wpointer-arith  -Wredundant-decls  -Wreturn-type  -Wshadow
1.1       root      743:           -Wstrict-prototypes  -Wswitch  -Wtraditional  -Wtrigraphs
                    744:           -Wuninitialized  -Wunused  -Wwrite-strings  -Wchar-subscripts
                    745: 
                    746: *Debugging Options*
1.1.1.3   root      747:      *Note Options for Debugging Your Program or GCC: Debugging Options.
1.1       root      748:           -a  -dLETTERS  -fpretend-float
1.1.1.4 ! root      749:           -g  -gLEVEL -ggdb  -gdwarf -gdwarf+
        !           750:           -gstabs  -gstabs+  -gcoff -gxcoff -gxcoff+
1.1       root      751:           -p  -pg  -save-temps
                    752: 
                    753: *Optimization Options*
                    754:      *Note Options that Control Optimization: Optimize Options.
1.1.1.3   root      755:           -fcaller-saves  -fcse-follow-jumps  -fcse-skip-blocks
                    756:           -fdelayed-branch   -fexpensive-optimizations  -ffast-math
1.1.1.4 ! root      757:           -ffloat-store  -fforce-addr  -fforce-mem
        !           758:           -finline-functions  -fkeep-inline-functions  -fno-defer-pop
        !           759:           -fno-function-cse  -fno-inline  -fno-peephole  -fomit-frame-pointer
1.1       root      760:           -frerun-cse-after-loop  -fschedule-insns  -fschedule-insns2
                    761:           -fstrength-reduce  -fthread-jumps
                    762:           -funroll-all-loops  -funroll-loops
1.1.1.4 ! root      763:           -felide-constructors  -fmemoize-lookups  -fno-default-inline
1.1       root      764:           -O  -O2
                    765: 
                    766: *Preprocessor Options*
                    767:      *Note Options Controlling the Preprocessor: Preprocessor Options.
1.1.1.4 ! root      768:           -AASSERTION  -C  -dD  -dM  -dN
1.1       root      769:           -DMACRO[=DEFN]  -E  -H
                    770:           -include FILE  -imacros FILE
                    771:           -M  -MD  -MM  -MMD  -nostdinc  -P  -trigraphs  -UMACRO
                    772: 
1.1.1.4 ! root      773: *Assembler Option*
        !           774:      *Note Passing Options to the Assembler: Assembler Options.
        !           775:           -Wa,OPTION
        !           776: 
1.1       root      777: *Linker Options*
                    778:      *Note Options for Linking: Link Options.
                    779:           OBJECT-FILE-NAME
1.1.1.4 ! root      780:           -lLIBRARY  -nostdlib
        !           781:           -static  -shared  -symbolic
        !           782:           -Xlinker OPTION
        !           783:           -u SYMBOL
1.1       root      784: 
                    785: *Directory Options*
                    786:      *Note Options for Directory Search: Directory Options.
                    787:           -BPREFIX  -IDIR  -I-  -LDIR
                    788: 
                    789: *Target Options*
                    790:      *Note Target Machine and Compiler Version: Target Options.
                    791:           -b MACHINE  -V VERSION
                    792: 
                    793: *Machine Dependent Options*
                    794:      *Note Hardware Models and Configurations: Submodel Options.
                    795:           *M680x0 Options*
1.1.1.4 ! root      796:           -m68000 -m68020 -m68020-40 -m68030 -m68040 -m68881 -mbitfield
        !           797:           -mc68000 -mc68020 -mfpa -mnobitfield -mrtd -mshort -msoft-float
1.1       root      798:           
                    799:           *VAX Options*
                    800:           -mg -mgnu -munix
                    801:           
                    802:           *SPARC Options*
1.1.1.4 ! root      803:           -mforce-align  -mno-epilogue
1.1       root      804:           
                    805:           *Convex Options*
                    806:           -margcount -mc1 -mc2 -mnoargcount
                    807:           
                    808:           *AMD29K Options*
                    809:           -m29000 -m29050 -mbw -mdw -mkernel-registers -mlarge
                    810:           -mnbw -mnodw -msmall -mstack-check -muser-registers
                    811:           
                    812:           *M88K Options*
                    813:           -m88000 -m88100 -m88110 -mbig-pic -mcheck-zero-division
                    814:           -mhandle-large-shift -midentify-revision
                    815:           -mno-check-zero-division -mno-ocs-debug-info
                    816:           -mno-ocs-frame-position -mno-optimize-arg-area -mno-underscores
                    817:           -mocs-debug-info -mocs-frame-position -moptimize-arg-area
                    818:           -mshort-data-NUM -msvr3 -msvr4 -mtrap-large-shift
                    819:           -muse-div-instruction -mversion-03.00 -mwarn-passed-structs
                    820:           
                    821:           *RS/6000 Options*
                    822:           -mfp-in-toc -mno-fop-in-toc
                    823:           
                    824:           *RT Options*
                    825:           -mcall-lib-mul -mfp-arg-in-fpregs -mfp-arg-in-gregs
                    826:           -mfull-fp-blocks -mhc-struct-return -min-line-mul
                    827:           -mminimum-fp-blocks -mnohc-struct-return
                    828:           
                    829:           *MIPS Options*
                    830:           -mcpu=CPU TYPE -mips2 -mips3 -mint64 -mlong64 -mlonglong128
                    831:           -mmips-as -mgas -mrnames -mno-rnames -mgpopt -mno-gpopt -mstats
                    832:           -mno-stats -mmemcpy -mno-memcpy -mno-mips-tfile -mmips-tfile
                    833:           -msoft-float -mhard-float -mabicalls -mno-abicalls -mhalf-pic
1.1.1.2   root      834:           -mno-half-pic -G NUM -nocpp
                    835:           
                    836:           *i386 Options*
1.1.1.4 ! root      837:           -m486 -mno-486 -msoft-float -msvr3-shlib -mieee-fp
        !           838:           -mno-fp-ret-in-387
        !           839:           
        !           840:           *HPPA Options*
        !           841:           -mno-bss
        !           842:           -mpa-risc-1-0
        !           843:           -mpa-risc-1-1
        !           844:           -mkernel
        !           845:           -mshared-libs
        !           846:           -mno-shared-libs
        !           847:           -mlong-calls
        !           848:           
        !           849:           *Intel 960 Options*
        !           850:           -mCPU TYPE
        !           851:           -mnumerics -msoft-float
        !           852:           -mcode-align -mno-code-align
        !           853:           -mleaf-procedures -mno-leaf-procedures
        !           854:           -mtail-call -mno-tail-call
        !           855:           -mcomplex-addr -mno-complex-addr
        !           856:           -mclean-linkage -mno-clean-linkage
        !           857:           -mic-compat -mic2.0-compat -mic3.0-compat
        !           858:           -masm-compat -mintel-asm
        !           859:           -mstrict-align -mno-strict-align
        !           860:           -mold-align -mno-old-align
        !           861:           
        !           862:           *DEC Alpha Options*
        !           863:           -mfp-regs -mno-fp-regs -mno-soft-float -msoft-float
        !           864:           
        !           865:           *System V Options*
        !           866:           -G  -Qy  -Qn  -YP,PATHS  -Ym,DIR
1.1       root      867: 
                    868: *Code Generation Options*
                    869:      *Note Options for Code Generation Conventions: Code Gen Options.
                    870:           -fcall-saved-REG  -fcall-used-REG  -ffixed-REG
1.1.1.4 ! root      871:           -finhibit-size-directive  -fnonnull-objects  -fno-common
        !           872:           -fno-ident  -fno-gnu-linker  -fpcc-struct-return  -fpic  -fPIC
        !           873:           -fshared-data  -fshort-enums  -fshort-double  -fvolatile
        !           874:           -fverbose-asm
1.1       root      875: 
                    876: * Menu:
                    877: 
                    878: * Overall Options::     Controlling the kind of output:
                    879:                         an executable, object files, assembler files,
                    880:                         or preprocessed source.
                    881: * Dialect Options::     Controlling the variant of C language compiled.
                    882: * Warning Options::     How picky should the compiler be?
                    883: * Debugging Options::   Symbol tables, measurements, and debugging dumps.
                    884: * Optimize Options::    How much optimization?
                    885: * Preprocessor Options:: Controlling header files and macro definitions.
                    886:                          Also, getting dependency information for Make.
1.1.1.4 ! root      887: * Assembler Options::   Passing options to the assembler.
1.1       root      888: * Link Options::        Specifying libraries and so on.
                    889: * Directory Options::   Where to find header files and libraries.
                    890:                         Where to find the compiler executable files.
                    891: * Target Options::      Running a cross-compiler, or an old version of GNU CC.
                    892: 
                    893: 
1.1.1.4 ! root      894: File: gcc.info,  Node: Overall Options,  Next: Dialect Options,  Prev: Option Summary,  Up: Invoking GCC
1.1       root      895: 
                    896: Options Controlling the Kind of Output
                    897: ======================================
                    898: 
1.1.1.3   root      899:    Compilation can involve up to four stages: preprocessing, compilation
                    900: proper, assembly and linking, always in that order.  The first three
                    901: stages apply to an individual source file, and end by producing an
                    902: object file; linking combines all the object files (those newly
                    903: compiled, and those specified as input) into an executable file.
1.1       root      904: 
                    905:    For any given input file, the file name suffix determines what kind
                    906: of compilation is done:
                    907: 
                    908: `FILE.c'
                    909:      C source code which must be preprocessed.
                    910: 
                    911: `FILE.i'
                    912:      C source code which should not be preprocessed.
                    913: 
1.1.1.4 ! root      914: `FILE.ii'
        !           915:      C++ source code which should not be preprocessed.
        !           916: 
1.1       root      917: `FILE.m'
1.1.1.4 ! root      918:      Objective-C source code.  Note that you must link with the library
        !           919:      `libobjc.a' to make an Objective-C program work.
1.1       root      920: 
                    921: `FILE.h'
                    922:      C header file (not to be compiled or linked).
                    923: 
                    924: `FILE.cc'
                    925: `FILE.cxx'
                    926: `FILE.C'
                    927:      C++ source code which must be preprocessed.
                    928: 
                    929: `FILE.s'
                    930:      Assembler code.
                    931: 
                    932: `FILE.S'
                    933:      Assembler code which must be preprocessed.
                    934: 
                    935: `OTHER'
1.1.1.3   root      936:      An object file to be fed straight into linking. Any file name with
                    937:      no recognized suffix is treated this way.
1.1       root      938: 
                    939:    You can specify the input language explicitly with the `-x' option:
                    940: 
                    941: `-x LANGUAGE'
                    942:      Specify explicitly the LANGUAGE for the following input files
1.1.1.3   root      943:      (rather than choosing a default based on the file name suffix).
1.1       root      944:      This option applies to all following input files until the next
                    945:      `-x' option.  Possible values of LANGUAGE are `c', `objective-c',
                    946:      `c-header', `c++', `cpp-output', `assembler', and
                    947:      `assembler-with-cpp'.
                    948: 
                    949: `-x none'
1.1.1.3   root      950:      Turn off any specification of a language, so that subsequent files
                    951:      are handled according to their file name suffixes (as they are if
                    952:      `-x' has not been used at all).
                    953: 
                    954:    If you only want some of the stages of compilation, you can use `-x'
                    955: (or filename suffixes) to tell `gcc' where to start, and one of the
                    956: options `-c', `-S', or `-E' to say where `gcc' is to stop.  Note that
                    957: some combinations (for example, `-x cpp-output -E' instruct `gcc' to do
                    958: nothing at all.
1.1       root      959: 
                    960: `-c'
1.1.1.3   root      961:      Compile or assemble the source files, but do not link.  The linking
                    962:      stage simply is not done.  The ultimate output is in the form of an
                    963:      object file for each source file.
1.1       root      964: 
                    965:      By default, the object file name for a source file is made by
                    966:      replacing the suffix `.c', `.i', `.s', etc., with `.o'.
                    967: 
                    968:      Unrecognized input files, not requiring compilation or assembly,
                    969:      are ignored.
                    970: 
                    971: `-S'
                    972:      Stop after the stage of compilation proper; do not assemble.  The
                    973:      output is in the form of an assembler code file for each
                    974:      non-assembler input file specified.
                    975: 
                    976:      By default, the assembler file name for a source file is made by
                    977:      replacing the suffix `.c', `.i', etc., with `.s'.
                    978: 
                    979:      Input files that don't require compilation are ignored.
                    980: 
                    981: `-E'
                    982:      Stop after the preprocessing stage; do not run the compiler
                    983:      proper.  The output is in the form of preprocessed source code,
                    984:      which is sent to the standard output.
                    985: 
                    986:      Input files which don't require preprocessing are ignored.
                    987: 
                    988: `-o FILE'
                    989:      Place output in file FILE.  This applies regardless to whatever
1.1.1.3   root      990:      sort of output is being produced, whether it be an executable file,
                    991:      an object file, an assembler file or preprocessed C code.
1.1       root      992: 
                    993:      Since only one output file can be specified, it does not make
                    994:      sense to use `-o' when compiling more than one input file, unless
                    995:      you are producing an executable file as output.
                    996: 
                    997:      If `-o' is not specified, the default is to put an executable file
1.1.1.3   root      998:      in `a.out', the object file for `SOURCE.SUFFIX' in `SOURCE.o', its
                    999:      assembler file in `SOURCE.s', and all preprocessed C source on
                   1000:      standard output.
1.1       root     1001: 
                   1002: `-v'
                   1003:      Print (on standard error output) the commands executed to run the
                   1004:      stages of compilation.  Also print the version number of the
                   1005:      compiler driver program and of the preprocessor and the compiler
                   1006:      proper.
                   1007: 
                   1008: `-pipe'
1.1.1.3   root     1009:      Use pipes rather than temporary files for communication between the
                   1010:      various stages of compilation.  This fails to work on some systems
                   1011:      where the assembler is unable to read from a pipe; but the GNU
                   1012:      assembler has no trouble.
1.1       root     1013: 
                   1014: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.