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 compilers 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.
-E
Like
-P,
but send the result to standard output.
-c
Omit the loading phase.
-p
Insert profiling code into the executable output.
-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
unhandled troff command .ns
-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.
-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 appropriate
#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
Operating System Interface standard (POSIX, 1003.1-1990, ISO 9945-1).
In order to access the POSIX routines, source programs 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 functions and terminal characteristic
handlers are only minimally 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.