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

1.1.1.10! root        1: This is Info file gcc.info, produced by Makeinfo version 1.67 from the
        !             2: input file gcc.texi.
1.1       root        3: 
                      4:    This file documents the use and the internals of the GNU compiler.
                      5: 
1.1.1.8   root        6:    Published by the Free Software Foundation 59 Temple Place - Suite 330
                      7: Boston, MA 02111-1307 USA
1.1.1.5   root        8: 
1.1.1.8   root        9:    Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995 Free Software
                     10: Foundation, Inc.
1.1       root       11: 
1.1.1.3   root       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.
1.1       root       15: 
                     16:    Permission is granted to copy and distribute modified versions of
                     17: this manual under the conditions for verbatim copying, provided also
1.1.1.7   root       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.
1.1       root       23: 
                     24:    Permission is granted to copy and distribute translations of this
                     25: manual into another language, under the above conditions for modified
1.1.1.3   root       26: versions, except that the sections entitled "GNU General Public
1.1.1.7   root       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.
1.1       root       31: 
                     32: 
                     33: File: gcc.info,  Node: Top,  Next: Copying,  Up: (DIR)
                     34: 
                     35: Introduction
                     36: ************
                     37: 
1.1.1.5   root       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
1.1.1.8   root       40: bugs.  It corresponds to GNU CC version 2.7.2.
1.1       root       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.
1.1.1.7   root       47: * Funding::         How to help assure funding for free software.
                     48: * Look and Feel::   Protect your freedom--fight "look and feel".
1.1.1.5   root       49: 
                     50: * G++ and GCC::     You can compile C or C++ programs.
1.1.1.3   root       51: * Invoking GCC::    Command options supported by `gcc'.
1.1       root       52: * Installation::    How to configure, compile and install GNU CC.
1.1.1.5   root       53: * C Extensions::    GNU extensions to the C language family.
                     54: * C++ Extensions::  GNU extensions to the C++ language.
1.1       root       55: * Trouble::         If you have trouble installing GNU CC.
1.1.1.3   root       56: * Bugs::            How, why and where to report bugs.
1.1       root       57: * Service::         How to find suppliers of support for GNU CC.
                     58: * VMS::             Using GNU CC on VMS.
1.1.1.5   root       59: 
1.1       root       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.
1.1.1.2   root       65: * Target Macros::   How to write the machine description C macros.
1.1       root       66: * Config::          Writing the `xm-MACHINE.h' file.
1.1.1.8   root       67: * Fragments::       Writing the `t-TARGET' and `x-HOST' files.
1.1.1.5   root       68: 
1.1       root       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: 
1.1.1.3   root       77:                          Version 2, June 1991
1.1       root       78: 
                     79:      Copyright (C) 1989, 1991 Free Software Foundation, Inc.
1.1.1.8   root       80:      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
1.1       root       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
1.1.1.3   root      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.
1.1       root      104: 
                    105:    To protect your rights, we need to make restrictions that forbid
1.1.1.3   root      106: anyone to deny you these rights or to ask you to surrender the rights.
1.1       root      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,
1.1.1.3   root      117: and (2) offer you this license which gives you legal permission to copy,
                    118: distribute and/or modify the software.
1.1       root      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
1.1.1.3   root      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.
1.1       root      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: 
1.1.1.3   root      136:     TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
1.1       root      137: 
1.1.1.5   root      138:   0. This License applies to any program or other work which contains a
1.1.1.3   root      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
1.1.1.5   root      154:      Program).  Whether that is true depends on what the Program does.
1.1       root      155: 
1.1.1.5   root      156:   1. You may copy and distribute verbatim copies of the Program's
1.1       root      157:      source code as you receive it, in any medium, provided that you
1.1.1.3   root      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.
1.1       root      167: 
1.1.1.5   root      168:   2. You may modify your copy or copies of the Program or any portion
1.1       root      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
1.1.1.3   root      174:           stating that you changed the files and the date of any change.
1.1       root      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
1.1.1.3   root      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.)
1.1       root      192: 
1.1.1.3   root      193:      These requirements apply to the modified work as a whole.  If
1.1       root      194:      identifiable sections of that work are not derived from the
1.1.1.3   root      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.
1.1       root      203: 
1.1.1.3   root      204:      Thus, it is not the intent of this section to claim rights or
1.1       root      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: 
1.1.1.3   root      209:      In addition, mere aggregation of another work not based on the
1.1       root      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: 
1.1.1.5   root      214:   3. You may copy and distribute the Program (or a work based on it,
1.1.1.3   root      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:
1.1       root      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
1.1.1.3   root      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
1.1.1.5   root      241:      used to control compilation and installation of the executable.
1.1.1.3   root      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.
1.1       root      253: 
1.1.1.5   root      254:   4. You may not copy, modify, sublicense, or distribute the Program
1.1       root      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
1.1.1.5   root      258:      License.  However, parties who have received copies, or rights,
1.1       root      259:      from you under this License will not have their licenses
                    260:      terminated so long as such parties remain in full compliance.
                    261: 
1.1.1.5   root      262:   5. You are not required to accept this License, since you have not
1.1       root      263:      signed it.  However, nothing else grants you permission to modify
                    264:      or distribute the Program or its derivative works.  These actions
1.1.1.5   root      265:      are prohibited by law if you do not accept this License.
1.1       root      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: 
1.1.1.5   root      271:   6. Each time you redistribute the Program (or any work based on the
1.1       root      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
1.1.1.5   root      276:      granted herein.  You are not responsible for enforcing compliance
1.1       root      277:      by third parties to this License.
                    278: 
1.1.1.5   root      279:   7. If, as a consequence of a court judgment or allegation of patent
1.1       root      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
1.1.1.3   root      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.
1.1       root      308: 
1.1.1.3   root      309:      This section is intended to make thoroughly clear what is believed
                    310:      to be a consequence of the rest of this License.
1.1       root      311: 
1.1.1.5   root      312:   8. If the distribution and/or use of the Program is restricted in
1.1       root      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: 
1.1.1.5   root      321:   9. The Free Software Foundation may publish revised and/or new
1.1       root      322:      versions of the General Public License from time to time.  Such
1.1.1.3   root      323:      new versions will be similar in spirit to the present version, but
                    324:      may differ in detail to address new problems or concerns.
1.1       root      325: 
1.1.1.3   root      326:      Each version is given a distinguishing version number.  If the
1.1       root      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
1.1.1.3   root      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.
1.1       root      333: 
1.1.1.5   root      334:  10. If you wish to incorporate parts of the Program into other free
1.1.1.3   root      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.
1.1       root      342: 
1.1.1.3   root      343:                                 NO WARRANTY
1.1       root      344: 
1.1.1.5   root      345:  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
1.1       root      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: 
1.1.1.5   root      356:  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
1.1       root      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
1.1.1.3   root      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
1.1       root      365:      ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
                    366: 
1.1.1.3   root      367:                       END OF TERMS AND CONDITIONS
1.1       root      368: 
1.1.1.4   root      369: How to Apply These Terms to Your New Programs
                    370: =============================================
1.1       root      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: 
1.1.1.5   root      382:      ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.
1.1       root      383:      Copyright (C) 19YY  NAME OF AUTHOR
                    384:      
1.1.1.5   root      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.
1.1       root      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
1.1.1.8   root      397:      Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
1.1       root      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
1.1.1.4   root      406:      Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
1.1.1.5   root      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.
1.1       root      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: 
1.1.1.5   root      421:      Yoyodyne, Inc., hereby disclaims all copyright interest in the program
                    422:      `Gnomovision' (which makes passes at compilers) written by James Hacker.
1.1       root      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
1.1.1.3   root      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.
1.1       root      432: 
                    433: 
1.1.1.7   root      434: File: gcc.info,  Node: Contributors,  Next: Funding,  Prev: Copying,  Up: Top
1.1       root      435: 
                    436: Contributors to GNU CC
                    437: **********************
                    438: 
                    439:    In addition to Richard Stallman, several people have written parts
                    440: of GNU CC.
                    441: 
1.1.1.3   root      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
1.1       root      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: 
1.1.1.3   root      455:    * Jim Wilson implemented loop strength reduction and some other loop
                    456:      optimizations.
1.1       root      457: 
                    458:    * Nobuyuki Hikichi of Software Research Associates, Tokyo,
                    459:      contributed the support for the Sony NEWS machine.
                    460: 
1.1.1.3   root      461:    * Charles LaBrec contributed the support for the Integrated Solutions
                    462:      68020 system.
1.1       root      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
1.1.1.3   root      467:      32000 series cpu, the SPARC cpu and part of the Motorola 88000 cpu.
1.1       root      468: 
1.1.1.7   root      469:    * Gerald Baumgartner added the signature extension to the C++
                    470:      front-end.
                    471: 
1.1       root      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: 
1.1.1.8   root      479:    * David Kashtan of SRI adapted GNU CC to VMS.
1.1       root      480: 
                    481:    * Alex Crain provided changes for the 3b1.
                    482: 
1.1.1.3   root      483:    * Greg Satz and Chris Hanson assisted in making GNU CC work on HP-UX
                    484:      for the 9000 series 300.
1.1       root      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: 
1.1.1.7   root      492:    * Dario Dariol contributed the four varieties of sample programs
                    493:      that print a copy of their source.
                    494: 
1.1       root      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: 
1.1.1.3   root      503:    * Gary Miller ported GNU CC to Charles River Data Systems machines.
                    504: 
1.1.1.4   root      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.
1.1       root      513: 
                    514:    * Richard Kenner and Michael Tiemann jointly developed reorg.c, the
                    515:      delay slot scheduler.
                    516: 
1.1.1.3   root      517:    * Mike Meissner and Tom Wood of Data General finished the port to the
                    518:      Motorola 88000.
1.1       root      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: 
1.1.1.3   root      526:    * James van Artsdalen wrote the code that makes efficient use of the
                    527:      Intel 80387 register stack.
1.1       root      528: 
1.1.1.3   root      529:    * Mike Meissner at the Open Software Foundation finished the port to
1.1.1.7   root      530:      the MIPS cpu, including adding ECOFF debug support, and worked on
                    531:      the Intel port for the Intel 80386 cpu.
1.1       root      532: 
1.1.1.4   root      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.
1.1       root      537: 
1.1.1.8   root      538:    * Torbjorn Granlund implemented multiply- and divide-by-constant
                    539:      optimization, improved long long support, and improved leaf
                    540:      function register allocation.
1.1.1.2   root      541: 
1.1.1.4   root      542:    * Mike Stump implemented the support for Elxsi 64 bit CPU.
                    543: 
1.1.1.5   root      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: 
1.1.1.6   root      557:    * David Edelsohn contributed the changes to RS/6000 port to make it
                    558:      support the PowerPC and POWER2 architectures.
                    559: 
1.1.1.5   root      560:    * Steve Chamberlain wrote the support for the Hitachi SH processor.
                    561: 
1.1.1.6   root      562:    * Peter Schauer wrote the code to allow debugging to work on the
                    563:      Alpha.
                    564: 
1.1.1.7   root      565:    * Oliver M. Kellogg of Deutsche Aerospace contributed the port to the
                    566:      MIL-STD-1750A.
                    567: 
1.1.1.8   root      568:    * Michael K. Gschwind contributed the port to the PDP-11.
                    569: 
1.1.1.7   root      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: 
1.1       root      620: 
1.1.1.7   root      621: File: gcc.info,  Node: Look and Feel,  Next: G++ and GCC,  Prev: Funding,  Up: Top
1.1       root      622: 
                    623: Protect Your Freedom--Fight "Look And Feel"
                    624: *******************************************
                    625: 
1.1.1.3   root      626:      This section is a political message from the League for Programming
1.1.1.7   root      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: 
1.1.1.8   root      630:    Apple, Lotus, and now CDC have tried to create a new form of legal
                    631: monopoly: a copyright on a user interface.
1.1       root      632: 
1.1.1.7   root      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
1.1.1.8   root      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
1.1.1.9   root      656: out of business.  Then Lotus sued Borland; Lotus won in the trial court
1.1.1.8   root      657: (no surprise, since it was the same court that had ruled for Lotus twice
1.1.1.9   root      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.
1.1.1.7   root      673: 
                    674:    If the monopolists get their way, they will hobble the software
                    675: field:
1.1       root      676: 
                    677:    * Gratuitous incompatibilities will burden users.  Imagine if each
1.1.1.7   root      678:      car manufacturer had to design a different way to start, stop, and
                    679:      steer a car.
1.1       root      680: 
1.1.1.7   root      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.
1.1       root      684: 
                    685:    * Large companies have an unfair advantage wherever lawsuits become
1.1.1.7   root      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
1.1.1.8   root      697:      popular application programs, if Lotus ultimately wins the case
                    698:      against Borland.
1.1.1.7   root      699: 
                    700:    * Open Computing magazine reported a Microsoft vice president as
1.1.1.8   root      701:      threatening to sue people who imitate the interface of Windows.
1.1.1.7   root      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: 
1.1.1.8   root      719:    The League's activities include publicizing the issues, as is being
1.1.1.7   root      720: done here, and filing friend-of-the-court briefs on behalf of
1.1.1.8   root      721: defendants sued by monopolists.
1.1       root      722: 
1.1.1.8   root      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.
1.1       root      730: 
1.1.1.7   root      731:    Activist members are especially important, but members who have no
                    732: time to give are also important.  Surveys at major ACM conferences have
1.1.1.8   root      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.
1.1       root      737: 
1.1.1.4   root      738:    To join, or for more information, phone (617) 243-4091 or write to:
1.1       root      739: 
                    740:      League for Programming Freedom
                    741:      1 Kendall Square #143
                    742:      P.O. Box 9171
                    743:      Cambridge, MA 02139
                    744: 
1.1.1.7   root      745:    You can also send electronic mail to `[email protected]'.
1.1       root      746: 
1.1.1.7   root      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:
1.1       root      750: 
                    751:    * Tell your friends and colleagues about this issue and how it
                    752:      threatens to ruin the computer industry.
                    753: 
1.1.1.7   root      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: 
1.1.1.8   root      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
1.1.1.7   root      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.
1.1       root      771: 
1.1.1.8   root      772:    * Write to Congress to explain the importance of these issues.
1.1       root      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: 
1.1.1.7   root      785:    Democracy means nothing if you don't use it.  Stand up and be
                    786: counted!
1.1       root      787: 
                    788: 
1.1.1.7   root      789: File: gcc.info,  Node: G++ and GCC,  Next: Invoking GCC,  Prev: Look and Feel,  Up: Top
1.1.1.5   root      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: 
1.1.1.7   root      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: 
1.1.1.5   root      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
1.1       root      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
1.1.1.3   root      843: not to run the linker.  Then the output consists of object files output
                    844: by the assembler.
1.1       root      845: 
1.1.1.3   root      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
1.1       root      849: documented here, since you rarely need to use any of them.
                    850: 
1.1.1.5   root      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: 
1.1.1.4   root      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'.
1.1       root      863: 
                    864:    You can mix options and other arguments.  For the most part, the
1.1.1.4   root      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.
1.1       root      868: 
                    869:    Many options have long names starting with `-f' or with `-W'--for
1.1.1.5   root      870: example, `-fforce-mem', `-fstrength-reduce', `-Wformat' and so on.
1.1       root      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: 
1.1.1.4   root      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.
1.1.1.5   root      881: * Invoking G++::       Compiling C++ programs.
                    882: * C Dialect Options::   Controlling the variant of C language compiled.
                    883: * C++ Dialect Options:: Variations on C++.
1.1.1.4   root      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: 

unix.superglobalmegacorp.com

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