LSCL CLINK Messages
This chapter documents messages generated by the CLINK utility (either
mainframe or cross-platform). Each message contains the message text
and an explanation of the message, as well as operating-system
information and the action needed to correct the error, if applicable.
All messages can occur in any operating environment unless otherwise
indicated. In some cases, messages from the run-time library written to
the standard error file 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.
ERROR: Error occurred while attempting to write CLINK output file.
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.
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.
ERROR: Invalid CLINK input [first_10_bytes]
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.
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.
WARNING: Reference not resolved during autocall: [symbol_name]
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.
ERROR: Error while writing to SYSJCLIN file.
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.
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.
ERROR: Error occurred while reading an input file.
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.
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.
ERROR: Error occurred while reading SYSIN.
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.
Re-run CLINK with the =warning run-time option to provide
additional SAS/C Library diagnostics. Check all input for validity
and integrity.
ERROR: Input error occurred. SYNADAF message text follows:
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.
ERROR: [error]
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.
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.
NOTE: Can't open file [filename].
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.
Re-run CLINK with the
"=warning" run-time option to provide additional SAS/C Library
diagnostics.
ERROR: Can't open file [filename].
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.
Re-run CLINK with the
"=warning" run-time option to provide additional SAS/C Library
diagnostics.
WARNING: Invalid AR370 library specified: [name].
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.
ERROR: [error] occurred performing I/O on AR370 library: [name].
An error described by [error_text] occurred processing the named
AR370 archive.
Re-run CLINK with the =warning run-time option to provide
additional SAS/C Library diagnostics.
ERROR: Can't create object file for CLINK output: [error]
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.
Re-run CLINK with the
"=warning" run-time option to provide additional SAS/C Library
diagnostics.
ERROR: Can't open object file: [filename].
One of the primary input files could not
be opened successfully. Check the filename and
filetype specification on the command line for
invoking CLINK.
WARNING: Can't open file during autocall: [filename].
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.
ERROR: Not enough memory available, CLINK cannot continue.
An attempt to allocate memory failed.
Increase the amount of memory available to CLINK.
ERROR: Can't open terminal for input.
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.
WARNING: file name [filename] truncated to [first eight characters of file name].
CMS filenames can be no longer than eight characters.
ERROR: No primary input file specified.
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.
ERROR: SYSJCLIN not allocated.
The open for the SYSJCLIN output file failed. On MVS make sure the
DDname is correctly defined.
NOTE: -o output-file option required but not specified.
Unix only: The output file name must be specified.
Refer to -o options in the SAS/C Compiler and Library User's Guide
WARNING: File name [filename] truncated to [first eight characters of file name].
CMS only: See message 106.
ERROR: [parameter] is not a valid CLINK option.
Unix only: CLINK terminated because the argument [parameter]
was not recognized as a CLINK option.
Refer to the CLINK options for the options
appropriate for your specific operating system in
the SAS/C Compiler and Library User's Guide.
ERROR: Can't create print file for CLINK output.
CMS only: stdout
could not be opened successfully.
Check stderr
for possible library diagnostics.
WARNING: Invalid DDname prefix specified [prefix].
MVS only: The files[xxx]
option has been specified with an
unacceptable prefix [prefix] for DDnames.
WARNING: Prefix truncated to [symbol].
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.
Change the control statement to remove or replace the prefix.
WARNING: Duplicate prefix [symbol] ignored.
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.
Remove the duplicate prefix
from the GATHER
control statement.
ERROR: Load failed for extended names user exit.
The user has specified the ENEXIT option, and an attempt to load
the user's exit to supply the external symbol names has failed.
ERROR: Extended names user exit returned code [return_code]
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.
ERROR: Extended names user exit ID value out of range: [id_value]
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.
ERROR: Problems executing user exit: [message]
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.
ERROR: Code generator should emit CM or ER immediately following the @EXTERN# SD card.
THIS CSECT HAS BEEN IGNORED.
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.
ERROR: multiple initialization sections for [csect name].
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
-
process more than one module compiled with the same
sname
-
process a module compiled without an
sname
in
which the first function of the module is the same as the sname
given to another module
-
process two modules compiled without specifying an
sname
in which the name of the first function in the modules is the
same
-
link more than one module that contains only
static data/functions.
Note:
For a compilation containing no external functions, the name of the
first defined external is used as the default sname.
WARNING: symbol initialized twice: [external name].
Two modules being linked contain initializations
for the same external variable.
WARNING: multiple occurrences of [routine name] routine in library.
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.
Make sure that an autocall library or archive
does not contain several copies of the same CSECT.
WARNING: GATHER output table [symbol] multiply defined.
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.
Remove or rename the LD or
SD, or change the prefix to one that does not cause a conflict.
NOTE: Control statement not processed by CLINK, passed on to linker.
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.
WARNING: Unrecognized control statement passed on to linker.
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.
ERROR: Can't open INCLUDE file: [filename].
A file specified in an INCLUDE
statement could not be
opened successfully.
Check the file specification for
the file.
ERROR: invalid syntax in INCLUDE statement.
Check the SAS/C Compiler Library and User's Guide for the proper
syntax for control statements.
ERROR: invalid syntax in [operation] statement.
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.
ERROR: Multiple NAME control cards in linkage. Execution terminated.
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.
WARNING: continuation of control statements not supported.
Column 72 of any control statement must be blank because
CLINK does not support continuation of control statements.
WARNING: pseudoregister data truncated
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.
ERROR: No TXT card for storing CXD information from RLD.
A CXD in the relocation dictionary was not processed.
This problem can only occur in malformed object decks.
ERROR: No TXT card for storing XD information from RLD.
An XD in the relocation dictionary was not processed.
This problem can only occur in malformed object decks.
NOTE: NO PSEUDOREGISTERS IN THIS LINKAGE
The PREM
CLINK option has been specified, but there are no
pseudoregisters to be processed. (This message is for information
only.)
ERROR: Expected CM or ER after @EXTERN# SD not found. THIS CSECT WILL BE IGNORED.
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.
WARNING: Unmatched SMP library reference [lib_id] in [csect_name].
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.
Call SAS/C Technical Support.
WARNING: Unmatched SMP element reference [element] in [csect_name].
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.
Call SAS/C Technical Support.
WARNING: Multiple SMP library references in [csect]. "[libname]" replaces "@##0[lib_id]"
This only occurs if the SAS/C SMP Support Libraries have been
corrupted.
Call SAS/C Technical Support.
WARNING: Multiple SMP element references in [csect]. "[element]" replaces "@##[element_id]"
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.
Call SAS/C Technical Support.
ERROR: The SNAME "[section_name]" is multiply defined.
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.
Refer to the SAS/C Compiler and Library User's Guide for more on
sname
compiler options and default section names.

Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.