0.8.2 LINK Errors

Number LINK Error Message

L2000 imported starting address
  The program starting address as specified in the END statement in an assembly-language file is an imported routine. This is not supported by OS/2 or Windows.
L2002 fixup overflow at number in segment segment
  This error message will be followed by either

target external symbol

  or

frm seg name1, tgt seg name2, tgt offset number

  A fixup overflow is an attempted reference to code or data that is impossible because the source location (where the reference is made “from”) and the target address (where the reference is made “to”) are too far apart. Usually the problem is corrected by examining the source location.
  For information about frame and target segments, see the Microsoft MS-DOS Programmer's Reference.
L2003 near reference to far target at offset in segment segment
pos: offset target external name
  The program issued a near call or jump to a label in a different segment.
  This error occurs most often when specifically declaring an external procedure to be near that should be declared as far.
  This error can be caused by compiling a small-model C program with CL's /NT option.
L2005 fixup type unsupported at number in segment segment
  A fixup type occurred that is not supported by LINK. This is probably a compiler error.
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions on the Microsoft Product Assistance Request form at the back of one of your manuals.
L2010 too many fixups in LIDATA record
  The number of far relocations (pointer- or base-type) in an LIDATA record exceeds the limit imposed by LINK.
  The cause is usually a DUP statement in an assembly-language program. The limit is dynamic: a 1,024-byte buffer is shared by relocations and the contents of the LIDATA record; there are eight bytes per relocation.
  Reduce the number of far relocations in the DUP statement.
L2011 identifier : NEAR/HUGE conflict
  Conflicting NEAR and HUGE attributes were given for a communal variable. This error can occur only with programs produced by the Microsoft FORTRAN Compiler or other compilers that support communal variables.
L2012 arrayname : array-element size mismatch
  A far communal array was declared with two or more different array-element sizes (for instance, an array was declared once as an array of characters and once as an array of real numbers). This error occurs only with the Microsoft FORTRAN Compiler and any other compiler that supports far communal arrays.
L2013 LIDATA record too large
  An LIDATA record contained more than 512 bytes. This is probably a compiler error.
  Note the circumstances of the error and notify Microsoft Corporation by following the instructions on the Microsoft Product Assistance Request form at the back of one of your manuals.
L2022 entry (alias internalname) : export undefined
  The internal name of the given exported function or data item is undefined.
L2023 entry (alias internalname) : export imported
  The internal name of the given exported function or data item conflicts with the internal name of a previously imported function or data item.
L2024 symbol : special symbol already defined
  The program defined a symbol name already used by LINK for one of its own low-level symbols. For example, LINK generates special symbols used in overlay support and other operations.
  Choose another name for the symbol to avoid conflict.
L2025 symbol : symbol defined more than once
  The same symbol has been found in two different object files.
L2026 entry ordinal number, name name : multiple definitions for
same ordinal
  The given exported name with the given ordinal number conflicted with a different exported name previously assigned to the same ordinal. Only one name can be associated with a particular ordinal.
L2027 name : ordinal too large for export
  The given exported name was assigned an ordinal that exceeded the limit of 65,535 (64K–1).
L2028 automatic data segment plus heap exceed 64K
  The total size of data declared in DGROUP, plus the value given in HEAPSIZE in the module-definition file, plus the stack size given by the /STACK option or STACKSIZE module-definition file statement, exceeds 64K.
  Reduce near-data allocation, HEAPSIZE, or stack.
L2029 symbol : unresolved external
  A symbol was declared to be external in one or more modules, but it was not publicly defined in any module or library.
  The name of the unresolved external symbol is given, then a list of object modules that contain references to this symbol. This message and the list are written to the map file, if one exists.
  One cause of this error is using the /NOI option for files that use case inconsistently.
L2030 starting address not code (use class CODE)
  The program starting address, as specified in the END statement of an .ASM file, should be in a code segment. Code segments are recognized if their class name ends in CODE. This is an error in OS/2 protected mode.
  The error message may be disabled by including the REALMODE statement in the module-definition file.
L2041 stack plus data exceed 64K
  If the total of near data and requested stack size exceeds 64K, the program will not run correctly. LINK checks for this condition only when /DOSSEG is enabled, which is the case in the library start-up module for Microsoft language libraries.
  For object modules compiled with the Microsoft C or FORTRAN optimizing compilers, recompile with the /Gt command-line option to set the data-size threshold to a smaller number.
  This is a fatal LINK error.
L2043 Quick library support module missing
  The required module QUICKLIB.OBJ was missing.
  The module QUICKLIB.OBJ must be linked in when creating a Quick library.
L2044 symbol : symbol multiply defined, use /NOE
  LINK found what it interprets as a public-symbol redefinition, probably because a symbol defined in a library was redefined.
  Relink with the /NOE option. If error L2025 results for the same symbol, then this is a genuine symbol-redefinition error.
L2045 segment : segment with > 1 class name not allowed with /INCR
  The program defined a segment more than once, giving the segment different class names. This is incompatible with the /INCR option. This error appears only with assembly-language programs.
  For example, the following two statements define two distinct segments with the same name but different classes:

_BSS segment 'BSS'

_BSS segment 'DATA'

L2047 IOPL attribute conflict - segment segment in group group
  The specified segment is a member of the specified group but has an IOPL attribute that is different from other segments in the group.
L2048 Microsoft Overlay Manager module not found
  Overlays were designated, but the Microsoft Overlay Manager module was not found. This module is defined in the default library.
L2049 no segments defined
  No code or initialized data was defined in the program. The resulting executable file is not likely to be valid.
L2050 USE16/USE32 attribute conflict - segment segment in group group
  16-bit segments cannot be grouped with 32-bit segments.
L2051 start address not equal to 0x100 for /TINY
  The program starting address, as specified in the .COM file, must have a starting value equal to 100 hexadecimal (0x100 or 0x0). Any other value is illegal.
  Put the following line of assembly source code in front of the code segment:

ORG 100h

L2052 symbol : unresolved external; possible calling convention mismatch
  A symbol was declared to be external in one or more modules, but LINK could not find it publicly defined in any module or library.
  The name of the unresolved external symbol is given, then a list of object modules that contain references to this symbol. The error message and the list are written to the map file, if one exists.
  This error occurs in a C-language program when a prototype for an externally defined function is omitted and the program is compiled with CL's /Gr option. The calling convention for _fastcall does not match the assumptions that are made when a prototype is not included for an external function.
  Either include a prototype for the function, or compile without the /Gr option.