Annotation of researchv10no/cmd/lcc/etc/cc.1, revision 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: .B -b
        !           210: produce code that writes an expression-level profile into prof.out.
        !           211: .IR bprint (1)
        !           212: produces an annotated listing, and
        !           213: .B -Wf-a
        !           214: uses the profile to improve register assignments.
        !           215: .TP
        !           216: .BI \-d n
        !           217: Generate jump tables for switches with density at least
        !           218: .IR n ,
        !           219: a floating-point constant between zero and one,
        !           220: 0.5 by default.
        !           221: .TP 
        !           222: .B \-P
        !           223: Write declarations for all defined globals on standard error.
        !           224: .TP
        !           225: .B \-n
        !           226: Produce code
        !           227: that reports and aborts upon dereferencing a zero pointer.
        !           228: .TP
        !           229: .B \-M
        !           230: Run only the preprocessor to generate 
        !           231: .IR make (1)
        !           232: dependencies on the standard output.
        !           233: .TP
        !           234: .B \-t
        !           235: Produce code to print trace messages at function entry and exit.
        !           236: .TP
        !           237: .BI -Wp "opt"
        !           238: Pass preprocessor option
        !           239: .I opt
        !           240: to the (Gnu) preprocessor.
        !           241: For example,
        !           242: .B -Wp-T
        !           243: allows
        !           244: .SM ANSI
        !           245: trigraph sequences.
        !           246: .HP
        !           247: .BI -Wa  opt,
        !           248: .BI -Wl  opt,
        !           249: .BI -Wf  opt
        !           250: .br
        !           251: Pass option
        !           252: .IR opt
        !           253: to the assembler
        !           254: .RI ( as (1)),
        !           255: loader
        !           256: .RI ( ld (1)),
        !           257: or compiler proper.
        !           258: .TP
        !           259: .BI \-B str
        !           260: Use the compiler
        !           261: .IB str rcc
        !           262: instead of the default version.
        !           263: .I Str
        !           264: usually ends with a slash.
        !           265: .TP
        !           266: .B \-v
        !           267: Report compiler steps (and some version numbers) as
        !           268: they are executed.
        !           269: A second
        !           270: .B \-v
        !           271: causes steps to be reported but not executed.
        !           272: .PP
        !           273: .I Lcc
        !           274: supports
        !           275: .BI asm( string ).
        !           276: The given string constant is copied to the generated
        !           277: assembly language output with occurrences of
        !           278: .BI % name
        !           279: replaced by the address or register for identifier 
        !           280: .I name 
        !           281: if it is visible.
        !           282: Otherwise,
        !           283: .BI % name
        !           284: is simply copied to the output.
        !           285: Wide-character literals are treated as plain char literals;
        !           286: ints and long ints are the same size,
        !           287: as are doubles and long doubles.
        !           288: .SH EXAMPLES
        !           289: .TP
        !           290: .L
        !           291: lcc -N -I/usr/include/libc file.c 
        !           292: Use local include files instead of
        !           293: .SM ANSI
        !           294: standard ones, which lack most functions of Section 2
        !           295: of this manual, and often disagree (especially about
        !           296: .BR const )
        !           297: with those in Section 3.
        !           298: See
        !           299: .IR intro (3).
        !           300: .SH FILES
        !           301: .PP
        !           302: Different machines use different file names, so this list is
        !           303: only representative.
        !           304: .I Lcc
        !           305: option
        !           306: .B -v
        !           307: exposes the correct names.
        !           308: .TF /usr/include/libc
        !           309: .TP
        !           310: .F a.out
        !           311: linked output
        !           312: .TP
        !           313: .F /tmp/ctm*
        !           314: temporary
        !           315: .TP
        !           316: .F /lib/cpp
        !           317: preprocessor,
        !           318: .IR cpp (8)
        !           319: .TP
        !           320: .F /usr/lib/gcc-cpp
        !           321: .SM ANSI
        !           322: preprocessor
        !           323: .TP
        !           324: .F /lib/ccom
        !           325: .I cc
        !           326: compiler proper
        !           327: .TP
        !           328: .F /lib/c2
        !           329: optional optimizer for
        !           330: .I cc
        !           331: .TP
        !           332: .F /bin/as
        !           333: assembler,
        !           334: .IR as (1)
        !           335: .TP
        !           336: .F /usr/lib/rcc
        !           337: .I lcc
        !           338: compiler proper
        !           339: .TP
        !           340: .F /lib/crt0.o
        !           341: runtime startoff
        !           342: .TP
        !           343: .F /lib/mcrt0.o
        !           344: startoff for profiling
        !           345: .TP
        !           346: .F /lib/libc.a
        !           347: standard library, see
        !           348: .IR intro (3)
        !           349: .TP
        !           350: .F /usr/include
        !           351: directory for 
        !           352: .I cc
        !           353: .L #include
        !           354: files
        !           355: .TP
        !           356: .F /usr/include/lcc
        !           357: directory for 
        !           358: .SM ANSI
        !           359: standard 
        !           360: .L #include
        !           361: files
        !           362: .TP
        !           363: .F /usr/include/libc
        !           364: directory for local
        !           365: .I lcc
        !           366: include files
        !           367: .SH "SEE ALSO"
        !           368: .IR lint (1), 
        !           369: .IR ld (1), 
        !           370: .IR strip (1),
        !           371: .IR nm (1),
        !           372: .IR prof (1), 
        !           373: .IR bprint (1), 
        !           374: .IR cin (1),
        !           375: .IR adb (1), 
        !           376: .IR pi (9.1),
        !           377: .IR c++ (1)
        !           378: .br
        !           379: B. W. Kernighan and D. M. Ritchie,
        !           380: .I The C Programming Language,
        !           381: 2nd Ed., Prentice-Hall, 1988
        !           382: .SH BUGS
        !           383: .I Cc
        !           384: cannot handle the
        !           385: .L -y
        !           386: flag of
        !           387: .I ld.
        !           388: .br
        !           389: .I Lcc
        !           390: currently uses the pre-ANSI library.
        !           391: .SH MACHINE DEPENDENCIES
        !           392: .SS VAX
        !           393: .B -pg
        !           394: is unimplemented.
        !           395: .br
        !           396: .I Cc
        !           397: and
        !           398: .I lcc
        !           399: use incompatible bit-field layouts and structure return conventions.
        !           400: .SS MIPS
        !           401: .I Lcc
        !           402: does not implement
        !           403: .B -p
        !           404: or
        !           405: .BR -pg ,
        !           406: and its
        !           407: .B -g
        !           408: supports breakpoints but not the examination of variables.
        !           409: .br
        !           410: .I Cc
        !           411: and
        !           412: .I lcc
        !           413: use incompatible bit-field layouts.
        !           414: .SS Sun
        !           415: .I Lcc
        !           416: options
        !           417: .B -Bdynamic
        !           418: and
        !           419: .B -Bstatic
        !           420: give the binding strategy; see
        !           421: .IR ld (1).
        !           422: .br
        !           423: .I Cc and
        !           424: .I lcc
        !           425: 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.