PCC(1) PCC(1)
NAME
pcc - APE C compiler driver
SYNOPSIS
pcc [ option ... ] [ name ... ]
DESCRIPTION
Pcc compiles and loads C programs, using APE (ANSI C/POSIX)
include files and libraries. Named files ending with .c are
preprocessed with cpp(1), then compiled with one of the com-
pilers described in 2c(1), as specified by the environment
variable $objtype. The object files are then loaded using
one of the loaders described in 2l(1). The options are:
-o out Place loader output in file out instead of the
default 2.out, v.out, etc.
-P Omit the compilation and loading phases; leave
the result of preprocessing name.c in name.i.
-c Omit the loading phase.
-p Insert profiling code into the executable out-
put.
-w Print compiler warning messages.
-B Don't complain about functions used without ANSI
function prototypes.
-v Echo the preprocessing, compiling, and loading
commands before they are executed.
-Dname=def
-Dname Define the name to the preprocessor, as if by
`#define'. If no definition is given, the name
is defined as `1'.
-Uname Undefine the name to the preprocessor, as if by
`#undef'.
-Idir `#include' files whose names do not begin with
`/' are always sought first in the directory of
the file argument, then in directories named in
-I options, then in /$objtype/include/ape.
-N Don't optimize compiled code.
-S Print an assembly language version of the object
code on standard output.
Page 1 Plan 9 (printed 10/29/25)
PCC(1) PCC(1)
-a Instead of compiling, print on standard output
acid functions (see acid(1)) for examining
structures declared in the source files.
-aa Like -a except that functions for structures
declared in included header files are omitted.
The APE environment contains all of the include files and
library routines specified in the ANSI C standard (X3.159-
1989), as well as those specified in the IEEE Portable Oper-
ating System Interface standard (POSIX, 1003.1-1990, ISO
9945-1). In order to access the POSIX routines, source pro-
grams should define the preprocessor constant _POSIX_SOURCE.
FILES
/sys/include/ape directory for machine-independent
#include files.
/$objtype/include/ape directory for machine-dependent
#include files.
/$objtype/lib/ape/libap.a ANSI C/POSIX library.
SEE ALSO
cpp(1), 2c(1), 2a(1), 2l(1), mk(1), nm(1), acid(1), db(1),
prof(1)
Howard Trickey, ``APE - The ANSI/POSIX Environment''
SOURCE
/sys/src/cmd/pcc.c
BUGS
The locale manipulation functions are minimal. Signal func-
tions and terminal characteristic handlers are only mini-
mally implemented. Link always fails, because Plan 9
doesn't support multiple links to a file. The functions
related to setting effective user and group ids cannot be
implemented because the concept doesn't exist in Plan 9.
Page 2 Plan 9 (printed 10/29/25)