Annotation of researchv10dc/man/adm/man1/cc.1, revision 1.1.1.1

1.1       root        1: .TH CC 1
                      2: .CT 1 prog_c
                      3: .SH NAME
                      4: cc, lcc \- C compilers
                      5: .SH SYNOPSIS
                      6: .B cc
                      7: [
                      8: .I option ...
                      9: ]
                     10: .I file ...
                     11: .PP
                     12: .B lcc
                     13: [
                     14: .I option ...
                     15: ]
                     16: .I file ...
                     17: .SH DESCRIPTION
                     18: .I Cc
                     19: compiles the classic C language;
                     20: .I lcc
                     21: compiles
                     22: .SM ANSI.
                     23: They are otherwise similar.
                     24: In the absence of options, any named source
                     25: .I files
                     26: are compiled into object files and then linked,
                     27: together with any named object
                     28: .I files,
                     29: into a single executable file named 
                     30: .FR a.out .
                     31: Compilation normally has four phases: preprocessing of
                     32: .B #
                     33: directives, compilation to assembly language, assembly,
                     34: and linking.
                     35: Suffixes of
                     36: .I file
                     37: names determine which phases they participate in:
                     38: .TP
                     39: .B .c
                     40: C source to be preprocessed and compiled.
                     41: Object code for this file is finally placed in a
                     42: correspondingly named
                     43: .L .o
                     44: file, except when exactly one file is being compiled and linked.
                     45: .TP
                     46: .B .i
                     47: C source to be compiled without preprocessing;
                     48: .B #
                     49: directives are ignored by
                     50: .I cc,
                     51: forbidden by
                     52: .I lcc.
                     53: .TP
                     54: .B .s
                     55: Assembler source to be assembled, producing a
                     56: .L .o
                     57: file.
                     58: .TP
                     59: .B .o
                     60: A preexisting object file to be linked.
                     61: .PP
                     62: Both compilers accept options of
                     63: .IR ld (1),
                     64: the most common of which are
                     65: .B -o
                     66: (to substitute a name for
                     67: .BR a.out )
                     68: and
                     69: .BR -l 
                     70: (to link from a library), and in addition
                     71: .TP
                     72: .B -c
                     73: Suppress the linking phase, producing
                     74: .B .o
                     75: files but no
                     76: .BR a.out .
                     77: .TP
                     78: .B -g
                     79: Produce additional symbol table information
                     80: for debuggers such as
                     81: .IR pi (9.1).
                     82: .TP
                     83: .B -O
                     84: Invoke an
                     85: object-code improver; superfluous in
                     86: .I lcc.
                     87: .TP
                     88: .B -w
                     89: Suppress warning diagnostics.
                     90: In
                     91: .I lcc,
                     92: .B #pragma ref
                     93: .I variable
                     94: supplies a dummy reference to suppress
                     95: an unused-variable diagnostic.
                     96: .TP
                     97: .B -p
                     98: Arrange for the compiler to produce code
                     99: which counts the number of times each routine is called;
                    100: also, if linking takes place, replace the standard startup
                    101: routine by one which arranges to gather profiling data
                    102: for later examination by
                    103: .IR  prof (1).
                    104: .TP
                    105: .B -pg
                    106: Like
                    107: .B -p
                    108: but for
                    109: .IR gprof 
                    110: instead of
                    111: .IR prof (1).
                    112: .TP
                    113: .B -S
                    114: Compile the named C programs, and leave the
                    115: assembler-language output in
                    116: .B .s
                    117: files.
                    118: .TP
                    119: .B -E
                    120: Run the preprocessor
                    121: on the named C programs, and send the result to the
                    122: standard output.
                    123: .TP
                    124: .B -C
                    125: Prevent the preprocessor from eliding comments.
                    126: .TP
                    127: .BI -D\*S name=def
                    128: .br
                    129: .ns
                    130: .TP
                    131: .BI -D \*Sname
                    132: Define the
                    133: .I name
                    134: to the preprocessor,
                    135: as if by
                    136: .LR #define .
                    137: If no definition is given, the name is defined as
                    138: .LR 1 .
                    139: .I Lcc
                    140: predefines a few symbols on most machines; option
                    141: .B -v
                    142: exposes them.
                    143: .TP
                    144: .BI -U \*Sname
                    145: Remove any initial definition of
                    146: .IR name .
                    147: .TP
                    148: .BI -I \*Sdir
                    149: .L #include
                    150: files whose names do not begin with 
                    151: .L /
                    152: are always
                    153: sought first in the directory 
                    154: of the
                    155: .I file
                    156: argument,
                    157: then in directories named in 
                    158: .B -I
                    159: options,
                    160: then in directories on a standard list.
                    161: .PP
                    162: These options are peculiar to
                    163: .IR cc :
                    164: .TP
                    165: .B -P
                    166: Run the preprocessor on each 
                    167: .L .c
                    168: file.
                    169: Produce no line numbers.
                    170: Place results in
                    171: .L .i
                    172: files.
                    173: .TP
                    174: .B -R
                    175: Cause
                    176: .IR as (1)
                    177: to make initialized variables shared and read-only.
                    178: .TP
                    179: .BI -B \*Sstring
                    180: Find substitute compiler passes in the files named
                    181: .I string
                    182: with the suffixes cpp, ccom and c2.
                    183: If 
                    184: .I string 
                    185: is empty, use a standard backup version.
                    186: .TP
                    187: .BR -t [ p012 ]
                    188: Find only the designated compiler passes in the
                    189: files whose names are constructed by a
                    190: .B -B
                    191: option.
                    192: In the absence of a
                    193: .B -B 
                    194: option, the
                    195: .I string
                    196: is taken to be
                    197: .FR /usr/c/ .
                    198: .PP
                    199: These options are peculiar to
                    200: .IR lcc :
                    201: .TP
                    202: .B \-N
                    203: Do not search standard directories for include files.
                    204: Omit non-ANSI language extensions.
                    205: .TP
                    206: .B \-A
                    207: Warn about calls to functions without prototypes.
                    208: .TP
                    209: .BI \-d n
                    210: Generate jump tables for switches with density at least
                    211: .IR n ,
                    212: a floating-point constant between zero and one,
                    213: 0.5 by default.
                    214: .TP 
                    215: .B \-P
                    216: Write declarations for all defined globals on standard error.
                    217: .TP
                    218: .B \-n
                    219: Produce code
                    220: that reports and aborts upon dereferencing a zero pointer.
                    221: .TP
                    222: .B \-M
                    223: Run only the preprocessor to generate 
                    224: .IR make (1)
                    225: dependencies on the standard output.
                    226: .TP
                    227: .B \-T
                    228: Allow
                    229: .SM ANSI
                    230: standard trigraph sequences.
                    231: .TP
                    232: .BI \-B str
                    233: Use the compiler
                    234: .IB str rcc
                    235: instead of the default version.
                    236: .I Str
                    237: usually ends with a slash.
                    238: .TP
                    239: .B \-v
                    240: Report compiler steps (and some version numbers) as
                    241: they are executed.
                    242: A second
                    243: .B \-v
                    244: causes steps to be reported but not executed.
                    245: .PP
                    246: .I Lcc
                    247: supports
                    248: .BI asm( string ).
                    249: The given string constant is copied to the generated
                    250: assembly language output with occurrences of
                    251: .BI % name
                    252: replaced by the address or register for identifier 
                    253: .I name 
                    254: if it is visible.
                    255: Otherwise,
                    256: .BI % name
                    257: is simply copied to the output.
                    258: Wide-character literals are treated as plain char literals;
                    259: ints and long ints are the same size,
                    260: as are doubles and long doubles.
                    261: .SH EXAMPLES
                    262: .TP
                    263: .L
                    264: lcc -N -I/usr/include/libc file.c 
                    265: Use local include files instead of
                    266: .SM ANSI
                    267: standard ones, which lack most functions of Section 2
                    268: of this manual, and often disagree (especially about
                    269: .BR const )
                    270: with those in Section 3.
                    271: See
                    272: .IR intro (3).
                    273: .SH FILES
                    274: .PP
                    275: Different machines use different file names, so this list is
                    276: only representative.
                    277: .I Lcc
                    278: option
                    279: .B -v
                    280: exposes the correct names.
                    281: .TF /usr/include/libc
                    282: .TP
                    283: .F a.out
                    284: linked output
                    285: .TP
                    286: .F /tmp/ctm*
                    287: temporary
                    288: .TP
                    289: .F /lib/cpp
                    290: preprocessor,
                    291: .IR cpp (8)
                    292: .TP
                    293: .F /usr/lib/gcc-cpp
                    294: .SM ANSI
                    295: preprocessor
                    296: .TP
                    297: .F /lib/ccom
                    298: .I cc
                    299: compiler proper
                    300: .TP
                    301: .F /lib/c2
                    302: optional optimizer for
                    303: .I cc
                    304: .TP
                    305: .F /bin/as
                    306: assembler,
                    307: .IR as (1)
                    308: .TP
                    309: .F /usr/lib/rcc
                    310: .I lcc
                    311: compiler proper
                    312: .TP
                    313: .F /lib/crt0.o
                    314: runtime startoff
                    315: .TP
                    316: .F /lib/mcrt0.o
                    317: startoff for profiling
                    318: .TP
                    319: .F /lib/libc.a
                    320: standard library, see
                    321: .IR intro (3)
                    322: .TP
                    323: .F /usr/include
                    324: directory for 
                    325: .I cc
                    326: .L #include
                    327: files
                    328: .TP
                    329: .F /usr/include/lcc
                    330: directory for 
                    331: .SM ANSI
                    332: standard 
                    333: .L #include
                    334: files
                    335: .TP
                    336: .F /usr/include/libc
                    337: directory for local
                    338: .I lcc
                    339: include files
                    340: .SH "SEE ALSO"
                    341: .IR lint (1), 
                    342: .IR ld (1), 
                    343: .IR strip (1),
                    344: .IR nm (1),
                    345: .IR prof (1), 
                    346: .IR cin (1),
                    347: .IR adb (1), 
                    348: .IR pi (9.1),
                    349: .IR c++ (1)
                    350: .br
                    351: B. W. Kernighan and D. M. Ritchie,
                    352: .I The C Programming Language,
                    353: 2nd Ed., Prentice-Hall, 1988
                    354: .SH BUGS
                    355: .I Cc
                    356: cannot handle the
                    357: .L -y
                    358: flag of
                    359: .I ld.
                    360: .br
                    361: .I Lcc
                    362: currently uses the pre-ANSI library.
                    363: .SH MACHINE DEPENDENCIES
                    364: .SS VAX
                    365: .B -pg
                    366: is unimplemented.
                    367: .br
                    368: .I Cc
                    369: and
                    370: .I lcc
                    371: use incompatible bit-field layouts and structure return conventions.
                    372: .SS MIPS
                    373: .I Lcc
                    374: does not implement
                    375: .B -p
                    376: or
                    377: .BR -pg ,
                    378: and its
                    379: .B -g
                    380: supports breakpoints but not the examination of variables.
                    381: .br
                    382: .I Cc
                    383: and
                    384: .I lcc
                    385: use incompatible bit-field layouts.
                    386: .SS Sun
                    387: .I Lcc
                    388: options
                    389: .B -Bdynamic
                    390: and
                    391: .B -Bstatic
                    392: give the binding strategy; see
                    393: .IR ld (1).
                    394: .br
                    395: .I Cc and
                    396: .I lcc
                    397: use incompatible bit-field layouts and structure return conventions.

unix.superglobalmegacorp.com

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