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

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

unix.superglobalmegacorp.com

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