Number | LINK Warning Message |
L4000 | segment displacement included near offset in segment segment |
This is the warning generated by the /W option. | |
L4001 | frame-relative fixup, frame ignored near offset in segment segment |
A reference was made relative to a segment or group that is different from the target segment of the reference. | |
For example, if _id1 is defined in segment _TEXT, the instruction call DGROUP:_id1 produces this warning. The frame DGROUP is ignored, so LINK treats the call as if it were call _TEXT:_id1. | |
L4002 | frame-relative absolute fixup near offset in segment segment |
A reference was made relative to a segment or group that was different from the target segment of the reference, and both segments are absolute (defined with AT). | |
LINK assumed that the executable file will be run only under DOS. | |
L4004 | possible fixup overflow at offset in segment segment |
A near call or jump was made to another segment that was not a member of the same group as the segment from which the call or jump was made. | |
This can cause an incorrect real-mode address calculation when the distance between the paragraph address (frame number) of the segment group and the target segment is greater than 64K, even though the distance between the segment where the call or jump was actually made and the target segment is less than 64K. | |
L4010 | invalid alignment specification |
The number specified in the /ALIGN option must be a power of 2 in the range 2–32,768. | |
L4011 | /PACKC value exceeding 64K–36 unreliable |
The packing limit specified with the /PACKC option was in the range 65,501–65,536 bytes. Code segments with a size in this range are unreliable on some versions of the 80286 processor. | |
L4012 | /HIGH disables /EXEPACK |
The /HIGH and /EXEPACK options cannot be used at the same time. | |
L4013 | option : option ignored for segmented executable file |
The given option is not allowed for segmented executable programs. | |
L4014 | option : option ignored for DOS executable file |
The given option is not allowed for DOS programs. | |
L4015 | /CO disables /DSALLOC |
The /CO and /DSALLOC options cannot be used at the same time. | |
L4016 | /CO disables /EXEPACK |
The /CO and /EXEPACK options cannot be used at the same time. | |
L4017 | option : unrecognized option name; option ignored |
The given option was not a valid LINK option. LINK ignored the option specification. | |
One of the following may be a cause:
An obsolete option was specified to the current version of LINK. For example, the /INCR option is obsolete in LINK version 5.30. The current options are described in the manual and in online Help. To see a list of options, run LINK with the /? option. An old version of LINK was used. Check your path. To see the version number of LINK, run LINK with the /? option. The name was incorrectly specified. For example, the option specification /NODEFAULTLIBSEARCH is an invalid abbreviation of the /NODEFAULTLIBRARYSEARCH option. Option names can be shortened by removing letters only from the end of the name. |
|
L4018 | missing or unrecognized application type; option option ignored |
The /PM option accepts only the keywords PM, VIO, and NOVIO. | |
L4020 | segment : code-segment size exceeds 64K–36 |
Code segments that are 65,501 through 65,536 bytes in length may be unreliable on some versions of the 80286 processor. | |
L4021 | no stack segment |
The program did not contain a stack segment defined with the STACK combine type. | |
Normally, every program should have a stack segment with the combine type specified as STACK. You can ignore this message if you have a specific reason for not defining a stack or for defining one without the STACK combine type. Linking with versions of LINK earlier than version 2.40 might cause this message since these linkers search libraries only once. | |
L4022 | group1, group2 : groups overlap |
The given groups overlap. Since a group is assigned to a physical segment, groups cannot overlap in segmented executable files. | |
Reorganize segments and group definitions so the groups do not overlap. Refer to the map file. | |
L4023 | entry(internalname) : export internal name conflict |
The internal name of the given exported function or data item conflicted with the internal name of a previous import definition or export definition. | |
L4024 | name : multiple definitions for export name |
The given name was exported more than once, an action that is not allowed. | |
L4025 | modulename.entry(internalname) : import internal name conflict |
The internal name of the given imported function or data item conflicted with the internal name of a previous export or import. (The given entry is either a name or an ordinal number.) | |
L4026 | modulename.entry(internalname) : self-imported |
The given function or data item was imported from the module being linked. This error can occur if a module tries to import a function or data item from itself or from another source (such as a DLL) that has the same name. | |
L4027 | name : multiple definitions for import internal name |
The given internal name was imported more than once. Previous import definitions are ignored. | |
L4028 | segment : segment already defined |
The given segment was defined more than once in a SEGMENTS statement of the module-definition (.DEF) file. | |
L4029 | segment : DGROUP segment converted to type DATA |
The given logical segment in the group DGROUP was defined as a code segment. | |
DGROUP cannot contain code segments because LINK always considers DGROUP to be a data segment. The name DGROUP is predefined as the auto-matic (or default) data segment. | |
LINK converted the named segment to type DATA. | |
L4030 | segment : segment attributes changed to conform with automatic data segment |
The given logical segment in the group DGROUP was given sharing attributes (SHARED/NONSHARED) that differed from the automatic data attributes as declared by the DATA instance specification (SINGLE/MULTIPLE). The attributes are converted to conform to those of DGROUP. | |
The name DGROUP is predefined as the automatic (or default) data segment. DGROUP cannot contain code segments because LINK always considers DGROUP to be a data segment. | |
L4031 | segment : segment declared in more than one group |
A segment was declared to be a member of two different groups. | |
L4032 | segment : code-group size exceeds 64K–36 |
The given code group has a size in the range 65,501–65,536 bytes, a size that is unreliable on some versions of the 80286 processor. | |
L4033 | first segment in mixed group group is a USE32 segment |
A 16-bit segment must be first in a group created with both USE16 and USE32 segments. | |
LINK continued to build the executable file, but the resulting file may not run correctly. | |
L4034 | more than 1024 overlay segments; extra put in root |
The limit on the number of segments that can go into overlays is 1024. Segments starting with the 1025th segment are assigned to the permanently resident portion of the program (the root). | |
L4036 | no automatic data segment |
The application did not define a group named DGROUP. | |
DGROUP has special meaning to LINK, which uses it to identify the automatic (or default) data segment used by the operating system. Most segmented execut-able applications require DGROUP. | |
This warning will not be issued if DATA NONE is declared or if the executable file is a dynamic-link library. | |
L4037 | group : both USE16 and USE32 segments in group; assuming USE32 |
The given group was allocated contributions from both 16-bit segments and 32-bit segments. | |
L4038 | program has no starting address |
The segmented executable application had no starting address. A missing starting address will usually cause the program to fail. | |
High-level languages automatically specify a starting address. In a C-language program, this is provided by the main function. | |
If you are writing an assembly-language program, specify a starting address with the END statement. | |
DOS programs and dynamic-link libraries should never receive this message, regardless of whether they have starting addresses. | |
L4040 | stack size ignored for /TINY |
LINK ignores stack size if the /TINY option is used and if the stack segment has been defined in front of the code segment. | |
L4042 | cannot open old version |
The file specified in the OLD statement in the module-definition (.DEF) file could not be opened. | |
L4043 | old version not segmented executable format |
The file specified in the OLD statement in the module-definition (.DEF) file was not a valid segmented executable file. | |
L4045 | name of output file is filename |
LINK used the given filename for the output file. | |
If the output filename is specified without an extension, LINK assumes the default extension .EXE. Creating a Quick library, DLL, or .COM file forces LINK to use a different extension. In the following cases, if either .EXE or no extension is specified, LINK assumes the appropriate extension: |
/TINY option | .COM | |
/Q option | .QLB | |
LIBRARY statement | .DLL |
@ERP = This warning also occurs if the name specified in the LIBRARYstatement in the module-definition (.DEF) file does not match the name specified in the exefilefield.
L4050 | file not suitable for /EXEPACK; relink without |
The size of the packed load image plus packing overhead was larger than it would be for the unpacked load image. There is no advantage to packing this program. | |
Remove /EXEPACK from the LINK command line. In PWB, turn off the Pack EXE File check box in the Additional Debug/Release Options dialog box under Link Options. | |
L4051 | filename : cannot find library |
LINK could not find the given library file. | |
One of the following may be a cause:
The specified file does not exist. Enter the name or full path specification of a library file. The LIB environment variable is not set correctly. Check for incorrect directory specifications, mistyping, or a space, semicolon, or hidden character at the end of the line. An earlier version of LINK is being run. Check the path environment variable and delete or rename earlier linkers. |
|
L4053 | VM.TMP : illegal filename; ignored |
VM.TMP appeared as an object-file name. | |
Rename the file and rerun LINK. | |
L4054 | filename : cannot find file |
LINK could not find the specified file. | |
Enter a new filename, a new path specification, or both. | |
L4055 | start address not equal to 0x100 for /TINY |
The starting address for a .COM file must be 100 hexadecimal. | |
Put the following line of assembly source code in front of the code segment:
ORG 100h |
|
L4056 | /EXEPACK valid only for OS/2 and real-mode DOS; ignored |
The /EXEPACK option is incompatible with Windows programs. | |
L4057 | stack specified for DLL; ignored |
A stack was specified for a dynamic-link library (DLL). Either the /STACK option was used on the command line or the STACKSIZE statement was used in the module-definition (.DEF) file. LINK ignored the specification and did not create a stack. | |
A DLL does not have a stack. | |
L4058 | ignoring alias for already defined symbol symbol |
The specified symbol was redefined in the program. However, it is an identifier from a C run-time library that has an alias to a new name in OLDNAMES.LIB. LINK ignored the alias for the symbol. | |
This warning appears only when the /INFO option is specified. | |
L4067 | changing default resolution for weak external symbol from oldresolution to newresolution |
LINK found conflicting default resolutions for a weak external. It ignored the first resolution and used the second. | |
L4068 | ignoring stack size greater than 64K |
A stack was defined with an invalid size. LINK assumed 64K. | |
L4069 | filename truncated to filename |
A filename specification exceeded the length allowed. LINK assumed the given filename. | |
L4070 | too many public symbols for sorting |
LINK uses the stack and all available memory in the near heap to sort public symbols for the /MAP option. This warning is issued if the number of public symbols exceeds the space available for them. In addition, the symbols are not sorted in the map file but are listed in an arbitrary order. | |
L4076 | no segments defined |
There was no code in the program. | |
This warning can occur if the file contains only resources. | |
L4077 | symbol function not defined; ordered allocation ignored |
The given function was specified in a FUNCTIONS statement in the module-definition (.DEF) file, but the function was not defined. | |
L4079 | symbol function already defined for ordered allocation; duplicate ignored |
The given function was specified twice in FUNCTIONS statements in the module-definition (.DEF) file. | |
L4080 | changing substitute name for alias symbol from oldalias to newalias |
LINK found conflicting alias names. It ignored the first alias and used the second. | |
L4081 | cannot execute program arguments—message |
LINK could not run the given program (with the given arguments) for the given reason. | |
L4082 | changing overlay assigment for segment segment from oldnumber to newnumber |
The given segment was assigned to two overlays, represented by oldnumber and newnumber. LINK assumed the newnumber overlay. | |
Probably a command-line overlay specification with parentheses conflicted with an overlay specification in the module-definition (.DEF) file. | |
L4083 | changing overlay assigment for symbol symbol from oldnumber to newnumber |
The given symbol was assigned to two overlays, represented by oldnumber and newnumber. LINK assumed the newnumber overlay. | |
Probably a command-line overlay specification with parentheses conflicted with an overlay specification in the module-definition (.DEF) file. | |
L4084 | option : argument missing; option ignored |
The given option requires an argument, but none was specified. | |
For example, the following option specification causes this error:
/ONERROR |
|
L4085 | option : argument invalid; assuming argument |
The given option was specified with a numeric argument that was out of range for the option. LINK assumed the given argument. | |
For example, the option specification /DYNAMIC:11000 causes the following error:
/DYNAMIC:11000 : argument invalid; assuming 10922 |