Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (1) — Plan9 4th Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cpp(1)

2c(1)

2a(1)

2l(1)

mk(1)

nm(1)

acid(1)

db(1)

prof(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:

­-+ 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 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

-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. 

Plan 9  —  March 01, 2002

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026