Chapter Contents

Previous

Next
Prelinking C and C++ Programs

Option Descriptions

This section provides a more detailed description of each of the options listed in Option Summary. The options are listed alphabetically by compiler driver name. The corresponding cool option is shown in parentheses. cool options with no compiler driver form are described last.

-Aallowrecool ( -rc for standalone cool )
The allowrecool option specifies that the output object deck can be reprocessed by COOL. Therefore, the deck is not marked as already processed by COOL.

The default noallowrecool specifies that the output object cannot be reprocessed by COOL. A later attempt to reprocess the deck with COOL will produce an error.

Note:    COOL does not modify the object deck to enable reprocessing. It is the user's responsibility to determine if a particular object is eligible for reprocessing.  [cautionend]

-Acidxref ( -xxx for standalone cool )
generates an extended name CID cross-reference table. The table is displayed following the other cool output directed to stdout . The extended names are displayed in alphabetical order by C identifier.

The -Acidxref option is similar to the mainframe COOL option ENXREF(CID) .

-Aclet or -Acletall -m for standalone cool )
suppresses the generation of a non-zero return code for all unresolved references, and allows an output object module to be stored. The -Aclet option is maintained for compatibility with previous releases of cool, and is equivalent to -Acletall.

-Acletnoex ( -mn for standalone COOL)
suppresses the generation of a non-zero return code for unresolved references to non-extended names, and allows an output object module to be stored. Unresolved references to extended names result in an error return code from COOL when this option is specified.

-Acontinue ( -zc for standalone cool )
causes cool to continue processing even if a corrupted ar370 archive is detected.

The -Acontinue option is equivalent to the mainframe COOL option CONTINUE .

-Adbglib= pn ( -db for standalone cool )
dbglib specifies a debugger file qualifier that provides for customization of the destination of the debugger file. On UNIX platforms, the option specified is a pathname to be prefixed to the file name. For example,
dbglib(/u/sasc/dbg/)
will generate a filename of
/u/sasc/dbg/sname.dbg370
dbglib() is the default.

Note:    On UNIX platforms, the sname is capitalized and remains so for debugger filename generation.  [cautionend]

Note:    In Release 6.50, the compiler allows the placement of the debugging information in the object file when the dbgobj option is specified. The dbgobj option is specified by default when the -Kautoinst option is enabled. When this information is discovered by COOL to be present in the object file, COOL will write the debugging information to a file supported by the debugger. The default filename used is somewhat different than when the debugging information is written directly by the compiler in that it is generated using the sname of the containing object.  [cautionend]

-Adupsname ( -zd for standalone cool )
causes cool to permit the same SNAME to be used in more than one input file.

The -Adupsname option is equivalent to the mainframe COOL option DUPSNAME .

-Aendisplaylimit=nnn (-ynnnn for stand-alone COOL)
defines the maximum number of characters used to display extended names in messages and listings.

nnn represents the maximum number of characters that can be used to display extended names. nnn can be an asterisk (*) specifying that extended names are to be fully displayed regardless of their length, or it can be a number. The minimum display limit is set internally and cannot be overriden.

The -Aendisplaylimit option is equivalent to the mainframe COOL option endisplaylimit.

-Aenexit= prog,data ( -xt prog,data for standalone cool )
invokes a user exit program with optional data. The prog argument is the UNIX pathname to the program to be invoked. The data argument is 1 to 8 characters of data to be passed to the program; data is optional. For example, you would specify the following to invoke the program at /u/bin/myprog and pass it the value "1 2 3":
-Aenexit=/u/bin/myprog,"1 2 3"

Note:    The rules for quoting the data value are determined by your UNIX shell.  [cautionend]

-Agather= prefix ( -g prefix for standalone cool )
causes cool to create data tables based on the prefix argument and append these tables to the cool output object code.

The -Agather option is similar to the GATHER control statement used with the mainframe COOL utility. The -Agather option is used primarily with C++; occasions for using the -Agather option are rare. Refer to the SAS/C Compiler and Library User's Guide for more information.

-Agmap ( -yg for standalone cool )
causes cool to print a cross-reference of "gathered" symbols in the listing file.

The -Agmap option is similar to the mainframe COOL option GMAP . Refer to the SAS/C Compiler and Library User's Guide, Fourth Edition for more information.

-Aignorerecool ( -ri for standalone cool )
ignorerecool specifies that if any marks are detected indicating that COOL has already processed an input object deck, then the marks are to be ignored. If the ignorerecool option is specified along with the verbose option, then a diagnostic message is issued and processing continues.

The default noignorerecool specifies that any mark indicating that COOL has already processed an input object deck should result in an error message and process termination.

-Ainsert= symbol ( -i symbol for standalone cool )
specifies an external symbol that is to be resolved by cool , if necessary. If the symbol specified by the -Ainsert option is not resolved after all primary input has been processed, cool attempts to resolve it from an ar370 archive.

The -Ainsert option is similar to the INSERT control statement used with the mainframe COOL utility.

-Alinkidxref ( -xxe for standalone cool )
generates an extended name LINKID cross-reference table. The table is displayed following the other cool output directed to the standard output device. The extended names are displayed in alphabetical order using a link id that cool assigns.

The -Alinkidxref option is similar to the mainframe COOL option ENXREF(LINKID) .

-Alist ( -yl for standalone cool )
causes cool to echo input control statements to the listing file.

The -Alist option is similar to the mainframe COOL option LIST .

-Anoextname ( -n for standalone cool )
specifies that cool will not process extended names. The -Anoextname option is equivalent to the mainframe COOL option NOEXTNAME .

For more information about extended names processing, see the description of the -Kextname compiler option in Compiling C and C++ Programs.

-Anoinceof ( -zi for standalone cool )
causes cool to process data following an INCLUDE statement in an input file. By default, cool ignores any data following an INCLUDE statement for compatibility with the IBM linkage editor.

The -Anoinceof option is equivalent to the mainframe COOL option NOINCEOF .

-Anolineno ( -d for standalone cool )
deletes all the line-number and offset table CSECTs from the output object code. These CSECTs are generated by the cross-platform compiler when the -Klineno compiler option is used.

Line-number and offset table CSECTs are used by the debugger and run-time library to compute the address of a source line number in a function. If these CSECTs are not present, the debugger cannot break on a source statement and run-time library ABEND tracebacks do not contain function line numbers.

The -Anolineno option is equivalent to the mainframe COOL option NOLINENO .

-Anortconst ( -r for standalone cool )
specifies that cool is to suppress copying the run-time constants CSECTs from the output object file. The resulting object file will be somewhat smaller but certain information used by the debugger will not be available. By default, cool copies these CSECTs from the input file(s) to the output file.

The -Anortconst option is equivalent to the mainframe COOL option NORTCONST .

-Anowarn ( -w for standalone cool )
suppresses the generation of warning messages.

The -Anowarn option is equivalent to the mainframe COOL option NOWARN .

-Anoxfnmkeep ( -f for standalone cool )
deletes extended function names CSECTs in all input object files. By default, cool retains these CSECTs.

The extended function names CSECT may be useful at run time if you are using the SAS/C Debugger to debug your program. If the CSECT containing the extended function name is available, the debugger uses the extended name in displays and accepts the extended name in commands. Refer to the SAS/C Debugger User's Guide and Reference, Third Edition for more information about the debugger. Also, if the CSECT that contains the extended function name is present, the library ABEND-handler includes the extended name in ABEND tracebacks.

The -Anoxfnmkeep option is equivalent to the mainframe COOL option NOXFNMKEEP .

-Apagesize= nn ( -s nn for standalone cool )
specifies the number of lines to print per page in the listing file. The default is 55 lines per page.

The -Apagesize option is equivalent to the mainframe COOL option PAGESIZE .

-Aprem ( -p for standalone cool )
specifies that cool is to remove pseudoregisters from the output object file.

The -Aprem option is automatically enabled if either the -Tcms370 or the -Tpcms370 compiler option is specified.

The -Aprem option is equivalent to the mainframe COOL option PREM .

-Aprmap ( -yp for standalone cool )
causes cool to include a pseudoregister map in the listing file.

The -Aprmap option is similar to the mainframe COOL option PRMAP .

-Areferences (-xxy for standalone COOL)
When the -Areferences option is specified along with one or more of the cross-reference options (-Acidxref, -Alinkxref, or -Asnamexref), referenced symbols as well as defined symbols are included in the cross-reference listing.

-Asmponly ( -vo for standalone cool )
causes cool to build the @EXTVEC# vector described under the -Asmpxivec option. The remaining portion of the cool output is suppressed, so that the entire object file consists of only the @EXTVEC# CSECT.

The -Asmponly option is equivalent to the mainframe COOL option SMPONLY .

-Asmpxivec ( -v for standalone cool )
causes cool to build a vector named @EXTVEC# that references the sname@ vector generated by the -Ksmpxivec compiler option. The sname@ vector provides an alternate mechanism for reentrant initialization of static and extern data used with SMP update methods.

The -Asmpxivec option is equivalent to the mainframe COOL option SMPXIVEC . The -Ksmpxivec cross-platform compiler option is described in Compiling C and C++ Programs. For more information about SMP, refer to Programmer's Report: SMP Packaging for SAS/C Based Products.

-Asnamexref ( -xxs for standalone cool )
generates an extended name SNAME cross-reference table. This table is displayed in alphabetical order, sorted on the SNAME associated with each object file, following the other cool output directed to stdout .

The -Asnamexref option is similar to the mainframe COOL option ENXREF(SNAME) .

-Averbose ( -zv for standalone cool )
causes cool to produce extra messages about its processing. These messages are displayed on the standard error device, and are included in the listing if a listing file is being produced. These messages are particularly useful for determining how symbols are resolved.

The -Averbose option is equivalent to the mainframe COOL option VERBOSE .

-Axsymkeep ( -e for standalone cool )
specifies that the extended external identifier CSECTs in all input files are retained. By default, these CSECTs are not retained.

Note:    Retaining the extended function names CSECT or the extended external identifier CSECT makes the resulting prelinked object file somewhat larger.  [cautionend]

The -Axsymkeep option is equivalent to the mainframe COOL option XSYMKEEP .

-h [name] (standalone cool only)
produces a listing and, optionally, directs the listing to the specified file. If you do not specify a file name, the listing is directed to stdout (the standard output device). The listing file contains a list of the options that are in effect and copies of any diagnostic messages. All cool messages are directed to the listing file and to stderr (standard error device). "Trivial" messages, like banners and the cool return code message, are directed to the listing file and also to stdout , if stdout is not the listing and the -zv (verbose) option is specified.

When you specify any of the following cool options, -h is assumed: -yl , -yp , -yg , -xxe , -xxs , -xxx .

You can also use the -Klisting compiler option to produce a listing for all phases of the compilation, including the prelinking phase. Message handling is the same as -h . When you specify any of the following cool options during compilation, -Klisting is assumed: -Alist , -Aprmap , -Agmap , -Alinkidxref , -Asnamexref , -Acidxref .

-l name
identifies an ar370 archive containing members that may be included by cool to resolve unresolved external references. The name parameter specifies the filename of the ar370 archive. cool will look for the archive named lib name. a

Note:    There must not be a space between -l and name.  [cautionend]
The -l option has no effect unless the -L directory option is also specified.

The -l option is similar to the mainframe COOL option ARLIB .

-L directory
specifies the name of a directory to be searched for ar370 archives.

Note:    There must not be a space between -L and directory.  [cautionend]
The -L option is similar to the ARLIBRARY control statement used with the mainframe COOL utility.

-o filename (stand-alone cool only)
names the file in which the cool utility stores its output. This option must be specified when cool is invoked as a stand-alone utility. If cool is invoked by sascc370 or sasCC370 , the output is directed to the a.out file by default unless the -o compiler option is specified.


Chapter Contents

Previous

Next

Top of Page

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.