From: sandmann AT clio DOT rice DOT edu (Charles Sandmann) Message-Id: <10301200208.AA28585@clio.rice.edu> Subject: src/dxe/dxegen.txi To: djgpp-workers AT delorie DOT com (DJGPP developers) Date: Sun, 19 Jan 2003 20:08:16 -0600 (CST) X-Mailer: ELM [version 2.5 PL2] Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com @c ----------------------------------------------------------------------------- @node dxegen, , , Top @chapter dxegen Usage: @code{dxegen} @file{outfile.dxe} @code{symbol} @file{infile.o} [@file{infile2.o} ... -lgcc -lc] @code{dxegen} is a utility which allows you to create files which contain dynamically loadable code. The image must be self-contained, and it cannot reference symbols from the main image. As a consequence, you cannot do I/O and some other functions directly from a DXE loaded image. Constructors, destructors, and C++ exceptions do not work. There is a single entry point (subroutine or data block) returned. This can be a vector of routines you have created. @file{outfile.dxe} is the name you want to contain your dynamic load code. @code{symbol} is the procedure name (or data structure) you want a pointer to. You must add an initial underscore for most symbols created from C. @file{input.o} is created with GCC from your source. Additional arguments on the command line (.o and .a files; or other ld options) are passed to ld to resolve references to build your code. The floating point emulator code provided by DJGPP is stored in a DXE. See the documentation of `_dxe_load' in the library docs, for details on how to load the dynamic code ("info libc alpha _dxe_load" from the DOS prompt).