Number | LINK Warning |
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 which 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 with OS/2 or Windows programs. | |
L4014 | option : option ignored for DOS executable file |
The given option is not allowed with 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 |
An unrecognized name followed the option indicator. LINK ignored the option specification. | |
An option is specified by a forward slash (/) and a name. The name can be specified by a legal abbreviation of the full name. | |
For example, the following command causes this warning:
LINK /NODEFAULTLIBSEARCH main |
|
This error can also occur if the wrong version of LINK is used. Check the directories in the PATH environment variable for other versions of LINK.EXE. | |
L4018 | missing or unrecognized application type; option option ignored |
The /PM option accepts only the keywords PM, VIO, and NOVIO. | |
L4019 | /TINY disables /INCR |
The /TINY and /INCR options are incompatible. A .COM file always requires a full link and cannot be incrementally linked. LINK ignored /INCR. | |
L4020 | segment : code-segment size exceeds 64K-36 |
Code segments in the range 65,501–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. This message may be ignored if there is 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 OS/2 or Windows 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 is not supported on some systems. | |
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 the SEGMENTS statement of the module-definition 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 automatic (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 239 overlay segments; extra put in root |
The link command line or response file designated too many segments to go into overlays. | |
The limit on the number of segments that can go into overlays is 239. Segments starting with the 240th 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 OS/2 and Windows applications require DGROUP. | |
This warning will not be issued if DATA NONE is declared or if the executable file is a dynamic-link library. | |
L4038 | program has no starting address |
The OS/2 or Windows application had no starting address, which will usually cause the program to fail. High-level languages automatically specify a starting address. | |
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 file could not be opened. | |
L4043 | old version not segmented executable format |
The file specified in the OLD statement in the module-definition file was not a valid OS/2 or Windows 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: |
/TINY option | .COM | |
/Q option | .QLB | |
LIBRARY statement | .DLL |
L4047 | Multiple code segments in module of overlaid program incompatible with /CO |
If there are multiple code segments defined in one object file by use of the C compiler #pragma alloc_text() and the program is built as an overlaid program, you can access the CodeView symbolic information for only the first code segment in an overlay. Symbolic information is not accessible for other code segments in the overlay. | |
L4050 | file not suitable for /EXEPACK; relink without |
LINK could not pack the file because the size of the packed load image plus packing overhead was larger than that of the unpacked load image. | |
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, and 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. | |
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. | |
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. |