stderr
may further describe the problem.
CLINK diagnostic messages have the form
LSCL[num] [severity]: [message text]
where num is the message number severity NOTE, WARNING, or ERROR message text is a description of an action (NOTE),possible problem (WARNING), or condition that will prevent further processing (ERROR).Messages are written to
stdout
if the term(-t)
option is
in effect; they are written to the listing if a listing is
created. If a WARNING message is generated, the final return code from
CLINK will be no less than 4. If an ERROR message is generated, CLINK
will terminate immediately with a return code of 8.
Note:
The CLINK
message prefix LSCL has been omitted from the descriptions below. The
prefix LSCL does not appear with the cross-platform CLINK.
LSCL Messages
003
ERROR: Error occurred while attempting to write CLINK output file.
Explanation
An attempt to write one or more items to the output file stream has
been unsuccessful. Usually this is caused by having insufficient
space available for all the output, but any file system problem
or failure that might cause fwrite()
to fail could also cause
this message.
Action
Re-run CLINK with the =warning run-time option to
provide additional SAS/C Library diagnostics. Make sure the space
available for the output file is large enough to hold all the
output.
004
ERROR: Invalid CLINK input [first_10_bytes]
Explanation
CLINK did not recognize a record of the input as either a control
statement or an object code record, and displayed the first 10
bytes of the card.
Action
All input to CLINK must be valid object modules or
control statements. This message can be caused by attempting to use
a load module as CLINK input.
005
WARNING: Reference not resolved during autocall: [symbol_name]
Explanation
No definition was found for the symbol [symbol_name], and the symbol
could not be resolved by autocall from an AR370 archive.
Since the symbol is an extended name, no explicit attempt is made to
resolve this symbol from autocall libraries in PDS or TXTLIB format.
006
ERROR: Error while writing to SYSJCLIN file.
Explanation
An attempt to write one or more linkage editor control statements
to the SYSJCLIN output file stream has been unsuccessful. Usually
this is caused by having insufficient space available for the
file, but any file system problem or failure that might cause
fwrite()
to fail could also cause this message.
Action
Re-run CLINK with the =warning run-time option to
provide additional SAS/C Library diagnostics. Make sure the space
available for the output file is large enough to hold all the output.
007
ERROR: Error occurred while reading an input file.
Explanation
An attempt to read the next record from an input file that was
previously opened has failed. This can be caused by a truncated
object file or AR370 archive, but any file system problem or failure
that might cause fread()
to fail could also cause this message.
Action
Re-run CLINK with the =warning run-time option to provide
additional SAS/C Library diagnostics. Check all input files for
validity and integrity. In general input files should be fixed
length record format with 80 byte records.
008
ERROR: Error occurred while reading SYSIN.
Explanation
MVS only: An attempt to read the next card from the SYSIN DDname
that was previously opened has failed. This may be caused by a
truncated object file, but any file system problem or failure that
might cause fread()
to fail could also cause this message.
Action
Re-run CLINK with the =warning run-time option to provide
additional SAS/C Library diagnostics. Check all input for validity
and integrity.
009
ERROR: Input error occurred. SYNADAF message text follows:
Explanation
MVS only: Under certain conditions CLINK uses the SAS/C OS
low-level I/O. An input error occurred processing a PDS using
BSAM. The SYNADAF macro is used to obtain information about the
error. This information is displayed in the LSCL010 message that
follows this message.
010
ERROR: [error]
Explanation
MVS only: CLINK displays [error_info], error information from the
SYNADAF macro. If this message includes the text "WRNG.LEN.RECORD,"
the problem is most likely an input PDS which does not contain card
images (such as a load module library) or an incorrect
concatenation.
Note that in a concatenation, all concatenated PDS's
should have the same RECFM and LRECL, and the file with the largest
blocksize should be concatenated first (or alternately an explicit
DCB should be specified on the first concatenated DD statement).
If the text "WRNG.LEN.RECORD" does not appear, the problem may be
a hardware error.
Action
Check the IBM message IOS000I in your job
log, and consult your site's systems programming staff to
determine whether this is a hardware problem and how it can be
corrected.
087
NOTE: Can't open file [filename].
Explanation
CMS and UNIX only: The first attempt to open the named
AR370 archive failed. Processing continues. Usually this is
because the specified Archive is not found. Check the spelling of
the [filename].
Any file system problem or failure that might cause open() to
fail could also cause this message.
Action
Re-run CLINK with the
"=warning" run-time option to provide additional SAS/C Library
diagnostics.
087
ERROR: Can't open file [filename].
Explanation
A specified AR370 archive was found and partially processed, but
a subsequent attempt to re-open the named AR370 archive failed.
Under some circumstances CLINK may temporarily close an archive
file, so any other program may then open the file or lock
the file; if CLINK then tries to re-open the archive to
continue processing this message is produced.
Any file system problem or failure that might cause open() to
fail could also cause this message.
Action
Re-run CLINK with the
"=warning" run-time option to provide additional SAS/C Library
diagnostics.
088
WARNING: Invalid AR370 library specified: [name].
Explanation
The named file contains an invalid AR370 archive.
On some systems a single file or concatenation may contain more
than one AR370 archive. In such cases, CLINK processes each
archive in order from the beginning of the concatenation to the
end or the first invalid archive in the concatenation. Any valid
AR370 archives processed prior to the invalid archive are retained
for autocall processing.
089
ERROR: [error] occurred performing I/O on AR370 library: [name].
Explanation
An error described by [error_text] occurred processing the named
AR370 archive.
Action
Re-run CLINK with the =warning run-time option to provide
additional SAS/C Library diagnostics.
100
ERROR: Can't create object file for CLINK output: [error]
Explanation
An error described by [error] occurred when creating the
output object file.
Any file system problem or failure that might cause open() to
fail could also cause this message.
Action
Re-run CLINK with the
"=warning" run-time option to provide additional SAS/C Library
diagnostics.
101
ERROR: Can't open object file: [filename].
Explanation
One of the primary input files could not
be opened successfully. Check the filename and
filetype specification on the command line for
invoking CLINK.
102
WARNING: Can't open file during autocall: [filename].
Explanation
Mainframe only: A specific attempt to resolve an external symbol
during autocall failed. CLINK attempted to open a file or library
member with a name derived from the symbol name. This is only a
warning because the reference may be resolved as CLINK
autocall processing continues or later by the linker.
103
ERROR: Not enough memory available, CLINK cannot continue.
Explanation
An attempt to allocate memory failed.
Action
Increase the amount of memory available to CLINK.
105
ERROR: Can't open terminal for input.
Explanation
CMS only: the primary input file to CLINK is specified on
the command line. However, the attempt to open the
terminal file failed. See the run-time library messages for more
information.
106
WARNING: file name [filename] truncated to [first eight characters of file name].
Explanation
CMS filenames can be no longer than eight characters.
107
ERROR: No primary input file specified.
Explanation
CMS only: Primary input files are files named on the command line for the CMS
CLINK EXEC. End of file on the terminal file was reached before any input
was read.
108
ERROR: SYSJCLIN not allocated.
Explanation
The open for the SYSJCLIN output file failed. On MVS make sure the
DDname is correctly defined.
111
NOTE: -o output-file option required but not specified.
Explanation
Unix only: The output file name must be specified.
Action
Refer to -o options in the SAS/C Compiler and Library User's Guide
112
WARNING: File name [filename] truncated to [first eight characters of file name].
Explanation
CMS only: See message 106.
113
ERROR: [parameter] is not a valid CLINK option.
Explanation
Unix only: CLINK terminated because the argument [parameter]
was not recognized as a CLINK option.
Action
Refer to the CLINK options for the options
appropriate for your specific operating system in
the SAS/C Compiler and Library User's Guide.
114
ERROR: Can't create print file for CLINK output.
Explanation
CMS only: stdout
could not be opened successfully.
Action
Check stderr
for possible library diagnostics.
117
WARNING: Invalid DDname prefix specified [prefix].
Explanation
MVS only: The files[xxx]
option has been specified with an
unacceptable prefix [prefix] for DDnames.
124
WARNING: Prefix truncated to [symbol].
Explanation
A prefix in a GATHER
control statement (mainframe) or
-g
CLINK option
(cross-platform) exceeds six characters in length.
CLINK will truncate the prefix from the right to six characters.
Action
Change the control statement to remove or replace the prefix.
125
WARNING: Duplicate prefix [symbol] ignored.
Explanation
A prefix in a GATHER
control statement is the same as a prefix in
the same control statement or a previous one. CLINK ignores every
instance of this prefix except the first.
Action
Remove the duplicate prefix
from the GATHER
control statement.
200
ERROR: Load failed for extended names user exit.
Explanation
The user has specified the ENEXIT option, and an attempt to load
the user's exit to supply the external symbol names has failed.
201
ERROR: Extended names user exit returned code [return_code]
Explanation
The user exit associated with the ENEXIT option returned a
return code other than 0 or 4, so the meaning of [return_code]
is undefined.
This is an error in the user exit, which causes
CLINK to terminate.
202
ERROR: Extended names user exit ID value out of range: [id_value]
Explanation
The ID value must not exceed 999999.
The user exit associated with the ENEXIT option has supplied an
out of range value [id_value] for the integer part of the
external symbol name. The value must be between 0 and 999999
inclusive.
This is an error in the user exit, which causes
CLINK to terminate.
203
ERROR: Problems executing user exit: [message]
Explanation
Unix only: When [message] is "Problems with execl()" the user
exit associated with the ENEXIT option is not executable.
Otherwise, [message] corresponds to strerror
errno for the
failure of the initialization of the pipes to or from the user
exit program or script.
300
ERROR: Code generator should emit CM or ER immediately following the @EXTERN# SD card.
THIS CSECT HAS BEEN IGNORED.
Explanation
Use of the CSECT name @EXTERN# by non SAS/C code
interferes with the library's functioning. Code compiled
with the SAS/C Compiler should not generate this message.
301
ERROR: multiple initialization sections for [csect name].
Explanation
Two modules containing initializations of external
variables have the same section name. Details on how
section names are assigned are provided with the
discussion of the sname
option in the SAS/C Compiler and Library User's Guide, Fourth Edition.
This error message may result from using CLINK to
sname
sname
in
which the first function of the module is the same as the sname
given to another module
sname
in which the name of the first function in the modules is the
same
Note:
For a compilation containing no external functions, the name of the
first defined external is used as the default sname.
602
WARNING: symbol initialized twice: [external name].
Explanation
Two modules being linked contain initializations
for the same external variable.
603
WARNING: multiple occurrences of [routine name] routine in library.
Explanation
Two CSECTs with the same name were found in different members of a
library or archive used for autocall. Which CSECT will be present in
the output is unpredictable.
Action
Make sure that an autocall library or archive
does not contain several copies of the same CSECT.
604
WARNING: GATHER output table [symbol] multiply defined.
Explanation
A label definition (LD) or named control section (SD) with the same name
as the GATHER
table was found in an object module. The linkage editor
or loader ignores the GATHER
table with this name. Therefore, the
program will probably execute incorrectly.
Action
Remove or rename the LD or
SD, or change the prefix to one that does not cause a conflict.
700
NOTE: Control statement not processed by CLINK, passed on to linker.
Explanation
The control statement was recognized by CLINK but
was not processed. The control statement is coped to CLINK output
for use by the mainframe linkage editor or loader.
701
WARNING: Unrecognized control statement passed on to linker.
Explanation
CLINK encountered a control statement that it did not
recognize. The control statement is coped to CLINK output
for use by the mainframe linkage editor or loader.
702
ERROR: Can't open INCLUDE file: [filename].
Explanation
A file specified in an INCLUDE
statement could not be
opened successfully.
Action
Check the file specification for
the file.
703
ERROR: invalid syntax in INCLUDE statement.
Action
Check the SAS/C Compiler Library and User's Guide for the proper
syntax for control statements.
705
ERROR: invalid syntax in [operation] statement.
Explanation
A control statement that specifies an [operation] of either
INCLUDE, GATHER, or ARLIBRARY, has incorrect syntax. These CLINK
control statements should have the same general format, and obey
most of the same conventions as linkage editor control statements.
706
ERROR: Multiple NAME control cards in linkage. Execution terminated.
Explanation
The input to CLINK contained more than one NAME statement. The
NAME control statement identifies the end of the input for an
output load module to the linkage editor. Since CLINK only
supports a single output load module, this usage is not valid
for CLINK.
707
WARNING: continuation of control statements not supported.
Explanation
Column 72 of any control statement must be blank because
CLINK does not support continuation of control statements.
802
WARNING: pseudoregister data truncated
Explanation
The pseudoregister offset does not fit into
the space provided for that value.
Note:
This message should only occur for code not produced
by the SAS/C Compiler. If the code is assembler code,
rewrite it to use longer Q-type address constants.
If it is PL/I code (or code from another language that
uses pseudoregisters), do not input the object code to
CLINK; instead, input it to the linker. See the
SAS/C Compiler Interlanguage Communication Feature User's Guide
for information on
linking programs using SAS/C with another high-level language.
804
ERROR: No TXT card for storing CXD information from RLD.
Explanation
A CXD in the relocation dictionary was not processed.
This problem can only occur in malformed object decks.
805
ERROR: No TXT card for storing XD information from RLD.
Explanation
An XD in the relocation dictionary was not processed.
This problem can only occur in malformed object decks.
806
NOTE: NO PSEUDOREGISTERS IN THIS LINKAGE
Explanation
The PREM
CLINK option has been specified, but there are no
pseudoregisters to be processed. (This message is for information
only.)
811
ERROR: Expected CM or ER after @EXTERN# SD not found. THIS CSECT WILL BE IGNORED.
Explanation
The first card after the @EXTERN# ESD card must be an ESD of type
ER or type CM which refers to the code CSECT which generated the
@EXTERN#. This problem can only occur in malformed or corrupted
object decks.
812
WARNING: Unmatched SMP library reference [lib_id] in [csect_name].
Explanation
The SMP distribution library identifier lib_id is not matched
with an element identifier. This only occurs if the SAS/C SMP
Support Libraries have been corrupted.
Action
Call SAS/C Technical Support.
813
WARNING: Unmatched SMP element reference [element] in [csect_name].
Explanation
The SMP distribution library element identifier element is not
matched with a SMP distribution library identifier. This only
occurs if the SAS/C SMP Support Libraries have been
corrupted.
Action
Call SAS/C Technical Support.
814
WARNING: Multiple SMP library references in [csect]. "[libname]" replaces "@##0[lib_id]"
Explanation
This only occurs if the SAS/C SMP Support Libraries have been
corrupted.
Action
Call SAS/C Technical Support.
815
WARNING: Multiple SMP element references in [csect]. "[element]" replaces "@##[element_id]"
Explanation
In the CSECT named [csect], an SMP distribution library element
identifier "@##[element_id]" has not been matched with a library
identifier and is being replaced by another element id [element].
This element identifier may not appear in the SYSJCLIN output file
This only occurs if the SAS/C SMP Support Libraries have been
corrupted.
Action
Call SAS/C Technical Support.
818
ERROR: The SNAME "[section_name]" is multiply defined.
Explanation
Two or more input object decks have the same section name.
During compilation the compiler creates names for various CSECTs
based on the section name. In order to resolve references to
these CSECTs, they must have unique names. This can be
accomplished by specifying different SNAMEs for each compilation.
Action
Refer to the SAS/C Compiler and Library User's Guide for more on
sname
compiler options and default section names.