Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions

  




 

 

Chapter 4. GCC Command Options

When you invoke GCC, it normally does preprocessing, compilation, assembly and linking. The "overall options" allow you to stop this process at an intermediate stage. For example, the -c option says not to run the linker. Then the output consists of object files output by the assembler.

Other options are passed on to one stage of processing. Some options control the preprocessor and others the compiler itself. Yet other options control the assembler and linker; most of these are not documented here, since you rarely need to use any of them.

Most of the command line options that you can use with GCC are useful for C programs; when an option is only useful with another language (usually C++), the explanation says so explicitly. If the description for a particular option does not mention a source language, you can use that option with all supported languages.

Section 4.3 Compiling C++ Programs, for a summary of special options for compiling C++ programs.

The gcc program accepts options and file names as operands. Many options have multi-letter names; therefore multiple single-letter options may not be grouped: -dr is very different from -d -r.

You can mix options and other arguments. For the most part, the order you use doesn't matter. Order does matter when you use several options of the same kind; for example, if you specify -L more than once, the directories are searched in the order specified.

Many options have long names starting with -f or with -W--for example, -fforce-mem, -fstrength-reduce, -Wformat and so on. Most of these have both positive and negative forms; the negative form of -ffoo would be -fno-foo. This manual documents only one of these two forms, whichever one is not the default.

4.1. Option Summary

Here is a summary of all the options, grouped by type. Explanations are in the following sections.

Overall Options

Section 4.2 Options Controlling the Kind of Output.
-c  -S  -E  -o file  -pipe  -pass-exit-codes  
-x language  -v  -###  --help  --target-help  --version

C Language Options

Section 4.4 Options Controlling C Dialect.
-ansi  -std=standard  -aux-info filename 
-fno-asm  -fno-builtin  -fno-builtin-function 
-fhosted  -ffreestanding  -fms-extensions 
-trigraphs  -no-integrated-cpp  -traditional  -traditional-cpp 
-fallow-single-precision  -fcond-mismatch 
-fsigned-bitfields  -fsigned-char 
-funsigned-bitfields  -funsigned-char 
-fwritable-strings

C++ Language Options

Section 4.5 Options Controlling C++ Dialect.
-fabi-version=n  -fno-access-control  -fcheck-new 
-fconserve-space  -fno-const-strings 
-fno-elide-constructors 
-fno-enforce-eh-specs 
-ffor-scope  -fno-for-scope  -fno-gnu-keywords 
-fno-implicit-templates 
-fno-implicit-inline-templates 
-fno-implement-inlines  -fms-extensions 
-fno-nonansi-builtins  -fno-operator-names 
-fno-optional-diags  -fpermissive 
-frepo  -fno-rtti  -fstats  -ftemplate-depth-n 
-fno-threadsafe-statics  -fuse-cxa-atexit  -fno-weak  -nostdinc++ 
-fno-default-inline  -fvisibility-inlines-hidden 
-Wabi  -Wctor-dtor-privacy 
-Wnon-virtual-dtor  -Wreorder 
-Weffc++  -Wno-deprecated 
-Wno-non-template-friend  -Wold-style-cast 
-Woverloaded-virtual  -Wno-pmf-conversions 
-Wsign-promo  -Wsynth

Objective-C Language Options

Section 4.6 Options Controlling Objective-C Dialect.
-fconstant-string-class=class-name 
-fgnu-runtime  -fnext-runtime 
-fno-nil-receivers 
-fobjc-exceptions 
-freplace-objc-classes 
-fzero-link 
-gen-decls 
-Wno-protocol  -Wselector -Wundeclared-selector

Language Independent Options

Section 4.7 Options to Control Diagnostic Messages Formatting.
-fmessage-length=n  
-fdiagnostics-show-location=[once|every-line]

Warning Options

Section 4.8 Options to Request or Suppress Warnings.
-fsyntax-only  -pedantic  -pedantic-errors 
-w  -Wextra  -Wall  -Waggregate-return 
-Wcast-align  -Wcast-qual  -Wchar-subscripts  -Wcomment 
-Wconversion  -Wno-deprecated-declarations 
-Wdisabled-optimization  -Wno-div-by-zero  -Wendif-labels 
-Werror  -Werror-implicit-function-declaration 
-Wfloat-equal  -Wformat  -Wformat=2 
-Wno-format-extra-args -Wformat-nonliteral 
-Wformat-security  -Wformat-y2k 
-Wimplicit  -Wimplicit-function-declaration  -Wimplicit-int 
-Wimport  -Wno-import  -Winit-self  -Winline 
-Wno-invalid-offsetof  -Winvalid-pch 
-Wlarger-than-len  -Wlong-long 
-Wmain  -Wmissing-braces 
-Wmissing-format-attribute  -Wmissing-noreturn 
-Wno-multichar  -Wnonnull  -Wpacked  -Wpadded 
-Wparentheses  -Wpointer-arith  -Wredundant-decls 
-Wreturn-type  -Wsequence-point  -Wshadow 
-Wsign-compare  -Wstrict-aliasing 
-Wswitch  -Wswitch-default  -Wswitch-enum 
-Wsystem-headers  -Wtrigraphs  -Wundef  -Wuninitialized 
-Wunknown-pragmas  -Wunreachable-code 
-Wunused  -Wunused-function  -Wunused-label  -Wunused-parameter 
-Wunused-value  -Wunused-variable  -Wwrite-strings

C-only Warning Options

-Wbad-function-cast  -Wmissing-declarations 
-Wmissing-prototypes  -Wnested-externs  -Wold-style-definition 
-Wstrict-prototypes  -Wtraditional 
-Wdeclaration-after-statement

Debugging Options

Section 4.9 Options for Debugging Your Program or GCC.
-dletters  -dumpspecs  -dumpmachine  -dumpversion 
-fdump-unnumbered  -fdump-translation-unit[-n] 
-fdump-class-hierarchy[-n] 
-fdump-tree-original[-n]  
-fdump-tree-optimized[-n] 
-fdump-tree-inlined[-n] 
-feliminate-dwarf2-dups -feliminate-unused-debug-types 
-feliminate-unused-debug-symbols -fmem-report -fprofile-arcs 
-frandom-seed=string -fsched-verbose=n 
-ftest-coverage  -ftime-report 
-g  -glevel  -gcoff -gdwarf-2 
-ggdb  -gstabs  -gstabs+  -gvms  -gxcoff  -gxcoff+ 
-p  -pg  -print-file-name=library  -print-libgcc-file-name 
-print-multi-directory  -print-multi-lib 
-print-prog-name=program  -print-search-dirs  -Q 
-save-temps  -time

Optimization Options

Section 4.10 Options That Control Optimization.
-falign-functions=n  -falign-jumps=n 
-falign-labels=n  -falign-loops=n  
-fbranch-probabilities -fprofile-values -fvpt -fbranch-target-load-optimize 
-fbranch-target-load-optimize2 -fcaller-saves  -fcprop-registers 
-fcse-follow-jumps  -fcse-skip-blocks  -fdata-sections 
-fdelayed-branch  -fdelete-null-pointer-checks 
-fexpensive-optimizations  -ffast-math  -ffloat-store 
-fforce-addr  -fforce-mem  -ffunction-sections 
-fgcse  -fgcse-lm  -fgcse-sm  -fgcse-las  -floop-optimize 
-fcrossjumping  -fif-conversion  -fif-conversion2 
-finline-functions  -finline-limit=n  -fkeep-inline-functions 
-fkeep-static-consts  -fmerge-constants  -fmerge-all-constants 
-fmove-all-movables  -fnew-ra  -fno-branch-count-reg 
-fno-default-inline  -fno-defer-pop 
-fno-function-cse  -fno-guess-branch-probability 
-fno-inline  -fno-math-errno  -fno-peephole  -fno-peephole2 
-funsafe-math-optimizations  -ffinite-math-only 
-fno-trapping-math  -fno-zero-initialized-in-bss 
-fomit-frame-pointer  -foptimize-register-move 
-foptimize-sibling-calls  -fprefetch-loop-arrays 
-fprofile-generate -fprofile-use 
-freduce-all-givs  -fregmove  -frename-registers 
-freorder-blocks  -freorder-functions 
-frerun-cse-after-loop  -frerun-loop-opt 
-frounding-math -fschedule-insns  -fschedule-insns2 
-fno-sched-interblock  -fno-sched-spec  -fsched-spec-load 
-fsched-spec-load-dangerous  
-fsched-stalled-insns=n -sched-stalled-insns-dep=n 
-fsched2-use-superblocks 
-fsched2-use-traces  -fsignaling-nans 
-fsingle-precision-constant  
-fstrength-reduce  -fstrict-aliasing  -ftracer  -fthread-jumps 
-funroll-all-loops  -funroll-loops  -fpeel-loops 
-funswitch-loops  -fold-unroll-loops  -fold-unroll-all-loops 
--param name=value
-O  -O0  -O1  -O2  -O3  -Os

Preprocessor Options

Section 4.11 Options Controlling the Preprocessor.
-Aquestion=answer 
-A-question[=answer] 
-C  -dD  -dI  -dM  -dN 
-Dmacro[=defn]  -E  -H 
-idirafter dir 
-include file  -imacros file 
-iprefix file  -iwithprefix dir 
-iwithprefixbefore dir  -isystem dir 
-M  -MM  -MF  -MG  -MP  -MQ  -MT  -nostdinc  
-P  -fworking-directory  -remap 
-trigraphs  -undef  -Umacro  -Wp,option 
-Xpreprocessor option

Assembler Option

Section 4.12 Passing Options to the Assembler.
-Wa,option  -Xassembler option

Linker Options

Section 4.13 Options for Linking.
object-file-name  -llibrary 
-nostartfiles  -nodefaultlibs  -nostdlib -pie 
-s  -static  -static-libgcc  -shared  -shared-libgcc  -symbolic 
-Wl,option  -Xlinker option 
-u symbol

Directory Options

Section 4.14 Options for Directory Search.
-Bprefix  -Idir  -I-  -Ldir  -specs=file

Target Options

Section 4.16 Specifying Target Machine and Compiler Version.
-V version  -b machine

Machine Dependent Options

Section 4.17 Hardware Models and Configurations.

M680x0 Options
-m68000  -m68020  -m68020-40  -m68020-60  -m68030  -m68040 
-m68060  -mcpu32  -m5200  -m68881  -mbitfield  -mc68000  -mc68020   
-mnobitfield  -mrtd  -mshort  -msoft-float  -mpcrel 
-malign-int  -mstrict-align  -msep-data  -mno-sep-data 
-mshared-library-id=n  -mid-shared-library  -mno-id-shared-library

M68hc1x Options
-m6811  -m6812  -m68hc11  -m68hc12   -m68hcs12 
-mauto-incdec  -minmax  -mlong-calls  -mshort 
-msoft-reg-count=count

VAX Options
-mg  -mgnu  -munix

SPARC Options
-mcpu=cpu-type 
-mtune=cpu-type 
-mcmodel=code-model 
-m32  -m64  -mapp-regs  -mno-app-regs 
-mfaster-structs  -mno-faster-structs 
-mflat  -mno-flat  -mfpu  -mno-fpu 
-mhard-float  -msoft-float 
-mhard-quad-float  -msoft-quad-float 
-mimpure-text  -mno-impure-text  -mlittle-endian 
-mstack-bias  -mno-stack-bias 
-munaligned-doubles  -mno-unaligned-doubles 
-mv8plus  -mno-v8plus  -mvis  -mno-vis 
-mcypress  -mf930  -mf934 
-msparclite  -msupersparc  -mv8
-threads -pthreads

ARM Options
-mapcs-frame  -mno-apcs-frame 
-mapcs-26  -mapcs-32 
-mapcs-stack-check  -mno-apcs-stack-check 
-mapcs-float  -mno-apcs-float 
-mapcs-reentrant  -mno-apcs-reentrant 
-msched-prolog  -mno-sched-prolog 
-mlittle-endian  -mbig-endian  -mwords-little-endian 
-malignment-traps  -mno-alignment-traps 
-msoft-float  -mhard-float  -mfpe 
-mthumb-interwork  -mno-thumb-interwork 
-mcpu=name  -march=name  -mfpe=name  
-mstructure-size-boundary=n 
-mabort-on-noreturn 
-mlong-calls  -mno-long-calls 
-msingle-pic-base  -mno-single-pic-base 
-mpic-register=reg 
-mnop-fun-dllimport 
-mcirrus-fix-invalid-insns -mno-cirrus-fix-invalid-insns 
-mpoke-function-name 
-mthumb  -marm 
-mtpcs-frame  -mtpcs-leaf-frame 
-mcaller-super-interworking  -mcallee-super-interworking

MN10300 Options
-mmult-bug  -mno-mult-bug 
-mam33  -mno-am33 
-mam33-2  -mno-am33-2 
-mno-crt0  -mrelax

M32R/D Options
-m32r2 -m32rx -m32r 
-mdebug 
-malign-loops -mno-align-loops 
-missue-rate=number 
-mbranch-cost=number 
-mmodel=code-size-model-type 
-msdata=sdata-type 
-mno-flush-func -mflush-func=name 
-mno-flush-trap -mflush-trap=number 
-G num

RS/6000 and PowerPC Options
-mcpu=cpu-type 
-mtune=cpu-type 
-mpower  -mno-power  -mpower2  -mno-power2 
-mpowerpc  -mpowerpc64  -mno-powerpc 
-maltivec  -mno-altivec 
-mpowerpc-gpopt  -mno-powerpc-gpopt 
-mpowerpc-gfxopt  -mno-powerpc-gfxopt 
-mnew-mnemonics  -mold-mnemonics 
-mfull-toc   -mminimal-toc  -mno-fp-in-toc  -mno-sum-in-toc 
-m64  -m32  -mxl-call  -mno-xl-call  -mpe 
-malign-power  -malign-natural 
-msoft-float  -mhard-float  -mmultiple  -mno-multiple 
-mstring  -mno-string  -mupdate  -mno-update 
-mfused-madd  -mno-fused-madd  -mbit-align  -mno-bit-align 
-mstrict-align  -mno-strict-align  -mrelocatable 
-mno-relocatable  -mrelocatable-lib  -mno-relocatable-lib 
-mtoc  -mno-toc  -mlittle  -mlittle-endian  -mbig  -mbig-endian 
-mdynamic-no-pic 
-mprioritize-restricted-insns=priority 
-msched-costly-dep=dependence_type 
-minsert-sched-nops=scheme 
-mcall-sysv  -mcall-netbsd 
-maix-struct-return  -msvr4-struct-return 
-mabi=altivec  -mabi=no-altivec 
-mabi=spe  -mabi=no-spe 
-misel=yes  -misel=no 
-mspe=yes  -mspe=no 
-mfloat-gprs=yes  -mfloat-gprs=no 
-mprototype  -mno-prototype 
-msim  -mmvme  -mads  -myellowknife  -memb  -msdata 
-msdata=opt  -mvxworks  -mwindiss  -G num  -pthread

Darwin Options
-all_load  -allowable_client  -arch  -arch_errors_fatal 
-arch_only  -bind_at_load  -bundle  -bundle_loader 
-client_name  -compatibility_version  -current_version 
-dependency-file  -dylib_file  -dylinker_install_name 
-dynamic  -dynamiclib  -exported_symbols_list 
-filelist  -flat_namespace  -force_cpusubtype_ALL 
-force_flat_namespace  -headerpad_max_install_names 
-image_base  -init  -install_name  -keep_private_externs 
-multi_module  -multiply_defined  -multiply_defined_unused 
-noall_load  -nofixprebinding -nomultidefs  -noprebind  -noseglinkedit 
-pagezero_size  -prebind  -prebind_all_twolevel_modules 
-private_bundle  -read_only_relocs  -sectalign 
-sectobjectsymbols  -whyload  -seg1addr 
-sectcreate  -sectobjectsymbols  -sectorder 
-seg_addr_table  -seg_addr_table_filename  -seglinkedit 
-segprot  -segs_read_only_addr  -segs_read_write_addr 
-single_module  -static  -sub_library  -sub_umbrella 
-twolevel_namespace  -umbrella  -undefined 
-unexported_symbols_list  -weak_reference_mismatches 
-whatsloaded

MIPS Options
-EL  -EB  -march=arch  -mtune=arch 
-mips1  -mips2  -mips3  -mips4  -mips32  -mips32r2  -mips64 
-mips16  -mno-mips16  -mabi=abi  -mabicalls  -mno-abicalls 
-mxgot  -mno-xgot  -membedded-pic  -mno-embedded-pic 
-mgp32  -mgp64  -mfp32  -mfp64  -mhard-float  -msoft-float 
-msingle-float  -mdouble-float  -mint64  -mlong64  -mlong32 
-Gnum  -membedded-data  -mno-embedded-data 
-muninit-const-in-rodata  -mno-uninit-const-in-rodata 
-msplit-addresses  -mno-split-addresses  
-mexplicit-relocs  -mno-explicit-relocs  
-mrnames  -mno-rnames 
-mcheck-zero-division  -mno-check-zero-division 
-mmemcpy  -mno-memcpy  -mlong-calls  -mno-long-calls 
-mmad  -mno-mad  -mfused-madd  -mno-fused-madd  -nocpp 
-mfix-sb1  -mno-fix-sb1  -mflush-func=func 
-mno-flush-func  -mbranch-likely  -mno-branch-likely

i386 and x86-64 Options
-mtune=cpu-type  -march=cpu-type 
-mfpmath=unit 
-masm=dialect  -mno-fancy-math-387 
-mno-fp-ret-in-387  -msoft-float  -msvr3-shlib 
-mno-wide-multiply  -mrtd  -malign-double 
-mpreferred-stack-boundary=num 
-mmmx  -msse  -msse2 -msse3 -m3dnow 
-mthreads  -mno-align-stringops  -minline-all-stringops 
-mpush-args  -maccumulate-outgoing-args  -m128bit-long-double 
-m96bit-long-double  -mregparm=num  -momit-leaf-frame-pointer 
-mno-red-zone -mno-tls-direct-seg-refs 
-mcmodel=code-model 
-m32  -m64

HPPA Options
-march=architecture-type 
-mbig-switch  -mdisable-fpregs  -mdisable-indexing 
-mfast-indirect-calls  -mgas  -mgnu-ld   -mhp-ld 
-mjump-in-delay -mlinker-opt -mlong-calls 
-mlong-load-store  -mno-big-switch  -mno-disable-fpregs 
-mno-disable-indexing  -mno-fast-indirect-calls  -mno-gas 
-mno-jump-in-delay  -mno-long-load-store 
-mno-portable-runtime  -mno-soft-float 
-mno-space-regs  -msoft-float  -mpa-risc-1-0 
-mpa-risc-1-1  -mpa-risc-2-0  -mportable-runtime 
-mschedule=cpu-type  -mspace-regs  -msio  -mwsio 
-nolibdld  -static  -threads

Intel 960 Options
-mcpu-type  -masm-compat  -mclean-linkage 
-mcode-align  -mcomplex-addr  -mleaf-procedures 
-mic-compat  -mic2.0-compat  -mic3.0-compat 
-mintel-asm  -mno-clean-linkage  -mno-code-align 
-mno-complex-addr  -mno-leaf-procedures 
-mno-old-align  -mno-strict-align  -mno-tail-call 
-mnumerics  -mold-align  -msoft-float  -mstrict-align 
-mtail-call

DEC Alpha Options
-mno-fp-regs  -msoft-float  -malpha-as  -mgas 
-mieee  -mieee-with-inexact  -mieee-conformant 
-mfp-trap-mode=mode  -mfp-rounding-mode=mode 
-mtrap-precision=mode  -mbuild-constants 
-mcpu=cpu-type  -mtune=cpu-type 
-mbwx  -mmax  -mfix  -mcix 
-mfloat-vax  -mfloat-ieee 
-mexplicit-relocs  -msmall-data  -mlarge-data 
-msmall-text  -mlarge-text 
-mmemory-latency=time

DEC Alpha/VMS Options
-mvms-return-codes

H8/300 Options
-mrelax  -mh  -ms  -mn  -mint32  -malign-300

SH Options
-m1  -m2  -m2e  -m3  -m3e 
-m4-nofpu  -m4-single-only  -m4-single  -m4 
-m5-64media  -m5-64media-nofpu 
-m5-32media  -m5-32media-nofpu 
-m5-compact  -m5-compact-nofpu 
-mb  -ml  -mdalign  -mrelax 
-mbigtable  -mfmovd  -mhitachi  -mnomacsave 
-mieee  -misize  -mpadstruct  -mspace 
-mprefergot  -musermode

System V Options
-Qy  -Qn  -YP,paths  -Ym,dir

ARC Options
-EB  -EL 
-mmangle-cpu  -mcpu=cpu  -mtext=text-section 
-mdata=data-section  -mrodata=readonly-data-section

TMS320C3x/C4x Options
-mcpu=cpu  -mbig  -msmall  -mregparm  -mmemparm 
-mfast-fix  -mmpyi  -mbk  -mti  -mdp-isr-reload 
-mrpts=count  -mrptb  -mdb  -mloop-unsigned 
-mparallel-insns  -mparallel-mpy  -mpreserve-float

V850 Options
-mlong-calls  -mno-long-calls  -mep  -mno-ep 
-mprolog-function  -mno-prolog-function  -mspace 
-mtda=n  -msda=n  -mzda=n 
-mapp-regs  -mno-app-regs 
-mdisable-callt  -mno-disable-callt 
-mv850e1 
-mv850e 
-mv850  -mbig-switch

NS32K Options
-m32032  -m32332  -m32532  -m32081  -m32381 
-mmult-add  -mnomult-add  -msoft-float  -mrtd  -mnortd 
-mregparam  -mnoregparam  -msb  -mnosb 
-mbitfield  -mnobitfield  -mhimem  -mnohimem

AVR Options
-mmcu=mcu  -msize  -minit-stack=n  -mno-interrupts 
-mcall-prologues  -mno-tablejump  -mtiny-stack

MCore Options
-mhardlit  -mno-hardlit  -mdiv  -mno-div  -mrelax-immediates 
-mno-relax-immediates  -mwide-bitfields  -mno-wide-bitfields 
-m4byte-functions  -mno-4byte-functions  -mcallgraph-data 
-mno-callgraph-data  -mslow-bytes  -mno-slow-bytes  -mno-lsim 
-mlittle-endian  -mbig-endian  -m210  -m340  -mstack-increment

MMIX Options
-mlibfuncs  -mno-libfuncs  -mepsilon  -mno-epsilon  -mabi=gnu 
-mabi=mmixware  -mzero-extend  -mknuthdiv  -mtoplevel-symbols 
-melf  -mbranch-predict  -mno-branch-predict  -mbase-addresses 
-mno-base-addresses  -msingle-exit  -mno-single-exit

IA-64 Options
-mbig-endian  -mlittle-endian  -mgnu-as  -mgnu-ld  -mno-pic 
-mvolatile-asm-stop  -mb-step  -mregister-names  -mno-sdata 
-mconstant-gp  -mauto-pic  -minline-float-divide-min-latency 
-minline-float-divide-max-throughput 
-minline-int-divide-min-latency 
-minline-int-divide-max-throughput  -mno-dwarf2-asm 
-mfixed-range=register-range

D30V Options
-mextmem  -mextmemory  -monchip  -mno-asm-optimize 
-masm-optimize  -mbranch-cost=n  -mcond-exec=n

S/390 and zSeries Options
-mtune=cpu-type  -march=cpu-type 
-mhard-float  -msoft-float  -mbackchain  -mno-backchain -mkernel-backchain 
-msmall-exec  -mno-small-exec  -mmvcle -mno-mvcle 
-m64  -m31  -mdebug  -mno-debug  -mesa  -mzarch 
-mfused-madd  -mno-fused-madd 
-mwarn-framesize  -mwarn-dynamicstack  -mstack-size -mstack-guard

CRIS Options
-mcpu=cpu  -march=cpu  -mtune=cpu 
-mmax-stack-frame=n  -melinux-stacksize=n 
-metrax4  -metrax100  -mpdebug  -mcc-init  -mno-side-effects 
-mstack-align  -mdata-align  -mconst-align 
-m32-bit  -m16-bit  -m8-bit  -mno-prologue-epilogue  -mno-gotplt 
-melf  -maout  -melinux  -mlinux  -sim  -sim2 
-mmul-bug-workaround  -mno-mul-bug-workaround

PDP-11 Options
-mfpu  -msoft-float  -mac0  -mno-ac0  -m40  -m45  -m10 
-mbcopy  -mbcopy-builtin  -mint32  -mno-int16 
-mint16  -mno-int32  -mfloat32  -mno-float64 
-mfloat64  -mno-float32  -mabshi  -mno-abshi 
-mbranch-expensive  -mbranch-cheap 
-msplit  -mno-split  -munix-asm  -mdec-asm

Xstormy16 Options
-msim

Xtensa Options
-mconst16 -mno-const16 
-mfused-madd  -mno-fused-madd 
-mtext-section-literals  -mno-text-section-literals 
-mtarget-align  -mno-target-align 
-mlongcalls  -mno-longcalls

FRV Options
-mgpr-32  -mgpr-64  -mfpr-32  -mfpr-64 
-mhard-float  -msoft-float 
-malloc-cc  -mfixed-cc  -mdword  -mno-dword 
-mdouble  -mno-double 
-mmedia  -mno-media  -mmuladd  -mno-muladd 
-mlibrary-pic  -macc-4 -macc-8 
-mpack  -mno-pack  -mno-eflags  -mcond-move  -mno-cond-move 
-mscc  -mno-scc  -mcond-exec  -mno-cond-exec 
-mvliw-branch  -mno-vliw-branch 
-mmulti-cond-exec  -mno-multi-cond-exec  -mnested-cond-exec 
-mno-nested-cond-exec  -mtomcat-stats 
-mcpu=cpu

Code Generation Options

Section 4.18 Options for Code Generation Conventions.
-fcall-saved-reg  -fcall-used-reg 
-ffixed-reg  -fexceptions 
-fnon-call-exceptions  -funwind-tables 
-fasynchronous-unwind-tables 
-finhibit-size-directive  -finstrument-functions 
-fno-common  -fno-ident 
-fpcc-struct-return  -fpic  -fPIC -fpie -fPIE 
-freg-struct-return  -fshared-data  -fshort-enums 
-fshort-double  -fshort-wchar 
-fverbose-asm  -fpack-struct  -fstack-check 
-fstack-limit-register=reg  -fstack-limit-symbol=sym 
-fargument-alias  -fargument-noalias 
-fargument-noalias-global  -fleading-underscore 
-ftls-model=model 
-ftrapv  -fwrapv  -fbounds-check 
-fvisibility

 
 
  Published under the terms of the GNU General Public License Design by Interspire