Annotation of GNUtools/cc/invoke.rtf, revision 1.1.1.1

1.1       root        1: {\rtf0\ansi{\fonttbl\f0\fnil Times-Roman;\f1\fmodern Courier;\f3\ftech Symbol;\f2\fmodern Ohlfs;\f4\fswiss Helvetica;}
                      2: \f0\fs28 {\info{\comment build from /build/cc_proj/cc/cc/invoke.texi}}
                      3: \
                      4: {{\NeXTHelpMarker \markername Invoking GCC;}
                      5: ,}{\fs88 {\f4 1}\i\
                      6: GNU CC Command Options}\
                      7: \
                      8: When you invoke GNU CC, it normally does preprocessing, 
                      9: compilation, assembly and linking. The ``overall options'' allow you to stop 
                     10: this process at an intermediate stage. For example, the {\f4\fs24 -c} option says not to 
                     11: run the linker. Then the output consists of object files output by the 
                     12: assembler. \
                     13: Other options are passed on to one stage of processing. Some 
                     14: options control the preprocessor and others the compiler itself. Yet other 
                     15: options control the assembler and linker; most of these are not documented 
                     16: here, since you rarely need to use any of them. \
                     17: Most of the command line 
                     18: options that you can use with GNU CC are useful for C programs; when an option 
                     19: is only useful with another language (usually C++), the explanation says so 
                     20: explicitly. If the description for a particular option does not mention a 
                     21: source language, you can use that option with all supported languages. \
                     22: {See `Compiling C++ Programs' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Invoking G++;}
                     23: ,}., for a 
                     24: summary of special options for compiling C++ programs. \
                     25: The {\f1\fs24 gcc} program accepts 
                     26: options and file names as operands. Many options have multiletter names; 
                     27: therefore multiple single-letter options may {\i not} be grouped: {\f4\fs24 -dr} is very 
                     28: different from {\f4\fs24 -d -r}. \
                     29: You can mix options and other arguments. For the most 
                     30: part, the order you use doesn't matter. Order does matter when you use several 
                     31: options of the same kind; for example, if you specify {\f4\fs24 -L} more than once, the 
                     32: directories are searched in the order specified. \
                     33: Many options have long names 
                     34: starting with {\f4\fs24 -f} or with {\f4\fs24 -W}---for example, {\f4\fs24 -fforce-mem}, {\f4\fs24 -fstrength-reduce}, {\f4\fs24 
                     35: -Wformat} and so on. Most of these have both positive and negative forms; the 
                     36: negative form of {\f4\fs24 -ffoo} would be {\f4\fs24 -fno-foo}. This manual documents only one of 
                     37: these two forms, whichever one is not the default. \
                     38:  \
                     39: {{\NeXTHelpMarker \markername Option Summary;}
                     40: ,}{\b\fs48\f4 1.1 Option Summary}\
                     41: \
                     42: Here is a 
                     43: summary of all the options, grouped by type. Explanations are in the following 
                     44: sections. \
                     45: \
                     46: {\i Overall Options} {See `Options Controlling the Kind of Output' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Overall Options;}
                     47: ,}.. {\f1\fs24 -c  -S  -E  -o {\i file}  -pipe  -v  -x {\i language}  }\
                     48: \
                     49: \
                     50: {\i C 
                     51: Language Options} {See `Options Controlling C Dialect' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C Dialect Options;}
                     52: ,}.. {\f1\fs24 -ansi  -fcond-mismatch  -fno-asm  -fno-builtin }\
                     53: {\f1\fs24 
                     54: -fsigned-bitfields  -fsigned-char  }\
                     55: {\f1\fs24 
                     56: -funsigned-bitfields  -funsigned-char  -fwritable-strings }\
                     57: {\f1\fs24 
                     58: -traditional  -traditional-cpp  -trigraphs }\
                     59: \
                     60: \
                     61: {\i C++ Language Options} {See `Options Controlling C++ Dialect' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C++ Dialect Options;}
                     62: ,}.. {\f1\fs24 
                     63: -fall-virtual  -fdollars-in-identifiers }\
                     64: {\f1\fs24 -felide-constructors  -fenum-int-equiv }\
                     65: {\f1\fs24 
                     66: -fexternal-templates  -fmemoize-lookups }\
                     67: {\f1\fs24 
                     68: -fno-strict-prototype  -fnonnull-objects }\
                     69: {\f1\fs24 -fthis-is-variable  -nostdinc++ }\
                     70: \
                     71: \
                     72: {\i 
                     73: Warning Options} {See `Options to Request or Suppress Warnings' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Warning Options;}
                     74: ,}.. {\f1\fs24 -fsyntax-only  -pedantic  -pedantic-errors }\
                     75: {\f1\fs24 
                     76: -w  -W  -Wall  -Waggregate-return  -Wcast-align   }\
                     77: {\f1\fs24 
                     78: -Wcast-qual  -Wchar-subscript  -Wcomment  -Wconversion }\
                     79: {\f1\fs24 
                     80: -Wenum-clash  -Werror  -Wformat  -Wid-clash-{\i len} }\
                     81: {\f1\fs24 
                     82: -Wimplicit  -Wimport  -Winline  -Wmissing-prototypes }\
                     83: {\f1\fs24 
                     84: -Wnested-externs  -Woverloaded-virtual  -Wparentheses }\
                     85: {\f1\fs24 
                     86: -Wpointer-arith  -Wredundant-decls  -Wreturn-type }\
                     87: {\f1\fs24 
                     88: -Wshadow  -Wstrict-prototypes  -Wswitch }\
                     89: {\f1\fs24 
                     90: -Wtemplate-debugging  -Wtraditional  -Wtrigraphs }\
                     91: {\f1\fs24 
                     92: -Wuninitialized  -Wunused  -Wwrite-strings }\
                     93: \
                     94: \
                     95: {\i Debugging Options} {See `Options for Debugging Your Program or GCC' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Debugging Options;}
                     96: ,}.. {\f1\fs24 -a  -d{\i letters}
                     97:   -fpretend-float  }\
                     98: {\f1\fs24 -g  -g{\i level} -ggdb  -gdwarf -gdwarf+ }\
                     99: {\f1\fs24 
                    100: -gstabs  -gstabs+  -gcoff -gxcoff  -gxcoff+ }\
                    101: {\f1\fs24 
                    102: -p  -pg  -save-temps  -print-libgcc-file-name }\
                    103: \
                    104: \
                    105: {\i Optimization Options} {See `Options that Control Optimization' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Optimize Options;}
                    106: ,}.. {\f1\fs24 
                    107: -fcaller-saves  -fcse-follow-jumps  -fcse-skip-blocks }\
                    108: {\f1\fs24 
                    109: -fdelayed-branch   -fexpensive-optimizations   }\
                    110: {\f1\fs24 
                    111: -ffast-math  -ffloat-store  -fforce-addr  -fforce-mem }\
                    112: {\f1\fs24 
                    113: -finline-functions  -fkeep-inline-functions   }\
                    114: {\f1\fs24 
                    115: -fno-default-inline  -fno-defer-pop  -fno-function-cse }\
                    116: {\f1\fs24 
                    117: -fno-inline  -fno-peephole  -fomit-frame-pointer   }\
                    118: {\f1\fs24 
                    119: -frerun-cse-after-loop  -fschedule-insns   }\
                    120: {\f1\fs24 
                    121: -fschedule-insns2  -fstrength-reduce  -fthread-jumps  }\
                    122: {\f1\fs24 
                    123: -funroll-all-loops  -funroll-loops }\
                    124: {\f1\fs24 -O  -O2 }\
                    125: \
                    126: \
                    127: {\i Preprocessor Options} {See `Options Controlling the Preprocessor' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Preprocessor Options;}
                    128: ,}.. {\f1\fs24 -A{\i assertion}
                    129:   -C  -dD  -dM  -dN }\
                    130: {\f1\fs24 -D{\i macro}={\i defn}  -E  -H }\
                    131: {\f1\fs24 -idirafter {\i dir} }\
                    132: {\f1\fs24 -include {\i file}
                    133:   -imacros {\i file} }\
                    134: {\f1\fs24 -iprefix {\i file}  -iwithprefix {\i dir} }\
                    135: {\f1\fs24 -iwithprefixbefore {\i dir} }\
                    136: {\f1\fs24 
                    137: -M  -MD  -MM  -MMD  -nostdinc  -P  -trigraphs  -U{\i macro} }\
                    138: \
                    139: \
                    140: {\i Assembler Option} {See `Passing Options to the Assembler' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Assembler Options;}
                    141: ,}.. {\f1\fs24 -Wa,{\i 
                    142: option} }\
                    143: \
                    144: \
                    145: {\i Linker Options} {See `Options for Linking' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Link Options;}
                    146: ,}.. {\f1\fs24 {\i object-file-name} }\
                    147: {\f1\fs24 -l{\i library}  -nostartfiles  -nostdlib   }\
                    148: {\f1\fs24 
                    149: -static  -shared  -symbolic   }\
                    150: {\f1\fs24 -Wl,{\i option}  -Xlinker {\i option} }\
                    151: {\f1\fs24 -u {\i symbol} }\
                    152: \
                    153: \
                    154: {\i Directory 
                    155: Options} {See `Options for Directory Search' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Directory Options;}
                    156: ,}.. {\f1\fs24 -B{\i prefix}  -I{\i dir}  -I-  -L{\i dir} }\
                    157: \
                    158: \
                    159: {\i Target Options} {See `' {\NeXTHelpLink \markername ;\linkFilename .
                    160: is way to avoid overfull hbox. -- rms
                    161: sor}.
                    162: .
                    163: are
                    164: pes.
                    165: 
                    166: ;\linkMarkername {Target Options;}
                    167: ,}.. {\f1\fs24 -b {\i machine}  -V {\i version} }\
                    168: \
                    169: \
                    170: {\i 
                    171: Machine Dependent Options} {See `Hardware Models and Configurations' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Submodel Options;}
                    172: ,}.. {\f1\fs24 {\i M680x0 Options} }\
                    173: {\f1\fs24 
                    174: -m68000  -m68020  -m68020-40  -m68030  -m68040  -m68881   }\
                    175: {\f1\fs24 
                    176: -mbitfield  -mc68000  -mc68020  -mfpa  -mnobitfield   }\
                    177: {\f1\fs24 
                    178: -mrtd  -mshort  -msoft-float  }\
                    179: \
                    180: {\f1\fs24 {\i VAX Options} }\
                    181: {\f1\fs24 -mg  -mgnu  -munix }\
                    182: \
                    183: {\f1\fs24 {\i SPARC Options} }\
                    184: {\f1\fs24 
                    185: -mepilogue  -mfpu  -mhard-float }\
                    186: {\f1\fs24 -mno-fpu  -mno-epilogue  -msoft-float }\
                    187: {\f1\fs24 
                    188: -msparclite  -mv8 }\
                    189: \
                    190: {\f1\fs24 {\i Convex Options} }\
                    191: {\f1\fs24 -mc1  -mc2  -mc32  -mc34  -mc38 }\
                    192: {\f1\fs24 
                    193: -margcount  -mnoargcount }\
                    194: {\f1\fs24 -mlong32  -mlong64 }\
                    195: {\f1\fs24 
                    196: -mbolatile-cache  -mvolatile-nocache }\
                    197: \
                    198: {\f1\fs24 {\i AMD29K Options}  }\
                    199: {\f1\fs24 
                    200: -m29000  -m29050  -mbw  -mdw  -mkernel-registers }\
                    201: {\f1\fs24 
                    202: -mlarge  -mnbw  -mnodw  -mnormal  -msmall  -mstack-check }\
                    203: {\f1\fs24 -muser-registers }\
                    204: \
                    205: {\f1\fs24 {\i 
                    206: M88K Options} }\
                    207: {\f1\fs24 -m88000  -m88100  -m88110  -mbig-pic   }\
                    208: {\f1\fs24 
                    209: -mcheck-zero-division  -mhandle-large-shift  }\
                    210: {\f1\fs24 
                    211: -midentify-revision  -mno-check-zero-division  }\
                    212: {\f1\fs24 
                    213: -mno-ocs-debug-info  -mno-ocs-frame-position  }\
                    214: {\f1\fs24 
                    215: -mno-optimize-arg-area  -mno-serialize-volatile }\
                    216: {\f1\fs24 
                    217: -mno-underscores  -mocs-debug-info }\
                    218: {\f1\fs24 -mocs-frame-position  -moptimize-arg-area }\
                    219: {\f1\fs24 
                    220: -mserialize-volatile  -mshort-data-{\i num}  -msvr3  }\
                    221: {\f1\fs24 
                    222: -msvr4  -mtrap-large-shift  -muse-div-instruction  }\
                    223: {\f1\fs24 
                    224: -mversion-03.00  -mwarn-passed-structs }\
                    225: \
                    226: {\f1\fs24 {\i RS/6000 Options and PowerPC} }\
                    227: {\f1\fs24 -mcpu={\i 
                    228: cpu type} }\
                    229: {\f1\fs24 -mpower -mno-power -mpower2 -pno-power2 }\
                    230: {\f1\fs24 
                    231: -mpowerpc -mno-powerpc -mpowerpcsqr -mno-powerpcsqr }\
                    232: {\f1\fs24 -mpowerpc64 -mno-powerpc64 }\
                    233: {\f1\fs24 
                    234: -mnew-mnemonics -mno-new-mnemonics }\
                    235: {\f1\fs24 
                    236: -mnormal-toc   -mminimal-toc  -mno-fop-in-toc }\
                    237: \
                    238: {\f1\fs24 {\i RT Options} }\
                    239: {\f1\fs24 
                    240: -mcall-lib-mul  -mfp-arg-in-fpregs  -mfp-arg-in-gregs }\
                    241: {\f1\fs24 
                    242: -mfull-fp-blocks  -mhc-struct-return  -min-line-mul }\
                    243: {\f1\fs24 
                    244: -mminimum-fp-blocks  -mnohc-struct-return }\
                    245: \
                    246: {\f1\fs24 {\i MIPS Options} }\
                    247: {\f1\fs24 -mcpu={\i cpu  type}
                    248:   -mips2  -mips3  -mint64 }\
                    249: {\f1\fs24 -mlong64  -mlonglong128  -mmips-as  -mgas  -mrnames }\
                    250: {\f1\fs24 
                    251: -mno-rnames  -mgpopt  -mno-gpopt  -mstats  -mno-stats }\
                    252: {\f1\fs24 
                    253: -mmemcpy  -mno-memcpy  -mno-mips-tfile  -mmips-tfile }\
                    254: {\f1\fs24 
                    255: -msoft-float  -mhard-float  -mabicalls  -mno-abicalls }\
                    256: {\f1\fs24 
                    257: -mhalf-pic  -mno-half-pic -mlong-calls -mno-long-calls }\
                    258: {\f1\fs24 -G  {\i num}  -nocpp }\
                    259: \
                    260: {\f1\fs24 {\i 
                    261: i386 Options} }\
                    262: {\f1\fs24 -m486  -mno-486  -msoft-float  -msvr3-shlib  -mieee-fp }\
                    263: {\f1\fs24 
                    264: -mno-fp-ret-in-387 }\
                    265: \
                    266: {\f1\fs24 {\i HPPA Options} }\
                    267: {\f1\fs24 -mpa-risc-1-0 }\
                    268: {\f1\fs24 -mpa-risc-1-1 }\
                    269: {\f1\fs24 -mlong-calls }\
                    270: {\f1\fs24 
                    271: -mdisable-fpregs }\
                    272: {\f1\fs24 -mdisable-indexing }\
                    273: {\f1\fs24 -mtrailing-colon }\
                    274: \
                    275: {\f1\fs24 {\i Intel 960 Options} }\
                    276: {\f1\fs24 -m{\i 
                    277: cpu type} }\
                    278: {\f1\fs24 -mnumerics  -msoft-float }\
                    279: {\f1\fs24 -mcode-align  -mno-code-align }\
                    280: {\f1\fs24 
                    281: -mleaf-procedures  -mno-leaf-procedures }\
                    282: {\f1\fs24 -mtail-call  -mno-tail-call }\
                    283: {\f1\fs24 
                    284: -mcomplex-addr  -mno-complex-addr }\
                    285: {\f1\fs24 -mclean-linkage  -mno-clean-linkage }\
                    286: {\f1\fs24 
                    287: -mic-compat  -mic2.0-compat  -mic3.0-compat }\
                    288: {\f1\fs24 -masm-compat  -mintel-asm }\
                    289: {\f1\fs24 
                    290: -mstrict-align  -mno-strict-align }\
                    291: {\f1\fs24 -mold-align  -mno-old-align }\
                    292: \
                    293: {\f1\fs24 {\i 
                    294: DEC Alpha Options} }\
                    295: {\f1\fs24 -mfp-regs  -mno-fp-regs  -mno-soft-float }\
                    296: {\f1\fs24 -msoft-float }\
                    297: \
                    298: {\f1\fs24 {\i 
                    299: Clipper Options} }\
                    300: {\f1\fs24 -mc300 -mc400 }\
                    301: \
                    302: {\f1\fs24 {\i System V Options} }\
                    303: {\f1\fs24 -G  -Qy  -Qn  -YP,{\i paths}  -Ym,{\i 
                    304: dir} }\
                    305: \
                    306: \
                    307: {\i Code Generation Options} {See `Options for Code Generation Conventions' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Code Gen Options;}
                    308: ,}.. {\f1\fs24 -fcall-saved-{\i reg}  -fcall-used-{\i reg}  }\
                    309: {\f1\fs24 -ffixed-{\i reg}
                    310:   -finhibit-size-directive  }\
                    311: {\f1\fs24 -fno-common  -fno-ident }\
                    312: {\f1\fs24 
                    313: -fno-gnu-linker  -fpcc-struct-return  -fpic  -fPIC  }\
                    314: {\f1\fs24 
                    315: -freg-struct-return  -fshared-data  -fshort-enums }\
                    316: {\f1\fs24 
                    317: -fshort-double  -fvolatile  -fvolatile-global }\
                    318: {\f1\fs24 -fverbose-asm }\
                    319: \
                    320: \
                    321:  \
                    322: {{\NeXTHelpMarker \markername Overall Options;}
                    323: ,}{\b\fs48\f4 1.2 Options 
                    324: Controlling the Kind of Output}\
                    325: \
                    326: Compilation can involve up to four stages: 
                    327: preprocessing, compilation proper, assembly and linking, always in that order. 
                    328: The first three stages apply to an individual source file, and end by 
                    329: producing an object file; linking combines all the object files (those newly 
                    330: compiled, and those specified as input) into an executable file. \
                    331: For any given 
                    332: input file, the file name suffix determines what kind of compilation is done: \
                    333: \
                    334: {\f1\fs24 {\i 
                    335: file}.c} C source code which must be preprocessed. \
                    336: \
                    337: {\f1\fs24 {\i file}.i} C source code which 
                    338: should not be preprocessed. \
                    339: \
                    340: {\f1\fs24 {\i file}.ii} C++ source code which should not be 
                    341: preprocessed. \
                    342: \
                    343: {\f1\fs24 {\i file}.m} Objective-C source code. Note that you must link with the 
                    344: library `{\f1\fs24 libobjc.a}' to make an Objective-C program work. \
                    345: \
                    346: {\f1\fs24 {\i file}.h} C header file 
                    347: (not to be compiled or linked). \
                    348: \
                    349: {\f1\fs24 {\i file}.cc} \
                    350: {\f1\fs24 {\i file}.cxx} \
                    351: {\f1\fs24 {\i file}.C} C++ source code which 
                    352: must be preprocessed. Note that in {\f4\fs24 .cxx}, the last two letters must both be 
                    353: literally {\f4\fs24 x}. Likewise, {\f4\fs24 .C} refers to a literal capital C. \
                    354: \
                    355: {\f1\fs24 {\i file}.s} Assembler 
                    356: code. \
                    357: \
                    358: {\f1\fs24 {\i file}.S} Assembler code which must be preprocessed. \
                    359: \
                    360: {\f1\fs24 {\i other}} An object file 
                    361: to be fed straight into linking. Any file name with no recognized suffix is 
                    362: treated this way. \
                    363: \
                    364: You can specify the input language explicitly with the {\f4\fs24 -x} 
                    365: option: \
                    366: \
                    367: {\f1\fs24 -x {\i language}} Specify explicitly the {\i language} for the following input 
                    368: files (rather than letting the compiler choose a default based on the file 
                    369: name suffix). This option applies to all following input files until the next {\f4\fs24 
                    370: -x} option. Possible values for {\i language} are: {\f1\fs24 c  objective-c  c++ }\
                    371: {\f1\fs24 
                    372: c-header  cpp-output  c++-cpp-output }\
                    373: {\f1\fs24 assembler  assembler-with-cpp }\
                    374: \
                    375: \
                    376: {\f1\fs24 -x none} 
                    377: Turn off any specification of a language, so that subsequent files are handled 
                    378: according to their file name suffixes (as they are if {\f4\fs24 -x} has not been used at 
                    379: all). \
                    380: \
                    381: If you only want some of the stages of compilation, you can use {\f4\fs24 -x} (or 
                    382: filename suffixes) to tell {\f1\fs24 gcc} where to start, and one of the options {\f4\fs24 -c}, {\f4\fs24 -S}, 
                    383: or {\f4\fs24 -E} to say where {\f1\fs24 gcc} is to stop. Note that some combinations (for example, {\f4\fs24 
                    384: -x cpp-output -E} instruct {\f1\fs24 gcc} to do nothing at all. \
                    385: \
                    386: {\f1\fs24 -c} Compile or assemble the 
                    387: source files, but do not link. The linking stage simply is not done. The 
                    388: ultimate output is in the form of an object file for each source file. \
                    389: By 
                    390: default, the object file name for a source file is made by replacing the 
                    391: suffix {\f4\fs24 .c}, {\f4\fs24 .i}, {\f4\fs24 .s}, etc., with {\f4\fs24 .o}. \
                    392: Unrecognized input files, not requiring 
                    393: compilation or assembly, are ignored. \
                    394: \
                    395: {\f1\fs24 -S} Stop after the stage of compilation 
                    396: proper; do not assemble. The output is in the form of an assembler code file 
                    397: for each non-assembler input file specified. \
                    398: By default, the assembler file 
                    399: name for a source file is made by replacing the suffix {\f4\fs24 .c}, {\f4\fs24 .i}, etc., with {\f4\fs24 .s}. \
                    400: 
                    401: Input files that don't require compilation are ignored. \
                    402: \
                    403: {\f1\fs24 -E} Stop after the 
                    404: preprocessing stage; do not run the compiler proper. The output is in the form 
                    405: of preprocessed source code, which is sent to the standard output. \
                    406: Input files 
                    407: which don't require preprocessing are ignored. \
                    408: \
                    409: {\f1\fs24 -o {\i file}} Place output in file {\i 
                    410: file}. This applies regardless to whatever sort of output is being produced, 
                    411: whether it be an executable file, an object file, an assembler file or 
                    412: preprocessed C code. \
                    413: Since only one output file can be specified, it does not 
                    414: make sense to use {\f4\fs24 -o} when compiling more than one input file, unless you are 
                    415: producing an executable file as output. \
                    416: If {\f4\fs24 -o} is not specified, the default is 
                    417: to put an executable file in `{\f1\fs24 a.out}', the object file for `{\f1\fs24 {\i source}.{\i suffix}}' in `{\f1\fs24 {\i 
                    418: source}.o}', its assembler file in `{\f1\fs24 {\i source}.s}', and all preprocessed C source on 
                    419: standard output. \
                    420: \
                    421: {\f1\fs24 -v} Print (on standard error output) the commands executed to 
                    422: run the stages of compilation. Also print the version number of the compiler 
                    423: driver program and of the preprocessor and the compiler proper. \
                    424: \
                    425: {\f1\fs24 -pipe} Use 
                    426: pipes rather than temporary files for communication between the various stages 
                    427: of compilation. This fails to work on some systems where the assembler is 
                    428: unable to read from a pipe; but the GNU assembler has no trouble. \
                    429: \
                    430: {{\NeXTHelpMarker \markername Invoking G++;}
                    431: ,}{\b\fs48\f4 1.3 Compiling 
                    432: C++ Programs}\
                    433: \
                    434: C++ source files conventionally use one of the suffixes {\f4\fs24 .C}, {\f4\fs24 .cc}, 
                    435: or {\f4\fs24 .cxx}; preprocessed C++ files use the suffix {\f4\fs24 .ii}. GNU CC recognizes files 
                    436: with these names and compiles them as C++ programs even if you call the 
                    437: compiler the same way as for compiling C programs (usually with the name {\f1\fs24 gcc}). \
                    438: 
                    439: However, C++ programs often require class libraries as well as a compiler that 
                    440: understands the C++ language---and under some circumstances, you might want to 
                    441: compile programs from standard input, or otherwise without a suffix that flags 
                    442: them as C++ programs. {\f1\fs24 g++} is a shell script that calls GNU CC with the default 
                    443: language set to C++, and automatically specifies linking against the GNU class 
                    444: library libg++. {\fs18 Prior to release 2 of the compiler, there was a separate {\f1\fs24 g++} 
                    445: compiler. That version was based on GNU CC, but not integrated with it. 
                    446: Versions of {\f1\fs24 g++} with a {\f4\fs24 1.{\i xx}} version number---for example, {\f1\fs24 g++} version 1.37 or 
                    447: 1.42---are much less reliable than the versions integrated with GCC 2. 
                    448: Moreover, combining G++ {\f4\fs24 1.{\i xx}} with a version 2 GCC will simply not work.} On 
                    449: many systems, the script {\f1\fs24 g++} is also installed with the name {\f1\fs24 c++}. \
                    450: When you 
                    451: compile C++ programs, you may specify many of the same command-line options 
                    452: that you use for compiling programs in any language; or command-line options 
                    453: meaningful for C and related languages; or options that are meaningful only 
                    454: for C++ programs. {See `Options Controlling C Dialect' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C Dialect Options;}
                    455: ,}., for explanations of options for languages related to C. {See `Options Controlling C++ Dialect' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C++ Dialect Options;}
                    456: ,}., 
                    457: for explanations of options that are meaningful only for C++ programs. \
                    458: {{\NeXTHelpMarker \markername C Dialect Options;}
                    459: ,}{\b\fs48\f4 1.4 Options 
                    460: Controlling C Dialect}\
                    461: \
                    462: The following options control the dialect of C (or 
                    463: languages derived from C, such as C++ and Objective C) that the compiler 
                    464: accepts: \
                    465: \
                    466: {\f1\fs24 -ansi} Support all ANSI standard C programs. \
                    467: This turns off certain 
                    468: features of GNU C that are incompatible with ANSI C, such as the {\f1\fs24 asm}, {\f1\fs24 inline} 
                    469: and {\f1\fs24 typeof} keywords, and predefined macros such as {\f1\fs24 unix} and {\f1\fs24 vax} that identify 
                    470: the type of system you are using. It also enables the undesirable and rarely 
                    471: used ANSI trigraph feature, and disallows {\f4\fs24 $} as part of identifiers. \
                    472: The 
                    473: alternate keywords {\f1\fs24 __asm__}, {\f1\fs24 __extension__}, {\f1\fs24 __inline__} and {\f1\fs24 __typeof__} continue 
                    474: to work despite {\f4\fs24 -ansi}. You would not want to use them in an ANSI C program, of 
                    475: course, but it useful to put them in header files that might be included in 
                    476: compilations done with {\f4\fs24 -ansi}. Alternate predefined macros such as {\f1\fs24 __unix__} and {\f1\fs24 
                    477: __vax__} are also available, with or without {\f4\fs24 -ansi}. \
                    478: The {\f4\fs24 -ansi} option does not 
                    479: cause non-ANSI programs to be rejected gratuitously. For that, {\f4\fs24 -pedantic} is 
                    480: required in addition to {\f4\fs24 -ansi}. {See `' {\NeXTHelpLink \markername ;\linkFilename .
                    481: is required in
                    482: h or
                    483: d
                    484: g++} compiler.  That version was based on GNU
                    485: CC;\linkMarkername {Warning Options;}
                    486: ,}.. \
                    487: The macro {\f1\fs24 __STRICT_ANSI__} is predefined when 
                    488: the {\f4\fs24 -ansi} option is used. Some header files may notice this macro and refrain 
                    489: from declaring certain functions or defining certain macros that the ANSI 
                    490: standard doesn't call for; this is to avoid interfering with any programs that 
                    491: might use these names for other things. \
                    492: The functions {\f1\fs24 alloca}, {\f1\fs24 abort}, {\f1\fs24 exit}, and {\f1\fs24 
                    493: _exit} are not builtin functions when {\f4\fs24 -ansi} is used. \
                    494: \
                    495: {\f1\fs24 -fno-asm} Do not recognize {\f1\fs24 
                    496: asm}, {\f1\fs24 inline} or {\f1\fs24 typeof} as a keyword. These words may then be used as 
                    497: identifiers. You can use the keywords {\f1\fs24 __asm__}, {\f1\fs24 __inline__} and {\f1\fs24 __typeof__} 
                    498: instead. {\f4\fs24 -ansi} implies {\f4\fs24 -fno-asm}. \
                    499: \
                    500: {\f1\fs24 -fno-builtin} Don't recognize builtin 
                    501: functions that do not begin with two leading underscores. Currently, the 
                    502: functions affected include {\f1\fs24 abort}, {\f1\fs24 abs}, {\f1\fs24 alloca}, {\f1\fs24 cos}, {\f1\fs24 exit}, {\f1\fs24 fabs}, {\f1\fs24 ffs}, {\f1\fs24 labs}, {\f1\fs24 
                    503: memcmp}, {\f1\fs24 memcpy}, {\f1\fs24 sin}, {\f1\fs24 sqrt}, {\f1\fs24 strcmp}, {\f1\fs24 strcpy}, and {\f1\fs24 strlen}. \
                    504: GCC normally generates 
                    505: special code to handle certain builtin functions more efficiently; for 
                    506: instance, calls to {\f1\fs24 alloca} may become single instructions that adjust the stack 
                    507: directly, and calls to {\f1\fs24 memcpy} may become inline copy loops. The resulting code 
                    508: is often both smaller and faster, but since the function calls no longer 
                    509: appear as such, you cannot set a breakpoint on those calls, nor can you change 
                    510: the behavior of the functions by linking with a different library. \
                    511: The {\f4\fs24 -ansi} 
                    512: option prevents {\f1\fs24 alloca} and {\f1\fs24 ffs} from being builtin functions, since these 
                    513: functions do not have an ANSI standard meaning. \
                    514: \
                    515: {\f1\fs24 -trigraphs} Support ANSI C 
                    516: trigraphs. You don't want to know about this brain-damage. The {\f4\fs24 -ansi} option 
                    517: implies {\f4\fs24 -trigraphs}. \
                    518: \
                    519: {\f1\fs24 -traditional} Attempt to support some aspects of 
                    520: traditional C compilers. Specifically: \
                    521: All {\f1\fs24 extern} declarations take effect 
                    522: globally even if they are written inside of a function definition. This 
                    523: includes implicit declarations of functions. \
                    524: The newer keywords {\f1\fs24 typeof}, {\f1\fs24 inline}
                    525: , {\f1\fs24 signed}, {\f1\fs24 const} and {\f1\fs24 volatile} are not recognized. (You can still use the 
                    526: alternative keywords such as {\f1\fs24 __typeof__}, {\f1\fs24 __inline__}, and so on.) \
                    527: Comparisons 
                    528: between pointers and integers are always allowed. \
                    529: Integer types {\f1\fs24 unsigned short} 
                    530: and {\f1\fs24 unsigned char} promote to {\f1\fs24 unsigned int}. \
                    531: Out-of-range floating point 
                    532: literals are not an error. \
                    533: Certain constructs which ANSI regards as a single 
                    534: invalid preprocessing number, such as {\f4\fs24 0xe-0xd}, are treated as expressions 
                    535: instead. \
                    536: String ``constants'' are not necessarily constant; they are stored in 
                    537: writable space, and identical looking constants are allocated separately. 
                    538: (This is the same as the effect of {\f4\fs24 -fwritable-strings}.) \
                    539: All automatic 
                    540: variables not declared {\f1\fs24 register} are preserved by {\f1\fs24 longjmp}. Ordinarily, GNU C 
                    541: follows ANSI C: automatic variables not declared {\f1\fs24 volatile} may be clobbered. \
                    542: In 
                    543: the preprocessor, comments convert to nothing at all, rather than to a space. 
                    544: This allows traditional token concatenation. \
                    545: In the preprocessor, macro 
                    546: arguments are recognized within string constants in a macro definition (and 
                    547: their values are stringified, though without additional quote marks, when they 
                    548: appear in such a context). The preprocessor always considers a string constant 
                    549: to end at a newline. \
                    550: The predefined macro {\f1\fs24 __STDC__} is not defined when you use {\f4\fs24 
                    551: -traditional}, but {\f1\fs24 __GNUC__} is (since the GNU extensions which {\f1\fs24 __GNUC__} 
                    552: indicates are not affected by {\f4\fs24 -traditional}). If you need to write header files 
                    553: that work differently depending on whether {\f4\fs24 -traditional} is in use, by testing 
                    554: both of these predefined macros you can distinguish four situations: GNU C, 
                    555: traditional GNU C, other ANSI C compilers, and other old C compilers. {See `Standard Predefined
                    556: Macros,cpp.info,The C Preprocessor' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Standard Predefined;}
                    557: ,}., for 
                    558: more discussion of these and other predefined macros. \
                    559: The preprocessor 
                    560: considers a string constant to end at a newline (unless the newline is escaped 
                    561: with {\f4\fs24 \\}). (Without {\f4\fs24 -traditional}, string constants can contain the newline 
                    562: character as typed.) \
                    563: The character escape sequences {\f4\fs24 \\x} and {\f4\fs24 \\a} evaluate as 
                    564: the literal characters {\f4\fs24 x} and {\f4\fs24 a} respectively. Without {\f4\fs24 -traditional}, {\f4\fs24 \\x} is a 
                    565: prefix for the hexadecimal representation of a character, and {\f4\fs24 \\a} produces a 
                    566: bell. \
                    567: In C++ programs, assignment to {\f1\fs24 this} is permitted with {\f4\fs24 -traditional}. (The 
                    568: option {\f4\fs24 -fthis-is-variable} also has this effect.) \
                    569: \
                    570: You may wish to use {\f4\fs24 
                    571: -fno-builtin} as well as {\f4\fs24 -traditional} if your program uses names that are 
                    572: normally GNU C builtin functions for other purposes of its own. \
                    573: \
                    574: {\f1\fs24 
                    575: -traditional-cpp} Attempt to support some aspects of traditional C 
                    576: preprocessors. This includes the last three items in the table immediately 
                    577: above, but none of the other effects of {\f4\fs24 -traditional}. \
                    578: \
                    579: {\f1\fs24 -fcond-mismatch} Allow 
                    580: conditional expressions with mismatched types in the second and third 
                    581: arguments. The value of such an expression is void. \
                    582: \
                    583: {\f1\fs24 -funsigned-char} Let the 
                    584: type {\f1\fs24 char} be unsigned, like {\f1\fs24 unsigned char}. \
                    585: Each kind of machine has a default 
                    586: for what {\f1\fs24 char} should be. It is either like {\f1\fs24 unsigned char} by default or like {\f1\fs24 
                    587: signed char} by default. \
                    588: Ideally, a portable program should always use {\f1\fs24 signed 
                    589: char} or {\f1\fs24 unsigned char} when it depends on the signedness of an object. But many 
                    590: programs have been written to use plain {\f1\fs24 char} and expect it to be signed, or 
                    591: expect it to be unsigned, depending on the machines they were written for. 
                    592: This option, and its inverse, let you make such a program work with the 
                    593: opposite default. \
                    594: The type {\f1\fs24 char} is always a distinct type from each of {\f1\fs24 signed 
                    595: char} or {\f1\fs24 unsigned char}, even though its behavior is always just like one of 
                    596: those two. \
                    597: \
                    598: {\f1\fs24 -fsigned-char} Let the type {\f1\fs24 char} be signed, like {\f1\fs24 signed char}. \
                    599: Note 
                    600: that this is equivalent to {\f4\fs24 -fno-unsigned-char}, which is the negative form of {\f4\fs24 
                    601: -funsigned-char}. Likewise, the option {\f4\fs24 -fno-signed-char} is equivalent to {\f4\fs24 
                    602: -funsigned-char}. \
                    603: \
                    604: {\f1\fs24 -fsigned-bitfields} \
                    605: {\f1\fs24 -funsigned-bitfields} \
                    606: {\f1\fs24 -fno-signed-bitfields} \
                    607: {\f1\fs24 
                    608: -fno-unsigned-bitfields} These options control whether a bitfield is signed or 
                    609: unsigned, when the declaration does not use either {\f1\fs24 signed} or {\f1\fs24 unsigned}. By 
                    610: default, such a bitfield is signed, because this is consistent: the basic 
                    611: integer types such as {\f1\fs24 int} are signed types. \
                    612: However, when {\f4\fs24 -traditional} is 
                    613: used, bitfields are all unsigned no matter what. \
                    614: \
                    615: {\f1\fs24 -fwritable-strings} Store 
                    616: string constants in the writable data segment and don't uniquize them. This is 
                    617: for compatibility with old programs which assume they can write into string 
                    618: constants. The option {\f4\fs24 -traditional} also has this effect. \
                    619: Writing into string 
                    620: constants is a very bad idea; ``constants'' should be constant. \
                    621: \
                    622: {\f1\fs24 
                    623: -fallow-single-precision} Do not promote single precision math operations to 
                    624: double precision, even when compiling with {\f4\fs24 -traditional}. \
                    625: Traditional K&R C 
                    626: promotes all floating point operations to double precision, regardless of the 
                    627: sizes of the operands. On the architecture for which you are compiling, single 
                    628: precision may be faster than double precision. If you must use {\f4\fs24 -traditional}, 
                    629: but want to use single precision operations when the operands are single 
                    630: precision, use this option. This option has no effect when compiling with ANSI 
                    631: or GNU C conventions (the default). \
                    632: \
                    633: \
                    634: {{\NeXTHelpMarker \markername C++ Dialect Options;}
                    635: ,}{\b\fs48\f4 1.5 Options Controlling C++ Dialect}\
                    636: \
                    637: This 
                    638: section describes the command-line options that are only meaningful for C++ 
                    639: programs; but you can also use most of the GNU compiler options regardless of 
                    640: what language your program is in. For example, you might compile a file {\f1\fs24 
                    641: firstClass.C} like this: \
                    642: {\f1\fs24 g++ -g -felide-constructors -O -c firstClass.C }\
                    643: \
                    644:  In 
                    645: this example, only {\f4\fs24 -felide-constructors} is an option meant only for C++ 
                    646: programs; you can use the other options with any language supported by GNU CC. \
                    647: 
                    648: Here is a list of options that are {\i only} for compiling C++ programs: \
                    649: \
                    650: {\f1\fs24 
                    651: -fall-virtual} Treat all possible member functions as virtual, implicitly. All 
                    652: member functions (except for constructor functions and {\f1\fs24 new} or {\f1\fs24 delete} member 
                    653: operators) are treated as virtual functions of the class where they appear. \
                    654: 
                    655: This does not mean that all calls to these member functions will be made 
                    656: through the internal table of virtual functions. Under some circumstances, the 
                    657: compiler can determine that a call to a given virtual function can be made 
                    658: directly; in these cases the calls are direct in any case. \
                    659: \
                    660: {\f1\fs24 
                    661: -fdollars-in-identifiers} Accept {\f4\fs24 $} in identifiers. You can also explicitly 
                    662: prohibit use of {\f4\fs24 $} with the option {\f4\fs24 -fno-dollars-in-identifiers}. (GNU C++ allows {\f4\fs24 
                    663: $} by default on some target systems but not others.) Traditional C allowed the 
                    664: character {\f4\fs24 $} to form part of identifiers. However, ANSI C and C++ forbid {\f4\fs24 $} in 
                    665: identifiers. \
                    666: \
                    667: {\f1\fs24 -felide-constructors} Elide constructors when this seems 
                    668: plausible. With this option, GNU C++ initializes {\f1\fs24 y} directly from the call to {\f1\fs24 
                    669: foo} without going through a temporary in the following code: \
                    670: {\f1\fs24 A foo (); }\
                    671: {\f1\fs24 
                    672: A y = foo (); }\
                    673: \
                    674: Without this option, GNU C++ (1) initializes {\f1\fs24 y} by calling the 
                    675: appropriate constructor for type {\f1\fs24 A}; (2) assigns the result of {\f1\fs24 foo} to a 
                    676: temporary; and, finally, (3) replaces the initial value of {\f1\fs24 y} with the 
                    677: temporary. \
                    678: The default behavior ({\f4\fs24 -fno-elide-constructors}) is specified by the 
                    679: draft ANSI C++ standard. If your program's constructors have side effects, {\f4\fs24 
                    680: -felide-constructors} can change your program's behavior, since some 
                    681: constructor calls may be omitted. \
                    682: \
                    683: {\f1\fs24 -fenum-int-equiv} Permit implicit conversion 
                    684: of {\f1\fs24 int} to enumeration types. Normally GNU C++ allows conversion of {\f1\fs24 enum} to {\f1\fs24 int}
                    685: , but not the other way around. \
                    686: \
                    687: {\f1\fs24 -fexternal-templates} Produce smaller code for 
                    688: template declarations, by generating only a single copy of each template 
                    689: function where it is defined. To use this option successfully, you must also 
                    690: mark all files that use templates with either {\f4\fs24 #pragma implementation} (the 
                    691: definition) or {\f4\fs24 #pragma interface} (declarations). {See `Declarations and Definitions in One Header' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C++
                    692: Interface;}
                    693: ,}., for more discussion of 
                    694: these pragmas. \
                    695: When your code is compiled with {\f4\fs24 -fexternal-templates}, all 
                    696: template instantiations are external. You must arrange for all necessary 
                    697: instantiations to appear in the implementation file; you can do this with a {\f1\fs24 
                    698: typedef} that references each instantiation needed. Conversely, when you 
                    699: compile using the default option {\f4\fs24 -fno-external-templates}, all template 
                    700: instantiations are explicitly internal. \
                    701: You do not need to specify {\f4\fs24 
                    702: -fexternal-templates} when compiling a file that does not define and 
                    703: instantiate templates used in other files, even if your file {\i uses} templates 
                    704: defined in other files that are compiled with {\f4\fs24 -fexternal-templates}. The only 
                    705: side effect is an increase in object size for each file that you compile 
                    706: without {\f4\fs24 -fexternal-templates}. \
                    707: \
                    708: {\f1\fs24 -fmemoize-lookups} \
                    709: {\f1\fs24 -fsave-memoized} Use heuristics 
                    710: to compile faster. These heuristics are not enabled by default, since they are 
                    711: only effective for certain input files. Other input files compile more slowly. \
                    712: 
                    713: The first time the compiler must build a call to a member function (or 
                    714: reference to a data member), it must (1) determine whether the class 
                    715: implements member functions of that name; (2) resolve which member function to 
                    716: call (which involves figuring out what sorts of type conversions need to be 
                    717: made); and (3) check the visibility of the member function to the caller. All 
                    718: of this adds up to slower compilation. Normally, the second time a call is 
                    719: made to that member function (or reference to that data member), it must go 
                    720: through the same lengthy process again. This means that code like this: \
                    721: {\f1\fs24 
                    722: cout << "This " << p << " has " << n << " legs.\\n"; }\
                    723: \
                    724:  makes six passes through 
                    725: all three steps. By using a software cache, a ``hit'' significantly reduces 
                    726: this cost. Unfortunately, using the cache introduces another layer of 
                    727: mechanisms which must be implemented, and so incurs its own overhead. {\f4\fs24 
                    728: -fmemoize-lookups} enables the software cache. \
                    729: Because access privileges 
                    730: (visibility) to members and member functions may differ from one function 
                    731: context to the next, G++ may need to flush the cache. With the {\f4\fs24 
                    732: -fmemoize-lookups} flag, the cache is flushed after every function that is 
                    733: compiled. The {\f4\fs24 -fsave-memoized} flag enables the same software cache, but when 
                    734: the compiler determines that the context of the last function compiled would 
                    735: yield the same access privileges of the next function to compile, it preserves 
                    736: the cache. This is most helpful when defining many member functions for the 
                    737: same class: with the exception of member functions which are friends of other 
                    738: classes, each member function has exactly the same access privileges as every 
                    739: other, and the cache need not be flushed. \
                    740: \
                    741: {\f1\fs24 -fno-strict-prototype} Treat a 
                    742: function declaration with no arguments, such as {\f4\fs24 int foo ();}, as C would treat 
                    743: it---as saying nothing about the number of arguments or their types. Normally, 
                    744: such a declaration in C++ means that the function {\f1\fs24 foo} takes no arguments. \
                    745: \
                    746: {\f1\fs24 
                    747: -fnonnull-objects} Assume that objects reached through references are not null. \
                    748: 
                    749: Normally, GNU C++ makes conservative assumptions about objects reached through 
                    750: references. For example, the compiler must check that {\f1\fs24 a} is not null in code 
                    751: like the following: \
                    752: {\f1\fs24 obj &a = g (); }\
                    753: {\f1\fs24 a.f (2); }\
                    754: \
                    755: Checking that references of this 
                    756: sort have non-null values requires extra code, however, and it is unnecessary 
                    757: for many programs. You can use {\f4\fs24 -fnonnull-objects} to omit the checks for null, 
                    758: if your program doesn't require checking. \
                    759: \
                    760: {\f1\fs24 -fthis-is-variable} Permit assignment 
                    761: to {\f1\fs24 this}. The incorporation of user-defined free store management into C++ has 
                    762: made assignment to {\f4\fs24 this} an anachronism. Therefore, by default it is invalid to 
                    763: assign to {\f1\fs24 this} within a class member function; that is, GNU C++ treats the 
                    764: type of {\f4\fs24 this} in a member function of class {\f1\fs24 X} to be {\f4\fs24 X *const}. However, for 
                    765: backwards compatibility, you can make it valid with {\f4\fs24 -fthis-is-variable}. \
                    766: \
                    767: {\f1\fs24 
                    768: -nostdinc++} Do not search for header files in the standard directories 
                    769: specific to C++, but do still search the other standard directories. (This 
                    770: option is used when building libg++.) \
                    771: \
                    772: {\f1\fs24 -traditional} For C++ programs (in 
                    773: addition to the effects that apply to both C and C++), this has the same 
                    774: effect as {\f4\fs24 -fthis-is-variable}. {See ` Options Controlling C Dialect' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {C Dialect Options;}
                    775: ,}.. \
                    776: \
                    777: In addition, these optimization, warning, and 
                    778: code generation options have meanings only for C++ programs: \
                    779: \
                    780: {\f1\fs24 
                    781: -fno-default-inline} Do not assume {\f4\fs24 inline} for functions defined inside a class 
                    782: scope. {See `Options That Control Optimization' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Optimize Options;}
                    783: ,}.. \
                    784: \
                    785: {\f1\fs24 -Wenum-clash} \
                    786: {\f1\fs24 -Woverloaded-virtual} \
                    787: {\f1\fs24 -Wtemplate-debugging} Warnings that 
                    788: apply only to C++ programs. {See `Options to Request or Suppress Warnings' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Warning
                    789: Options;}
                    790: ,}.. \
                    791: \
                    792: {\f1\fs24 +e{\i n}} Control how virtual function definitions are 
                    793: used, in a fashion compatible with {\f1\fs24 cfront} 1.x. {See `Options for
                    794: Code Generation Conventions' {\NeXTHelpLink \markername ;\linkFilename /build/cc_proj/cc/cc/invoke.rtf;\linkMarkername {Code Gen Options;}
                    795: ,}.. \
                    796: \
                    797: {{\NeXTHelpMarker \markername Warning Options;}
                    798: ,}{\b\fs48\f4 1.6 Options to Request or 
                    799: Suppress Warnings}\
                    800: \
                    801: Warnings are diagnostic messages that report constructions 
                    802: which are not inherently erroneous but which are risky or suggest there may 
                    803: have been an error. \
                    804: You can request many specific warnings with options 
                    805: beginning {\f4\fs24 -W}, for example {\f4\fs24 -Wimplicit} to request warnings on implicit 
                    806: declarations. Each of these specific warning options also has a negative form 
                    807: beginning {\f4\fs24 -Wno-} to turn off warnings; for example, {\f4\fs24 -Wno-implicit}. This manual 
                    808: lists only one of the two forms, whichever is not the default. \
                    809: These options 
                    810: control the amount and kinds of warnings produced by GNU CC: \
                    811: \
                    812: {\f1\fs24 -fsyntax-only} 
                    813: Check the code for syntax errors, but don't do anything beyond that. \
                    814: \
                    815: {\f1\fs24 -w} 
                    816: Inhibit all warning messages. \
                    817: \
                    818: {\f1\fs24 -Wno-import} Inhibit warning messages about the 
                    819: use of {\f4\fs24 #import}. \
                    820: \
                    821: {\f1\fs24 -pedantic} Issue all the warnings demanded by strict ANSI 
                    822: standard C; reject all programs that use forbidden extensions. \
                    823: Valid ANSI 
                    824: standard C programs should compile properly with or without this option 
                    825: (though a rare few will require {\f4\fs24 -ansi}). However, without this option, certain 
                    826: GNU extensions and traditional C features are supported as well. With this 
                    827: option, they are rejected. \
                    828: {\f4\fs24 -pedantic} does not cause warning messages for use 
                    829: of the alternate keywords whose names begin and end with {\f4\fs24 __}. Pedantic warnings 
                    830: are also disabled in the expression that follows {\f1\fs24 __extension__}. However, only 
                    831: system header files should use these escape routes; application programs 
                    832: should avoid them. {See `' {\NeXTHelpLink \markername ;\linkFilename .
                    833: ation programs should avoid them.
                    834: ld use
                    835: ic
                    836: ;\linkMarkername {Alternate Keywords;}
                    837: ,}.. \
                    838: This option is not intended to be ; it exists only to 
                    839: satisfy \
                    840: \
                    841: \
                    842: \
                    843: \
                    844: \
                    845: \
                    846: \
                    847: \
                    848: \
                    849: \
                    850: \
                    851: \
                    852: \
                    853: \
                    854: \
                    855: \
                    856: \
                    857: \
                    858: \
                    859: \
                    860: \
                    861: \
                    862: \
                    863: \
                    864: \
                    865: \
                    866: \
                    867: \
                    868: \
                    869: \
                    870: \
                    871: \
                    872: \
                    873: \
                    874: \
                    875: \
                    876: \
                    877: \
                    878: \
                    879: \
                    880: \
                    881: \
                    882: \
                    883: \
                    884: \
                    885: \
                    886: \
                    887: \
                    888: \
                    889: \
                    890: \
                    891: \
                    892: \
                    893: \
                    894: \
                    895: \
                    896: \
                    897: \
                    898: \
                    899: \
                    900: \
                    901: \
                    902: \
                    903: \
                    904: \
                    905: \
                    906: \
                    907: \
                    908: \
                    909: \
                    910: \
                    911: \
                    912: \
                    913: \
                    914: \
                    915: \
                    916: \
                    917: \
                    918: \
                    919: \
                    920: \
                    921: \
                    922: \
                    923: \
                    924: \
                    925: \
                    926: \
                    927: \
                    928: \
                    929: \
                    930: \
                    931: \
                    932: \
                    933: \
                    934: \
                    935: \
                    936: \
                    937: \
                    938: \
                    939: \
                    940: \
                    941: \
                    942: \
                    943: \
                    944: \
                    945: \
                    946: \
                    947: \
                    948: \
                    949: \
                    950: \
                    951: \
                    952: \
                    953: \
                    954: \
                    955: \
                    956: \
                    957: \
                    958: \
                    959: \
                    960: \
                    961: \
                    962: \
                    963: \
                    964: \
                    965: \
                    966: \
                    967: \
                    968: \
                    969: \
                    970: \
                    971: \
                    972: \
                    973: \
                    974: \
                    975: \
                    976: \
                    977: \
                    978: \
                    979: \
                    980: \
                    981: \
                    982: \
                    983: \
                    984: \
                    985: \
                    986: \
                    987: \
                    988: \
                    989: \
                    990: \
                    991: \
                    992: \
                    993: \
                    994: \
                    995: \
                    996: \
                    997: \
                    998: \
                    999: \
                   1000: \
                   1001: \
                   1002: \
                   1003: \
                   1004: \
                   1005: \
                   1006: \
                   1007: \
                   1008: \
                   1009: \
                   1010: \
                   1011: \
                   1012: \
                   1013: \
                   1014: \
                   1015: \
                   1016: \
                   1017: \
                   1018: \
                   1019: \
                   1020: \
                   1021: \
                   1022: \
                   1023: \
                   1024: \
                   1025: \
                   1026: \
                   1027: \
                   1028: \
                   1029: \
                   1030: \
                   1031: \
                   1032: \
                   1033: \
                   1034: \
                   1035: \
                   1036: \
                   1037: \
                   1038: \
                   1039: \
                   1040: \
                   1041: \
                   1042: \
                   1043: \
                   1044: \
                   1045: \
                   1046: \
                   1047: \
                   1048: \
                   1049: \
                   1050: \
                   1051: \
                   1052: \
                   1053: \
                   1054: \
                   1055: \
                   1056: \
                   1057: \
                   1058: \
                   1059: \
                   1060: {{\NeXTHelpMarker \markername M680x0 Options;}
                   1061: ,}{\b\fs32\f4 M680x0 Options}\
                   1062: \
                   1063: These are the {\f4\fs24 -m} options defined for the 68000 series. 
                   1064: The default values for these options depends on which style of 68000 was 
                   1065: selected when the compiler was configured; the defaults for the most common 
                   1066: choices are given below. \
                   1067: \
                   1068: {\f1\fs24 -m68000} \
                   1069: {\f1\fs24 -mc68000} Generate output for a 68000. This is 
                   1070: the default when the compiler is configured for 68000-based systems. \
                   1071: \
                   1072: {\f1\fs24 -m68020} \
                   1073: {\f1\fs24 
                   1074: -mc68020} Generate output for a 68020. This is the default when the compiler is 
                   1075: configured for 68020-based systems. \
                   1076: \
                   1077: {\f1\fs24 -m68881} Generate output containing 68881 
                   1078: instructions for floating point. This is the default for most 68020 systems 
                   1079: unless {\f4\fs24 -nfp} was specified when the compiler was configured. \
                   1080: \
                   1081: {\f1\fs24 -m68030} Generate 
                   1082: output for a 68030. This is the default when the compiler is configured for 
                   1083: 68030-based systems. \
                   1084: \
                   1085: {\f1\fs24 -m68040} Generate output for a 68040. This is the default 
                   1086: when the compiler is configured for 68040-based systems. \
                   1087: This option inhibits 
                   1088: the use of 68881/68882 instructions that have to be emulated by software on 
                   1089: the 68040. If your 68040 does not have code to emulate those instructions, use {\f4\fs24 
                   1090: -m68040}. \
                   1091: \
                   1092: {\f1\fs24 -m68020-40} Generate output for a 68040, without using any of the new 
                   1093: instructions. This results in code which can run relatively efficiently on 
                   1094: either a 68020/68881 or a 68030 or a 68040. The generated code does use the 
                   1095: 68881 instructions that are emulated on the 68040. \
                   1096: \
                   1097: {\f1\fs24 -mfpa} Generate output 
                   1098: containing Sun FPA instructions for floating point. \
                   1099: \
                   1100: {\f1\fs24 -msoft-float} Generate 
                   1101: output containing library calls for floating point. {\b Warning:} the requisite 
                   1102: libraries are not part of GNU CC. Normally the facilities of the machine's 
                   1103: usual C compiler are used, but this can't be done directly in 
                   1104: cross-compilation. You must make your own arrangements to provide suitable 
                   1105: library functions for cross-compilation. \
                   1106: \
                   1107: {\f1\fs24 -mshort} Consider type {\f1\fs24 int} to be 16 
                   1108: bits wide, like {\f1\fs24 short int}. \
                   1109: \
                   1110: {\f1\fs24 -mnobitfield} Do not use the bit-field instructions. 
                   1111: The {\f4\fs24 -m68000} option implies {\f4\fs24 -mnobitfield}. \
                   1112: \
                   1113: {\f1\fs24 -mbitfield} Do use the bit-field 
                   1114: instructions. The {\f4\fs24 -m68020} option implies {\f4\fs24 -mbitfield}. This is the default if 
                   1115: you use a configuration designed for a 68020. \
                   1116: \
                   1117: {\f1\fs24 -mrtd} Use a different 
                   1118: function-calling convention, in which functions that take a fixed number of 
                   1119: arguments return with the {\f1\fs24 rtd} instruction, which pops their arguments while 
                   1120: returning. This saves one instruction in the caller since there is no need to 
                   1121: pop the arguments there. \
                   1122: This calling convention is incompatible with the one 
                   1123: normally used on Unix, so you cannot use it if you need to call libraries 
                   1124: compiled with the Unix compiler. \
                   1125: Also, you must provide function prototypes 
                   1126: for all functions that take variable numbers of arguments (including {\f1\fs24 printf}); 
                   1127: otherwise incorrect code will be generated for calls to those functions. \
                   1128: In 
                   1129: addition, seriously incorrect code will result if you call a function with too 
                   1130: many arguments. (Normally, extra arguments are harmlessly ignored.) \
                   1131: The {\f1\fs24 rtd} 
                   1132: instruction is supported by the 68010 and 68020 processors, but not by the 
                   1133: 68000. \
                   1134: \
                   1135: {{\NeXTHelpMarker \markername VAX Options;}
                   1136: ,}{\b\fs32\f4 VAX Options}\
                   1137: \
                   1138: These {\f4\fs24 -m} options are defined for the Vax: \
                   1139: \
                   1140: {\f1\fs24 -munix} Do not 
                   1141: output certain jump instructions ({\f1\fs24 aobleq} and so on) that the Unix assembler 
                   1142: for the Vax cannot handle across long ranges. \
                   1143: \
                   1144: {\f1\fs24 -mgnu} Do output those jump 
                   1145: instructions, on the assumption that you will assemble with the GNU assembler. \
                   1146: \
                   1147: {\f1\fs24 
                   1148: -mg} Output code for g-format floating point numbers instead of d-format. \
                   1149: \
                   1150: {{\NeXTHelpMarker \markername SPARC Options;}
                   1151: ,}{\b\fs32\f4 SPARC 
                   1152: Options}\
                   1153: \
                   1154: These {\f4\fs24 -m} switches are supported on the SPARC: \
                   1155: \
                   1156: {\f1\fs24 -mfpu} \
                   1157: {\f1\fs24 -mhard-float} 
                   1158: Generate output containing floating point instructions. This is the default. \
                   1159: \
                   1160: {\f1\fs24 
                   1161: -mno-fpu} \
                   1162: {\f1\fs24 -msoft-float} Generate output containing library calls for floating 
                   1163: point. {\b Warning:} there is no GNU floating-point library for SPARC. Normally the 
                   1164: facilities of the machine's usual C compiler are used, but this cannot be done 
                   1165: directly in cross-compilation. You must make your own arrangements to provide 
                   1166: suitable library functions for cross-compilation. \
                   1167: {\f4\fs24 -msoft-float} changes the 
                   1168: calling convention in the output file; therefore, it is only useful if you 
                   1169: compile {\i all} of a program with this option. In particular, you need to compile `{\f1\fs24 
                   1170: libgcc.a}', the library that comes with GNU CC, with {\f4\fs24 -msoft-float} in order for 
                   1171: this to work. \
                   1172:  \
                   1173: \
                   1174: \
                   1175: \
                   1176: \
                   1177: \
                   1178: \
                   1179: \
                   1180: \
                   1181: \
                   1182: \
                   1183: \
                   1184: \
                   1185: \
                   1186: \
                   1187: \
                   1188: \
                   1189: \
                   1190: \
                   1191: \
                   1192: \
                   1193: \
                   1194: \
                   1195: \
                   1196: \
                   1197: \
                   1198: \
                   1199: \
                   1200: \
                   1201: \
                   1202: \
                   1203: \
                   1204: \
                   1205: \
                   1206: \
                   1207: \
                   1208: \
                   1209: \
                   1210: \
                   1211: \
                   1212: \
                   1213: \
                   1214: \
                   1215: \
                   1216: \
                   1217: \
                   1218: \
                   1219: \
                   1220: \
                   1221: \
                   1222: \
                   1223: \
                   1224: \
                   1225: \
                   1226: \
                   1227: \
                   1228: \
                   1229: \
                   1230: \
                   1231: \
                   1232: \
                   1233: \
                   1234: \
                   1235: \
                   1236: \
                   1237: \
                   1238: \
                   1239: \
                   1240: \
                   1241: \
                   1242: \
                   1243: \
                   1244: \
                   1245: \
                   1246: \
                   1247: \
                   1248: \
                   1249: \
                   1250: \
                   1251: \
                   1252: \
                   1253: \
                   1254: \
                   1255: \
                   1256: \
                   1257: \
                   1258: \
                   1259: \
                   1260: \
                   1261: \
                   1262: \
                   1263: \
                   1264: \
                   1265: \
                   1266: \
                   1267: \
                   1268: \
                   1269: \
                   1270: \
                   1271: \
                   1272: \
                   1273: \
                   1274: \
                   1275: \
                   1276: \
                   1277: \
                   1278: \
                   1279: \
                   1280: \
                   1281: \
                   1282: \
                   1283: \
                   1284: \
                   1285: \
                   1286: \
                   1287: \
                   1288: \
                   1289: \
                   1290: \
                   1291: \
                   1292: \
                   1293: \
                   1294: \
                   1295: \
                   1296: \
                   1297: \
                   1298: \
                   1299: \
                   1300: \
                   1301: \
                   1302: \
                   1303: \
                   1304: \
                   1305: \
                   1306: \
                   1307: \
                   1308: \
                   1309: \
                   1310: \
                   1311: \
                   1312: \
                   1313: \
                   1314: \
                   1315: \
                   1316: \
                   1317: \
                   1318: \
                   1319: \
                   1320: \
                   1321: \
                   1322: \
                   1323: \
                   1324: \
                   1325: \
                   1326: \
                   1327: \
                   1328: \
                   1329: \
                   1330: \
                   1331: \
                   1332: \
                   1333: \
                   1334: \
                   1335: \
                   1336: \
                   1337: \
                   1338: \
                   1339: \
                   1340: \
                   1341: \
                   1342: \
                   1343: \
                   1344: \
                   1345: \
                   1346: \
                   1347: \
                   1348: \
                   1349: \
                   1350: \
                   1351: \
                   1352: \
                   1353: \
                   1354: \
                   1355: \
                   1356: \
                   1357: \
                   1358: \
                   1359: \
                   1360: \
                   1361: \
                   1362: \
                   1363: \
                   1364: \
                   1365: \
                   1366: \
                   1367: \
                   1368: \
                   1369: \
                   1370: \
                   1371: \
                   1372: \
                   1373: \
                   1374: \
                   1375: \
                   1376: \
                   1377: \
                   1378: \
                   1379: \
                   1380: \
                   1381: \
                   1382: \
                   1383: \
                   1384: \
                   1385: \
                   1386: \
                   1387: \
                   1388: \
                   1389: \
                   1390: \
                   1391: \
                   1392: \
                   1393: \
                   1394: \
                   1395: \
                   1396: }

unix.superglobalmegacorp.com

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