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.

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

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.

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