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