94fb8869df
C99 comments have been the default in compilers for something like 20 years now. This means we don't need to remember to turn it on when porting software, and gets rid of cryptic errors about unterminated character constants when someone writes something like: // Didn't need to... We still accept the flag to avoid breaking mkfiles, but we do nothing with it. This also removes the documentation, since the option does nothing now.
180 lines
3.4 KiB
Text
180 lines
3.4 KiB
Text
.TH PCC 1
|
|
.SH NAME
|
|
pcc \- APE C compiler driver
|
|
.SH SYNOPSIS
|
|
.B pcc
|
|
[
|
|
.I option ...
|
|
]
|
|
[
|
|
.I name ...
|
|
]
|
|
.SH DESCRIPTION
|
|
.I Pcc
|
|
compiles and loads C programs,
|
|
using APE (ANSI C/POSIX) include files and libraries.
|
|
Named files ending with
|
|
.B .c
|
|
are preprocessed with
|
|
.IR cpp (1),
|
|
then compiled with one of the compilers described in
|
|
.IR 2c (1),
|
|
as specified by the environment variable
|
|
.BR $objtype .
|
|
The object files are then loaded using one of the loaders described in
|
|
.IR 2l (1).
|
|
The options are:
|
|
.TP \w'\fL-D\ \fIname=def\ 'u
|
|
.BI -o " out"
|
|
Place loader output in file
|
|
.I out
|
|
instead of the default
|
|
.BR 2.out ,
|
|
.BR v.out ,
|
|
etc.
|
|
.TP
|
|
.B -P
|
|
Omit the compilation and loading phases;
|
|
leave the result of preprocessing
|
|
.IB name .c
|
|
in
|
|
.IB name .i\f1.
|
|
.TP
|
|
.B -E
|
|
Like
|
|
.BR -P ,
|
|
but send the result to standard output.
|
|
.TP
|
|
.B -c
|
|
Omit the loading phase.
|
|
.TP
|
|
.B -p
|
|
Insert profiling code into the executable output.
|
|
.TP
|
|
.B -w
|
|
Print compiler warning messages.
|
|
.TP
|
|
.BI -l lib
|
|
Include
|
|
.BI / $objtype /lib/ape/lib lib .a
|
|
as a library during the linking phase.
|
|
.TP
|
|
.B -B
|
|
Don't complain about functions used without
|
|
ANSI function prototypes.
|
|
.TP
|
|
.B -V
|
|
Enable
|
|
.B void*
|
|
conversion warnings, as in
|
|
.IR 2c (1).
|
|
.TP
|
|
.B -v
|
|
Echo the preprocessing, compiling, and loading commands
|
|
before they are executed.
|
|
.TP
|
|
.BI -D name=def
|
|
.br
|
|
.ns
|
|
.TP
|
|
.BI -D name
|
|
Define the
|
|
.I name
|
|
to the preprocessor,
|
|
as if by
|
|
.LR #define .
|
|
If no definition is given, the name is defined as
|
|
.LR 1 .
|
|
.TP
|
|
.BI -U name
|
|
Undefine the
|
|
.I name
|
|
to the preprocessor,
|
|
as if by
|
|
.LR #undef .
|
|
.TP
|
|
.BI -I dir
|
|
.L #include
|
|
files whose names do not begin with
|
|
.L /
|
|
are always
|
|
sought first in the directory
|
|
of the
|
|
.I file
|
|
argument,
|
|
then in directories named in
|
|
.B -I
|
|
options,
|
|
then in
|
|
.BR /$objtype/include/ape .
|
|
.TP
|
|
.B -N
|
|
Don't optimize compiled code.
|
|
.TP
|
|
.B -S
|
|
Print an assembly language version of the object code
|
|
on standard output.
|
|
.TP
|
|
.B -a
|
|
Instead of compiling, print on standard output acid functions (see
|
|
.IR acid (1))
|
|
for examining structures declared in the source files.
|
|
.TP
|
|
.B -aa
|
|
Like
|
|
.B -a
|
|
except that functions for structures declared in included header files
|
|
are omitted.
|
|
.TP
|
|
.B -F
|
|
Enable vararg type checking as described in
|
|
.IR 2c (1).
|
|
This is of limited use without the appropriate
|
|
.B #pragma
|
|
definitions.
|
|
.PP
|
|
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
|
|
.BR _POSIX_SOURCE .
|
|
.SH FILES
|
|
.TF /$objtype/lib/ape/libap.a
|
|
.TP
|
|
.B /sys/include/ape
|
|
directory for machine-independent
|
|
.B #include
|
|
files.
|
|
.TP
|
|
.B /$objtype/include/ape
|
|
directory for machine-dependent
|
|
.B #include
|
|
files.
|
|
.TP
|
|
.B /$objtype/lib/ape/libap.a
|
|
ANSI C/POSIX library.
|
|
.SH "SEE ALSO"
|
|
.IR cpp (1),
|
|
.IR 2c (1),
|
|
.IR 2a (1),
|
|
.IR 2l (1),
|
|
.IR mk (1),
|
|
.IR nm (1),
|
|
.IR acid (1),
|
|
.IR db (1),
|
|
.IR prof (1)
|
|
.PP
|
|
Howard Trickey,
|
|
``APE \(em The ANSI/POSIX Environment''
|
|
.SH SOURCE
|
|
.B /sys/src/cmd/pcc.c
|
|
.SH BUGS
|
|
The locale manipulation functions are minimal.
|
|
Signal functions and terminal characteristic
|
|
handlers are only minimally implemented.
|
|
.IR 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.
|