-->
Page 176
_fmemorize_lookups _fno_default_inline _fno_defer_pop _fno_function_cse _fno_inline _fno_peephole _fomit_frame_pointer _frerun_cse_after_loop _fschedule_insns _fschedule_insns2 _fstrength_reduce _fthread_jumps _funroll_all_loops _funroll_loops _O _O2
Preprocessor Options
_Aassertion _C _dD _dM _dN _Dmacro[=defn ]_E _H_ idirafter dir _include file _imacros file _iprefix file _ iwithprefix dir _M _MD _MM _MMD _nostdinc _P _Umacro _undef
Assembler Option
_Wa,option
Linker Options
_llibrary _nostartfiles _nostdlib _static _shared _symbolic _ Xlinkernoption _Wl,option _u symbol
Directory Options
_Bprefix _Idir _I_ _Ldir
Target Options
_b machine _V version
Configuration-Dependent Options
M680x0 Options
_m68000_m68020 _m68020_40_m68030_m68040_m68881 _mbitfield _mc68000 _mc68020 _mfpa _mnobitfield _mrtd _mshort _msoft_float
VAX Options
_mg _mgnu _munix
SPARC Options
_mepilogue _mfpu _mhard_float _mno_fpu _mno_epilogue _msoft_float _msparclite _mv8 _msupersparc _mcypress
Convex Options
_margcount _mc1 _mc2 _mnoargcount
AMD29K Options
_m29000_m29050 _mbw _mdw _mkernel_registers _mlarge _mnbw _mnodw _msmall _mstack_check _muser_registers
M88K Options
_m88000 _m88100 _m88110 _mbig_pic _mcheck_zero_division _mhandle_large_shift _midentify_revision _mno_check_zero_division _mno_ocs_debug_info _mno_ocs_frame_position _mno_optimize_arg_area _mno_serialize_volatile _mno_underscores _mocs_debug_info _mocs_frame_position _moptimize_arg_area _mserialize_volatile _mshort_data_num _msvr3 _msvr4 _mtrap_large_shift _muse_div_instruction _mversion_03.00 _mwarn_passed_structs
Page 177
RS6000 Options
_mfp_in_toc _mno_fop_in_toc
RT Options
_mcall_lib_mul _mfp_arg_in_fpregs _mfp_arg_in_gregs _mfull_fp_blocks _mhc_struct_return _min_line_mul _mminimum_fp_blocks _mnohc_struct_return
MIPS Options
_mcpu=cpu type _mips2 _mips3 _mint64 _mlong64 _mlonglong128 _mmips_as _mgas _mrnames _mno_rnames _mgpopt _mno_gpopt _mstats _mno_stats _mmemcpy _mno_memcpy _mno_mips_tfile _mmips_tfile _msoft_float _mhard_float _mabicalls _mno_abicalls _mhalf_pic _mno_half_pic _G num _nocpp
i386 Options
_m486 _mno_486 _msoft_float _mno_fp_ret_in_387
HPPA Options
_mpa_risc_1_0 _mpa_risc_1_1 _mkernel _mshared_libs _ mno_shared_libs _mlong_calls _mdisable_fpregs _mdisable_ indexing _mtrailing_colon
i960 Options
_mcpu-type _mnumerics _msoft_float _mleaf_procedures _mno_leaf_procedures _mtail_call _mno_tail_call _mcomplex_addr _mno_complex_addr _mcode_align _mno_code_align _mic_compat _mic2.0_compat _mic3.0_compat _masm_compat _mintel_asm _mstrict_align _mno_strict_align _mold_align _mno_old_align
DEC Alpha Options
_mfp_regs _mno_fp_regs _mno_soft_float _msoft_float
System V Options
_G _Qy _Qn _YP,paths _Ym,dir
Code-Generation Options
_fcall_saved_reg _fcall_used_ reg _ffixed_reg _finhibit_ size_directive _fnonnull_ objects _fno_common _fno_ident _fno_gnu_linker _fpcc_struct_ return _fpic _fPIC _freg_ struct_ return _fshared_data _ fshort_enums _fshort_double _ fvolatile _fvolatile_global _ fverbose_asm
Page 178
OVERALL OPTIONS
_x language | Specify explicitly the language for the following input files (rather than choosing a default based on the filename suffix). This option applies to all following input files until the next _x option. Possible values of language are c, objective_c, c_header, c++, cpp_output, assembler, and assembler_with_cpp. |
_x none | Turn off any specification of a language, so that subsequent files are handled according to their filename suffixes (as they are if _x has not been used at all). |
If you want only some of the four stages (preprocess, compile, assemble, link), you can use _x (or filename suffixes) to tell gcc where to start, and one of the options _c, _S, or _E to say where gcc is to stop. Note that some combinations (for example, _x cpp_output _E) instruct gcc to do nothing at all.
_c |
Compile or assemble the source files, but do not link. The compiler output is an object file
corresponding to each source file. By default, gcc makes the object filename for a source file by replacing the suffix .c, .i, .s, and so on, with .o. Use _o to select another name. gcc ignores any unrecognized input files (those that do not require compilation or assembly) with the _c option. |
_S |
Stop after the stage of compilation proper; do not assemble. The output is an assembler code file for
each nonassembler input file specified. By default, gcc makes the assembler filename for a source file by replacing the suffix .c, .i, and so on, with .s. Use _o to select another name. gcc ignores any input files that don't require compilation. |
_E |
Stop after the preprocessing stage; do not run the compiler proper. The output is preprocessed
source code, which is sent to the standard output. gcc ignores input files that don't require preprocessing. |
_o file | Place output in file file. This applies regardless to whatever sort of output gcc is producing, whether it be an executable file, an object file, an assembler file, or preprocessed C code. Since only one output file can be specified, it does not make sense to use _o when compiling more than one input file, unless you are producing an executable file as output. If you do not specify _o, the default is to put an executable file in a.out, the object file for source.suffix in source.o, its assembler file in source.s, and all preprocessed C source on standard output. |
_v | Print (on standard error output) the commands executed to run the stages of compilation. Also print the version number of the compiler driver program and of the preprocessor and the compiler proper. |
_pipe | Use pipes rather than temporary files for communication between the various stages of compilation. This fails to work on some systems where the assembler cannot read from a pipe; but the GNU assembler has no trouble. |
LANGUAGE OPTIONS
The following options control the dialect of C that the compiler accepts:
_ansi | Support all ANSI standard C programs. This turns off certain features of GNU C that are incompatible with ANSI C, such as the asm, inline, and typeof keywords, and predefined macros such as unix and vax that identify the type of system you are using. It also enables the undesirable and rarely used ANSI trigraph feature, and disallows $ as part of identifiers. The alternate keywords __asm__, __extension__, __inline__, and __typeof__ continue to work despite _ansi. You would not want to use them in an ANSI C program, of course, but it is useful to put them in header files that might be included in compilations done with _ansi. Alternate predefined macros such as __unix__ and __vax__ are also available, with or without _ansi. The _ansi option does not cause non-ANSI programs to be rejected gratuitously. For that, _pedantic is required in addition to _ansi. |