0.8.3 LINK Warnings

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.