ID Number: Q11172
2.40 3.04
MS-DOS
Summary:
The following is a reference table of limitations for the various
versions of LINK (following the table are some footnotes):
LINKER LIMITATIONS
------------------
============================================================================
| | | | | | |
| | | | MAXIMUM | | |
| | MAXIMUM | | NUMBER | | |
| | NUMBER OF | MAXIMUM | SYMBOLS | MAXIMUM | MAXIMUM |
LINKER | SYMBOL | LOADTIME | NUMBER | PER | NUMBER | NUMBER |
VERSION | TABLE | RELOCATIONS | PUBLICS | MODULE | GROUPS | OVERLAYS |
| | | (*) | | (**) | |
===========|========|=============|=========|=========|=========|==========|
| | | | | | |
2.40 | 64K | 12,000 | 1536 | 511 | 10 | 63 |
------ | | | | | | |
PAS/FOR 3.2| | | | | | |
-----------|--------|-------------|---------|---------|---------|----------|
2.41 | | | | | | |
------ | 64K | 12,000 | 1536 | 511 | 10 | 63 |
PAS/FOR 3.2| | | | | | |
-----------|--------|-------------|---------|---------|---------|----------|
2.44 | | | | | | |
------ | 64K | 12,000 | 1536 | 511 | 10 | 63 |
MASM 1.27 | | | | | | |
-----------|--------|-------------|---------|---------|---------|----------|
| | | | | | |
2.45 | 64K | 12,000 | 1536 | 511 | 10 | 63 |
| | | | | | |
-----------|--------|-------------|---------|---------|---------|----------|
| | | | | | |
2.48 | 256K | 12,000 | 1536 | 511 | 10 | 63 |
| | | | | | |
-----------|--------|-------------|---------|---------|---------|----------|
3.00 | | | | | | |
------ | 256K | 16,384 | 7700- | 1,023 | 10 | 63 |
MASM 3.00 | | | 8700 | | | |
| | | | | | |
-----------|--------|-------------|---------|---------|---------|----------|
3.01 | | | | | | |
------ | 256K | 32,768 | 7700- | 1,023 | 19/20 | 63 |
PASCAL 3.3 | | /65,536 | 8700 | | | |
C 3.0 | | | | | | |
-----------|--------|-------------|---------|---------|---------|----------|
3.02 | | | | | | |
------ | 256K | 32,768 | 7700- | 1,023 | 19/20 | 63 |
FORTRAN 3.3| | /65,536 | 8700 | | | |
| | | | | | |
-----------|--------|-------------|---------|---------|---------|----------|
| | | | | | |
3.03 | 256K | 32,768 | 7700- | 1,023 | 19/20 | 63 |
| | /65,536 | 8700 | | | |
| | | | | | |
-----------|--------|-------------|---------|---------|---------|----------|
| | | | | | |
3.04 | 256K | 32,768 | 7700- | 1,023 | 20/21 | 63 |
| | /65,536 | 8700 | | | |
| | | | | | |
===========|========|=============|=========|=========|=========|==========|
======================================================================
| MAXIMUM | MAXIMUM | MAXIMUM NO.| MAXIMUM NO.| |
LINKER | NUMBER | NUMBER | GROUPDEFS | SEGMENTS | NOTES |
VERSION | SEGMENTS | LIBRARIES | PER MODULE | PER MODULE | |
| | | | | |
===========|==========|===========|============|============|========|
| | | | | |
2.40 | 244 | 8 | 10 | 256 | |
------ | | | | | |
PAS/FOR 3.2| | | | | |
-----------|----------|-----------|------------|------------|--------|
2.41 | | | | | |
------ | 244 | 8 | 10 | 256 | 1 |
PAS/FOR 3.2| | | | | |
-----------|----------|-----------|------------|------------|--------|
2.44 | | | | | |
------ | 1,000 | 8 | 10 | 254 | |
MASM 1.27 | | | | | |
-----------|----------|-----------|------------|------------|--------|
| | | | | |
2.45 | ? | 8 | 10 | 254 | 1 |
| | | | | |
-----------|----------|-----------|------------|------------|--------|
| | | | | |
2.48 | 128 DEF. | 8 | 10 | 254 | |
| 1,024 | | | | |
-----------|----------|-----------|------------|------------|--------|
3.00 | | | | | |
------ | 128 DEF. | 16 | 20 | 254 | 2,3,4 |
MASM 3.00 | 1,024 | | | | |
| | | | | |
-----------|----------|-----------|------------|------------|--------|
3.01 | | | | | |
------ | 128 DEF. | 16 | 20 | 255 | 2,3,4,5|
PASCAL 3.3 | 1,024 | | | | |
C 3.0 | | | | | |
-----------|----------|-----------|------------|------------|--------|
3.02 | | | | | |
------ | 128 DEF. | 16 | 20 | 255 | 2,3,4,5|
FORTRAN 3.3| 1,024 | | | | |
| | | | | |
-----------|----------|-----------|------------|------------|--------|
| | | | | |
3.03 | 128 DEF. | 16 | 20 | 255 | 2,3,4,5|
| 1,024 | | | | |
-----------|----------|-----------|------------|------------|--------|
3.04 | | | | | |
| 128 DEF. | 16 | 20 | 255 | 2,3,4 |
| 1,024 | | | | 5,6 |
===========|==========|===========|============|============|========|
The numbers given for maximum number of publics are guidelines
only, and the actual limits will be somewhat more or less for any
given program.
For Versions 3.01 and later there is a low and a high limit for the
number of groups. The linker always defines an entry for "DGROUP".
Therefore, if your program does not define this, it effectively has the
lower limit.
1. Versions 2.41 and 2.45 of the linkers include many problems.
They are supposed to run under DOS Version 1.x. However, do not use
them with DOS Version 2.0 or later.
2. /OVERLAYINTERRUPT allows you to select different interrupt
numbers (255 possible) for passing control to interrupts.
3. /STACK can be used to reduce the stack size or to increase up to
64K (do not use this with Microsoft FORTRAN/Pascal).
4. With MS-DOS, /SEGMENTS is used to adjust total number of
segments in .EXE from 0 TO 1024. DEFAULT is 128. With PC-DOS, /X is
used to adjust total number of segments in .EXE from 0 to 1024.
Default is 256.
5. The maximum number of load time relocations is 512K if you are
using EXEPACK, otherwise the maximum number is 32K.
6. The maximum number is 21 if one of the load time relocations is
called "DGROUP".
7. The maximum stack size for all versions is one segment (65536
bytes).