Chapter Contents |
Previous |
Next |
SAS/C Cross-Platform Compiler and C++ Development System User's Guide, Release 6.50 |
Linking in the cross-platform
environment usually involves prelinking on the host system and then copying the prelinked file to the target system, either MVS or CMS, where the final linking occurs. Prelinking is performed by
cool
, which is normally called when you compile your source code. Final linking of the prelinked
output on the mainframe can be accomplished with the IBM linkage editor or CMS
LOAD
and
GENMOD
commands.
Although prelinking is performed by default when you call the cross-platform compiler, you can suppress prelinking by specifying the
-c
compiler option. Note, however, that prelinking is required, either on the workstation or on the mainframe, if any of the following conditions are true:
_ _rent
variable. There are four ways a variable is assigned the
_ _rent
attribute:
-Krent
or
-Krentext
is used.
-Krent
is used.
_ _rent
.
-Kextname
option is specified for more than one compilation.
-Tcms370
or
-Tpcms370
options are specified and the cumulative length of the pseudoregisters exceeds the maximum size allowed by the CMS loader.
ar370
archive.
cool
directly
COOL
to perform the prelinking.
This section discusses each of these methods of prelinking.
Using cool |
The prelinker,
cool
, is an executable file that can be called directly. The following is the syntax for invoking
cool
:
cool [options] [filename1 [filename2 ...]]
The options argument specifies any of the prelinker options described in
Prelinking C and C++ Programs
. You must
use the
-o
option to specify an output file when you invoke
cool
. If you enter the
cool
command without specifying the
-o
option, an error message is displayed along with a partial listing of the options accepted by
cool
.
The filename arguments specify a list of input files that are to be prelinked. You must specify the complete name of the file;
cool
does not assume a
.o
extension.
The SAS/C C library objects are located in the
ar370
archive /libdir/
libc.a
. The libdir depends on where the product was installed and which target you are compiling for. The SAS/C C++ objects are
located in the
ar370
archive /libdir/
libcxx.a
. In order to resolve references to SAS/C C and C++ library functions, these
ar370
archives must be included in the
cool
command. If you are prelinking a C++ program, you must specify /libdir/
libcxx.a
before specifying /libdir/
libc.a
.
The following examples are command line invocations of
cool
:
cool -o prog alpha.o beta.o /
libdir
/libc.a
alpha.o
and
beta.o
to produce the prelinked output file
prog
.
libc.a
must be included in order to resolve references to SAS/C C library functions. The directory specification, libdir, for this library is target and
site-specific. If you are not sure where it is located at your site, compile a program with the
-v (verbose)
option to see the default command line used by the
sascc370
or
sasCC370
compiler driver to invoke
cool
.
cool -o prog myojb.o /
libdir
/libcxx.a /
libdir
/libc.a
myojb.o
, is being prelinked, generating the prelinked output file
prog
.
Note: If you are using
cool
to prelink a C++ program, you must specify /libdir/
libcxx.a
before specifying /libdir/
libc.a
. The SAS/C C++ library functions must be resolved before SAS/C C library functions. The directory
specification, libdir, for this library is site-specific.
If you are not sure where it is located at your site, compile a program with the
-v (verbose)
option to see the default command line used by the
sascc370
or
sasCC370
compiler driver to invoke
cool
.
cool -o prog interface.o io_handler.o /
libdir
/libares.a
libares.a
, is specified. Specialized applications, such as all-resident or SPE applications, must be linked with special library routines.
See "Library Files" and the SAS/C
Compiler and Library User's Guide, Fourth Edition for more information.cool -o prog -w binary_tree.o /
libdir
/libc.a
binary_tree.o
, generating the prelinked output file
prog
. The
-w
option specifies that warning messages should be suppressed.Using COOL on the Mainframe |
The other method of prelinking your object files is to copy them to the mainframe where they can be
linked with the
COOL
object code utility. The SAS/C Compiler and Library User's Guide, Fourth Edition describes
the
COOL CLIST
and the
COOL EXEC
, which can be used to invoke
COOL
on the mainframe.
Note: You can use the UNIX
cat
command or the DOS
copy /b
command to combine multiple object files into a single file on the workstation, copy that file to the mainframe, and then run
COOL
on the mainframe on the copied file. This is often easier than copying each file individually.
Also note that if you use extended names or the
-Aprem
option, you should not prelink both on the workstation and on the mainframe.
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright © 1998 by SAS Institute Inc., Cary, NC, USA. All rights reserved.