24.6.1 How to relocate LispWorks

Relocate LispWorks by passing two parameters: the base address and the reserve amount. Both are optional. The interpretation of these parameters is very different between 64-bit LispWorks and 32-bit LispWorks.

To relocate a LispWorks executable on non-Windows platforms, pass one or both of these command line arguments:

--relocate-image BaseAddress

The base address, interpreted as a hexadecimal number by calling strtol( BaseAddress ,NULL,16))

--reserve-size ReserveSize

The reserve size, interpreted as a hexadecimal number by calling strtol( ReserveSize ,NULL,16))

There is currently no way to control the relocation of a LispWorks for Windows executable.

On all relocatable platforms, a LispWorks dynamic library or Windows DLL can be relocated by calling InitLispWorks with second and/or third argument non-zero.

On non-Windows platforms, you can add the appropriate call to InitLispWorks in wrappers written in C and added to the dynamic library by passing dll-added-files to save-image or deliver . There is no such option in LispWorks for Windows.

The startup relocation takes some time, normally less than 0.1 seconds on a modern machine. If the relocation address is fixed and known, this startup overhead can be eliminated by relocating the image before calling save-image or deliver .

LispWorks User Guide - 11 Mar 2008