ID: Q86812
5.30 MS-DOS
The information in this article applies to:
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:
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:
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
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
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.
/*
* 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