home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Black Box 4
/
BlackBox.cdr
/
progc
/
bchelp10.arj
/
TI725.ASC
< prev
next >
Wrap
Text File
|
1991-09-18
|
2KB
|
67 lines
PRODUCT : TLINK NUMBER : 725
VERSION : All
OS : DOS
DATE : September 18, 1991 PAGE : 1/1
TITLE : Table Limit Exceeded
Occasionally TLINK will generate a "Table limit exceeded"
message. This message is generally caused when an internal
linker table containing symbols overflows. This table is
referred to as the symbol table. The symbol table starts out at
80K bytes and grows dynamically up to a limit of 256K bytes. The
reason for this limit is one of speed.
There are several things that contribute to the symbol table
size--public names, external names, segment names, imported names
(Windows only) and group names. Including debug information also
increases the table size by 4 bytes for each symbol in the table.
The usual major contributors to the filling of the symbol table
are the public and external names.
There are several approaches to reducing the size of the symbol
table. You can try any one or a combination of all of them. How
many you need to implement is going to be dependent on the amount
of symbol space you require beyond 256K bytes.
The different approaches are as follows:
1. Declare all functions and variables that are not used by
another module to have static duration.
2. Reduce the size of libraries used. All symbols in all
modules in all libraries being linked are put into the
symbol table whether that module is used or not. You can
significantly reduce the number of symbols in the symbol
table by removing any unused modules from your libraries.
This approach also applies to the default libraries.
3. A small decrease in the symbol space used can be gained by
shortening the names used since the variable name is part
of the symbol table entry.
4. You can store like types in arrays rather than declaring
individual names for each variable. For instance,
declaring 5 integers will generate 5 corresponding symbol
table entries. Declaring an integer array and storing
these 5 integers in the array will generate a single
symbol table entry for the array name rather than each
individual integer variable.