Annotation of lucent/sys/man/1/2c, revision 1.1

1.1     ! root        1: .TH 2C 1 
        !             2: .SH NAME
        !             3: 2c, 6c, 8c, kc, vc, xc \- C compilers
        !             4: .SH SYNOPSIS
        !             5: .B 2c
        !             6: [
        !             7: .I option ...
        !             8: ]
        !             9: [
        !            10: .I file ...
        !            11: ]
        !            12: .br
        !            13: .B 6c
        !            14: [
        !            15: .I option ...
        !            16: ]
        !            17: [
        !            18: .I file ...
        !            19: ]
        !            20: .br
        !            21: .B 8c
        !            22: [
        !            23: .I option ...
        !            24: ]
        !            25: [
        !            26: .I file ...
        !            27: ]
        !            28: .br
        !            29: .B kc
        !            30: [
        !            31: .I option ...
        !            32: ]
        !            33: [
        !            34: .I file ...
        !            35: ]
        !            36: .br
        !            37: .B vc
        !            38: [
        !            39: .I option ...
        !            40: ]
        !            41: [
        !            42: .I file ...
        !            43: ]
        !            44: .br
        !            45: .B xc
        !            46: [
        !            47: .I option ...
        !            48: ]
        !            49: [
        !            50: .I file ...
        !            51: ]
        !            52: .SH DESCRIPTION
        !            53: .IR 2c ,
        !            54: .IR 6c ,
        !            55: .IR 8c ,
        !            56: .IR kc ,
        !            57: .IR vc ,
        !            58: and
        !            59: .IR xc
        !            60: compile the named C
        !            61: .I files
        !            62: into MC68020, i960, i386, SPARC, MIPS, and ATT3210 object files.
        !            63: The compilers handle most preprocessing directives themselves; a complete
        !            64: preprocessor is available in
        !            65: .IR cpp (1),
        !            66: which must be run separately.
        !            67: .PP
        !            68: Let the first letter of the compiler name be
        !            69: .IR O =
        !            70: .BR 2 ,
        !            71: .BR 6 ,
        !            72: .BR 8 ,
        !            73: .BR k ,
        !            74: .BR v ,
        !            75: or
        !            76: .BR x .
        !            77: The output object files end in
        !            78: .RI . O .
        !            79: The letter is also the prefix of related programs:
        !            80: .IB O a
        !            81: is the assembler,
        !            82: .IB O l
        !            83: is the loader.
        !            84: Associated with each compiler is a string
        !            85: .IR objtype =
        !            86: .BR 68020 ,
        !            87: .BR 960 ,
        !            88: .BR 386 ,
        !            89: .BR sparc ,
        !            90: .BR  mips,
        !            91: or
        !            92: .BR 3210 .
        !            93: Plan 9 conventionally sets the
        !            94: .B $objtype
        !            95: environment variable to the
        !            96: .I objtype
        !            97: string appropriate to the current machine's type.
        !            98: Plan 9 also conventionally has
        !            99: .RI / objtype
        !           100: directories, which contain among other things:
        !           101: .BR include ,
        !           102: for machine-dependent include files;
        !           103: .BR lib ,
        !           104: for public object code libraries;
        !           105: .BR bin ,
        !           106: for public programs;
        !           107: and
        !           108: .BR mkfile ,
        !           109: for preconditioning
        !           110: .IR mk (1).
        !           111: .PP
        !           112: The compiler options are:
        !           113: .TP 1i
        !           114: .BI -o " obj"
        !           115: Place output in file
        !           116: .I obj
        !           117: (allowed only if there is just one input file).
        !           118: Default is to take the last element of the input file name,
        !           119: strip any trailing
        !           120: .BR .c ,
        !           121: and append
        !           122: .RI . O .
        !           123: .TP
        !           124: .B -w
        !           125: Print warning messages about unused variables, etc.
        !           126: .TP
        !           127: .B -B
        !           128: Accept functions without a new-style
        !           129: ANSI C function prototype.
        !           130: By default, the compilers reject functions
        !           131: used without a defined prototype,
        !           132: although ANSI C permits them.
        !           133: .TP
        !           134: .BI -D\*S name=def
        !           135: .br
        !           136: .ns
        !           137: .TP
        !           138: .BI -D \*Sname
        !           139: Define the
        !           140: .I name
        !           141: to the preprocessor,
        !           142: as if by
        !           143: .LR #define .
        !           144: If no definition is given, the name is defined as
        !           145: .LR 1 .
        !           146: .TP
        !           147: .BI -I \*Sdir
        !           148: An
        !           149: .L #include
        !           150: file whose name does not begin with 
        !           151: slash
        !           152: or is enclosed in double quotes
        !           153: is always
        !           154: sought first in the directory 
        !           155: of the
        !           156: .I file
        !           157: argument.  If this fails, or the name is enclosed in
        !           158: .BR <> ,
        !           159: it is then sought
        !           160: in directories named in 
        !           161: .B -I
        !           162: options,
        !           163: then in
        !           164: .BR /sys/include ,
        !           165: and finally in
        !           166: .BR /$objtype/include .
        !           167: .TP
        !           168: .B -N
        !           169: Suppress automatic registerization and optimization.
        !           170: .TP
        !           171: .B -S
        !           172: Print an assembly language version of the object code
        !           173: on standard output as well as generating the
        !           174: .RI . O
        !           175: file.
        !           176: .TP
        !           177: .B -a
        !           178: Instead of compiling, print on standard output acid functions (see
        !           179: .IR acid (1))
        !           180: for examining structures declared in the source files.
        !           181: .TP
        !           182: .B -aa
        !           183: Like
        !           184: .B -a
        !           185: except suppress information about structures
        !           186: declared in included header files.
        !           187: .PP
        !           188: The compilers support several extensions to ANSI C:
        !           189: .TP
        !           190: \-
        !           191: A structure or union may contain unnamed substructures and subunions.
        !           192: The fields of the substructures or
        !           193: subunions can then be used as if they were members of the parent
        !           194: structure or union (the resolution of a name conflict is unspecified).
        !           195: When a pointer to the outer structure or union is used in a context
        !           196: that is only legal for the unnamed substructure, the compiler promotes
        !           197: the type and adjusts the pointer value to point at the substructure.
        !           198: If the unnamed structure or union is of a type with a tag name specified by a
        !           199: .B typedef
        !           200: statement, 
        !           201: the unnamed structure or union can be explicitly referenced
        !           202: by <struct variable>.<tagname>.
        !           203: .TP
        !           204: \-
        !           205: A structure value can be formed with an expression such as
        !           206: .EX
        !           207:     (struct S){v1, v2, v3}
        !           208: .EE
        !           209: where the list elements are values for the fields of struct
        !           210: .BR S .
        !           211: .TP
        !           212: \-
        !           213: Array initializers can specify the indices of the array in square
        !           214: brackets, as
        !           215: .EX
        !           216:     int a[] = { [3] 1, [10] 5 };
        !           217: .EE
        !           218: which initializes the third and tenth elements of the eleven-element array
        !           219: .BR a .
        !           220: .TP
        !           221: \-
        !           222: Structure initializers can specify the structure element by using the name
        !           223: following a period, as
        !           224: .EX
        !           225:     int struct { int x; int y; } s = { .y 1, .x 5 };
        !           226: .EE
        !           227: which initializes elements
        !           228: .B y
        !           229: and then
        !           230: .B x
        !           231: of the structure
        !           232: .BR s .
        !           233: .TP
        !           234: \-
        !           235: A global variable can be dedicated to a register
        !           236: by declaring it
        !           237: .B "extern register"
        !           238: in
        !           239: .I all
        !           240: modules and libraries.
        !           241: .TP
        !           242: \-
        !           243: A
        !           244: .B #pragma
        !           245: of the form
        !           246: .EX
        !           247:     #pragma lib "libbio.a"
        !           248: .EE
        !           249: records that the program needs to be loaded with file
        !           250: .BR /$objtype/lib/libbio.a ;
        !           251: such lines, typically placed in library header files, obviate the
        !           252: .B -l
        !           253: option of the loaders.  To help identify files in non-standard directories,
        !           254: within the file names in the
        !           255: .B #pragmas
        !           256: the string
        !           257: .B $M
        !           258: represents the name of the architecture
        !           259: (e.g.,
        !           260: .BR mips )
        !           261: and
        !           262: .B $O
        !           263: represents its identifying character
        !           264: (e.g.,
        !           265: .BR v ).
        !           266: .TP
        !           267: \-
        !           268: The C++ comment
        !           269: .RB ( //
        !           270: to end of line)
        !           271: is accepted as well as the normal
        !           272: convention of
        !           273: .B /*
        !           274: .BR */ .
        !           275: .TP
        !           276: \-
        !           277: The compilers accept
        !           278: .B long
        !           279: .B long
        !           280: variables as a 64-bit type.
        !           281: The standard header typedefs this to
        !           282: .BR vlong .
        !           283: The
        !           284: .B  vlong
        !           285: runtime is slow.
        !           286: .SH EXAMPLE
        !           287: For the 68020, produce a program
        !           288: .B prog
        !           289: from C files
        !           290: .BR main.c
        !           291: and
        !           292: .BR sub.c :
        !           293: .IP
        !           294: .EX
        !           295: 2c -w main.c sub.c
        !           296: 2l -o prog main.2 sub.2
        !           297: .EE
        !           298: .SH FILES
        !           299: .TF /$objtype/include
        !           300: .TP
        !           301: .B /sys/include
        !           302: system area for machine-independent
        !           303: .B #include
        !           304: directives.
        !           305: .TP
        !           306: .B /$objtype/include
        !           307: system area for machine-dependent
        !           308: .B #include
        !           309: directives.
        !           310: .SH SOURCE
        !           311: .TF /sys/src/cmd/2c,\ etc.
        !           312: .TP
        !           313: .B /sys/src/cmd/cc
        !           314: machine-independent part
        !           315: .TP
        !           316: .BR /sys/src/cmd/2c ,\ etc.
        !           317: machine-dependent part
        !           318: .SH "SEE ALSO"
        !           319: .IR 2a (1),
        !           320: .IR 2l (1),
        !           321: .IR cpp (1),
        !           322: .IR mk (1),
        !           323: .IR nm (1),
        !           324: .IR pcc (1),
        !           325: .IR db (1),
        !           326: .IR acid (1),
        !           327: .PP
        !           328: Rob Pike,
        !           329: ``How to Use the Plan 9 C Compiler''
        !           330: .SH BUGS
        !           331: The i960 compiler has been used only to program one I/O controller
        !           332: and is certainly buggy.
        !           333: .PP
        !           334: The preprocessor only handles
        !           335: .LR #define ,
        !           336: .LR #include ,
        !           337: .LR #undef ,
        !           338: .LR #ifdef ,
        !           339: .LR #line ,
        !           340: and
        !           341: .LR #ifndef .
        !           342: For a full ANSI preprocessor, use
        !           343: .IR cpp (1)
        !           344: on the files first.

unix.superglobalmegacorp.com

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