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 8c(1), as specified by the environment variable $objtype. The
object files are then loaded using one of the loaders
described in 8l(1). The options are: –+ Accept C++ // comments. –o out Place loader output in file out instead of the default 8.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. –W Print all the messages that –w would print as warnings, but make them errors. –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 8c(1). –v Echo the preprocessing, compiling, and loading commands before they are executed. –x file Produce an export file in the executable, as described in 8l(1). –Dname=def –DnameDefine the name to the preprocessor, as if by #define. If no definition is given, the name is defined as 1. –UnameUndefine 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. –T Pass type signatures on all external and global entities. The signature is based on the C signof operator. See dynld(2). –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 8c(1). This is of limited use without the appropriate #pragma definitions. –f (ARM only) Generate VFP hardware floating point instructions.
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), 8c(1), 8a(1), 8l(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. |