pc(1)
_________________________________________________________________
pc Command
Pascal language compiler in DG/UX
_________________________________________________________________
SYNTAX
pc [ option ] [ option name ... ] name ....
DESCRIPTION
Pascal is an optional language for DG/UX. The pc(1) command
invokes the Pascal compiler and linker to create an executable
module, which is called a.out by default. DG/UX Pascal conforms
to the Draft Proposed American National Standard programming
language Pascal (issued by the joint ANSI X3J9-IEEE Pascal
Standards Committee). It will compile any number of Pascal files
into object files then link these files to create the executable
module.
All Pascal filenames must have a .p or .pas extension. If pc(1)
is given a name without any extension it will first look for a
file with a .p extension, then for one with a .pas extension.
There must be one and only one program statement among the object
files linked to successfully create an executable module. Object
files created by other language processors may be linked together
with object files created by pc(1).
DG/UX switches are handled by the DG/UX Pascal compiler, the
pc(1), or ld(1), the link editor.
Pc switches
These are all of the switches that are handled by pc(1):
-Bpath Construct path names for an alternate C compiler,
F77 compiler, Pascal compiler, assembler, and
linker by concatenating string with ccomp, f77,
pascal, as, and ld respectively. If path is not
specified, the following pathnames will be used:
/usr/dgc/ccomp
/usr/f77/fcomp
/usr/pascal/pcomp
/lib/as
/lib/ld
-c Do not link object files.
DG/UX 4.00 Page 1
Licensed material--property of copyright holder(s)
pc(1)
-g Produce information for source-level debugger.
-j[012] Specify the error level that is acceptable. The
levels are as follows:
-j0 Delete object file on any error.
-j1 Level 1 warnings are not considered a fatal
error.
-j2 Level 1 warnings and Level 2 errors are not
fatal. This is the default.
-Olevel Optimize, optionally specifying level, a number
from 0 to 3. Compiler returns an error unless
-PNOCHECK is also specified; see below.
-p Reserved for profiling.
-S After compilation, run a disassembler to produce an
assembly language file that can be assembled to
give an equivalent object file. Note that the
object file produced by the compilers and that
produced by the assembler after assembling a file
produced with -S will not compare exactly. This is
due to the fact that the compilers and the
assembler produce object blocks in different
orders.
-toptions Options may be one or more of the set acflp; they
control which programs are controlled by the -B
option. The options are:
[a] The designated alternate assembler.
[c] The C compiler.
[f] The F77 compiler.
[l] The linker.
[p] The Pascal compiler.
If no letter is specified after the -t option, cfp will be used.
If no -B option was specified, the following pathnames will be
used:
/usr/dgc/ccomp
/usr/f77/fcomp
/usr/pascal/pcomp
/lib/as
DG/UX 4.00 Page 2
Licensed material--property of copyright holder(s)
pc(1)
/lib/ld
-v Verbose operation. Print the command lines of Pascal, as,
and ld as they are executed.
-Woption,args...
Pass arg(s) to the facility specified by option, which is
only one letter from the set acflp. Option must be followed
by a comma, and commas must separate the arguments. White
space is not allowed anywhere in this switch. The option
indicates that the arg(s) will be passed to the assembler
[a], C compiler [c], F77 compiler [f], linker [l], or
Pascal compiler [p].
-YPdir
Find the pascal compiler in dir.
AOS/VS switches
These switches are supplied for compatibility with Pascal on
AOS/VS. The following switch is read by DG/UX Pascal:
-Poption
Specify an AOS/VS Pascal option, one from the list below.
You may include any number of -P switches on the command
line. Option may be uppercase or lowercase. For example,
either -PCODE or -Pcode would invoke the CODE switch in
AOS/VS.
Here is a list of AOS/VS switches. If the switch described is not
on by default, then the default is specified within parentheses.
CHECK Overrides the "check" compiler directives and
produces full runtime checking.
CODE Produces an object code listing if the L switch is
also specified. (NOCODE)
CODEMAP Produces a code offset map. (NOCODEMAP)
DEBUG Produces output symbol and lines information for
use by the dbx debugger. (NODEBUG)
E=name Write error messages to file name. Without name,
Pascal writes error messages to the default output
file. If a listing file is requested (L=) errors
are reported in the listing also.
ERRORCOUNT=n Terminates compilation after n errors are reported.
The default is 100 errors.
DG/UX 4.00 Page 3
Licensed material--property of copyright holder(s)
pc(1)
INTEGER=size Specifies the container size and range for values
of type INTEGER Size may be LONG or SHORT.(LONG)
L=name Directs output listing to file name. If no file is
named the output goes to the default output file.
If a file is named, but doesn't exist, Pascal
creates it. Source lines in the listing that begin
as part of a comment are flagged by a star (*).
Lines from include files are flagged by an I.
LINEID Produces line numbers that can be referred to by
the runtime error reporter. (NOLINEID)
N Does not produce an object file.
NESTLEVEL Reports each line's nesting level on the listing.
(NONESTLEVEL)
NOCHECK Overrides all of the "check" compiler directives
that emit code to perform runtime error checking.
Performs no runtime error checking. This option
should always be used for final-pass optimization.
Unless it is present, you cannot achieve
optimization.
NOMAP Does not produce a storage map. (MAP)
O=name Writes object file to name.o.
OPTIMIZE=num Specifies optimization level. If level number is
not given (1, 2, or 3), level 3 if assumed. The
compiler issues a warning message if optimization
if specified and any runtime checks are being
emitted, or if any other compiler switch is
selected which would inhibit optimization or cause
additional code to be generated.
OVERRIDE=directive_settings
Overrides the compiler directives in the source
listing and uses the specified settings instead.
List directive settings in a single string with no
intervening delimiters. For example,
OVERRIDE=V+R+I. A compiler warning occurs if an
override setting is in conflict with either the
CHECK or NOCHECK switch.
PROCID Produces runtime procedure name information for the
error reporter. (NOPROCID)
STANDARDWARNINGS
Reports usage of nonstandard constructs (Data
DG/UX 4.00 Page 4
Licensed material--property of copyright holder(s)
pc(1)
General Pascal extensions) in the source. Reported
as a NOTE 0 message. (NOSTANDARDWARNINGS)
STATISTICS Writes compilation statistics to the default output
file and to the L=file, if specified.
(NOSTATISTICS)
TMPDIR=prefix Inserts the specified prefix in front of the
temporary file name used by the compiler.
Normally, Pascal creates temporary files in the
working directory. This switch causes the compiler
to create temporary files in a directory other than
the working directory. When the prefix is a
directory pathname, it must be followed by a colon.
XREF Appends a cross-reference listing to the listing
file. The cross-reference listing contains
information on each named constant, type and
variable. You must specify the L switch when you
use this switch. (NOXREF)
Ld switches
These switches are automatically passed to ld(1), the link
editor:
-e symbol Starting address is symbol.
-lname Search for library libname.a.
-L dir Search for libraries in dir before searching /lib
and /usr/lib.
-m Produce a link map.
-M Warn about multiply defined symbols.
-N Compress text and data.
-o file Executable module is called file instead of a.out.
-r Produce relocatable output which can be used as an
input file to a subsequent ld run. The linker will
not complain about unresolved references, and the
output file will not be executable. This requires
the revision 4.00 DG/UX linker.
-RD num Set beginning data address to num.
-RT num Set beginning text address to num.
DG/UX 4.00 Page 5
Licensed material--property of copyright holder(s)
pc(1)
-s Strip symbol table information.
-u name Add name as an external.
-V Print the revision number of ld and as.
-VS rev Set program's revision number to rev.
-x Strip local symbols.
-YLdir Use dir as the first default library directory to
be searched by the linker instead of /lib.
-YUdir Use dir as the second default library directory to
be searched by the linker instead of /usr/lib.
-z Ignored. In other versions, this forces address
zero not to be bound to check for NULL pointers.
Since users are always bound to ring 7 under DG/UX,
address zero is never valid.
-Q Don't compress uninitialized static (bss) data.
FILES
file.p or file.pas Pascal source files
/usr/pascal/pcomp Pascal compiler
/usr/pascal/pascaldriver Compiler error messages
/usr/pascal/libp.a Pascal runtime library
/lib/liba.a Common language library
/tmp/ptm* Temporary files
SEE ALSO
as(1), cc(1), dbx(1), f77(1), ld(1)
DG/UX 4.00 Page 6
Licensed material--property of copyright holder(s)