Annotation of coherent/a/usr/man/ALL/cc, revision 1.1

1.1     ! root        1: 
        !             2: 
        !             3: cc                           Command                           cc
        !             4: 
        !             5: 
        !             6: 
        !             7: 
        !             8: Compiler controller
        !             9: 
        !            10: cccc [_c_o_m_p_i_l_e_r _o_p_t_i_o_n_s] _f_i_l_e .... [_l_i_n_k_e_r _o_p_t_i_o_n_s]
        !            11: 
        !            12: cc is  the program that  controls compilation of  C programs.  It
        !            13: guides files of source and object code through each phase of com-
        !            14: pilation and linking.  cccc has  many options to assist in the com-
        !            15: pilation of  C programs; in essence, however, all  you need to do
        !            16: to  produce an  executable file  from your C  program is  type cccc
        !            17: followed by the name of the file or files that hold your program.
        !            18: It  checks whether  the file  names you  give it  are reasonable,
        !            19: selects the  right phase for each file,  and performs other tasks
        !            20: that ease the compilation of your programs.
        !            21: 
        !            22: ***** File Names *****
        !            23: 
        !            24: cc  assumes that each  file name  that ends  in .c or  .h is  a C
        !            25: program and passes it to the C compiler for compilation.
        !            26: 
        !            27: cc assumes  that each file  argument that ends  in .s is  in Mark
        !            28: Williams assembly  language and  processes it with  the assembler
        !            29: as.
        !            30: 
        !            31: cc also passes all files with  the suffixes .o or .a unchanged to
        !            32: the linker ld.
        !            33: 
        !            34: ***** How cc Works *****
        !            35: 
        !            36: cc normally works as follows: First, it compiles or assembles the
        !            37: source files, naming  the resulting object files by replacing the
        !            38: .cc or .ss suffixes with the  suffix .oo.  Then, it links the object
        !            39: files  with the  C  runtime startup  routine and  the standard  C
        !            40: library, and leaves the result  in file _f_i_l_e.  If only one object
        !            41: file is created  during compilation, it is deleted after linking;
        !            42: however, if more than one object file is created, or if an object
        !            43: file of  the same name existed before you  began to compile, then
        !            44: the object file or files are not deleted.
        !            45: 
        !            46: ***** Options *****
        !            47: 
        !            48: The following lists  all of cccc's command-line options.  cc passes
        !            49: some options  through to the  linker ld unchanged,  and correctly
        !            50: interprets to it the options -oo and -uu.
        !            51: 
        !            52: A number  of the options  are esoteric and normally  are not used
        !            53: when compiling a C  program.  The following are the most commonly
        !            54: used options:
        !            55: 
        !            56: 
        !            57:          -cc      Compile only; do not link
        !            58:          -ff      Include floating-point pprriinnttff
        !            59:          -ll_n_a_m_e  Pass library lliibb_n_a_m_e.aa to linker
        !            60:          -oo _n_a_m_e Call output file _n_a_m_e
        !            61:          -VV      Print verbose listing of cccc's action
        !            62: 
        !            63: 
        !            64: COHERENT Lexicon                                           Page 1
        !            65: 
        !            66: 
        !            67: 
        !            68: 
        !            69: cc                           Command                           cc
        !            70: 
        !            71: 
        !            72: 
        !            73: 
        !            74: 
        !            75: -AA  MicroEMACS option.  If an error occurs during compilation, cc
        !            76:     automatically invokes the  MicroEMACS screen editor.  The er-
        !            77:     ror or errors are displayed in one window and the source code
        !            78:     file in the other, with the cursor set to the line number in-
        !            79:     dicated by  the first error message.   Typing <ctrl-X>> moves
        !            80:     to the next error, <ctrl-X>< moves to the previous error.  To
        !            81:     recompile, close the  edited file with <ctrl-Z>.  Compilation
        !            82:     will continue  either until the program  compiles without er-
        !            83:     ror, or  until you  exit from  the editor by  typing <ctrl-U>
        !            84:     followed by <ctrl-X><ctrl-C>.
        !            85: 
        !            86: -BB[_s_t_r_i_n_g]
        !            87:     Backup option.   Use alternate  versions of the  compiler for
        !            88:     cc0, cc1,  cc2, and cc3.  If string  is supplied, cc prepends
        !            89:     it to  the names of  the phases of  the compiler to  form the
        !            90:     pathnames where these  are found.  Otherwise, cc prepends the
        !            91:     name of the current directory.  If a -t option was previously
        !            92:     given, only the parts of the compiler specified by it are af-
        !            93:     fected.  Any  number of -B  and -t options may  be used, with
        !            94:     each -t  option specifying the passes  affected by the subse-
        !            95:     quent -B option.  For example, the command
        !            96: 
        !            97:         cc -tp2 -Bnew hello.c
        !            98: 
        !            99:     compiles hheelllloo.cc using nneewwcccc22 in place of the ordinarily used
        !           100:     /lliibb/cccc22, and  using nneewwccpppp in  place of the  ordinarily used
        !           101:     /lliibb/ccpppp.
        !           102: 
        !           103: -cc  Compile option.  Suppress  linking and the removal of the ob-
        !           104:     ject files.
        !           105: 
        !           106: -DD_n_a_m_e[=_v_a_l_u_e]
        !           107:     Define  name to  the  preprocessor, as  if set  by a  #define
        !           108:     directive.  If value is present, it is used to initialize the
        !           109:     definition.
        !           110: 
        !           111: -EE  Expand option.  Run the C preprocessor ccpppp and write its out-
        !           112:     put onto the standard output.
        !           113: 
        !           114: -ff  Floating point option.  Include library routines that perform
        !           115:     floating-point   arithmetic.    Because  the   floating-point
        !           116:     routines require approximately  five kilobytes of memory, the
        !           117:     standard C library does not include them; the -ff option tells
        !           118:     the  compiler to  include  them.  If  a  program is  compiled
        !           119:     without the -ff option  but attempts to print a floating point
        !           120:     number  during  execution by  using  the e,  f,  or g  format
        !           121:     specifications to printf, the message
        !           122: 
        !           123:         You must compile with -f option for floating point
        !           124: 
        !           125:     will be printed and the program will exit.
        !           126: 
        !           127: 
        !           128: 
        !           129: 
        !           130: COHERENT Lexicon                                           Page 2
        !           131: 
        !           132: 
        !           133: 
        !           134: 
        !           135: cc                           Command                           cc
        !           136: 
        !           137: 
        !           138: 
        !           139: -II _n_a_m_e
        !           140:     IInclude option.  Specify  a directory the preprocessor should
        !           141:     search  for files  given  in #include  directives, using  the
        !           142:     following criteria: If the #iinncclluuddee statement reads
        !           143: 
        !           144:         #include "file.h"
        !           145: 
        !           146:     cccc searches for ffiillee.hh first in the source directory, then in
        !           147:     the directory named in  the -II_n_a_m_e option, and finally in the
        !           148:     system's  default  directories.   If the  #iinncclluuddee  statement
        !           149:     reads
        !           150: 
        !           151:         #include <file.h>
        !           152: 
        !           153:     cccc searches for ffiillee.hh  first in the directories named in the
        !           154:     -II_n_a_m_e option, and  then in the system's default directories.
        !           155:     Multiple -II_n_a_m_e options are executed in the order of their of
        !           156:     appearance.
        !           157: 
        !           158: -KK  Keep  option.  Do not erase  the intermediate files generated
        !           159:     during compilation.  Temporary files will be written into the
        !           160:     current directory.
        !           161: 
        !           162: -ll _n_a_m_e
        !           163:     llibrary option.   Pass the name  of a library  to the linker.
        !           164:     cc  expands -lname  into /lliibb/lliibb_n_a_m_e.aa.   If  an alternative
        !           165:     library prefix has been specified by the -tl and -Bstring op-
        !           166:     tions,  then -lname  expands to  stringlliibbname.aa.   Note that
        !           167:     this is a linker option, and so must appear at the end of the
        !           168:     cc command line, or it will not be processed correctly.
        !           169: 
        !           170: -MM _s_t_r_i_n_g
        !           171:     Machine option.  Use  an alternate version of cc0, cc1, cc1a,
        !           172:     cc1b,  cc2, cc3,  as, lib*.a,  and  crts0.o, named  by fixing
        !           173:     string  between the  directory  name and  the  pass and  file
        !           174:     names.
        !           175: 
        !           176: -nn   Instruct the  linker  ld to  bind the  output with  separate
        !           177:     shared  and private  segments, and which  each starting  on a
        !           178:     separate  hardware-segment  boundary.   This  allows  several
        !           179:     processes to  simultaneously use one copy  of the shared seg-
        !           180:     ment.  Note that programs  linked with this option will run a
        !           181:     little more slowly than  if they were not so linked; however,
        !           182:     if a  program forks  (e.g., kkeerrmmiitt) or  will be used  by more
        !           183:     than  one user  at a time  (e.g., MicroEMACS),  this slightly
        !           184:     slower time  will be more than offset  by the program's being
        !           185:     spared having to read an entire copy of itself from the disk.
        !           186: 
        !           187: -NN[pp00112233ssddllrrtt]_s_t_r_i_n_g
        !           188:     Name option.  Rename a specified pass to string.  The letters
        !           189:     p0123sdlrt refer,  respectively, to cpp, cc0,  cc1, cc2, cc3,
        !           190:     the assembler, the linker, the libraries, the run-time start-
        !           191:     up, and the temporary files.
        !           192: 
        !           193: 
        !           194: 
        !           195: 
        !           196: COHERENT Lexicon                                           Page 3
        !           197: 
        !           198: 
        !           199: 
        !           200: 
        !           201: cc                           Command                           cc
        !           202: 
        !           203: 
        !           204: 
        !           205: -oo _n_a_m_e
        !           206:     Output option.   Rename the executable file  from the default
        !           207:     to _n_a_m_e.  If this option  is not used, the executable will be
        !           208:     named after the first .cc or .oo file on the command line.
        !           209: 
        !           210: -OO  Optimize  option.  Run the  code generated by  the C compiler
        !           211:     through the  peephole optimizer.  The optimizer  pass is man-
        !           212:     datory for  the i8086, Z8000, and  M68000 compilers, and need
        !           213:     not be requested.  It is optional for the PDP11 compiler, but
        !           214:     is recommended  for all files  except those that  consist en-
        !           215:     tirely of initialized tables of data.
        !           216: 
        !           217: -qq[pp00112233ss]
        !           218:     Quit  option.    Terminate  compilation  after   running  the
        !           219:     specified pass.   The letters pp00112233ss  refer, respectively, to
        !           220:     cpp, cc0, cc1, cc2,  cc3, and the assembler.  For example, to
        !           221:     terminate compilation after running the parser cc0, type -qq00.
        !           222: 
        !           223: -QQ  Quiet option.  Suppress all messages.
        !           224: 
        !           225: -SS  Suppress  the object-writing and link  phases, and invoke the
        !           226:     disassembler cc3.  This  option produces an assembly-language
        !           227:     version of a C program for examination, for example if a com-
        !           228:     piler  problem is  suspected.   The assembly-language  output
        !           229:     file name replaces the .c suffix with .s.  This is equivalent
        !           230:     to the -VVAASSMM option.
        !           231: 
        !           232: -tt[pp0011aabb2233ssddllrrtt]
        !           233:     Take option.   Use alternate versions of  the compiler phases
        !           234:     and  other files  specified in the  following string.   If no
        !           235:     following string  is given, the cccc  uses alternate version of
        !           236:     every phase of the compiler, except the preprocessor.  If the
        !           237:     -tt option is followed by  a -BB option, cccc prepends the prefix
        !           238:     string named  in the -BB option to the  phases and files named
        !           239:     in the  -tt option; otherwise, the it  looks for the alternate
        !           240:     forms in the current directory.
        !           241: 
        !           242: -UU _n_a_m_e
        !           243:     Undefine symbol  name.  Use  this option to  undefine symbols
        !           244:     that the preprocessor defines implicitly, such as the name of
        !           245:     the native system or machine.
        !           246: 
        !           247: -VV  Verbose  option.  cccc prints onto the  standard output a step-
        !           248:     by-step description of each action it takes.
        !           249: 
        !           250: VV_s_t_r_i_n_g
        !           251:     Variant option.   Toggle (i.e., turn  on or off)  the variant
        !           252:     _s_t_r_i_n_g during  the compilation.  Variants that  are marked oonn
        !           253:     are turned  on by  default.  Options marked  SSttrriicctt: generate
        !           254:     messages that warn  of the conditions in question.  cc recog-
        !           255:     nizes the following variants:
        !           256: 
        !           257: -VVAASSMM
        !           258:    Output assembly-language code.  Identical to -SS option, above.
        !           259:    It can  be used with  the -VVLLIINNEESS option,  described below, to
        !           260: 
        !           261: 
        !           262: COHERENT Lexicon                                           Page 4
        !           263: 
        !           264: 
        !           265: 
        !           266: 
        !           267: cc                           Command                           cc
        !           268: 
        !           269: 
        !           270: 
        !           271:    generate a  line-numbered file of  assembly language.  Default
        !           272:    is ooffff.
        !           273: 
        !           274: -VVCCOOMMMM
        !           275:    Permit .ccoomm-style data items.  Default is oonn.
        !           276: 
        !           277: -VVFFLLOOAATT
        !           278:    Include floating  point pprriinnttff  routines.  Same as  -f option,
        !           279:    above.
        !           280: 
        !           281: -VVLLIINNEESS
        !           282:    Generate line number information.  Can be used with the option
        !           283:    -VVAASSMM, described  above, to generate  assembly language output
        !           284:    that uses line numbers.  Default is ooffff.
        !           285: 
        !           286: -VVQQUUIIEETT
        !           287:    Suppress all  messages.  Identical  to -Q option.   Default is
        !           288:    ooffff.
        !           289: 
        !           290: -VVSSBBOOOOKK
        !           291:    Strict: note  deviations from _T_h_e _C  _P_r_o_g_r_a_m_m_i_n_g _L_a_n_g_u_a_g_e, ed.
        !           292:    1.  Default is ooffff.
        !           293: 
        !           294: -VVSSCCCCOONN
        !           295:    Strict: note constant conditional.  Default is ooffff.
        !           296: 
        !           297: -VVSSIINNUU
        !           298:    Implement  struct-in-union  rules  instead of  Berkeley-member
        !           299:    resolution rules.   Default is  ooffff, i.e., Berkeley  rules are
        !           300:    the default.
        !           301: 
        !           302: -VVSSLLCCOONN
        !           303:    Strict:  iinntt constant  promoted to lloonngg  because value  is too
        !           304:    big.  Default is oonn.
        !           305: 
        !           306: -VVSSMMEEMMBB
        !           307:    Strict: check use  of structure/union members for adherence to
        !           308:    standard rules of C.  Default is oonn.
        !           309: 
        !           310: -VVSSNNRREEGG
        !           311:    Strict: register declaration reduced to auto.  Default is oonn.
        !           312: 
        !           313: -VVSSPPVVAALL
        !           314:    Strict: pointer value truncated.  Default is ooffff.
        !           315: 
        !           316: -VVSSRRTTVVCC
        !           317:    Strict: risky types in truth contexts.  Default is ooffff.
        !           318: 
        !           319: -VVSSTTAATT
        !           320:    Give statistics on optimization.
        !           321: 
        !           322: -VVSS
        !           323:    Turn on all strict checking.  Default is oonn.
        !           324: 
        !           325: 
        !           326: 
        !           327: 
        !           328: COHERENT Lexicon                                           Page 5
        !           329: 
        !           330: 
        !           331: 
        !           332: 
        !           333: cc                           Command                           cc
        !           334: 
        !           335: 
        !           336: 
        !           337: -VVSSUURREEGG
        !           338:    Strict: note unused registers.  Default is ooffff.
        !           339: 
        !           340: -VVSSUUVVAARR
        !           341:    Strict: note unused variables.  Default is oonn.
        !           342: 
        !           343: -VV33GGRRAAPPHH
        !           344:    Translate ANSI trigraphs.  Default is ooffff.
        !           345: 
        !           346: ***** See  Also *****  as, C language,  cc0, cc1, cc2,  cc3, com-
        !           347: mands, cpp, ld
        !           348: _T_h_e _C _L_a_n_g_u_a_g_e, tutorial
        !           349: 
        !           350: 
        !           351: 
        !           352: 
        !           353: 
        !           354: 
        !           355: 
        !           356: 
        !           357: 
        !           358: 
        !           359: 
        !           360: 
        !           361: 
        !           362: 
        !           363: 
        !           364: 
        !           365: 
        !           366: 
        !           367: 
        !           368: 
        !           369: 
        !           370: 
        !           371: 
        !           372: 
        !           373: 
        !           374: 
        !           375: 
        !           376: 
        !           377: 
        !           378: 
        !           379: 
        !           380: 
        !           381: 
        !           382: 
        !           383: 
        !           384: 
        !           385: 
        !           386: 
        !           387: 
        !           388: 
        !           389: 
        !           390: 
        !           391: 
        !           392: 
        !           393: 
        !           394: COHERENT Lexicon                                           Page 6
        !           395: 
        !           396: 

unix.superglobalmegacorp.com

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