L4000

      seg disp. included near location in segment name
      Explanation: This error is caused by using the LINK386 Warning of Fix-ups (/W) option.
      Action: The segment name and the location offset is displayed.
    L4001
      frame-relative fix-up, frame ignored near location in segment name
      Explanation: A fix up occurred with a frame segment different from the target segment where either the frame or the target segment is not absolute. Such a fix-up is meaningless in the OS/2 environment, so the target segment is assumed for the frame segment. This error sometimes occurs if a 32-bit data item is referenced as if it were in a 16-bit segment or a 16-bit segment referenced as if it were in a 32-bit segment.
      Action: Check that this is acceptable.
    L4002
      frame-relative absolute fix-up near location in segment name
      Explanation: A fix up occurred with a frame segment different from the target segment where both frame and target segments are absolute. This fix up is processed using base-offset arithmetic, but the warning is issued because the fix up might not be valid in the OS/2 environment. This error sometimes occurs if a 32-bit data item is referenced as if it were in a 16-bit segment or a 16-bit segment referenced as if it were in a 32-bit segment.
      Action: Check that this is acceptable.
    L4003
      intersegment self-relative fix up at location in segment name
      Explanation: LINK386 found an intersegment self-relative fix-up at the specified location. This might cause a problem with the executable file.
      Action: The error might have been caused by the way the program was written or when it was compiled or assembled.
    L4004
      possible fix-up overflow at location in segment name
      Explanation: LINK386 found a possible fix-up overflow at the specified location. This might cause a problem with the executable file.
      Action: The error might have been caused by the way the program was written or when it was compiled or assembled.
    L4005
      32-bit fix-up in 16-bit record ignored at location in segment name
      Explanation: LINK386 encountered a 32-bit fix-up in a 16-bit record at the specified location. This might cause a problem with the executable file.
      Action: The error might have been caused by the way the program was written or when it was compiled or assembled.
    L4006
      illegal 16-bit flat-relative offset fix-up at location in object name
      Explanation: LINK386 encountered an illegal 16-bit flat relative offset fix-up at the specified location. This might cause a problem with the executable file. This error sometimes occurs if a 32-bit data item is referenced as if it were in a 16-bit segment or a 16-bit segment referenced as if it were in a 32-bit segment.
      Action: The error might have been caused by the way the program was written or when it was compiled or assembled.
    L4007
      illegal 16-bit flat-relative pointer fix-up at location in object name
      Explanation: LINK386 encountered an illegal 16-bit flat-relative pointer fix-up at the specified location. This error sometimes occurs if a 32-bit data item is referenced as if it were in a 16-bit segment or a 16-bit segment referenced as if it were in a 32-bit segment.
      Action: The error might have been caused by the way the program was written or when it was compiled or assembled.
    L4008
      aliased fix-up to non-alias object near location in object name
      Explanation: LINK386 encountered an aliased fix-up to a non-alias object at the specified location. This error sometimes occurs if a 32-bit data item is referenced as if it were in a 16-bit segment or a 16-bit segment referenced as if it were in a 32-bit segment.
      Action: The error might have been caused by the way the program was written or when it was compiled or assembled.
    L4009
      illegal target of flat-relative fix-up ignored at number in segment name
      Explanation: LINK386 encountered an illegal flat-relative fix-up at the specified location.
      Action: The error might have been caused by the way the program was written or when it was compiled or assembled.
    L4010
      invalid alignment specification; assuming number
      Explanation: The number following the /ALIGNMENT option is not a power of 2, or is not in numerical form. The maximum alignment value is 4096.
      Action: If the default alignment of 512 is not acceptable, restart LINK386 using a valid number.
    L4017
      name: unrecognized option name; option ignored
      Explanation: The option specified is not valid for LINK386.
      Action: Specify a valid option or remove the unrecognized option and relink.
    L4018
      missing or bad application type; option name ignored
      Explanation: The /PMTYPE option was specified without an application type or with an invalid application type.
      Action: Relink with an application type of PM, VIO, or NOVIO.
    L4020
      name: code segment size exceeds 65,500
      Explanation: The code segment indicated is larger than 65,500 bytes and might not be reliable.
      Action: Break the segment into smaller segments and try again.
    L4021
      no stack segment
      Explanation: The program does not contain a stack segment defined with the STACK combine type. Normally, every .EXE program should have a stack segment with the combine type specified as STACK.
      Action: 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.
    L4022
      name1, name2: groups overlap
      Explanation: Two groups are defined in such a way that one starts in the middle of another. This can occur if you defined segments in a module definition file or assembly file and did not correctly order the segments by class.
      Action: Edit the source file and reorder the segments in the group.
    L4023
      name (alias): export internal name conflict
      Explanation: An exported name, or its associated internal name, conflicts with an already defined public symbol.
      Action: Edit the source file using new names.
    L4024
      name: multiple definitions for export name
      Explanation: The module named has been exported more than once with different internal names. All internal names except the first one are ignored.
      Action: Edit the source file using new names.
    L4025
      modname impname (intname): import internal name conflict
      Explanation: An imported name, or its associated internal name, is also defined as an exported name. The import name is ignored. The conflict could come from a definition in either the module definition file or an object file.
      Action: Edit the source file or module definition file using new names.
    L4026
      modname impname (intname): self-imported
      Explanation: The module definition file directed that a name be imported from the module being produced.
      Action: Edit the module definition file.
    L4027
      name: multiple definitions for import internal name
      Explanation: An imported name, or its associated internal name, is imported more than once. The imported name is ignored after the first mention.
      Action: Check that the name has been defined correctly.
    L4028
      name: segment already defined
      Explanation: A segment is defined more than once with the same name in the module definition file. Segments must have unique names for LINK386. All definitions with the same name are ignored after the first mention.
      Action: Check that the segment has been defined correctly.
    L4029
      name: DGROUP segment converted to type data
      Explanation: A segment that is a member of DGROUP has been defined as type CODE in a module definition file or object file. This probably happened because a CLASS keyword in a SEGMENTS statement was not given.
      Action: Check the module definition file syntax.
    L4030
      name: segment attributes changed to conform with automatic data segment
      Explanation: The segment named is defined in DGROUP, but the shared attribute is in conflict with the instance attribute.
      Example: The shared attribute is NONSHARED and the instance attribute is SINGLE, or the shared attribute is SHARED and the instance attribute is MULTIPLE. The bad segment is forced to have the right shared attribute and the link continues.
      Action: Check that the LINK386 action is acceptable.
    L4031
      name: segment declared in more than one group
      Explanation: A segment is declared to be a member of two different groups.
      Action: Correct the source file and re-create the object files.
    L4032
      name: code-group size exceeds 65500 bytes
      Explanation: The code group indicated is larger than 65500 bytes and therefore might not be reliable.
      Action: Break the group into smaller groups or remove one or more segments and try again.
    L4036
      no automatic data segment
      Explanation: The program or dynamic link library did not define a group named DGROUP. This is recognized by LINK386 as the automatic data segment.
      Action: Edit the source file.
    L4038
      program has no starting address
      Explanation: The program did not contain a starting address. Physical Device Drivers do not have program starting addresses, so this error can be ignored when linking Physical Device Drives.
      Action: Recompile the program and try again.
    L4044
      CODE segment :name in DATA group:name; assuming DATA
      Explanation: A CODE statement in a module definition file was used to define default attributes for a DATA segment.
      Action: Define a CODE statement and relink.
    L4045
      name of output file is name
      Explanation: A dynamic link library file was created without specifying an extension. In such cases, LINK386 supplies an extension of .DLL. This is to warn you in case you expected an .EXE file to be generated
      Action: No action.
    L4046
      DATA segment: name in CODE group: name; assuming CODE
      Explanation: A DATA statement in a module definition file was used to define default attributes for a CODE segment.
      Action: Define a DATA statement and relink.
    L4048
      ignoring non-zero heap size
      Explanation: The module definition file does not contain a HEAPSIZE statement.
      Action: Edit the file and relink.
    L4049
      ignoring non-zero stack size
      Explanation: The module definition file does not contain a STACKSIZE statement.
      Action: Edit the file and relink.
    L4051
      filename: cannot find library
      Explanation: LINK386 could not find the specified library file.
      Action: Enter a new file name, a new path specification, or both.
    L4053
      VM.TMP :illegal file name; ignored
      Explanation: VM.TMP cannot be used for an object file name.
      Action: Rename the file and restart LINK386.
    L4054
      filename: cannot find file
      Explanation: LINK386 could not find the specified file.
      Action: Enter a new file name, a new path specification, or both.
    L4067
      changing default resolution for weak external name from oldname to newname
      Explanation: LINK386 encountered a redefinition of a default resolution and is changing it to the value indicated.
      Action: If the change is OK, no action is required; otherwise, fix the module definition file and try again.
    L4068
      ignoring stack size greater than 64K
      Explanation: LINK386 encountered a stack greater than 64K or zero and is assuming a stack size of 65,534.
      Action: Edit the file and relink.
    L4069
      filename truncated to name
      Explanation: LINK386 encountered a file name greater than 256 bytes (including terminating null) and truncated it to the size indicated.
      Action: Edit the file and relink.
    L4071
      application type not specified; assuming name
      Explanation: An application type of WINDOWAPI, WINDOWCOMPAT, NOTWINDOWCOMPAT, or PRIVATE was not specified. LINK386 is assuming the application type indicated.
      Action: Edit the file and relink.
    L4072
      changing application type from oldname to newname
      Explanation: The application type specified with /PMTYPE is different from that in .DEF file. LINK386 is using the application type indicated.
      Action: Edit the file and relink.
    L4073
      name: 32-bit aliased data segment size exceeds 64K
      Explanation: The segment indicated is greater than 64K in length and is a 32-bit aliased data segment
      Action: If this is expected, do nothing; if not, break into smaller segments.
    L4074
      attribute conflict for segment name; ignoring attribute type
      Explanation: The segment indicated for the .DEF file is defined with conflicting characteristics. LINK386 is ignoring the attribute indicated.
      Action: Edit the file and relink.
    L4075
      object type conflict - assuming name
      Explanation: The .DEF files specified conflicting attributes for an object; only one of the following attributes are allowed: RESIDENT, NONPERMANENT, PERMANENT, CONTIGUOUS, or DYNAMIC. LINK386 is assuming the attribute indicated.
      Action: Edit the file and relink.
    L4077
      symbol name not defined; ordered allocation ignored
      Explanation: While doing ordered allocation of COMDAT records, LINK386 encountered an undefined COMDAT record; ordered allocation is determined from the .DEF file.
      Action: Edit the file and relink.
    L4079
      symbol name already defined for ordered allocation; duplicate ignored
      Explanation: While processing ORDER list in .DEF file, LINK386 encountered a COMDAT record already defined for ordered allocation.
      Action: Edit the file and relink.
    L4080
      changing substitute name for alias name from name to name
      Explanation: LINK386 encountered an alias redefiniton and is changing it to the values indicated.
      Action: If this is OK, no action is required. Otherwise, edit the file and relink.
    L4082
      name ignored for module with 16-bit starting address
      Explanation: LINK386 encountered a DLL module with a 16-bit entry point requesting termination. Only modules with 32-bit entry points can specify DLL termination.
      Action: Remove the termination request from the module definition file.
    L4083
      invalid base address specification; assuming number
      Explanation: The base address specified with the /BASE option or in the module definition file is illegal, and LINK386 is assuming the given value.
      Action: Change the base address if necessary; otherwise, ignore the message.
    L4084
      module name truncated to string
      Explanation: The module name was truncated to the number of characters indicated.
      Action: If this action is satisfactory, no action is required. Otherwise, edit the module definition file and shorten the name.
    L4085
      name (alias alias name): forwarder entry created for imported export
      Explanation: LINK386 created a forwarder entry within the entry table for the named export.
      Action: If this action is satisfactory, no action is required.
    L4087
      internal fix-up applied to uninitialized area at offset in object number
      Explanation: LINK386 attempted to apply an internal fix-up beyond the initialize limits of the object.
      Action: If this is acceptable, no action is required. If the problem continues, you might want to disable based addressing.
    L4090
      cannot load identifier manipulation DLL name
      Explanation: LINK386 detected an error while trying to load an identifier manipulator dynamic link library. This DLL was specified in an object file, and is used by LINK386 to demangle a compiler generated mangled name into a function prototype when printing an error message. Error messages will not be demangled for this object file.
      Action: Make sure the appropriate identifier manipulator DLL is in the LIBPATH.
    L4091
      cannot locate procedure in identifier manipulation DLL name
      Explanation: LINK386 detected an error while trying to load a procedure from an identifier manipulator dynamic link library. This DLL was specified in an object file, and is used by LINK386 to demangle a compiler generated mangled name into a function prototype when printing an error message. Error messages will not be demangled for this object file.
      Action: Make sure the appropriate identifier manipulator DLL is in the LIBPATH.
    L4092
      too many identifier manipulation DLLs
      Explanation: Too many identifier manipulator dynamic link libraries have been specified. These DLLs are specified in object files, and are used by LINK386 to demangle compiler generated mangled names into function prototypes when printing an error messages. Error messages may not be demangled for some object files.
      Action: Reduce the number of different compilers used to create the objects.
    L4093
      cannot initialize identifier manipulation DLL name
      Explanation: LINK386 detected an error while trying to initialize an identifier manipulator dynamic link library. This DLL was specified in an object file, and is used by LINK386 to demangle a compiler generated mangled name into a function prototype when printing an error message. Error messages will not be demangled for this object file.
      Action: Make sure the appropriate identifier manipulator DLL is in the LIBPATH.
    L4094
      increasing stack size from number to number
      Explanation: The stack size specified by either

      1. size of a segment with combine type stack
      2. STACKSIZE statement in the .DEF file
      3. /STACK LINK386 command line option

      will cause a system error if the program is executed on an OS/2 2.x system. LINK386 has changed the stacksize to a larger value to preserve compatibility.
      Action: No action required, LINK386 has corrected the problem. To eliminate the warning message, restart LINK386 and specify the new stack size.


    [Back] [Next]