Provided by: pcc_1.2.0~DEVEL+20220331-1_amd64 bug

NAME

     cc — front-end to the C compiler

SYNOPSIS

     cc [-cEgkMPSstvX] [-ansi] [-Bprefix] [-D macro[=value]] [-dflags] [-ffeature] [-I path]
        [-include file] [-isystem path] [-Lpath] [-moption] [-nodefaultlibs] [-nostartfiles]
        [-nostdinc] [-nostdlib] [-O[level]] [-o outfile] [-pg] [-pthread] [-shared] [-static]
        [-std=standard] [-U macro] [-Wa,options] [-Wc,options] [-Wl,options] [-Wp,options]
        [-x language] [-z keyword] [file ...]

DESCRIPTION

     The cc utility provides a front-end to the “portable C compiler”.  Multiple files may be
     given on the command line.  Unrecognized options are sent directly to ld(1).

     Filenames that end with .c are passed via cpp(1) → ccom(1) → as(1) → ld(1).

     Filenames that end with .i are passed via ccom(1) → as(1) → ld(1).

     Filenames that end with .s are passed via as(1) → ld(1).

     Filenames that end with .S are passed via cpp(1) → as(1) → ld(1).

     Filenames that end with .o are passed directly to ld(1).

     The options are as follows:

     -ansi   Synonym for -std=c89.

     -Bprefix
             Define alternate prefix path for cpp(1), ccom(1), as(1), or ld(1) executables.

     -C      Passed to the cpp(1) preprocessor to not discard comments.

     -c      Stop after generating object code with as(1).  Do not link.  The resulting object
             output is saved as a filename with a “.o” suffix unless -o option is used.  Note:
             cannot be combined with -o if multiple files are given.

     -D macro[=value]
             Passed to the cpp(1) preprocessor to define macro with an optional value.

     -dflags
             Debug options.  flags is a string of characters, which signify the following
             actions.

             M  Cause the preprocessor to output a list of macro definitions.

             any unknown flags are ignored.

     -E      Stop after preprocessing with cpp(1).  Do not compile, assemble, or link.  Output is
             sent to standard output unless the -o option is used.

     -ffreestanding
             Assume a freestanding environment.

     -fPIC   Generate PIC code.

     -fpic   Tells C compiler to generate PIC code and tells assembler that PIC code has been
             generated.

     -funsigned-char
             Tell the compiler to treat ‘char’ types as if they were unsigned unless explicitly
             defined otherwise.  -fsigned-char can be used to signify the opposite behaviour.
             The default for the ‘char’ type depends on the compiler target architecture.

     -fstack-protector
             Tell the compiler to wrap functions with code which checks at runtime that a stack
             overflow has not occurred.  When stack protection is in effect, the __SSP__ macro
             will be defined.

     -g      Send -g flag to ccom(1) to create debug output.  Debug information output can be
             disabled with -g0.

     -I path
             Passed to the cpp(1) preprocessor to add header search directory to override system
             defaults.

     -include file
             Tells the cpp(1) preprocessor to include the file during preprocessing.

     -isystem path
             Defines path as a system header directory for the cpp(1) preprocessor.

     -k      Generate PIC code.  See -fpic option.

     -Lpath  Passed to the linker, to add path to the list of directories searched for shared
             libraries.

     -M      Pass -M flag to cpp(1) to generate dependencies for make(1).

     -moption
             Target-dependent options.  Multiple -m options can be given, the following are
             supported:

             ARM      -mlittle-endian -mbig-endian -mfpe=fpa -mfpe=vpf -msoft-float -march=armv1
                      -march=armv2 -march=armv2a -march=armv3 -march=armv4 -march=armv4t
                      -march=armv4tej -march=armv5 -march=armv6 -march=armv6t2 -march=armv6kz
                      -march=armv6k -march=armv7

             HPPA

             i386

             MIPS     -mlittle-endian -mbig-endian -mhard-float -msoft-float

             PDP-10

             PowerPC

             Sparc64

             VAX

     -nodefaultlibs
             Do not link with the system default libraries (libc, etc.)

     -nostartfiles
             Do not link with the system startup files (crt0.c, etc.)

     -nostdinc
             Do not use the system include paths (/usr/include, etc.)

     -nostdlib
             Do not link with the system default libraries or startup files.

     -O[level]
             Enable compiler optimizations.  Currently, for levels higher than zero, this defines
             __OPTIMIZE__ in the cpp(1) preprocessor, and passes -xdce, -xdeljumps, -xtemps and
             -xinline to ccom(1).  If no level is given the optimization level is -O1.
             Optimizations can be disabled using -O0.  In situations where multiple optimization
             flags are given, the last flag is the one used.

     -o outfile
             Save result to outfile.

     -P      Inhibit generation of line markers in preprocessor output.  This is sometimes useful
             when running the preprocessor on something other than C code.

     -pg     Enable profiling on the generated executable.

     -pthread
             Defines the _PTHREADS preprocessor identifier for cpp(1), and adds -lpthread to the
             ld(1) linker arguments.

     -S      Stop after compilation by ccom(1).  Do not assemble and do not link.  The resulting
             assembler-language output is saved as a filename with a “.s” suffix unless the -o
             option is used.  Note: cannot be combined with -o if multiple files are given.

     -s      Passed to ld(1) to remove all symbol table and relocation information from the
             generated executable.  This option is silently ignored if cc does not invoke the
             linker.

     -shared
             Create a shared object of the result.  Tells the linker not to generate an
             executable.

     -static
             Do not use dynamic linkage.  By default, it will link using the dynamic linker
             options and/or shared objects for the platform.

     -std=standard
             Compile to the specified standard.  Accepted values for standard are c89, c99,
             gnu89, gnu99, gnu9x, and c11.

     -t      Passed to cpp(1) to suppress some default macro definitions and enable use of
             traditional C preprocessor syntax.

     -U macro
             Passes to the cpp(1) preprocessor to remove the initial macro definition.

     -v      Outputs the version of cc and shows commands as they are run with their command line
             arguments.

     -###    As per -v except that the commands are not run, and the arguments will be quoted if
             they contain unusual characters or spaces.

     -Wa,options
             Comma separated list of options for the assembler.

     -Wc,options
             Comma separated list of options for the compiler.

     -Wl,options
             Comma separated list of options for the linker.

     -Wp,options
             Comma separated list of options for the preprocessor.

     -X      Don't remove temporary files on exit.

     -x language
             GCC compatibility option; specify the language in use rather than interpreting the
             filename extension.  Currently known language values are none, c, c++, assembler and
             assembler-with-cpp.  Any unknown -x options are passed to ccom(1).

     -z keyword
             Passed to ld(1).  Please refer to the documentation of your linker for acceptable
             values of keyword.

   Predefined Macros
     A few macros are predefined by cc when sent to cpp(1).

     __PCC__  Set to the major version of pcc(1).  These macros can be used to select code based
     on pcc(1) compatibility.  See the -v option.

     __PCC_MINOR__  Set to the minor version.

     __PCC_MINORMINOR__  Set to the minor-minor version — the number after the minor version.

     _PTHREADS  Defined when -pthread switch is used.

     __ASSEMBLER__  Defined when input files have a .S suffix, or if the -xassembler-with-cpp
     option is specified.

     Also system- and/or machine-dependent macros may also be predefined; for example:
     __NetBSD__, __ELF__, and __i386__.

SEE ALSO

     as(1), ccom(1), cpp(1), ld(1)

HISTORY

     The cc command comes from the original Portable C Compiler by S. C. Johnson, written in the
     late 70's.

     This product includes software developed or owned by Caldera International, Inc.