FIX: LINK 5.3 Consumes All Available Free Disk Space or Hangs

ID: Q86812

5.30 MS-DOS

The information in this article applies to:

SYMPTOMS

An attempt to link an application fails when Microsoft LINK version 5.3 consumes all available free disk space and hangs. The exact symptoms depend on the specified command-line options and on the linked code. Some of the behaviors are as follows:

CAUSE

These problems occur when LINK attempts to write CodeView information and a symbol is defined as both a data item and a function in the same object module. In other words, these problems occur when all of the following five conditions occur simultaneously:

RESOLUTION

To work around this problem, perform one of the following four steps:

    - Change the name of one of the conflicting symbols
    - Modify the LINK command line to specify the /NOIGNORECASE option
    - Modify the LINK command line to remove the /CODEVIEW option
    - Modify the application source code to initialize the data item

STATUS

Microsoft has confirmed this to be a problem in LINK version 5.3 for MS-DOS (provided with Microsoft C/C++ version 7.0 for MS-DOS and Windows). This problem was corrected in LINK version 5.31.009 for MS-DOS (provided with the C/C++ version 7.0a for MS-DOS and Windows patch disk). To obtain the patch disk, obtain a disk from Microsoft. To obtain a disk in the United States, call Microsoft Product Support Services at (206) 454-2030. Outside the United States, contact the Microsoft subsidiary for your area. To locate your subsidiary, go to the Microsoft Web site http://www.microsoft.com/worldwide/default.htm

MORE INFORMATION

The following code example demonstrates this problem. LINK generates the following message and hangs:

   L2025: _FuncName: symbol defined more than once

If the application initializes FUNCNAME to a value or if the LINK command line omits the /CODEVIEW option switch, the L2025 error persists but LINK does not hang. To eliminate the error completely, rename one of the symbols or specify the /NOIGNORECASE LINK option.

Sample Code

/*
 * Compile options needed: /c
 *    Link options needed: /CO
 */ 

#include <stdio.h>

void FuncName(int i)
{
   printf("function called: %d\n", i);
}

int FUNCNAME;

void main(void)
{
   FUNCNAME = 1;
   FuncName(FUNCNAME);
}

Additional reference words: 5.30 7.00 CVPACK KBCategory: KBSubcategory: LinkIss

Keywords          : kbcode kberrmsg LinkIss 
Version           : 5.30
Platform          : MS-DOS
Solution Type     : kbfix

Last Reviewed: May 22, 1998