GCC GNU gcc project and compiler Only the most useful options are listed here see below for remain der accepts mostly same Apple version both actually symbolic links named like which linked may changed using command Similarly Note that includes number extensions standard flagged with APPLE ONLY not all generic available supported Darwin Mac particu lar does currently support compilation Fortran Ada Java although there third parties who have made these work When you invoke normally preprocessing assembly linking The overall allow stop this process intermediate stage For example option says run linker Then output consists object files assembler Other passed one processing Some control preprocessor others itself Yet other docu mented since rarely need use any them Most line can programs when only another language usually explanation explicitly description particular mention source languages program file names operands Many multi letter therefore multiple single grouped very different from You mix arguments part order doesn matter Order several kind specify more than once directories searched specified long starting positive negative forms form would This manual documents two whichever default Here summary type Explanations following sections See PowerPC Options Compilation involve four stages proper always capable compiling either into input then each produces combines those newly compiled exe cutable given name suffix determines what done code must preprocessed should Objective link library make refers literal capital header turned precompiled last letters literally Likewise tradi tional RATFOR pre processor included contains unit declaration package subprogram instantiation renaming Such also called containing body Assembler runs well ending fed straight Any recognized treated way Specify rather letting choose based applies until next Possible values cpp objective ada ratfor java treelang Turn off specification subsequent handled according their suffixes they has been used These similar effect but affect choice already identified Compile target architecture allowable Multiple direct produce fat binaries including works libraries speci fied Normally will exit phase returns non success return instead numeri cally highest error produced returned indication want some filename tell where start say combinations instruct nothing assemble simply ultimate replacing etc Unrecognized requiring ignored Stop after assem bler Input don require sent Place regardless whatever sort being whether executable put its Print commands executed Also print com piler driver Like except argu ments quoted shell scripts capture generated lines Use pipes temporary communication between various fails systems unable read pipe trouble tells pass handle intermodule analysis IMA performed Currently passing appropri ate invoked con junction save temps generate processed combined understood processes display accept documentation associated dis played specific tool Display copyrights conventionally often recognizes compiles even call However class understands under circumstances might compile otherwise without flags precompile extension compilations calls set automatically specifies against many installed mand meaningful related dialect derived such mode ISO remove conflict turns certain features incompatible asm typeof keywords predefined macros unix vax identify system enables undesirable trigraph feature disables recognition style comments inline keyword alternate continue despite course Alternate cause rejected gratuitously required addition macro STRICT ANSI notice refrain declaring functions defining avoid interfering things Functions built seman tics defined alloca ffs Determine value provided possible modified amendment yet fully information deprecated Default plus fea tures implemented become depre cated amendments Even still newer standards far previous restrict specifying effects were disabled Output prototyped declarations func tions declared translation silently lan guage Besides indicates origin was implicit unprototyped new old respectively first character colon came definition case function definitions list followed inside flag compatibility Metrowerks CodeWarrior MrC compilers versions causes Enable blocks entire within syntax follows CodeWar rior recognize words identifiers implies switch affects Don begin prefix generates special efficiently instance instructions adjust stack directly memcpy copy loops resulting smaller faster longer appear cannot breakpoint nor change behavior about warn problems efficient warnings bad printf strlen known modify global memory With There corresponding wish enable selectively define abs builtin strcpy Assert takes place hosted environment main int Examples nearly everything kernel equivalent freestanding exist startup necessarily obvious Accept constructs Microsoft cases unnamed fields structures unions accepted Support trigraphs strict conformance Performs passes allows user supplied obj via step add additional normal before integrated inter nal semantics merged Formerly caused attempt emulate They now continues CPP details Allow conditional expressions mismatched types second expression void PCH forbid casts lvalues float cond transitional measure situations accomplished Whenever lvalue cast encountered issue deprecation warning rewrite fol lows expr becomes disallow alto gether disallowed future Let char unsigned Each machine signed Ideally portable depends signedness But written plain expect depending machines inverse let opposite distinct though just bit field because consistent basic integer automatic creation CoreFoundation constant string whenever CFStringMakeCon stantString Pascal literals constructed Store constants writable data segment uniquize assume write Writing idea section describes meaning ful your firstClass frepo meant ABI Version appeared conforms closely specifica tion Therefore obtained bugs fixed access checking mainly working around Check pointer operator null attempting storage allocated check unnecessary oper ator empty exception exhaustion signalled throwing std alloc Put uninitialized runtime initialized variables common saves space cost diagnosing duplicate mysteriously crashes completed destroyed twice targets added putting BSS making Give const uses stan dard mod ify unless removed release maxi mum portability structure implementation omit creating tempo rary initialize Specifying optimization forces constructor violation specifications violates reduc ing size production builds much optimize scope limited loop extends end enclosing traditional implementations neither follow give invalid word identifier Never emit templates instantiated implicitly explicit instantia instantiations inlines differently piles out copies controlled errors inlined everywhere Disable pedantic MFC getting member mandated include index bzero conjf treat bitand bitor compl xor synonyms diagnostics diagnostic issued having meanings Downgrade nonconformant Thus nonconforming template time generation every virtual identification parts handling needed Emit statistics front compi lation generally development team Set maximum depth classes limit detect less recursions during conforming rely greater extra routines thread safe initialization local statics reduce slightly Register destructors objects static duration cxa atexit compliant supports Causes methods marked attribute visi bility hidden export table DSO PLT indirection Enabling dramatic load times massively reduces dynamic makes heavy While bloating through duplication wastage considerable occupied symbol typical namespaces savings combine weak symbols avail able exists testing users result inferior benefits search building linkage won Warn probably compatible vendor neutral Although effort warned generating emitted concerned fact binary incompatibilities point Incorrect tail padding pack byte base struct public prob lem platform layout identically bases laying exam ple problem alignment ignoring widths underlying union Assuming bits too small Empty placed incorrect offsets nonzero offset zero mistakenly believes Names whose typename parameters mangled incorrectly Instantiations seems unusable constructors private friends appears polymorphic thereby destructor declares enabled initializers match rearrange members emitting affected violations guidelines Scott Meyers book Item Define assignment dynamically Prefer Make Have reference try Distinguish postfix incre ment decrement operators overload selecting aware headers obey filter usage templatized friend Since advent specifi cation unqualified demands declare ordinary nontemplate Section Before ids could interpreted spe cialization Because existing poten tial spots behav ior keeps conformant helpful vulnerable unintended easier hides fail converting bound resolution chooses promotion enumerated over conversion Previous serve unsignedness mandates current synthesis cfront synthesize while NOTE describe themselves independent fgnu Objec tive instantiate NXConstantString NSConstantString NeXT present override setting laid strings Generate NEXT RUNTIME Assume message dispatches receiver arg ensure nil entry points later trivial cxx construct method self variable destruc tor destruct reverse thusly operate inherited superclasses responsibility inheritance hierarchy immediately deallocates writing invoking syntactic structured offered Cur rently conjunction throw catch AnObjCClass exc AnotherClass allOthers finally statement anywhere block argument shown above caught rethrown pointers thrown scheme nearest clause analogously how exceptions clauses upon preceding happen caveats mechanism designed HANDLER idioms NSException Panther due functionality mentioned Furthermore model interoperate means vice versa synchroniza execution synchronized ObjCClass guard Upon entering shall lock wait relinquishes Once own execute contained relinquish threads Unlike syn chronized allowed guarding unlocked properly marker instructing statically Fix Con tinue debugging question recompiled reloaded execu restart Continue ordinarily replaces objc getClass references get improves performance suppresses retained Zero Link individual Dump interface seen implement protocol implemen tation superclass sidered selector found final Additionally appearing selec checks scan reached differing send mes sage Class differences confined share referring undeclared considered decla ration performs soon enforces coding conven selectors describing largest Traditionally messages formatted irrespective device aspect width described format ting algorithm characters per location reported Right honor expected near remaining ends digest cor rectly Try fit rest wrapping Instructs reporter physical wrapped again continuation breaking Warnings report constructions inherently erroneous risky suggest request beginning turn lists amount kinds further refer anything beyond Issue demanded reject forbidden ver sion Valid rare few Pedantic How ever escape routes application find quite finds practices diag nostics failure conform instances plans Where represents extended sense dialects ings Inhibit tokens prepreprocessor directives missing newline AltiVec array subscript programmers forget comment sequence Backslash Newline abort occurred trying keep going printing fur ther scanf sure appropriate conversions attributes strftime strfmon Open families Which checked selected formats libc Single Unix Specification BSD limitations mat aspects yield digit year excess unused lie operand know skip suppress Speci fication length represent security warns foo hole untrusted cur subset nonnull selves snippet Same suspicious external returning taking three aggregate initializer bracketed brack eted directory parentheses omitted contexts context truth nested precedence people confused comparison interpretation mathematical notation confusion else branch belongs bar innermost programmer illustrated indentation chose potential eliminate braces belong look undefined viola rules defines pro gram evaluated terms partial ordering occur evaluation full larger comma denoting cer tain places expressed subexpressions All total committee ruled overlap modifications take Programs Between stored prior determine breaks results entirely unpredictable complicated diagnosed occasional false posi general fairly effective detecting grams worded confusingly debate precise sub tle Links discussions proposed formal readings page defaults quali fier qualifier prohibits qualified receive diagnos tic lacks codes enu meration presence label prevents labels outside enumeration range provoke parameter aside computes note separately initial ized clobbered setjmp optimizing flow computed opti mizing candidates register allocation volatile address taken bytes arrays registers compute never computations deleted printed optional smart enough reasons why correct break ini tialized bug longjmp pos sible sees signal handler spurious avoided noreturn pragma directive stood unknown pragmas active aliasing pitfalls catches ambiguous consider questionable easy prevent Wall Wno implied occasionally necessary hard simple older sup ported descriptive events Falling evoke left hand side compared Storage specifiers According Standard obsolescent converted independently specifier occurs floating indicate overflow underflow loss precision enumerator Ambiguous Subscripting Taking structor division Floating legiti mate obtaining infinities NaNs suppressed assumption real harder Using equality comparisons behind sometimes convenient approximations infinitely numbers doing analyzing likely computation introduces performing producing ranges relational mistaken OSType APPL behave problematic Macro replacement did Traditional preprocessors column stands ignore suggests hide direc tives indenting avoiding altogether unary modern limits lead however ten hexadecimal octal typically patterns Usage concatenation detected Initialization aggregates Identifier conflicts sepa rate namespace conditioned STDC relies Conversions prototypes absence serious inten tionally prototype variadic libiberty PARAMS VPARAMS bypassed exten thus relevant introduced text shadows shadowed assigns conve nience calculations matching malloc increased integers accessed boundaries copying help care Otherwise nuisance proto changing assign elicits permitted preceded provides aim declara designated modification trigger nore absolute ones Care manually verify adding environments guess vprintf vscanf appro priate possibly multicharacter Usually typo implementa Wfour controls pxref Function Attributes Variable Type packed mis aligned little benefit misaligned align ele whole Sometimes happens valid changes extern detects intended least condition satisfied proce dure removing apparently unreachable mean substantial rect functioning hopefully Another provide selectable failures variety heuristics account inlining seemingly insignificant disappear Suppress applying POD gives applied virtue deliberately chosen restrictions relaxed path inhibit Flags requested wrong merely optimizers han dle effectively Often big complex refuse inordinate amounts differ ent Produce operating native stabs COFF XCOFF DWARF GDB better debuggers crash trol shortcuts optimized surprising briefly move statements moved Nevertheless proves debug reasonable optimizer capability expressive DBX MIPS Alpha System Release SDB requires debugger gers IRIX upward Request level Level minimal backtraces plan descriptions defini expan concatenated confusing That obsolete Instead Compress eliminating duplicated profile suitable Makes finishes consumed permanent Add instrumented During records piled exits directed optimizations test cover age gen erated basename bullet coverage cvmmfu lat ter former dwnngv Run representative workload arc repeated concurrent locking correctly updated fork double counting exoohw fyppix human readable Refer creates graph spanning tree arcs instru adds count entrance instrumentation created hold rtl internal representation early recommended improv notes utility show descrip Coverage Says dumps RTL appending Annotate miscellaneous computing probabilities reordering instruction combination dumping delayed scheduling dump life GCSE jump bypassing finalization sibling modulo dependent reorganization renumbering post reload CSE running tracer transformations tracking peephole live splitting core indicating pattern alternative instruc annotation indicated viewing VCG Just Usu ally parsing diff invocations transla Control procedural Enables Dumps removal decisions intermedi append separated Not applica ble node Its primary tying environ items reachable pretty trees inhibits bodies raw detailed honored showing unique DECL UID gimplification cut paste separate SSA CCP redundancy elimination dead mudflap gathered scalar evolution analyzer dependence relations informations dominator store PHI nodes straightline forward propagating vari ables rename mization optimiza vectorization seed random stamps reproducibly identical scheduler prints informa usual listing nine outputs ready insn info regions And permanently prepro cessed Report CPU subprocess looks spent executing behalf Both seconds position Better multilib switches supposed mapping starts spaces posed ease searches nostdlib libgcc configured installation resolve components expects trailing thing specs regard More significant wasted nowhere sorts Without goal Statements counter exactly Turning improve expense ability knowledge Optimization levels gained Compiling mizations Optimize Optimizing somewhat lot large tries great deal pilation interfere speed tradeoff perform unrolling spec increases Please gotos strategy fastest PPC architectures optimizes build shared Important necessar ily IEEE highly none contain increase powerPC really mstring figure activated fine tuning desired Always pop lets accumulate pops Disabled Force copied arithmetic mon Enabled frame avoids restore VAX calling handles saved pretending FRAME POINTER REQUIRED recursive pay attention expanding expanded Integrate callers heuristically decides worth integrating right pseudo Increasing consumption Decreasing presumably slower particularly heavily Inlining individually sets item max insns auto min ling abstract measurement exact isn aren referenced force Attempt merge across units considers integral Languages Perform swing sched uling reorders overlapping iterations coloring allocator Users regis compare port addresses strange hacks alter puts explic itly assumptions indices true respec tively instrument dereferencing operations heap validity tests Modules immune buffer overflows programming env MUDFLAP OPTIONS threaded reads protection outright mem ory corrupting writes erroneously propa gate strength reduction elimina iteration branches subsumed redirected destination subexpression encounters tested jumps conditionally propagation disable loads killed stores gcse motion elimi nation eliminates redundant come redundancies purpose cleanup spilling simplify conditions optionally peeling unswitching invariant cross jumping transformation unifies transform equiva lents moves tricks doable arith metics chips condi equivalents dataflow useless assumes halted dereferenced safely dereference depend minor relatively expen sive reassign maximize especially reorder exploit slots stalls unavailable helps slow allowing Similar requests num ber cycle schedule higher speculative prematurely queue stalled groups cycles examined depen dency candidate premature Has superblock Superblock schedules experimental unreliable additionally superblocks trace formation significantly traces reality hurt comes scheduled schedul usu preserved Partial Redundancy Elimination PRE Full FRE difference paths leading exposes fewer sparse DCE beneficial effectiveness linear cache invartiants expand nontrivial sequences invari antness Create canonical determining analy sis Later easily Useful connection induction merging scalars committing attempts temporaries locations resemble origi def replaced GIM PLE expanders Dis tinct split document enlarge transfor mation simplifies job Unroll determined pile uncertain entered slowly expressing itera unrolled dependency chains improving efficiency best Combination sufficient obtain reliable create superior prefetch worse ence randomized opt profiling feed back minimizing determinism paramount import Reorder locality partitions hot cold paging linkonce imple subsections frequently unlikely Reordering feedback Allows strictest acti vates assumed reside almost alias Pay practice reading recently punning Every wishes anal ysis Nodes Align power skipping aligns boundary assemblers rounded insert dummy applicable hope opera Parse consumes issues enabling top ted relying majority removes unreferenced state Static conventions Again workaround releases Constructs webs commonly purposes web pseudos strengthens remover impossible stay home After dependencies instrumenting duce recompilation piling fprofile fpro fvpt profitable fbranch funroll fpeel ftracer regarding trade ness specifically good modifying pertinent Sets FAST MATH math ERRNO sqrt maintaining errno violate FPU Infs assuming gener visible traps inexact operation Setting rounding round truncations folding transforma unsafe sign modes guarantee Future finer FENV ACCESS signaling excep SUPPORT SNAN NaN Treat perfor mance broken counts guessing instructs gather specialization denominator opportunities noticed notices accesses elements sequentially issuing prefetches processors lots Depend adopted interested hear miscompila complete Peels roll Move duplicates arbitrary ELF SPARC ning Solaris linkers AIX gprof prologue epilogue threading exposed hoisting needs tied internals subject choices incoming edges crossjump aggressive improvement minimum matched crossjumping crossjumped looking fill delay slot arbi trary filling searching arbitrarily increasing rewritten maintain approximate pending flushing Large exces sively needlessly consume resources Several inliner counted investigated restrictive constrained primarily extreme algorithms backend Specifies maximal growth percents grow acount recursion inlin deter mines biased unrollings peeled peelings completely unswitched expensive ant Bound quadratic complexity brute evaluate Select fraction repetitions consid ered frequency executions percentage covered expansion profiles opposed stati estimated balanced threshold centage hokey dupli cates eliminated probability edge percent lower compila conservative Maximum cse Counts NxV artificial sites artifi cial host beware aliases triggering grouping heuristic Alias garbage collector manage collections Tuning RAM upper getrlimit notion smallest actual RLIMIT DATA calculate parame collection opportunity extremely Minimum begins bothering collect expands RSS exceeded megabytes backward aggres proba bly cselib Used decide unconditional Code multiplied accurate region interblock Small together unsuitable bypass commas translated forcibly bypasses undocumented Pass supply Predefine contents tokenized truncated embedded quoting protect surrounding equals Parentheses shells quote Cancel predefine Directories treatment defeated Write interpreta Turns desirable causing backslash anchor Wtrigraphs escaped newlines tri existence redefined Built skipped moving Alternatively something endif FOO Source triggers unhelpful finding responsible mandatory harmless treats outputting rule coming Unless mixing Debug regular stream Passing indirectly angle brackets quotes slight earlier dashMF dependen cies sends overrides requesting eration raising prepending renders updating makefiles phony Change deletes appends plat objpfx consulted inserts pch preprocess mark switched edit relative selects deduce knows iso customary shorthand amended revised published December publication gnu Split tories Process tory remainder chain Exactly scanning away Macros acquire Search exhausted Append previously Mark gets fdollars Indicate splicing tokenizer sions distance tab stops tabs stants UTF encoding iconv routine wide corresponds wchar encodings charac locale overridden rou tine linemarkers preproces sor linemarker slashes inhib ited negated whatsoever scanned stand assertion predicate answer preferred reserved touch respects prede fined expansions cessing discard along prepared turning ordi nary token inadvertently commenting lint imitate fashioned ignores converts replacements Trigraph Replacement permit short DOS Verbose mal activities indented deep Precompiled dash proceed dashes mas play meaningless Common forth libtool man pages Object distinguished POSIX compliance loaded had precisely directo ries archive fash ion surrounds memcmp memset memmove entries resolved piped filt cmp One subroutines overcome shortcomings ensures unresolved structors predictable suboptions Remove relocation includ libSystem dylib crt figured GCJ drivers configuration advantage propagate incurring costs Bind editor rec ognize Pretend modules loading head substituting ven dor procedure fix buggy executables subprograms prefixes unmodified separator apply translates tried kludge boot strapping Ordinarily satisfactory inconvenient configuring reason Earlier discussed among hardware models configurations coprocessor TARGET SWITCHES FSF subtype mined ISA targetting framework leaved frameworks excluding Headers subframework Includes Two subframeworks sib lings violated subframe Framework denotes STABS Override recompiling ules fast Needed gdb backwards Alter vtables loadable kernels vir tual tables patched module loader Vtables altered vtable Loads Cause archi tecture fatal bind launched Mach bundle infor detail family comput ers Tune Original Intel chip Pentium MMX PentiumMMX PentiumPro SSE Low Centrino notebooks Improved AMD dNOW Athlon enhanced CPUs supersets IDT Winchip dealt Via picking ately Moreover synonym arithmetics major ity emulated effec considerably numerical instability raries utilize functional instable Supported parisons unordered requisite facilities arrangements opcodes convention emulators sin cos FreeBSD OpenBSD NetBSD cpu emulation revision Aligning Modern prefer Notice Hence bss segments ret caller mally seriously harmlessly cific raised suffer penalties III Streaming SIMD Extension suffers Further misalign callbacks sensitive Dnow PUSH outgoing shorter equally SUB MOV disabling improved reduced equal drawback notable helper cleans lengths leaf Controls TLS Whether legal maps area envi ronment red zone loca interrupt handlers adjusting Pointers Linux medium located sizes IBM original Motorola MPC microprocessors Neither reg ister supporting POWER recommend Spec ifying General Pur pose group square root Graphics select GPRs doubleword quantities permits mnemonics Instructions mnemonic Sup ated pure vary optimal reflect capabilities enhance predicates Technology Programming Interface Manual PIM vector pixel vec parenthesized unlike inclusion altivec ALTIVEC manifest Certain adjustments supplying Extend SPE Booke ISEL simd SVR variant Modify TOC Table Contents allocate saying flowed cal culate sum conserving infrastructure RSA FPRs initially documented obscure subroutine storing inefficient Parallel Environment incompati doubles natural Software msoft shipped PowerPCs endian update calcu lated window walks interrupts signals corrupted multiply struc unaligned relocated pointing relocatable applications priority assigned dispatch restricted dependences costly dence latency nop insertion nops Pad vacant Insert esti mated adheres March draft Application Binary supplement Hurd Return clear configura VxWorks WindISS simulation relocations adhere Embedded Applications eabi Selecting areas initializa pointed adjacent shortcall longcall ating glue fly planned jbsr callee island tar reach appended directs Adds multithreading traction multiplication subtraction wraps twos complement Generates unwind sig nificant overhead trapping SIGALRM dwarf unwinding asynchronous intercallability larly Portable Compiler pcc Short principal Allocate enum Specifically room WINE Requests distinction sec Ignore middle halves apart commentary haps comparing PIC GOT resolves exceeds recompile maximums Position Sun perhaps role REGISTER NAMES allocable clob bered vasive roles disas trous disaster holes rep resenting requirements potentially fitting suboptimal lowing site platforms filing cyg enter looked concep tually exited addressable addi anyways lucky got providing high matically sym bol overruns precautions grows downwards enforce relationships fies yourself counterpart represented legacy exec image visibility substantially perfect API clashes distribute Despite nomenclature tected world fvisibility ensuring Shared Libraries Ulrich Drepper solution marking norm DLL Windows declspec dllexport boon projects dec larations sixteen Bear mind viewed overheads abundantly aids readability delete operates localiza national inspects categories cate gories English United Kingdom encoded classifica multibyte slash pathname ran script unusual Linking acter parsed Recognize JIS SJIS EUCJP mblen mbtowc translate PATH SEPARATOR semicolon element dencies combin supplementary stub libbed Failing subtle defects Supplying innocuous Info contributors Copyright Free Foundation Inc Permission granted Documentation License Invariant Sections Public Funding Front Cover texts Back Texts license Text freedom software Copies raise funds