Contents of the S50007.TXT file
CLIPPER 5.0 SUPPORT BULLETIN #7
BULLETIN REVISED: 22nd Jan, 1992
PRODUCT: Clipper 5.0
AFFECTED VERSIONS: 5.01
SUBJECT: RTLink Questions and Answers
Q1: RTLink hangs occasionally with 386 Max (and other memory
managers). Can I disable RTLink's use of expanded memory?
A1: To turn off EMS useage, use SET RTLEMSOFF=1. To turn off XMS
useage, use SET RTLXMSOFF=1.
An alternative to slow swap files being created when you turn off
EMS or XMS useage is to redirect the swap file to a RAMdisk. To
do this, specify WORKFILE E: in the link file, or set the
environmental variable TMP to E:.
Q2: Does incremental linking work?
A2: Yes, but it only works on Clipper code. Therefore, the
effect is not very noticable unless you use a prelinked library so
that you are not relinking the code in CLIPPER.LIB.
Q3: What is the difference between the RTLink LIB and SEARCH
A3: Nothing. SEARCH is included for compatibility only
Q4: What is the easiest way to create a prelinked library? How
do I determine what should be REFERed and what should be EXCLUDEd?
A4: The easiest way to create a (.PLL) file is to use the
NOTABLEOFCONTENTS command to list all the symbols that are being
linked in. You must also specify the VERBOSE command. Then use
REFER to specify these symbols in your linker script file. REFER
adds a symbol to the search request list, and EXCLUDE removes one.
Q5: What is the current default stack size?
A5: 1000 hex (4096 dec). If problems are encountered, try
increasing the stack size to 5000 hex (20480 decimal). This can
be done using the STACK command, as follows:
STACK 5000 // 5000 hex
STACK 20480. // Hex syntax, but period specifies decimal
/STACK:20480 // 20480 decimal
/STACK:5000. // Hex syntax, but period specifies hex
Q6: What does the error "Cannot combine common segment name>" mean?
A6: Common segments cannot have a symbol in an .EXE and another
in a prelinked library. To correct the problem either EXCLUDE the
symbol that is in the (.PLL) or INCLUDE the symbol that is in the
.EXE. Either way, both symbols must be moved so that they are in
the same place.
Q7: Is there any overhead associated with static overlays?
A7: Yes. When a static overlay is created, the Static Overlay
Manager is included in the .EXE file. As this takes up about 10K,
the overlay being created must save this much memory in order to
1. Automatic search requests (the ones the compiler puts in to
automatically search all the Clipper libraries) are satisfied
AFTER the search of any libraries listed in the LIB statement.
RTLINK FI MyObj LIB FuncLib
FuncLib will be searched BEFORE Clipper, Extend, etc. If you want
CLIPPER.LIB to be searched before FuncLib, use the following:
RTLINK FI MyObj LIB Clipper, FuncLib
2. The NOTABLEOFCONTENTS command can be used to prevent
unresolved symbols in cases where the table of contents is not
complete for some reason. NoTableOfContents causes the linker to
manually search each object and library file instead of using the
table of contents to determine what symbols each file contains.
Libraries created with Borland's TLIB utility have a table of
contents that RTLink does not recognize, and should be linked
using the NOTABLEOFCONTENTS command.
3. A prelinked library will satisfy a search request BEFORE any
object or library files are searched. Therefore, a symbol in a
(.PLL) will always take precedence over a symbol in the (.OBJ) or
4. The MODULE command, which forces a file to be overlayed,
overrides the LIB command, which causes symbols from the file
being linked to be put into the root
5. To allow static overlays to be called from a symbol in the
same overlay area, the command RELOAD FAR must be
used to allow the RETURN to take place properly. The default
figure for the reload stack is 100this allows you to make 100
calls into an overlay section before any RETURNs are recorded.
Increasing this figure to 200 provides enough entries in the
overlay entry table to handle the code and function calls in a
standard C runtime library.
END: CLIPPER 5.0 SUPPORT BULLETIN #7