File : README
Author : Z.W. Hendrikse
Date : 11 October 1999
Last change: 17 November 2000
Version : 1.4
What can I find here:
---------------------
Source for Dynamite dynamic loader, operational for Linux
and Solaris.
Build:
------
Use gnu make.
Type make in this directory (where the README is).
Use:
----
Pass the following options on the compiler's commandline during the
final linking of your executable:
Solaris:
-Wl,-I,/path/to/dynamic/loader/dynld.so
Linux:
-Wl,-dynamic-linker,/path/to/dynamic/loader/dynld.so -rdynamic
If the system you have uses glibc2.1 or newer, you need a local copy
of glibc2.0, since the checkpointer currently does not support glibc2.1.
You then need to pass one more option while linking:
-L/path/to/glibc2.0/libraries
This extra option does not need to be used when the system is still
using glibc2.0 or libc5.x.
See also DYNAMITE_LD_LIBRARY_PATH below.
Environment variables:
----------------------
DPVM_CKPTDIR a directory where the checkpoint-file can be stored.
Make sure this directory exists.
If it is not defined, the checkpoint-file will be stored
in the "ckpt" subdirectory of users home directory ($HOME/ckpt/).
DYNAMITE_LD_LIBRARY_PATH pointing to a local copy of glibc2.0, if the
system you have uses glibc2.1 or newer (see "Use"
above).
This environment variable does not need to be
set when the system is still using glibc2.0 or
libc5.x.
Source code documentation:
--------------------------
The documentation may be found in the html-directory.
Browse loading the document html/index.html.
This documentation has been generated using doc++:
doc++ -d html doc.c
(see also http://www.zib.de/Visual/software/doc++/)
Directory structure:
--------------------
./boot1.[ch] `Main' module of dynamic loader
./ckpt.[ch] All routines specific to checkpointing
./Config.mk Platform dependencies and configuration options, such
as DEBUG mode compiling are put here, included in
Makefile
./Makefile The top level GNU Makefile
./Version.mk Contains version information, obsolete!
./config.h header file included by boot1.c, ckpt.c, readelflib1.c
./dlib.c Former libdl.c, which has now been integrated into the
dynamic loader to avoid problems under glibc2.x and
Solaris.
./doc.c Generate doc++ html pages from here, still somewhat
buggy
./hash.[ch] Various symbol table handling functions
./link.h GNU libc 2.0 specific fixes
./linuxelf.h FIXME: what kind of specific things go in here?
./readelflib1.c Load an ELF sharable library into memory
./vsprintf.c This module contains a.o. _dl_fdprintf
./libdl source code of libdl.so (obsolete, see dlib.c above)
./m68k Motorola 68000 dependent code, _not_ supported
./i386 Linux dependent code
/Makefile Makefile for this directory
/elfinterp.c processor-specific relocation handling code
/resolve.S helper routines needed to run an ELF image
/string.h string functions (string.h) as inline functions
/syscall.h enable syscalls in the absence of the C-library
/sysdep.h assembly language/system dependencies
./sparc Sparc dependent code
/Makefile Makefile for this directory
/elfinterp.c processor-specific relocation handling code
/sdiv.S Apparently generated automatically (unused)
/syscall.h enable syscalls in the absence of the C-library
/udiv.S unsigned division
/urem.S unsigned reminder
/DEFS.h Sun specific assembly support macros
/div.S division (unused)
/resolve.S helper routines needed to run an ELF image
/string.h string functions (string.h) as inline functions
/sysdep.h assembly language/system dependencies
/umul.S unsigned multiply (unused)
Preprocessor defines:
---------------------
DEBUG Give additional (debug) run-time output
SAN_DEBUG Give additional sanitise-related (debug) run-time output
DL_DEBUG Give additional dynamic library (debug) info
MAP_ANONYMOUS System might support this, does _not_ need to be set
USE_CACHE FIXME!
USE_CONTEXT Once used to (quickly) fix restart under Solaris
FIXME: Obsolete now?
IBCS_COMPATIBLE Intel Binary Compatibility Specification: _cannot_ be
used for this (checkpointing) dynamic loader
(no support in syscall assembly stubs, syscall.h)
Compiled-in defaults:
---------------------
DEFAULT_CHECKPOINT_FILENAME name of checkpoint-file _not_ using PVM
DEBUG_OUTPUT_FILE_PREFIX place where checkpoint debug file output
will go to: .$USER will be appended