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: Accept C++ // comments. -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. -E Like -P, but send the result to standard output. -c Omit the loading phase. -p Insert profiling code into the executable out- put. -w Print compiler warning messages. -llib Include /$objtype/lib/ape/liblib.a as a library during the linking phase. -B Don't complain about functions used without ANSI function prototypes. -V Enable void* conversion warnings, as in 2c(1). -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 Page 1 Plan 9 (printed 11/22/24) PCC(1) PCC(1) 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. -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. -F Enable vararg type checking as described in 2c(1). This is of limited use without the appro- priate #pragma definitions. 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 11/22/24)