NAME
IF77 - if77, f77: Driver for compiling, assembling, and
linking Fortran programs for the Paragon(TM) system.
CROSS-DEVELOPMENT SYNTAX
if77 [switches] sourcefile...
NATIVE SYNTAX
f77 [switches] sourcefile...
DESCRIPTION
The if77 command invokes the Fortran compiler, assembler,
and linker with switches derived from if77's command line
switches.
if77 bases its processing on the suffixes of the files it is
passed:
file.F is a Fortran program with preprocessor direc-
tives. It is preprocessed, compiled and assem-
bled. The resulting object file is placed in the
current directory.
file.f is a Fortran program. It is compiled and assem-
bled. The resulting object file is placed in the
current directory.
file.s is an i860 assembly language file. It is assem-
bled and the resulting object file is placed in
the current directory.
file.o is an object file. It is passed directly to the
linker if linking is requested.
file.a is an ar library. It is passed directly to the
linker if linking is requested.
file.c is a C program. It is passed to the C compiler.
All other files are taken as object files and passed to the
linker (if linking is requested) with a warning message. If
a file's suffix does not match its actual contents, unex-
pected results may occur.
If a single Fortran program is compiled and linked with one
if77 command, then the intermediate object and assembly
files are deleted.
By default, Fortran local variables are placed on the stack.
Some Fortran programs assume that all variables are allo-
cated statically. Static allocation can be forced with the
-Msave switch.
SWITCHES
-c Skips the link step; compiles and assembles
only. Leaves the output from the assemble step
in a file named file.o for each file named
file.f (unless you also use the -o switch).
-Dname[=def]
Defines name to be def in the preprocessor. If
def is missing, it is assumed to be empty. If
the = sign is also missing, then name is defined
to be the string 1.
-E Preprocesses each ``.F'' file and sends the
result to stdout. No compilation, assembly, or
linking is performed.
-F Preprocesses each ``.F'' file and leaves the
output in a file named file.f for each file
named file.F.
-g Equivalent to -Mdebug -O0 -Mframe.
-I- Accepted, but has no affect.
-Idirectory
Add a specified directory to the compiler's
search path for include files where directory is
the pathname of the directory to be added. If
you use more than one -I switch, the specified
directories are searched in the order they were
specified (left to right).
The INCLUDE statement directs the compiler to
begin reading from another file. The compiler
uses two rules to locate the specified file.
Note that the Fortran INCLUDE statement is dif-
ferent from the #include statement, whcih uses
the C preprocessor.
1. If the filename specified in the INCLUDE
statement includes a pathname, the com-
piler begins reading from the file it
specifies.
2. If no pathname is provided in the
INCLUDE statement, the compiler searches
for the file in the following order:
o any directories specified with -I
o the directory containing the source file
o the current directory
-Koption Requests special mathematical semantics. The
option values are:
ieee (default)
If used while linking, links in a
math library that conforms with the
IEEE 754 standard.
If used while compiling, tells the
compiler to perform real and double
precision divides in conformance
with the IEEE 754 standard.
ieee=enable
If used while linking, has the same
effects as -Kieee, and also enables
floating point traps and underflow
traps. If used while compiling, has
the same effects as -Kieee.
ieee=strict
If used while linking, has the same
effects as -Kieee=enable, and also
enables inexact traps. If used while
compiling, has the same effects as
-Kieee.
noieee If used while linking, produces a
program that flushes denormals to 0
on creation (which reduces underflow
traps) and links in a math library
that is not as accurate as the stan-
dard library, but offers greater
performance. This library offers
little or no support for exceptional
data types such as INF and NaN, and
will trap on such values when
encountered.
If used while compiling, tells the
compiler to perform real and double
precision divides using an inline
divide algorithm that offers greater
performance than the standard algo-
rithm. This algorithm produces
results that differ from the results
specified by the IEEE standard by no
more than three units in the last
place.
trap=fp If used while linking, disables ker-
nel handling of floating point
traps. Has no effect if used while
compiling.
trap=align If used while linking, disables ker-
nel handling of alignment traps. Has
no effect if used while compiling
-llibrary Load the library liblibrary.a. The library is
loaded from the first library directory in the
library search path (see the -L switch) in which
a file of that name is encountered. (Passed to
the linker.)
-Ldirectory
Adds directory to beginning of the library
search path. Also see the nostdlib and nostartup
options of the -M switch. (Passed to the linker;
see the ld860 manual page for more information
on the library search path.)
-m Produces a link map. (Passed to the linker.)
-Moption Requests specific actions from the compiler. The
option values are as follows (an unrecognized -M
option is passed directly to the compiler):
alpha Activate alpha-release compiler
features.
anno Produce annotated assembly files,
where source code is intermixed with
assembly language. -Mkeepasm or -S
should be used as well.
beta Activate beta-release compiler
features.
[no]bounds [Don't] enable array bounds checking
(default -Mnobounds).
clr_reg Clear the internal registers after
every procedure invocation. This
option is used for diagnostic pur-
poses.
concur[=option[,option...]]
Make loops parallel as defined by
the specified options. option can be
any of the following:
altcode:count - Make innermost loops
without reduction parallel only if
their iteration count exceeds count.
Without this switch, the compiler
assumes a default count of 100.
altcode_reduction:count - Make
innermost loops with reduction
parallel only if their iteration
count exceeds count. Without this
switch, the compiler assumes a
default count of 200.
dist:block - Make the outermost
valid loop in any loop nest paral-
lel. This is the default option.
dist:cyclic - Make the outermost
valid loop in any loop nest paral-
lel. If an innermost loop is made
parallel, its iterations are allo-
cated to processors cyclically. That
is, processor 0 performs iterations
0, 3, 6, ...; processor 1 performs
iterations 1, 4, 7, ...; and proces-
sor 2 performs iterations 2, 5, 8,
and so on.
global_vcache - Directs the vector-
izer to locate the cache within the
area of an external array when gen-
erating codes for parallel loops. By
default, the cache is located on the
stack for parallel loops.
noassoc - Do not make loops with
reductions parallel.
cncall Make loops with calls parallel. By
default, the compiler does not make
loops with calls parallel since
there is no way for the compiler to
verify that the called routines are
safe to execute in parallel. When
you specify -Mcncall on the command
line, the compiler also automati-
cally specifies -Mreentrant.
-Mcncall also allows several other
types of loops to be made parallel:
- loops with I/O statements
- loops with conditional statements
- loops with low loop counts
- non-vectorizable loops
If the compiler can detect a
cross-iteration dependency in a
loop, it will not make the loop
parallel, even if -Mcncall is speci-
fied.
cpp860 Direct the internal preprocessor to
not compress white space.
cray=option[,option...]
Force Cray Fortran (CF77) compati-
bility with respect to listed
options. Currently, only one option
is supported.
pointer For puposes of optimiza-
tion is is assumed that
pointed-based variables do not over-
lay the storage of any other vari-
able.
[no]dclchk [Don't] require that all variables
be declared (default -Mnodclchk).
[no]debug [Don't] generate symbolic debug
information (default -Mnodebug). If
-Mdebug is specified with an optimi-
zation level greater than zero, line
numbers will not be generated for
all program statements.
[no]depchk [Don't] check for potential data
dependencies (default -Mdepchk).
-Mnodepchk is especially useful in
disambiguating unknown data depen-
dencies arising from use of array
subscripts that cannot be derived at
compile time. For example, if an
array is referenced in a loop using
the induction variable plus some
other unknown non-induction-based
variable as a subscript, the com-
piler must assume that the array
conflicts with a similar array
reference based on the induction
variable alone. If it is known that
the two array references do not con-
flict, then this switch may result
in better code. Do not use this
switch if such data dependencies do
exist, because incorrect code may
result.
[no]dlines [Don't] treat lines beginning with D
in column 1 as executable state-
ments, ignoring the D (default
-Mnodlines).
dollar,char Specify char as the character to
which the compiler maps the dollar
sign. The compiler allows the dollar
sign in names.
extend Allow 132-column source lines (nor-
mally only 72 columns are allowed).
extract=[option[,option...]]
Pass options to the subprogram
extractor (see the inline option for
more information). The options are:
[name:]subprogram-Extract the speci-
fied subprogram. name: must be used
if the subprogram name contains a
period.
[size:]number-Extract subprograms
containing less than approximately
number statements.
If both number(s) and subprogram(s)
are specified, then subprograms
matching the given name(s) or meet-
ing the size requirements are
extracted.
The -ofile switch must be used with
-Mextract to tell the compiler where
to place the extracted subprograms.
The name of the specified file must
contain a period.
[no]frame [Don't] include the frame pointer
(default -Mnoframe). -Mnoframe can
improve execution time and decrease
code, but makes it impossible to get
a call stack traceback when using a
debugger.
[no]i4 [Don't] treat integer as integer*4
(default -Mi4). -Mnoi4 treats
integer as integer*2.
info=[option[,option...]]
Produce useful information to the
standard error output. The options
are:
time or stat-Output compilation
statistics.
loop-Output information about loops.
This includes information about vec-
torization, software pipelining, and
parallelization.
concur-Same as -Minfo=loop.
inline-Output information about sub-
programs extracted and inlined.
cycles or block or size-Output block
size in cycles. Useful for comparing
various optimization levels against
each other. The cycle count produced
is the compiler's static estimate of
freeze-free cycles for the block.
ili-Output intermediate language as
comments in assembly file.
all-All of the above.
inline=[option[,option...]]
Pass options to the subprogram
inliner. The options are:
[lib:]library-Inline subprograms in
the specified inliner library (pro-
duced by -Mextract). If lib: is not
used, the library name must contain
a period. If no library is speci-
fied, subprograms are extracted from
a temporary library created during
an extract prepass.
[name:]subprogram-Inline the speci-
fied subprogram. If name: is not
used, the subprogram name must not
contain a period.
[size:]number-Inline subprograms
containing less than approximately
number statements.
levels:number-Perform number levels
of inlining (default 1).
If both number(s) and subprogram(s)
are specified, then subprograms
matching the given name(s) or meet-
ing the size requirements are
inlined.
iomutex Place critical sections around I/O
statements.
A critical section is a portion of
the code that is only executed by
one thread. The switch -Miomutex
places critical sections around all
I/O statements whether they are in
loops or not. This is a switch that
should be active if you want to
parallelize loops that contain I/O
statements.
You must specify -Mcncall or use a
directive to parallelize loops that
contain I/O statements.
The switch -Mconcur includes an
imbedded -Miomutex. Also, the switch
-Mcncall includes an imbedded
-Miomutex.
If you are not parallelizing loops
with I/O statements, specify
-Mnoiomutex. This is because, if you
are not parallelizing loops with I/O
statements, you do not need to put
I/O statements in critical sections.
-Miomutex does not affect correct
execution of the program. It makes
sure that only one thread is execut-
ing the I/O statement at a time.
keepasm Keep the assembly file for each For-
tran source file, but continue to
assemble and link the program. This
is mainly for use in compiler per-
formance analysis and debugging.
list[=name]
Create a source listing in the file
name. If name is not specified, the
listing file has the same name as
the source file except that the
``.f'' suffix is replaced by a
``.lst'' suffix. If name is speci-
fied, the listing file has that
name; no extension is appended.
nolist Don't create a listing file (this is
the default).
[no]longbranch
[Don't] allow compiler to generate
bte and btne instructions (default
-Mlongbranch). -Mnolongbranch should
be used only if an assembly error
occurs.
neginfo=concur
Print information for each countable
loop that is not made parallel stat-
ing why the loop was not made paral-
lel.
noansi Allow multiple implicit statements.
nostartup Don't link the usual start-up rou-
tines (crt0.o and ifmain.o), which
contain the entry point for the pro-
gram.
nostdinc Remove the default include directory
(/usr/include for f77,
$(PARAGON_XDEV)/paragon/include for
if77) from the include files search
path.
nostdlib Don't link the standard libraries
(libpm.o, guard.o, libf.a, libm.a,
libc.a, libic.a, and libmach3.a)
when linking a program.
onetrip Force each do loop to be iterated at
least once.
[no]perfmon
[Don't] link the performance moni-
toring module (libpm.o) (default
-Mperfmon). See the Paragon(tm) Sys-
tem Application Tools User's Guide
for information on performance moni-
toring.
prof=x This option is ignored.
[no]quad [Don't] force top-level objects
(such as local arrays) of size
greater than or equal to 16 bytes to
be quad-aligned (default -Mquad).
Note that -Mquad does not affect
items within a top-level object;
such items are quad-aligned only if
appropriate padding is inserted.
Common blocks are always
quad-aligned.
[no]r8 [Don't] treat real as double preci-
sion and real constants as double
precision constants (default
-Mnor8).
[no]r8intrinsics
[Don't] treat intrinsics as follows
(default -Mnor8intrinsics):
cmplx as dcmplx
real as dble
alog as dlog
amax1 as dmax1
amin1 as dmin1
amod as dmod
csqrt as cdsqrt
clog as cdlog
cexp as cdexp
csin as cdsin
ccos as cdcos
[no]recursive
[Don't] allocate local variables on
the stack, thus allowing recursion
(default -Mnorecursive). SAVEd,
data-initialized, or namelist
members are always allocated stati-
cally, regardless of the setting of
this switch.
[no]reentrant
[Don't] generate reentrant code
(default -Mnoreentrant). -Mreentrant
disables certain optimizations that
can improve performance but may
result in code that is not
reentrant. Even with -Mreentrant,
the code may still not be reentrant
if it is improperly written (e.g.,
declares static variables). You may
need to increase the stacksize
before executing programs compiled
with -Mreentrant. A segmentation
violation occurs if stacksize is too
low.
reloc_libs Causes -l switches that appear
before source or object file names
on the compiler command line to
appear after these file names on the
ld command line.
safealloc Informs the compiler that all allo-
catable commons are allocated once
and can be treated as ordinary com-
mons for optimization purposes. This
option can improve performance for
some applications, but should be
used with caution.
[no]save [Don't] allocate all local data in
static locations instead of on the
stack (default -Msave). The effect
is similar to using the save state-
ment for all local variables. Recur-
sion is not allowed with this switch
in effect. -Msave may allow some
older Fortran programs to run, but
may decrease performance.
[no]signextend
[Don't] sign-extend the result of a
conversion of a signed integer to a
smaller signed type (default -Mno-
signextend). For example, if -Msig-
nextend is in effect and an
integer*4 containing the value 65535
is converted to an integer*2, the
value of the integer*2 will be -1.
This option is provided for compati-
bility with other compilers. -Msig-
nextend will decrease performance.
split_loop_ops=n
Set a threshold of n floating-point
operations within a loop. Innermost
loops whose number of floating-point
operations exceeds n are split. Each
floating-point operation counts as
two. The default for n is 40 when
-Mvect is used.
nosplit_loop_ops
Do not split loops when the
floating-point operation threshold
is exceeded. When -Mvect is speci-
fied, innermost loops whose number
of floating point operations exceed
40 are split by default. This switch
turns the default off.
split_loop_refs=n
Set a threshold of n array element
loads and stores within a loop.
Innermost loops whose number of
loads and stores exceeds n are
split. The default for n is 20 when
-Mvect is used.
nosplit_loop_refs
Do not split loops when the array
element loads and stores threshold
is exceeded. When -Mvect is speci-
fied, innermost loops whose number
of array element loads and stores
exceeds 20 are split by default.
This switch turns the default off.
standard Flag non-ANSI-Fortran77 usage.
[no]streamall
[Don't] stream all vectors to and
from cache in a vector loop (default
-Mstreamall). When -Mnostreamall is
in effect, the compiler chooses one
vector to come directly from or go
directly to main memory, without
being streamed into or out of cache.
[no]stride0
[Don't] inhibit certain optimiza-
tions and allow for stride 0 array
references. -Mstride0 may degrade
performance, and should only be used
if zero stride induction variables
are possible. (default -Mnostride0).
unixlogical
Set the value of a logical expres-
sion to one if the result is .TRUE..
[no]upcase [Don't] preserve case in names
(default -Mnoupcase). -Mnoupcase
causes all names to be converted to
lower case. Note that, if -Mupcase
is used, then variable name Q is
different than variable name q, and
keywords must be in lower case.
unroll[=option [,option ...]]
Invoke the loop unroller and set the
optimization level to 2 if it is set
to less than 2. option is one of the
following:
c:m - Completely unroll loops with a
constant loop count less than or
equal to m. If m is not supplied,
the default value is 4.
n:u - Unroll loops that are not com-
pletely unrolled or have a
non-constant loop count u times. If
u is not supplied, the unroller com-
putes the number of times a loop is
unrolled.
nounroll Do not unroll loops.
vect[=option[,option...]]
Perform vectorization (also enables
-Mvintr). If no options are speci-
fied, then all vector optimizations
are enabled. The available options
are:
altcode[:number] - Produce
non-vectorized code to be executed
if the loop count is less than or
equal to number. Otherwise execute
vectorized code. The default value
for number is 10.
cachesize:number-This sets the size
of the portion of the cache used by
the vectorizer to number bytes.
Number must be a multiple of 16, and
less than the cache size of the
microprocessor (16384 for the
i860 XP, 8192 for the i860 XR). In
most cases the best results occur
when number is set to 4096, which is
the default (for both
microprocessors).
noassoc-When scalar reductions are
present (for example, dot product),
and loop unrolling is turned on, the
compiler may change the order of
operations so that it can generate
better code. This transformation can
change the result of the computation
due to round-off error. The use of
noassoc prevents this transforma-
tion.
[no]recog-[Don't] Recognize certain
loops as simple vector loops and
call a special routine.
smallvect[:number]-This option
allows the vectorizer to assume that
the maximum vector length is no
greater than number. Number must be
a multiple of 10. If number is not
specified, the value 100 is used.
This option allows the vectorizer to
avoid stripmining in cases where it
cannot determine the maximum vector
length. In doubly-nested,
non-perfectly nested loops this
option can allow invariant vector
motion that would not otherwise have
been possible. Incorrect code may
result if this option is used, and a
vector takes on a length greater
than specified.
streamlim:n This sets a limit for
application of the vectorizer data
streaming optimization. If data
streaming requires cache vectors of
length less than n, the optimization
is not performed. Other vectorizer
optimizations are still performed.
The data streaming optimization has
a high overhead compared to other
loop optimizations, and can be
counter-productive when used for
short vectors. The n specifier is
not optional. The default limit is
32 elements if streamlim is not
used.
transform-Perform high-level
transformations such as loop split-
ting and loop interchanging. This is
normally not useful without
-Mvect=recog.
-Mvect with no options means
-Mvect=recog,transform,cachesize:4096,altcode:10.
[no]vintr [Don't] perform recognition of vec-
tor intrinsics (default -Mnovintr,
unless -Mvect is used).
[no]xp [Don't] use i860 XP microprocessor
features (default -Mxp).
-nostdinc Equivalent to -Mnostdinc.
-nx Creates an executable application for multiple
nodes.
o Using -nx while compiling has no effect.
o Using -nx while linking creates an application
that automatically copies itself into multiple
nodes. It also links in libnx.a, the library
that contains the calls in the Paragon(tm)
System Fortran Calls Reference Manual. You can
control the execution of an application linked
with -nx by using command-line switches and
environment variables, as described in the
Paragon(tm) System User's Guide.
To link in libnx.a without creating an applica-
tion that automatically copies itself into mul-
tiple nodes, use -lnx instead. An application
linked with -lnx can use operating system calls
to create node processes under program control.
-node is currently accepted as a synonym for
-nx, but this support may be dropped in a future
release.
-ofile Uses file for the output file, instead of the
default a.out (or file.o if used with the -c
switch).
-O[level] Set the optimization level:
0 A basic block is generated for each
Fortran statement. No scheduling is
done between statements. No global
optimizations are performed.
1 Scheduling within extended basic
blocks is performed. Some register
allocation is performed. No global
optimizations are performed.
2 All level 1 optimizations are per-
formed. In addition, traditional
scalar optimizations such as induc-
tion recognition and loop invariant
motion are performed by the global
optimizer.
3 All level 2 optimizations are per-
formed. In addition, software pipe-
lining is performed.
4 All level 3 optimizations are per-
formed, but with more aggressive
register allocation for software
pipelined loops. In addition, code
for pipelined loops is scheduled
several ways, with the best way
selected for the assembly file.
If a level is not supplied with -O, the optimi-
zation level is set to 2. If -O is not speci-
fied, the default level is 1. Setting optimiza-
tion to levels higher than 0 may reduce the
effectiveness of symbolic debuggers.
-p This option is ignored.
-r Generates a relinkable object file. (Passed to
the linker.)
-s Strips symbol table information. (Passed to the
linker.)
-S Skips the link and assemble steps. Leaves the
output from the compile step in a file named
file.s for each file named file.f.
-Uname Remove any initial definition of name in the
preprocessor. Since all -D switches are pro-
cessed before all -U switches, the -U switch can
be used to override the -D switch.
-v Prints the entire command line for each tool as
it is invoked, and invokes each tool in verbose
mode (if it has one).
-V Prints the version banner for each tool
(assembler, linker, etc.) as it is invoked.
-VV Display the driver version number and the loca-
tion of the online release notes. No compilation
is performed.
-Wpass,option[,option...]
Passes the specified options to the specified
pass:
0 (zero) Compiler.
a Assembler.
l Linker.
Each comma-delimited string is passed as a
separate argument.
-Ypass,directory
Looks for the executable file for the specified
pass in the specified directory (rather than in
the default location), where pass is one of the
following:
0 (zero) Compiler executable file.
a Assembler executable file.
l Linker executable file.
S Startup object files.
I Standard include files.
L Standard libraries (passes -YLdirec-
tory to the linker).
U Secondary libraries (passes
-YUdirectory to the linker).
P All libraries (passes -YPdirectory
to the linker).
See the ld860 manual page for more information
on the -YL, -YU, and -YP switches.
FILES
a.out Executable output file.
file.a Library of object files.
file.f Fortran source file.
file.F Fortran source file for prepro-
cessing.
file.lst Listing file produced by -Mlist.
file.o Object file.
file.s Assembler source file.
The following files and directories are used in the
cross-development environment (if77). PARAGON_XDEV is an
environment variable that can be set to the root of the com-
piler installation directory. If PARAGON_XDEV is not set,
the default is /usr/paragon/XDEV. The directory where the
driver, compiler, and tools are located must be included in
your path. For Sun4 users, for example,
$PARAGON_XDEV/paragon/bin.sun4 would be included in the
path.
$(PARAGON_XDEV)/paragon/bin.arch
Directory containing executables
for system arch (arch identifies
the architecture of the system,
e.g. sgi or sun4).
$(PARAGON_XDEV)/paragon/bin.arch/if77
Fortran compiler driver.
$(PARAGON_XDEV)/paragon/bin.arch/iftn
Fortran compiler.
$(PARAGON_XDEV)/paragon/bin.arch/as860
Intel (COFF) assembler.
$(PARAGON_XDEV)/paragon/bin.arch/ld860
Intel (COFF) linker.
$(PARAGON_XDEV)/paragon/include
Standard include directory.
$(PARAGON_XDEV)/paragon/lib-coff
Standard library directory.
$(PARAGON_XDEV)/paragon/lib-coff/crt0.o C
start-up routine.
$(PARAGON_XDEV)/paragon/lib-coff/ifmain.o
Fortran initial routine.
$(PARAGON_XDEV)/paragon/lib-coff/libpm.o
Performance monitoring module.
$(PARAGON_XDEV)/paragon/lib-coff/guard.o
Barrier between user and system
code.
$(PARAGON_XDEV)/paragon/lib-coff/libf.a
Fortran runtime library.
$(PARAGON_XDEV)/paragon/lib-coff/libm.a
Math library.
$(PARAGON_XDEV)/paragon/lib-coff/libc.a
Standard C library.
$(PARAGON_XDEV)/paragon/lib-coff/libic.a C
built-in intrinsic library.
$(PARAGON_XDEV)/paragon/lib-coff/libmach.a
Mach operating system library.
$(PARAGON_XDEV)/paragon/lib-coff/noieee
Library directory used when
linking with -Knoieee (contains
non-IEEE versions of libf.a and
libm.a).
$(PARAGON_XDEV)/paragon/lib-coff/options/autoinit.o
Routine linked in when -nx is
used.
The following files and directories are used by default in
the native environment (f77). If / is not the root of the
compiler installation directory, you must set PARAGON_XDEV
to this directory and add $PARAGON_XDEV/usr/ccs/bin to your
path.
/usr/ccs/bin Directory containing execut-
ables.
/usr/ccs/bin/f77 Fortran compiler driver.
/usr/ccs/bin/iftn Fortran compiler.
/usr/ccs/bin/as Assembler.
/usr/ccs/bin/ld Linker.
/usr/include Standard include directory.
/usr/lib Standard library directory.
/usr/lib/crt0.o C start-up routine.
/usr/lib/ifmain.o Fortran initial routine.
/usr/lib/libpm.o Performance monitoring module.
/usr/lib/guard.o Barrier between user and system
code.
/usr/lib/libf.a Fortran runtime library.
/usr/lib/libm.a Math library.
/usr/lib/libc.a Standard C library.
/usr/lib/libic.a C built-in intrinsic library.
/usr/lib//libmach.a Mach operating system library.
/usr/lib/noieee Library directory used when
linking with -Knoieee (contains
non-IEEE versions of libf.a and
libm.a).
/usr/lib/options/autoinit.o
Routine linked in when -nx is
used.
ENVIRONMENT VARIABLES
The environment variable MAKECPP is supported. MAKECPP is a
colon-separated list of directories that is added to the
compiler search path for include files.
If you use the -Knoieee switch and define LPATH or
PARAGON_LPATH, be sure that the directory containing the
noieee versions of libf.a and libm.a is listed before a
directory containing the ieee versions of these libraries.
If in doubt, compile with the -v switch to see which
libraries are linked in. See the ld860 manual page for more
information.
DIAGNOSTICS
The compiler produces information and error messages as it
translates the input program. The linker and assembler may
generate their own error messages.
SEE ALSO
ar860, as860, dump860, icc, ifixlib, ld860, nm860, size860,
strip860
Acknowledgement and Disclaimer