Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ cc(1) — Atari System V ue12

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

s(1)

libc.ad(1)

lint(1)

lprofFP(1)

prof(1)

sdb(1)

monitor(3C)

tmpnam(3S)

cc(1)





   cc(1)               (C Programming Language Utilities)                cc(1)


   NAME
         cc - C compiler

   SYNOPSIS
         cc [options] file ...

   DESCRIPTION
         cc is the interface to the C compilation system.  The compilation
         tools conceptually consist of a preprocessor, compiler, optimizer,
         basic block analyzer, assembler, and link editor.  cc processes the
         supplied options and then executes the various tools with the proper
         arguments.  cc accepts several types of files as arguments.

         Files whose names end with .c are taken to be C source files and may
         be preprocessed, compiled, optimized, instrumented for profiling,
         assembled, and link edited.  The compilation process may be stopped
         after the completion of any pass if the appropriate options are
         supplied.  If the compilation process runs through the assembler,
         then an object file is produced whose name is that of the source with
         .o substituted for .c.  However, the .o file is normally deleted if a
         single C file is compiled and then immediately link edited.  In the
         same way, files whose names end in .s are taken to be assembly source
         files; they may be assembled and link edited.  Files whose names end
         in .i are taken to be preprocessed C source files, and they may be
         compiled, optimized, instrumented for profiling, assembled, and link
         edited.  Files whose names do not end in .c, .s, or .i are handed to
         the link editor, which produces a dynamically linked executable whose
         name by default is a.out.

         Since cc usually creates files in the current directory during the
         compilation process, it is necessary to run cc in a directory in
         which a file can be created.

         The following options are interpreted by cc:

         -A name[(tokens)]
               Associates name as a predicate with the specified tokens as if
               by a #assert preprocessing directive.

               Preassertions:system(unix)
                           cpu(M68K or M88K)
                           machine(m68k or m88k)

         -A -  Causes all predefined macros (other than those that begin with
               ) and predefined assertions to be forgotten.

         -B c  c can be either dynamic or static.  -B dynamic causes the link
               editor to look for files named libx.so and then for files named
               libx.a when given the -lx option.  -B static causes the link
               editor to look only for files named libx.a.  This option may be
               specified multiple times on the command line as a toggle.  This


   7/91                                                                 Page 1









   cc(1)               (C Programming Language Utilities)                cc(1)


               option and its argument are passed to ld.

         -C    Cause the preprocessing phase to pass along all comments other
               than those on preprocessing directive lines.

         -c    Suppress the link editing phase of the compilation and do not
               remove any produced object files.

         -D name[=tokens]

         Associates name with the specified tokens as if by a #define
         preprocessing directive.  If no =tokens is specified, the token 1 is
         supplied.

               Predefinitions:m68k or m88k
                           unix

         -d c  c can be either y or n.  -dy specifies dynamic linking, which
               is the default, in the link editor.  -dn specifies static
               linking in the link editor.  This option and its argument are
               passed to ld.

         -E    Only preprocess the named C files and send the result to the
               standard output.  The output will contain preprocessing
               directives for use by the next pass of the compilation system.

         -f    This option is obsolete and will be ignored.

         -G    Used to direct the link editor to produce a shared object
               rather than a dynamically linked executable.  This option is
               passed to ld.  It cannot be used with the -dn option.

         -g    Cause the compiler to generate additional information needed
               for the use of sdb.  Use of sdb on a program compiled with both
               the -g and -O options is not recommended unless the user
               understands the behavior of optimization.

         -H    Print, one per line, the path name of each file included during
               the current compilation on the standard error output.

         -I dir
               Alter the search for included files whose names do not begin
               with / to look in dir prior to the usual directories.  The
               directories for multiple -I options are searched in the order
               specified.

         -J sfm
               Specify the assembly language source math library, libsfm.sa.
               This library is searched when its name is encountered, so the
               placement of this option is significant.  Note that this is a
               special-purpose library and should be used only when necessary


   Page 2                                                                 7/91









   cc(1)               (C Programming Language Utilities)                cc(1)


               [see intro(3M)].  This option and its argument are passed to
               the optimizer only when both -O and -Ksd are also specified.

         -K PIC, minabi]

               -K PIC
                     Causes position-independent code (PIC) to be generated.

               -K minabi
                     Directs the compilation system to use a version of the C
                     library that minimizes dynamic linking, without changing
                     the application's ABI conformance (or non-conformance, as
                     the case may be).  Applications that use the Network
                     Services Library or the X library may not use -K minabi.

               The -K option can accept multiple arguments.  For example,

                     -K fpe,sz can be used instead of -K fpe -K PIC,minabi.

         -L dir
               Add dir to the list of directories searched for libraries by
               ld.  This option and its argument are passed to ld.

         -l name
               Search the library libname.so or libname.a.  Its placement on
               the command line is significant as a library is searched at a
               point in time relative to the placement of other libraries and
               object files on the command line.  This option and its argument
               are passed to ld.

         -O    Arrange for compilation phase optimization.  This option has no
               effect on .s files.

         -o pathname
               Produce an output object file pathname, instead of the default
               a.out.  This option and its argument are passed to ld.

         -P    Only preprocess the named C files and leave the result in
               corresponding files suffixed .i.  The output will not contain
               any preprocessing directives, unlike -E.

         -p    Arrange for the compiler to produce code that counts the number
               of times each routine is called; also, if link editing takes
               place, profiled versions of libc.a and libm.a (with the -lm
               option) are linked if the -dn option is used.  A mon.out file
               will then be produced at normal termination of execution of the
               object program.  An execution profile can then be generated by
               use of prof.





   7/91                                                                 Page 3









   cc(1)               (C Programming Language Utilities)                cc(1)


         -Q c  c can be either y or n.  If c is y, identification information
               about each invoked compilation tool will be added to the output
               files (the default behavior).  This can be useful for software
               administration.  Giving n for c suppresses this information.

         -q c  c can be either l or p.  -ql causes the invocation of the basic
               block analyzer and arranges for the production of code that
               counts the number of times each source line is executed.  A
               listing of these counts can be generated by use of lprof.  -qp
               is a synonym for -p.

         -S    Compile, optimize (if -O is present), and do not assemble or
               link edit the named C files.  The assembler-language output is
               left in corresponding files suffixed .s.

         -U name
               Causes any definition of name to be forgotten, as if by a
               #undef preprocessing directive.  If the same name is specified
               for both -D and -U, name is not defined, regardless of the
               order of the options.

         -V    Cause each invoked tool to print its version information on the
               standard error output.

         -v    Cause the compiler to perform more and stricter semantic
               checks, and to enable certain lint-like checks on the named C
               files.

         -W tool,arg1[,arg2 ...]
               Hand off the argument(s) argi each as a separate argument to
               tool.  Each argument must be separated from the preceding by
               only a comma.  (A comma can be part of an argument by escaping
               it by an immediately preceding backslash (\) character; the
               backslash is removed from the resulting argument.)  tool can be
               one of the following:

                   p     A synonym for 0
                   0     compiler
                   2     optimizer
                   b     basic block analyzer
                   a     assembler
                   l     link editor

               For example, -Wa,-o,objfile passes -o and objfile to the
               assembler, in that order; also -Wl,-I,name causes the linking
               phase to override the default name of the dynamic linker,
               /usr/lib/libc.so.1.

               The order in which the argument(s) are passed to a tool with
               respect to the other specified command line options may change.



   Page 4                                                                 7/91









   cc(1)               (C Programming Language Utilities)                cc(1)


         -X c  Specify the degree of conformance to the ANSI C standard.  c
               can be one of the following:

               t (transition)
                     The compiled language includes all new features
                     compatible with older (pre-ANSI) C (the default
                     behavior).  The compiler warns about all language
                     constructs that have differing behavior between the new
                     and old versions and uses the pre-ANSI C interpretation.
                     This includes, for example, warning about the use of
                     trigraphs the new escape sequence \a, and the changes to
                     the integral promotion rules.

               a (ANSI)
                     The compiled language includes all new features of ANSI C
                     and uses the new interpretation of constructs with
                     differing behavior.  The compiler continues to warn about
                     the integral promotion rule changes, but does not warn
                     about trigraph replacements or new escape sequences.

               c (conformance)
                     The compiled language and associated header files are
                     ANSI C conforming, but include all conforming extensions
                     of -Xa.  Warnings will be produced about some of these.
                     Also, only ANSI defined identifiers are visible in the
                     standard header files.

               The predefined macro STDC has the value 0 for -Xt and -Xa,
               and 1 for -Xc.  All warning messages about differing behavior
               can be eliminated in -Xa through appropriate coding; for
               example, use of casts can eliminate the integral promotion
               change warnings.

         -Y item,dir
               Specify a new directory dir for the location of item.  item can
               consist of any of the characters representing tools listed
               under the -W option or the following characters representing
               directories containing special files:

               F     obsolete.  Use -YP instead.  For this release, -YF will
                     be simulated using -YP.  -YF will be removed in the next
                     release.
               I     directory searched last for include files: INCDIR (see
                     -I)
               S     directory containing the start-up object files: LIBDIR
               L     obsolete.  Use -YP instead.  For this release, -YL will
                     be simulated using -YP.  -YL will be removed in the next
                     release.
               U     obsolete.  Use -YP instead.  For this release, -YU will
                     be simulated using -YP.  -YU will be removed in the next
                     release.


   7/91                                                                 Page 5









   cc(1)               (C Programming Language Utilities)                cc(1)


               P     Change the default directories used for finding
                     libraries. dir is a colon-separated path list.

               If the location of a tool is being specified, then the new path
               name for the tool will be dir/tool.  If more than one  -Y
               option is applied to any one item, then the last occurrence
               holds.

         cc recognizes -a, -B, -e, -h -m, -o, -r, -s, -t, -u, and -z and
         passes these options and their arguments to ld.  cc also passes any
         unrecognized options to ld without any diagnostic.

         When cc is put in a file prefixcc, the prefix will be recognized and
         used to prefix the names of each tool executed.  For example, OLDcc
         will execute OLDacomp, OLDnewoptim, OLDbasicblk, OLDas, and OLDld,
         and will link the object file(s) with OLDcrt1.o.  Therefore, be
         careful when moving cc around.  The prefix applies to the compiler,
         optimizer, basic block analyzer, assembler, link editor, and the
         start-up routines.

   FILES
         file.c                C source file
         file.i                preprocessed C source file
         file.o                object file
         file.s                assembly language file
         a.out                 link-edited output
         LIBDIR/*crti.o        startup initialization code
         LIBDIR/*crt1.o        startup routine
         LIBDIR/*crtn.o        last startup routine
         TMPDIR/*              temporary files
         LIBDIR/acomp          preprocessor and compiler
         LIBDIR/newoptim       optimizer
         LIBDIR/basicblk       basic block analyzer
         BINDIR/as             assembler
         BINDIR/ld             link editor
         LIBDIR/libc.so        shared standard C library
         LIBDIR/libc.a         archive standard C library

         INCDIR                usually /usr/include
         LIBDIR                usually /usr/ccs/lib
         BINDIR                usually /usr/ccs/bin
         TMPDIR                usually /var/tmp but can be redefined by
                               setting the environment variable TMPDIR (see
                               tempnam in tmpnam(3S)).

   SEE ALSO
         s(1), libc.ad(1), lint(1), lprofFP(1), prof(1), sdb(1), monitor(3C),
         tmpnam(3S).
         The ``C Compilation System'' chapter in the Programmer's Guide: ANSI
         C and Programming Support Tools.
         Kernighan, B. W., and Ritchie, D. M., The C Programming Language,


   Page 6                                                                 7/91









   cc(1)               (C Programming Language Utilities)                cc(1)


         Second Edition, Prentice-Hall, 1988.
         American National Standard for Information Systems - Programming
         Language C, X3.159-1989.

   NOTES
         Obsolescent but still recognized cc options include -f, -F, -YF, -YL,
         and -YU. The -ql and -O options do not work together; -O will be
         ignored.













































   7/91                                                                 Page 7





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026